一、动态路由协议的分类
1.按工作区域分类:
动态路由协议按用途分类可以分为内部网关协议(IGP)和外部网关协议(EGP)。一个Internet网可以被分成多个域或多个自治系统,各自治系统通过一个核心路由器连到主干网上,每个自治系统都有自己的路由技术,对不同的自治系统路由技术是不相同的。所谓内部网关协议,就是指用于自治系统内部的路由协议,而外部网关协议,就是指用于自治系统间接口上的单独的协议。
2.按寻径算法分类:
动态路由协议按操作可以分为距离矢量路由协议、链路状态路由协议或路径矢量路由协议。其中距离矢量路由协议和链路状态路由协议属于内部网关协议,而路径矢量路由协议则属于外部网关协议。
3.按行为分类:
动态路由协议按行为分类可以分为有类路由协议和无类路由协议。他们二者本质区别就是在发送路由更新时是否发送子网掩码,有类路由协议不会在路由更新中发送子网掩码信息,而无类路由协议在路由更新中包含子网掩码信息。
二、RIP协议
RIP是Routing Information Protocol(路由信息协议)的简称,是一种较为简单的内部网关协议IGP(Interior Gateway Protocol)。
RIP使用跳数(Hop Count)来衡量到达目的地址的距离,称为度量值。在RIP中,缺省情况下,路由设备到与它直接相连网络的跳数为0,通过一个路由设备可达的网络的跳数为1,其余依此类推。也就是说,度量值等于从本网络到达目的网络间的路由设备数量。为限制收敛时间,RIP规定度量值取0~15之间的整数,大于或等于16的跳数被定义为无穷大,即目的网络或主机不可达。由于这个限制,使得RIP不可能在大型网络中得到应用。
目的:RIP协议是最早的内部网关协议之一,RIP协议被设计用于使用同种技术的中小型网络。由于RIP的实现较为简单,在配置和维护管理方面也远比OSPF和IS-IS容易,因此在实际组网中仍有广泛的应用。
1、RIP协议的工作原理:
每台运行了RIP协议的路由器都维护一个RIP数据库,该RIP数据库保存了路由设备发现的所有RIP路由。被RIP协议通告的接口会周期性的向邻居发送RIP路由表,路由通过距离矢量算法算出路由将自己没有的路由加载到路由表中。
2、RIP的防环机制:
RIP作为距离矢量路由协议只是简单的将自己路由表周期性的通告出去,同时将受到的有效路由加载到路由表中,并通过累加的度量值来体现到达目标网络的距离,由此运行距离矢量路由协议的路由设备并不了解整个网络的拓扑结构,这些特点使得网络中容易出现路由环路。
水平分割,毒性逆转,触发更新是距离矢量的重要的路由协议防环机制。
水平分割
水平分割在不同网络中实现有所区别,分为按照接口和按照邻居进行水平分割。广播网、P2P和P2MP网络中是按照接口进行水平分割的,NBMA网络是按照邻居进行水平分割。
-
广播网、P2MP和P2P网络中的水平分割
水平分割(Split Horizon)的原理是,RIP路由设备从某个接口学到的路由不会从该接口再发回给邻居路由设备。这样不但减少了带宽消耗,还可以防止路由环路。
1)RIP的度量值为跳数:最大跳数为15跳,RIP路由的数据包从始发开始,没经过一台设备加1,大于15是,则认为路由不可达。
2)水平分割技术:从一个接口学到的路由不会从这个接口发回去。
3)因为RIP基于UDP(端口号520)发送协议报文,而UDP没有确认机制,所以路由将路由发送出去以后无法确认另据是否收到RIP路由,为了保障路由的可靠更新,所以需要周期发送RIP路由(30s)。
广播网、P2MP和P2P网络中的水平分割:
如图1所示,DeviceA会向DeviceB发送到网络10.0.0.0/8的路由信息,如果没有配置水平分割,DeviceB会将从RouterA学习到的这条路由再发送回给RouterA。这样,RouterA可以学习到两条到达10.0.0.0/8网络的路由,一条是跳数为0的直连路由,一条是下一跳指向DeviceB且跳数为2的路由。
但是在DeviceA的RIP路由表中只有直连路由才是活跃的。当DeviceA到网络10.0.0.0的路由变成不可达,并且DeviceB还没有收到路由不可达的信息时,DeviceB会继续向DeviceA发送10.0.0.0/8可达的路由信息。即,DeviceA会接收到错误的路由信息,认为可以通过DeviceB到达10.0.0.0/8网络;而DeviceB仍旧认为可以通过DeviceA到达10.0.0.0/8网络,从而形成路由环路。配置水平分割后,DeviceB将不会再把到网络10.0.0.0/8的路由发回给DeviceA,避免了路由环路的产生。
接口视图下,使能rip的水平分割功能:rip split-horizon
NBMA网络中的水平分割
对于NBMA(Non Broadcast Multiple Access)网络,由于一个接口上连接多个邻居,RIP支持在NBMA网络中按邻居进行水平分割处理。NBMA网络中,路由按照单播方式发送,同一接口上收到的路由可以按邻居进行区分。从某一接口的对端邻居处学习到路由,不会再通过该接口发送回去。
如图2所示,配置水平分割后,DeviceB会将从DeviceA学习到的10.0.0.0/8路由发送给DeviceC,但是不会再发送回给DeviceA。
毒性逆转
毒性逆转(Poison Reverse)的原理是,RIP从某个接口学到路由后,将该路由的开销设置为16(即指明该路由不可达),并从原接口发回邻居路由设备。利用这种方式,可以清除对方路由表中的无用路由,也可以防止产生路由环路的发生。
如图3所示,DeviceA会向DeviceB发送10.0.0.0/8路由信息,如果没有配置毒性逆转,DeviceB会将从DeviceA学习到的这条路由再发送回给DeviceA。这样,DeviceA可以学习到两条到达10.0.0.0/8网络的路由,一条是跳数为0的直连路由;一条是下一跳指向DeviceB且跳数为2的路由。
当DeviceA到网络10.0.0.0/8的路由变成不可达,并且DeviceB还没有收到路由不可达的信息时,DeviceB会继续向DeviceA发送10.0.0.0/8可达的路由信息。即,DeviceA会接收到错误的路由信息,认为可以通过DeviceB到达10.0.0.0/8网络;而DeviceB仍旧认为可以通过DeviceA到达10.0.0.0/8网络,由此导致了路由环路。
配置毒性逆转后,DeviceB在接收到从DeviceA发来的路由后,向DeviceA发送一个这条路由不可达的消息(即将该路由的开销设置为16跳,16跳即意味着该路由不可达),这样DeviceA就不会再从DeviceB学到这条可达路由,因此就可以避免上述环路的发生。
进入接口视图,使能rip的毒性逆转功能:rip poison-reverse
触发更新
触发更新的原理是,路由信息发生变化时,立即向邻居设备发送触发更新报文,通知变化的路由信息。触发更新可以缩短网络收敛时间,在路由表项变化时立即向其他设备广播该信息,而不必等待定时更新。
如图4所示,网络10.4.0.0不可达时,DeviceC最先得到这一信息。通常,更新路由信息会定时发送给相邻Device(RIP协议每隔30秒发送一次)。但如果在DeviceC等待更新周期到来的时候,DeviceB的更新报文传到了DeviceC,DeviceC就会学到DeviceB的去往网络10.4.0.0的错误路由。这样DeviceB和DeviceC上去往网络10.4.0.0的路由都指向对方从而形成路由环路。如果DeviceC发现网络故障之后,不再等待更新周期到来,就立即发送路由更新信息给DeviceB,使DeviceB的路由表及时更新,则可以避免产生上述问题。
触发更新还存在另外一种方式:当下一跳不可用之后(如因为链路故障)需要及时通告给其他设备,此时要把该路由的cost设置为16然后发布出去,此更新也叫做路由毒杀。
进入系统视图:system-view;
创建rip进程并进入:rip
调整RIP触发更新定时器:timers rip triggered
3、RIPv1和RIPv2的区别:
4、RIP的配置(使能水平分割防环)
R1的配置:
interface GigabitEthernet0/0/0ip address 10.0.12.1 255.255.255.0
#
interface LoopBack0ip address 192.168.1.1 255.255.255.0
#
rip 1undo summaryversion 2network 192.168.1.0network 10.0.0.0
#
R2的配置:
interface GigabitEthernet0/0/0ip address 10.0.12.2 255.255.255.0
#
interface GigabitEthernet0/0/1ip address 10.0.23.2 255.255.255.0
#
rip 1undo summaryversion 2network 10.0.0.0
#
R3的配置:
interface GigabitEthernet0/0/0ip address 10.0.23.3 255.255.255.0
#
interface LoopBack0ip address 192.168.2.1 255.255.255.0
#
rip 1undo summaryversion 2network 10.0.0.0network 192.168.2.0
#
配置结果验证: