静态路由:
静态路由的优点:CPU没有管理性开销,意味着不使用动态路由选择的话可以购买更便宜的路由器;节省带宽,路由器不需要去动态更新路由信息占用带宽;更安全,管理员可以有选择的允许路由只访问特定的网络。
静态路由的缺点:管理员的工作量太大了。
静态路由语法:
R1(config)#ip route [destination_network] [mask][next-hop_address or exitinterface]
[administrative_distance] [permanent]
字段描述:
ip route:创建静态路由
destination_network:在路由表中要存放的网络号
mask:网络所使用的子网掩码
next-hop_address:下一跳地址,即与本路由器直接相连的路由器的接口
提示:添加静态路由之前,必须能够ping通下一跳地址。如果输入了一个错误的下一跳地址,或者这个下一跳接口对于自己的路由器来说是关闭的,那么虽然在路由器中配置了静态路由,但它并不会真正出现在路由表中。
exitinterface:离开接口,即要到达下一跳路由的本地路由器的接口
提示:无论使用下一跳地址或者离开接口,静态路由管理距离默认都是1。如图:
administrative_distance:设置管理距离(AD),默认为1。
permanent:永远保留这条路由(下一跳接口关闭或不能与下一跳路由器进行通信时路由条目将会被自动删除)
例:
R1(config)#ip route172.16.3.0 255.255.255.0 172.16.2.2 150 permanent
或:R1(config)#ip route 172.16.3.0 255.255.255.0 s0/0 150permanent
注意:使用离开接口配置静态路由时,仅推荐用于串行点对点网络,路由器只需要一次路由表查找便能将数据包转发到送出接口,查找路由表效率比使用下一跳地址更高。
静态浮动路由
浮动路由是一条路由的备份路由,它可以是动态路由,也可以是静态路由。静态浮动路由通过配置一个比主路由的管理距离更大的静态路由,当网络中主路由失效的情况下,提供备份路由,但在主路由失效恢复后或者存在的情况下它不会出现在路由表中,浮动静态路由主要用于拨号备份。
例如当路由器R3到某个网络有s0/0和s0/1两个接口都能到达时可以配置浮动路由。浮动路由的配置为静态路由配置一个大于1的管理距离。
R3(config)#iproute 172.16.3.0 255.255.255.0s0/0//主路由
R3(config)#ip route172.16.3.0 255.255.255.0 s0/150//浮动备份路由
代理ARP(ProxyARP)
代理ARP就是通过使用一个主机(通常为Router),来作为指定的设备对另一设备作出ARP请求的应答。
例如Pc1与Pc2通信:
对于以太网,如果要封装以太网帧成功,必须要有二层的MAC地址和三层的IP地址的映射。
如果采用带下一跳地址配置静态路由:
R1 收到 Pc1 的数据包后,查找路由表,下一跳192.168.2.2(R2);
R1 封装数据包并发送:目的 IP192.168.3.2(Pc2)、目的MAC 0000.0000.000D(R2 F0/0的MAC地址);
……
但是如果采用的是带离开接口的静态路由的配置:
R1 收到 Pc1 的数据包后,查看自己的路由表,从F0/0 发出;
R1 查找 ARP 表,Pc2对应的MAC地址,ARP表中没有找到;
R1 发送 ARP请求广播:Pc2(192.168.3.2)的MAC地址是多少?;
R2 收到 ARP请求广播后查看自己有到192.168.3.0网段的路由且 F0/0 口已开启 Proxy ARP;
R2 发出 ARP响应包:Pc2(192.168.3.2)的 MAC 地址是 0000.0000.000D(R2 F0/0的MAC地址);
R1 封装数据包并发送:目的 IP192.168.3.2(Pc2)、目的MAC 0000.0000.000D(R2 F0/0的MAC地址);
… …
说明:如果R2关闭F0/0口的ProxyARP、R1并清除ARP缓存,在R1上数据包将封装失败,Pc1不能与Pc2通信。
R1(config)#int f0/0
R1(config-if)#ipproxy-arp//开启ARP代理功能(默认开启的)
注意:对静态路由的配置如果出站接口为以太网接口,最好同时使用下一跳地址和送出接口来配置。
例如:R1(config)#ip route 192.168.3.0255.255.255.0 f0/0 192.168.2.2。
或者使用:R1(config)#ip route 192.168.3.0 255.255.255.0 f0/0也是可以的。
其它
R1#debug iprouting//动态查看路由表的添加或删除过程
静态默认路由:
静态默认路由可以转发那些不在路由表中列出的远端目的网络的数据包到下一跳路由器,静态默认路由可以使用在与外界只有一个输出连接的网络上。
静态默认路由是一种使用通配符代替网络地址和子网掩码的特殊的静态路由,拥有静态路由的所有特性。
如上例:
R1(config)#ip route 0.0.0.0 0.0.0.0172.16.2.2或 R1(config)#ip route 0.0.0.0 0.0.0.0 S0/0
当使用有类路由协议且配置静态默认路由时,应配置ipclassless命令。(Cisco IOS 12.x版本默认是被设置的)
答疑:
配置静态路由下一跳时使用直连接口和下一跳IP地址有什么不同?
答:当使用直连接口的情况下从这个接口上发出去就行了,至于发给谁就无法控制,所以只能用于--点到点链路。如果是以太网链路在该接口上可能连接其他多个路由器,不知道使用哪个路由器接收,如果使用下一跳IP地址,则只有你指定的路由器接收这个数据。