一、 RIP overview:
1. rip是tcp/ip协议开发的第一个路由选择标准;是一个distance vector协议,管理距离为120;利用UDP来封装数据,用UDP 520端口发送接受更新。
2. rip适用于小型网络,路由器数目不大于15台(默认16台不可达),广播更新。
3. 发送和接收的更新为路由表条目,并且每个更新包最多携带25条路由条目(认证后为24条)
4. 基本原理:每个启动RIP协议的端口以255.255.255.255(广播)为目标发送请求报文(RIP Request message),其邻居路由器收到后发送他所知道的路由表信息作为响应(Response message),同时在发出后出端口的时候将hop count加1(如果路由表中显示的跳数为“1”则表示通告路由器是与自己直连的);当接收方收到更新后就作如下处理:
⑴ 更新信息的目标是自己没有的,则加入路由表。
⑵ 更新信息的目标是自己有的,则比较跳数,如果比自己原有的小则更新路由表;
如果跳数比较大或为不可达(跳数大于15),则看更新信息的源地址(即为自己
去往目标的下一跳),是否与自己原来的下一跳一样,如果不一样则丢弃此更新;
如果一样,这时为了防止有不断变化的产生会启动抑制计时器(Holddown timer)
默认180秒,同时将该路由设为不可达,如果在180秒后还收到同样的更新消息
则接受。
⑶ 对于接受的更新在加入路由表的同时会附加一个无效计时器(Invalidation timer)
默认180秒,即在180秒后还没收到相关更新信息则认为不可达设跳数为16,如
果在过60秒(一共240秒)还没收到则从路由表中删除该条路由(刷新计时器
(flush timer))。这样做的好处是防止了路由黑洞
⑷ 路由器启动后每30秒启动rip的接口不断发出更新包(response)
⑸ 为了防止同时发更新造成广播风暴,随机设置一个25.5~30秒的hello时间以实现不同时发送更新,这就是debug时看到的更新间隔不为30秒的原因。
5. 产生的问题和解决:
⑴ 环路问题:A-B-C-①:设网络收敛后,ABC为三台路由器,①为一个网段如
果该网段发生故障,则C可以知道,其将①设为不可达(hop=16)然后等待下一
次更新时间去向B发送更新,但是如果B先更新,C会收到这样一条消息说:“B
可以去①跳数为2跳,那么C比较后(比16小)更新路由表;问题产生了当有数
据发向①时,B将数据转给C,C在将数据给B不断循环直到TTl=0。
※解决1:split horizion:只进不出(从某一端口收到的更新不在从此端口发出)
※解决2:reverse router:从某一端口收到的更新在从此端口出去时跳数设为为16
※解决3:采用触发更新(全路由表更新):有一个1~5秒之间的数值
⑵ 同上问题如果ABC成环路则上述方法就时效了,所以采用最大跳数16,即大于
15跳即表示不可达。(出现此问题的现象是一开始正常,但逐渐变得越来越慢)
⑶ 路由黑洞:对于接受的更新在加入路由表的同时会附加一个无效计时器
(Invalidation timer)默认180秒,即在180秒后还没收到相关更新信息则认为不可
达设跳数为16,如果在过60秒(一共240秒)还没收到则从路由表中删除该条路
由这个为刷新计时器(flush timer)。
6. 路由重定向:V1和V2的边界路由器X支持v1,v2;v1通过他向其他路由器更新,v2也同样,但是,当X转发某以版本的更新后下一跳不是指向X而是要求转发路由器。
7. 路由表中next hop 0.0.0.0表示源地址为下一跳。
二、 RIP V1
1. 只支持等价负载均衡(对于跳数相同的多条路径),最大支持6条的负载均衡,默认为 4条。
2. 以跳数为度量值
3. 每30秒更新路由表一次,广播更新
4. 有类路由(classful),no vlsm
5. 无认证功能,所以要实现安全可通过passive-inte***ce和neihbor来实现。
6. 主网络号相同,sm相同的子网叫做连续子网,当为连续子网时RIP可传送子网信息(实际上是通过接口上的sm来实现的)
7. 对于不连续子网他们之间传送网络号而不传送子网信息,这样就产生了问题,可采用辅助ip地址加以解决。ip add 192.168.0.1 255.255.255.0 secondary
8. 对于RIP V1的有类路由当需要寻址时先检查网络号有的化在看有无子网,有的化在检查子网决定转发或丢弃,无子网则可直接转发给网络号。
三、 RIP V2
1. defind in rfc 1721,1222,2453
2. 无类路由,更新时发送sm,支持vlsm
3. 组播更新(224.0.0.9)
4. 支持手动路由汇总
四、 相关配置
1. 基本配置:
router rip 进入配置
network 主网络号 发布端口
version <1,2> rip版本设置(默认为1)
no version 恢复默认值发送v1接受v1,v2
no auto-summary 关闭自动汇总
sh ip protocol 查看当前路由器的所有启动的协议
sh ip route 查看路由表
sh ip route rip 查看rip的路由表
sh ip rip database 查看rip数据库
2. passive-inte***ce 接口号 当发布范围过广时可以在rip配置内加入命令:表示被动接受,不发送rip
3. neighbor 目标接口ip地址 表示以单播发送rip更新(如对端口做了passive后)
4. 增大跳数:如增加了一条串口链路作为冗余备份,但发现跳数小于主线路,则可用命 令增加其跳数:access-list 1 permit 10.33.0.0 0.0.0.0
router rip
net 。。。
net 。。。
offset-list 1 in 2 serial 0
检查从S0口进入的rip通告有符合条件的就将跳数加大2跳。
同样在另一边也要设置偏移列表
5. 协调低速和高速路由器之间的延迟问题:output-deal <8~50ms> (缺省为0)
6. 接口上的特定设置:ip rip send version <1,2,1 2>
ip rip receive version <1,2,1 2>
no ip split-horzion 关闭水平分割
ip summary-address rip <ip+sm> 手动汇总
7. ip classless 无类路由(缺省启动),只有在无类的情况下缺省路由才有效
8. 计时器的更改:timers basic <update,invalid,holddown,flush>
9. RIP的验证:
Taos(config)#key chain thank 定义钥匙串
Taos(config-keychain)#key 1 钥匙串中的钥匙,可多个,会去一个个匹配
Taos(config-keychain-key)#key-string cisco 设密码
Taos(config-keychain-key)#inte***ce ethernet 0
Taos(config-if)#ip rip authentication key-chain thank 使用钥匙串
Taos(config-if)#ip rip authentication mode md5(如为md5加密则加一条这个)
86400秒为1天(24小时)
key chain thank
key 1
key-string cisco
accept-lifetime 16:30:00 Nov 28 1997 duration 43200
send-lifetime 16:30:0
0 Nov 28 19
97 duration 43200
key 2
key-string evan
accept-lifetime 04:00:00 Nov 29 1997 13:00:00 Apr 15 1998
send-lifetime 04:00:00 Nov 29 1997 13:00:00 Apr 15 1998
key 3
key-string luck
accept-lifetime 12:30:00 Apr 15 1998 infinite
send-lifetime 12:30:00 Apr 15 1998 infinite
!
inte***ce Ethernet0
ip address 198.168.50.130 255.255.255.192
ip rip authentication key-chain thank
ip rip authentication mode md5
五、 RIP的排错注意事项
1. sm是否一致,是否有不连续子网
2. rip域中的计时器必须一致,更新时间等是否过长等,可通过时sh ip protocol 查看,同时也可查看接口的rip版本。
文章评论