首先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的格式:
 
 
命令Command1.路由信息请求 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点