首先RIP有2个版本,有V1、V2,不指定版本是有个默认版本
默认版本的特点(其实根RIPv1差不多,就是能够接收RIPv1、2的路由):
自动汇总,不能手工关闭
唯一有类路由协议
广播更新
无认证
R1:
router rip
network 172.16.0.0
network 192.167.1.0
network 192.168.1.0
R2:
router rip
network 192.168.1.0
network 192.168.2.0
network 192.168.3.0
R2#show ip protocols
Default version control: send version 1, receive any version
Interface Send Recv Triggered RIP Key-chain
Ethernet0/0 1 1 2
Loopback0 1 1 2 //默认接收版本1、2,发送版本1
Loopback2 1 1 2 //发送为RIPv1,不携带子网掩码
RIPv1的特性:
自动汇总,不能手工关闭
唯一有类路由协议
广播更新
无认证
router rip
version 1
show ip protocols
Default version control: send version 1, receive version 1
Interface Send Recv Triggered RIP Key-chain
Ethernet0/0 1 1
Loopback0 1 1 //默认只收发RIPv1
Loopback2 1 1
R 172.16.0.0/16 [120/1] via 192.168.1.1, 00:00:14, Ethernet0/0 //自动汇总,有类路由协议
192.168.1.0/30 is subnetted, 1 subnets
C 192.168.1.0 is directly connected, Ethernet0/0
R 192.167.1.0/24 [120/1] via 192.168.1.1, 00:00:14, Ethernet0/0
C 192.168.2.0/24 is directly connected, Loopback0
C 192.168.3.0/24 is directly connected, Loopback2
RIPv2的特性:
自动汇总,可以关闭,可以手工汇总
无类路由协议(携带子网掩码)
组播更新(目标地址224.0.0.9)
可以认证(明文、MD5)
router rip
version 2
show ip protocols
Default version control: send version 2, receive version 2
Interface Send Recv Triggered RIP Key-chain
Ethernet0/0 2 2
Loopback0 2 2 //默认只收发RIPv2
Loopback2 2 2
show ip route
172.16.0.0/16 is variably subnetted, 2 subnets, 2 masks
R 172.16.0.0/16 [120/1] via 192.168.1.1, 00:02:06, Ethernet0/0 自动汇总
R 172.16.1.0/24 [120/1] via 192.168.1.1, 00:00:13, Ethernet0/0 无类路由
192.168.1.0/30 is subnetted, 1 subnets
C 192.168.1.0 is directly connected, Ethernet0/0
R 192.167.1.0/24 [120/1] via 192.168.1.1, 00:00:13, Ethernet0/0
C 192.168.2.0/24 is directly connected, Loopback0
C 192.168.3.0/24 is directly connected, Loopback2
可以从这看出RIPv2的路由是带子网掩码的!同时是组播更新的,目标地址为224.0.0.9!使用UDP协议,端口号为520.
RIP Version2的格式:
命令Command:1.路由信息请求 2.路由信息响应 3、4过时 5.留作Sun微系统公司内部使用
版本Version:版本1、版本2
Unused:未使用,设置全为0
地址标识Address Family Identifier:指示路由项中的地址种类,对于IPV4总是设置为2;当请求全部路由信息时,设置为0.
Route Tag:外部路由标记,是表示路由是保留还是重播的属性。它提供一种从外部路由中分离内部路由的方法,用于传播从外部路由器协议(EGP)获得的路由信息。
Ip Address:路由条目的IPV4地址,可以是网络地址,子网地址或主机路由。
Subnet mask:子网掩码,应用于IP地址产生非主机部分地址,为0时表示不包括子网掩码部分,使得RIP能够适应更多的环境。
Next Hop:下一跳,可以对使用多路由协议的网络环境下的路由进行优化;如果是0.0.0.0的话,表示通告路由器的地址是最优的下一跳地址。
Metric:是一个1-16之间的跳数。
关闭自动汇总
router rip
no auto-summary
172.16.0.0/24 is subnetted, 1 subnets
R 172.16.1.0 [120/1] via 192.168.1.1, 00:00:14, Ethernet0/0没汇总的路由了
192.168.1.0/30 is subnetted, 1 subnets
C 192.168.1.0 is directly connected, Ethernet0/0
R 192.167.1.0/24 [120/1] via 192.168.1.1, 00:00:14, Ethernet0/0
C 192.168.2.0/24 is directly connected, Loopback0
手工汇总
interface Loopback2
ip summary-address rip 172.16.0.0 255.255.192.0
R1(config-if)#do show ip rip da
172.16.0.0/16 auto-summary
172.16.0.0/18 int-summary 刚刚手工汇总的
明文认证(简单字符认证)
RT2(config):
key chain tang //密钥管理串(只具本地意义)
key 5 //密钥ID
key-string cisco //密钥字符为cisco
key 10 //密钥ID,可建多个密钥
key-string cisco2 //密钥字符为cisco2 (只需配一个就行,这里我是用来验证的)
int e0/0
ip rip authentication mode text //使用明文进行认证(默认方式)
ip rip authentication key-chain tang //认证使用的密钥串
RT1(config):
key chain tang
key 5
key-string cisco
int e0/0
ip rip authentication mode text //使用明文进行认证
ip rip authentication key-chain tang //认证使用的密钥串
认证原则:KeyChain里可以有多个KeyID和密钥。只发送最小KeyID的密钥
明文:发送时不带KeyID,接收方和KeyChain里所有密钥匹配,成功则通过认证。
MD5:发送时携带KeyID,接收方寻找相同的KeyID,如果有,只进行一次匹配决定是否成功。如果无,向下查找下一个KeyID进行匹配,决定是否成功。
MD5认证配置
int e0/0
ip rip authentication mode md5
ip rip authentication key-chain tang
其它配置一样注意两边的KeyID需一致。
对方发来的密钥只要在本地有,就能通过认证,如果只有一边认证通过那也只有一边能学习到路由,另一边因不匹配密钥而丢弃!
RIP的共同特性:
使用UDP传输协议,端口号为520,最大跳数为15跳,16跳为不可达;基于Bellman-Ford算法,基于距离矢量路由协议,管理距离为120,以跳数作为度量值。
定义了2种消息类型:
request message(请求消息):用来向邻居请求一个update更新
response message(应答消息):包含路由条目的更新消息
注意:一个消息中最大可以包含25个路由条目,当AFI(地址族标识)为0时,表示对整个路由表的请求。该值通常为2。在认证时只有24个了,AFI为全1(0xffff)。
工作原理:
1.发现路由:首先运行RIP进程,发现自己的路由信息(收集直连网段信息)
2.通告路由:将自己知道的路由信息通告给其它邻居(request、respose)
3.计算路由:基于距离矢量算法,计算最优路由添加到全局路由表(跳数)
4.路由收敛:当网络拓扑发生变化时,能重新计算出最优路由(触发更新)
首先R1、R2运行RIP,向外发送request message,收到request message,给出响应response message报文。通过收到的路由运行距离矢量算法,计算出最佳路由添加到全局路由表中。
R2(config-router)#do show ip protocols
Routing Protocol is "rip"
Sending updates every 30 seconds, next due in 25 seconds
Invalid after 180 seconds, hold down 180, flushed after 240
Update(路由更新计时器):30秒,每隔30s发送update更新报文
Invalid(无效计时器):180秒(超时将条目hop置为Possibly down,并发送跳数为16的update)
Flush(刷新计时器):240秒(超时删除条目)
Holddown(抑制计时器):180秒(在Invalid超时后开启。另外,当收到一个更坏的跳数的更新后抑制开始)
命令:
router rip
timer basic 30 180 180 240 (RIP域内必须一致)
手动修改接口的RIP版本,并且优先router rip下指定的版本
int e0/0
ip rip receive version 1 //指定接口接收RIPv1
ip rip send version 2 //指定接口发送RIPv2
Default version control: send version 1, receive any version
Interface Send Recv Triggered RIP Key-chain
Ethernet0/0 2 1
手工指定单播更新
router rip
neighbor 192.168.1.1 //指定邻居地址,单播更新
防环机制:
定义最大跳数:每一跳增加1,到16跳认为不可达。
水平分割:从某接口学习到的路由不会再从该接口发送回去。(可以打开或关闭[no]ip split-horizon)
路由毒化:路由器主动把路由表中发生故障的路由项以度量值最大16跳的形式,通告给邻居。
毒性逆转:从某接口学习到的路由再从该接口发送回去但跳数已经被增加到了16跳。
抑制定时器:当某网络消失时,并不立即删除该条目而是等待定时器(240秒)才删除,为了网络可能的恢复。
触发更新:网络拓扑变化时,立即通知直连邻居而不再等待更新周期(30秒)。
修改管理距离:
(config-router)#distance 管理距离值(1-255)
只能改变路由器自身上的RIP路由的AD值。
配置被动接口:
(config-router)#passive-interface interface e0/0 //阻止单个接口发送路由更新
当很多接口需配置成被动接口时:
(config-router)#passive-interface default //把所有接口配置成被动接口
(config-router)#no passive-interface interface e0/0//此接口不需要配置成被动接口
注意:被动接口命令是停止以广播或组播方式发送更新,但仍然可以接收广播和组播。passive-interface对单播是没有任何作用的。
RIP是距离矢量算法,是根据跳数来进行优先的,当一条链路带宽为2M,另一条链路为64K时,如果它们通告的路由的跳数相等时,RIP会走负载均衡,这是不合理的,为了解决此种状况,我们可以用offer-list进行调整。
如上拓扑,修改192.168.2.0/24此路由的跳数
R2(config)#access-list 10 permit 192.168.2.0
R2(config)#router rip
R2(config-router)#offset-list 10 out 10 e0/0 //对匹配的路由在E0/0的出方向上修改增加10跳
格式:offset-list 列表号/名 in/out 跳数 进接口/出接口
R1:show ip route
R 192.168.2.0/24 [120/11] via 192.168.1.2, 00:00:01, Ethernet0/0
另外:Router#show ip rip database 可以用来查看RIP路由数据库
RIP很简单,内容也不是很多,就复习到这里吧 凡人世界 2011.11.01 11点
本文出自 “凡人世界” 博客,谢绝转载!