IP路由原理
概述:
研究IP路由:静态路由、动态路由的特征以及按需路由(ODR);
1、距离矢量、链路状态、高级路由矢量路由(也叫混合路由);
2、分类和无类路由;
路由器将数据转发到目标网络,需要知道远程网络,和到达此网络的最佳路径。路由器知道与他直连的网络--它根据接口配置的地址和子网掩码确定接口的子网和网络号;而对于不接口直接相连的网络,路由器需要依赖外部路由(静态路由、动态路由)。
静态路由原理
管理员手动指定的路由,在下列情况下适合使用静态路由:
1、带宽较低(拨号连接)、不希望传输动态路更新;
2、管理员想完全控制;
3、为动态路由提供一条备用链路;
4、去往只有一条路径可达的网络(末节网络);
5、到ISP的默认路由
CLI:全局模式下
R1(config)# ip route 2.2.2.2 255.255.255.255(目标网络和子网) 10.1.1.1(出接口或者下一跳地址) 10(1-255管理距离) name next-hop (名称)
静态默认路由:
需要将目标网络和子网掩码都设置为0.0.0.0表示匹配任意网络;
(config)#ip route 10.1.1.0 255.255.255.0 g0/0 #出接口在路由表中显示为直连路由管理距离0
(config)#show ip route
S 10.1.1.0/24 is directly connected, GigabitEthernet0/0
(config)#ip route 10.1.1.0 255.255.255.0 12.1.1.1 #下一跳在路由表中显示为静态路由管理距离1
S 10.1.1.0/24 is directly connected, GigabitEthernet0/0
[1/0] via 12.1.1.1
注意:静态路由使用出接口和使用下一跳的区别:在以太网中,两个接口之间的通信需要使用MAC地址,根据MAC地址,将数据封装成数据帧后传送到网络,进而通过物理线路传送给对方。而获得对方的MAC地址,是通过ARP的过程完成的。
当静态路由中使用出接口时,路由器会认为目标网络和接口处在“直连网络”中。 R1(config)#ip route 12.1.1.0 255.255.255.0 g0/0
查看:这时R1认为12.1.1.0/24这个网段是和自己直连的,
在以太网直连网络中设备间的通信是通过ARP广播来获取到到达目标主机的MAC地址的。即当R1要访问12.1.1.2这个IP地址时, R1认为目标网络是自己的直连网络(这时候还是属于静态路由),于是R1就要在g0/0口向网络发出ARP请求广播,来寻找12.1.1.3所对应的MAC地址。
这时,如果R2启用了ARP代理,那么R2将代替R3应答此ARP请求,即R2告诉R1:12.1.1.2所对应的MAC地址是R2的g0/0接口的MAC。如果R2的ARP代理功能关闭,那么R1将不能ping通12.12.1.2。假设R3后面接了些的PC机,当R1要访问这些PC机时,都会产生一条该PC机和MAC地址对应的ARP条目缓存,如果PC机的数量很大,该缓存也很大,有可能导致R1耗尽内存来维护。
在静态路由中使用下一跳,路由表中显示的是下一跳的IP。
R1(config)#ip route 12.1.1.0 255.255.255.0 10.1.1.1
查看:这时去往12.1.1.0/24的网段只会维护一条ARP缓存,即10.1.1.1所对应的是R2的g0/0接口地址。即使R3后面接了多台主机,也只需要维护这么一条ARP缓存记录。
如果在点到点网络环境下,无论是指定下一跳地址还是出接口,其效果都是一样的。使用如 HDLC 和 PPP 之类协议来进行二层的封装,不需要进行ARP的解析。
结论:
在配置静态路由时,既可指定出接口,也可指定位下一跳,到底采用哪种方法,需要根据实际情况而定。
在点到点网络环境下,无论是指定下一跳地址还是出接口,其效果都是一样的。
但是在广播网络环境下,指定下一跳地址和指定出接口将会达到不同的效果。如果指定为出接口的话,那么不管数据包的目标地址是否有效,每次当数据包到达时都会触发一个ARP请求,又因为ARP代理功能在IOS环境下默认是打开的,这就意味着路由器需要配备大量的ARP高速缓存。而如果是指定为下一跳地址的话,仅当第一个去往目标网络的数据包到达时,才会触发ARP请求。
原文地址:http://blog.51cto.com/11702237/2174742