11 KiB
第 11 天 静态路由
Static Routing
Gitbook:ccna60d.xfoss.com
你可以在 https://github.com/gnu4cn/ccna60d 上 fork 本项目,并提交你的修正。
本书结合了学习技巧,包括阅读、复习、背书、测试以及 hands-on 实验。
本书译者用其业余时间完成本书的翻译工作,并将其公布到网上,以方便你对网络技术的学习掌握,为使译者更有动力改进翻译及完成剩下章节,你可以 捐赠译者。
第 11 天任务
- 阅读今天的课文
- 复习昨天的课文
- 完成今天的实验
- 阅读 ICND1 记诵指南
- 在subnetting.org上用
15
分钟
选择作一名网络管理员,就是要在网络中用到动态路由协议或坚持使用静态路由,所谓静态路由,就是手动将网络的所有路由,加入到所有路由器上去。
经常会有人问我(原作者)哪个路由协议是”最好的“。是没有一种方式适合于每个网络的,因为就算某家特定机构的网络需求,也会随时间变化。配置静态路由需要时间和精力,但可以省下一些网络带宽和 CPU 运算周期。如要加入一条新路由,就必须在所有路由器上进行手动添加。此外,如有某台路由器宕掉,静态路由就没有办法处理这个事情,所以还会往宕掉的网络发送流量(有关可靠静态路由的部分,不再 CCNA 大纲的范围之内)。
今天要学到下面这些。
- 静态路由的配置
- 静态路由排错
本模块对应了以下 CCNA 大纲要求。
- 按照给出的特定路由要求,配置并验证一条静态或默认路由的路由配置
- 区分不同路由方式及各种路由协议
- 静态路由对动态路由
- 下一跳
如回头看一下第10
天中的管理距离表,就会发现手动配置的网络比起路由协议,是首选的路由。这么做的理由就是,作为网络管理员,期望着比任何协议都要对网络有更好的了解,并比任何协议都清楚要达到什么目的。那么现在,就应该明白,在需要达到某种目的时,可以结合动态路由来使用静态路由。
静态路由配置
Configuring Static Routes
配置一条静态路由(见下图11.1)需要以下这些命令。
network address/prefix mask
address
orexit interface
distance
(optional)
这里是一个这些命令使用的实例。
RouterA(config)#ip route network prefix mask {address | interface} [distance]
图11.1 -- 静态路由示例网络
要加入上面网络的一条静态路由,就要在左边的路由器上写出下面这行配置。
Router(config)#ip route 192.168.1.0 255.255.255.0 172.16.1.2
对静态路由,需要指定在前往目的地址的路途上,路由器需要去往的下一跳 IP 地址,或者也可以指定一个出去的接口。通常不需要知道下一跳地址,因为那就是 ISP ,或者 IP 地址会随时变化(见下图11.2)。如果是这样,就要使用出去的接口。
图11.2 -- 不总是知道下一跳地址的情形
Router(config)#ip route 192.168.1.0 255.255.255.0 s0/0
上面的命令行告诉路由器将目的为192.168.1.10
网络的流量,从串行接口发出。而下面的命令则是告诉路由器将所有网络的所有流量,都从串行接口发出。
Router(config)#ip route 0.0.0.0 0.0.0.0 s0/0
上面的路由实际上就是一条默认路由(a default route)。默认路由用于引导那些未在路由表中显式列出的目的网络的数据包。
静态 IPv6 路由的配置
Configuring Static IPv6 Routes
静态 IPv6 路由的配置,与静态 IPv4 路由的配置遵循同样的逻辑。在思科 IOS 软件中,全局配置命令ipv6 route [ipv6-prefix/prefix-length] [next-hop-address | interface] [distance <1-254> | multicast | tag | unicast]
用于配置静态 IPv6 路由。当中的一些关键字是熟悉的,因为它们也适用于 IPv4 静态路由,而[multicast]
关键字则是 IPv6 所独有的,用于配置一条 IPv6 静态多播路由(an IPv6 static Multicast route)。如用到此关键字,该路由就不会进到单薄路由表(the Unicast routing table),同时也绝不会用于转发单播流量。为确保该路由绝不会安装到单播路由信息库(the Unicast RIB), 思科 IOS 软件将该条路由**(静态多播路由)的管理距离设置为255
**。
相反,[unicast]
关键字则是用于配置一条 IPv6 静态单播路由。如用到此关键字,该条路由就绝不会进入到多播路由表(the Multicast routing table), 并仅被用于转发单播流量。而既没用到[multicast]
关键字,也没用到[unicast]
关键字时,默认情况下,该条路由机会用于单播数据包的转发,也会用于多播数据包的转发。
以下的配置示例,演示了如何来配置3
条静态 IPv6 路由。第一条路由,到子网3FFF:1234:ABCD:0001::/64
, 会将流量从FastEthernet0/0
转发出去。此路由仅用于单播流量的转发。第二条路由,到子网3FFF:1234:ABCD:0002::/64
, 会将到那个子网的数据包从Serial0/0
,使用下一跳路由器的数据链路层地址,作为 IPv6 的下一跳地址转发出去。本条路由仅会用于多播流量。最后,同样配置了一条指向Serial0/1
作为出口接口的默认路由。此默认路由将会通过Serial0/1
, 使用下一跳路由器的本地链路地址作为 IPv6 下一跳地址,转发那些到未知 IPv6 目的地址的数据包。这些路由如下面所示。
R1(config)#ipv6 route 3FFF:1234:ABCD:0001::/64 Fa0/0 unicast
R1(config)#ipv6 route 3FFF:1234:ABCD:0002::/64 Se0/0 FE80::2222 multicast
R1(config)#ipv6 route ::/0 Serial0/1 FE80::3333
依此配置,命令show ipv6 route
可用于验证在本地路由器上应用的静态路由配置,如下所示。
R1#show ipv6 route static
IPv6 Routing Table - 13 entries
Codes: C - Connected, L - Local, S - Static, R - RIP, B - BGP
U - Per-user static route
I1 - ISIS L1, I2 - ISIS L2, IA - ISIS inter area, IS - ISIS summary
O - OSPF intra, OI - OSPF inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2
ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2
S ::/0 [1/0]
via FE80::3333, Serial0/1
S 3FFF:1234:ABCD:1::/64 [1/0]
via ::, FastEthernet0/0
S 3FFF:1234:ABCD:2::/64 [1/0]
via FE80::2222, Serial0/0
除了使用show ipv6 route
命令外,命令show ipv6 static [prefix] [detail]
也可一用来对所有或仅是某条特定静态路由的细节信息进行查看。下面输出演示了如何使用这个命令。
R1#show ipv6 static 3FFF:1234:ABCD:1::/64 detail
IPv6 static routes
Code: * - installed in RIB
* 3FFF:1234:ABCD:1::/64 via interface FastEthernet0/0, distance 1
静态路由排错
Troubleshooting Satic Routes
排错总会涉及到某个配置问题(如果不是接口宕掉的话)。如流量没有到达目的地,就可以使用命令traceroute
测试该路由。
注意 -- 今天内容很少,所以请前往第 12 天吧,因为那将是个非常充实的主题。
第 11 天问题
- Name the three parameters needed to configure a static route.
- What is the command used to configure a static route?
- What is the command used to configure a default static route?
- What is the command used to configure an IPv6 static route?
- What is the command used to view IPv6 static routes?
第 11 天答案
- Network address, subnet mask (prefix length), and next-hop address or exit interface.
- The
ip route
command. - The
ip route 0.0.0.0 0.0.0.0
command. - The
ipv6 route
command. - The
show ipv6 route static
command.
第 11 天实验
静态路由实验
Static Routes Lab
拓扑图
实验目的
学习如何以下一跳地址和出口接口方式,将静态路由指定给一台路由器。
实验步骤
-
按照上面的拓扑图分配 IP 地址。
Router A
可以是192.168.1.1/30
,Router B
可以是.2
。 -
通过串行链路进行
ping
操作,以确保该链路是工作的。 -
在
Router A
上指定一条静态路由,将到10.1.1.0/10
网络的所有流量,从串行接口发送出去。当然要使用你自己的串行端口编号;不要只是拷贝我的配置,你的接口有不同编号!RouterA(config)#ip route 10.0.0.0 255.192.0.0 Serial0/1/0 RouterA(config)#exit RouterA#ping 10.1.1.1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 10.1.1.1, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 18/28/32 ms RouterA# RouterA#show ip route Codes: C - Connected, S - Static, I - IGRP, R - RIP, M - Mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area * - Candidate default, U - Per-user static route, o - ODR P - Periodic downloaded static route Gateway of last resort is not set 10.0.0.0/10 is subnetted, 1 subnets S 10.0.0.0 is directly connected, Serial0/1/0 172.16.0.0/24 is subnetted, 1 subnets C 172.16.1.0 is directly connected, Loopback0 192.168.1.0/30 is subnetted, 1 subnets C 192.168.1.0 is directly connected, Serial0/1/0 RouterA# RouterA#show ip route 10.1.1.1 Routing entry for 10.0.0.0/10 Known via “ static ”, distance 1, metric 0 (connected) Routing Descriptor Blocks: * directly connected, via Serial0/1/0 Route metric is 0, traffic share count is 1 RouterA#
-
在
Router B
上配置一条静态路由,将到172.16.1.0/24
网络的所有流量,发到下一跳地址192.168.1.1
。RouterB(config)#ip route 172.16.1.0 255.255.255.0 192.168.1.1 RouterB(config)#exit RouterB#ping 172.16.1.1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 172.16.1.1, timeout is 2 seconds: !!!!! RouterB#show ip route 172.16.1.1 Routing entry for 172.16.1.0/24 Known via “ static ”, distance 1, metric 0 Routing Descriptor Blocks: * 192.168.1.1 Route metric is 0, traffic share count is 1 RouterB#