2.3 RIPv1协议

路由信息协议(Routing Information Protocol,RIP)前后发布了两个版本,通常所说的RIP协议指的是版本1。

RIP协议的特征有:

●路由表的更新周期为30秒;

●仅使用跳数(Hop)作为度量值;

●最大跳数的限制为15跳,跳数为16的路由被认为是不可达的,不再使用。

2.3.1 配置RIPv1协议

在路由器上配置RIPv1协议就是指在路由器上启动RIPv1进程,分以下两个步骤。

①启动rip动态路由进程,命令语法如下:

Router(config)#router rip

②向邻居通告网络号(路由),并启用相应的接口参与动态路由协议的运行进程,命令语法如下:

Rouer(config-router)#network network

network:该变量代表的网络号是路由器接口地址所在网络的主网号,即A类、B类或C类。该变量的另一功能是,地址在该网络范围内的接口都参与动态路由进程,即从这些接口向邻居通告路由表,这些接口也接收邻居通告的路由表信息。

提示

路由器的接口地址可以使用子网地址,但要保证属于同一主类网络的所有子网应该具有相同的子网掩码,如图2-5所示,B类地址中的两个子网掩码相同。

下面以图2-5为例说明在路由器上配置RIPv1协议的方法。

图2-5 配置RIP协议

在路由器Left上启动RIPv1协议:

Left#conf t
Left(config)#router rip
Left(config-router)#network 172.16.0.0
Left(config-router)#network 192.168.1.0

注意

虽然接口f0/0的IP地址使用了子网,但network命令要求用主网号。

在路由器Middle上启动RIPv1协议:

Middle#config t
Middle(config)#router rip
Middle(config-router)#network 172.16.0.0

提示

命令network 172.16.0.0 把路由器的两个接口都放置在了路由进程中。

在路由器 Right上启动RIPv1协议:

Right#config t
Right(config)#router rip
Right(config-router)#network 10.0.0.0
Right(config-router)#network 172.16.0.0

2.3.2 检查协议的运行状态

1.show ip protocols

在特权模式下,使用命令show ip protocols可以检查当前路由器上配置的路由协议。

例如,查看路由器Left上启动的路由协议。(行编号是作者为方便说明问题加上的,并非命令输出。)

Left# show ip protocols
1.  Routing Protocol is "rip"
2.  Sending updates every 30 seconds, next due in 8 seconds
3.  Invalid after 180 seconds, hold down 180, flushed after 240
4.  Outgoing update filter list for all interfaces is not set
5.  Incoming update filter list for all interfaces is not set
6.  Redistributing: rip
7.  Default version control: send version 1, receive any version
8.  Interface                Send Recv Triggered RIP Key-chain
9.  FastEthernet0/0          1    1 2
10. FastEthernet0/1          1    1 2
11. Automatic network summarization is in effect
12. Maximum path: 4
13. Routing for Networks:
14. 172.16.0.0
15. 192.168.1.0
16. Routing Information Sources:
17. Gateway           Distance   Last Update
18. 172.16.3.3            120    00:00:07
19. Distance: (default is 120)

下面是该命令输出的详细解释:

第1行显示当前该路由器上运行的路由协议是RIP。

第2行显示路由信息的更新间隔是30秒,下次更新将于8秒后发出。

第3行报告3个参数:

●invalid after 180——表示路由表中的路由条目如果连续180秒没有更新则被标记为无效;

●hold down 180——保持(抑制)计时器的时间;

●flushed after 240——表示如果某路由条目连续240秒没有被更新,就从路由表中删除。

这些值可以使用命令timer basic更改,语法如下:

router(config-router)#timer basic [ update interval ] [invalid ] [ hold down ][ flushed ]

第4~5行表示在出、入两个方向上都没有设置路由信息的过滤列表(请参考第9章)。

第6行表示再发布的路由协议(参阅后面的路由再发布内容)。

第7行显示默认的版本控制信息——发送RIPv1的更新,可以接收任何版本的RIP更新。

第8~10行报告了接口上能够处理哪个版本的RIP信息——发布RIPv1,接收RIPv1和RIPv2。

第11行表明正在使用自动路由总结(归纳)。

第12行表明支持的最大等值路由的条数。

第13~15行表明通告哪些网络(路由)。

第16~18行表明路由信息的来源,即本路由器从哪里学习到的路由信息。

●Gateway——指学习路由信息的地方(地址);

●distance——指管理距离;

●last update——指更新发生在多长时间以前。

第19行表示协议的管理距离。

提示

通过对比3台路由器的输出掌握RIP的运行原理。

其他两台路由器的show ip protocols命令输出如下:

(1)路由器Right上的输出

Right# sh ip protocols
Routing Protocol is "rip"
  Sending updates every 30 seconds, next due in 1 seconds
  Invalid after 180 seconds, hold down 180, flushed after 240
  Outgoing update filter list for all interfaces is not set
  Incoming update filter list for all interfaces is not set
  Redistributing: rip
  Default version control: send version 1, receive any version
    Interface        Send    Recv Triggered RIP Key-chain
    FastEthernet0/0    1     1 2
    FastEthernet0/1    1     1 2
  Automatic network summarization is in effect
  Maximum path: 4
  Routing for Networks:
    10.0.0.0
    172.16.0.0
  Routing Information Sources:
    Gateway      Distance   Last Update
    172.16.4.3    120       00:00:14
  Distance: (default is 120)

(2)路由器Middle的输出

Middle#sh ip protocols
Routing Protocol is "rip"
  Sending updates every 30 seconds, next due in 5 seconds
  Invalid after 180 seconds, hold down 180, flushed after 240
  Outgoing update filter list for all interfaces is not set
  Incoming update filter list for all interfaces is not set
  Redistributing: rip
  Default version control: send version 1, receive any version
    Interface           Send    Recv Triggered RIP Key-chain
    FastEthernet0/0      1      1 2
    FastEthernet0/1      1      1 2
  Automatic network summarization is in effect
  Maximum path: 4
  Routing for Networks:
    172.16.0.0
  Routing Information Sources:
    Gateway     Distance  Last Update
    172.16.4.4    120    00:00:06
    172.16.3.1    120    00:00:07
  Distance: (default is 120)

2.show ip route

在特权模式下,使用show ip route命令查看路由表。

(1)路由器Left上的路由表

Left#sh ip route
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
        D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
        N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
        E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
        i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
        * - candidate default, U - per-user static route, o - ODR
        P - periodic downloaded static rout
Gateway of last resort is not set
1.  172.16.0.0/24 is subnetted, 2 subnets
2.  R 172.16.4.0 [120/1] via 172.16.3.3, 00:00:01, FastEthernet0/0
3.C   172.16.3.0 is directly connected, FastEthernet0/0
4.R   10.0.0.0/8 [120/2] via 172.16.3.3, 00:00:01, FastEthernet0/0
5.C   192.168.1.0/24 is directly connected, FastEthernet0/1
Left#

①输出内容的最前面是代码区,代码代表路由类型。在下面的每条路由前面都用代码指示该路由条目的类型,即由哪种路由协议学习到的。R代表RIP协议。

②“Gateway of last resort is not set”表明没有配置默认路由。

③接下来是具体的路由条目:

第1行表明172.16.0.0/24划分了子网,当前存在两个子网;紧跟着的第2、3行是这两个子网的信息。

在第2行中,

●“R”:表明172.16.4.0这条路由是由RIP路由协议学习到的。

●[120/1]:120代表RIP协议的管理距离,/1代表度量值,这里指1跳。

●Via 172.16.3.3:表明该路由是经由172.16.3.3学习到的,也就是路由器Middle的f0/1接口。另外一层含义是,要到达网络172.16.4.0需要经由172.16.3.3这一接口。

●00:00:01:指这条路由在路由表中存在的时间(当达到一定时间时就可能会被标记为无效或被删除,请参考show ip protocols命令)。

●FastEthernet0/0:接口号代表到达该网络的数据出口,也表示是从该接口学习到的这条路由。

第3行表明是一条直连的路由。

第4、5行的含义可以参照第2、3行的解释。

下面是另外两台路由器的路由表,请读者参照Left路由器路由表的解释去理解。

(2)路由器Middle的路由表

Middle#sh ip route
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
        D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
        N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
        E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
        i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
        * - candidate default, U - per-user static route, o - ODR
        P - periodic downloaded static route
Gateway of last resort is not set
     172.16.0.0/24 is subnetted, 2 subnets
C       172.16.4.0 is directly connected, FastEthernet0/0
C       172.16.3.0 is directly connected, FastEthernet0/1
R    10.0.0.0/8 [120/1] via 172.16.4.4, 00:00:05, FastEthernet0/0
R    192.168.1.0/24 [120/1] via 172.16.3.1, 00:00:09, FastEthernet0/1
Middle#

(3)路由器Right的路由表

Right#sh ip route
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
        D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
        N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
        E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
        i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
        * - candidate default, U - per-user static route, o - ODR
        P - periodic downloaded static route
Gateway of last resort is not set
    172.16.0.0/24 is subnetted, 2 subnets
C       172.16.4.0 is directly connected, FastEthernet0/1
R       172.16.3.0 [120/1] via 172.16.4.3, 00:00:05, FastEthernet0/1
        10.0.0.0/16 is subnetted, 1 subnets
C       10.11.0.0 is directly connected, FastEthernet0/0
R   192.168.1.0/24 [120/2] via 172.16.4.3, 00:00:05, FastEthernet0/1
Right#

3.debug ip rip

使用debug命令可以观察路由信息的更新过程。

提示

debug进程非常消耗系统资源,仅在网络负载较轻、系统诊断时使用,用后立即使用命令undebug all或no debug all把所有debug进程关闭。

打开debug进程后,Middle路由器输出如下:

Middle#debug ip rip
RIP protocol debugging is on
Middle#
00:32:46: RIP: received v1 update from 172.16.3.1 on FastEthernet0/1
00:32:46:       192.168.1.0 in 1 hops
00:32:47: RIP: received v1 update from 172.16.4.4 on FastEthernet0/0
00:32:47:       10.0.0.0 in 1 hops
00:33:01: RIP: sending v1 update to 255.255.255.255 via FastEthernet0/0 (172.16.4.3)
00:33:01: RIP: build update entries
00:33:01:   subnet 172.16.3.0 metric 1
00:33:01:   network 192.168.1.0 metric 2
00:33:01: RIP: sending v1 update to 255.255.255.255 via FastEthernet0/1 (172.16.3.3)
00:33:01: RIP: build update entries
00:33:01:   network 10.0.0.0 metric 2
00:33:01:   subnet 172.16.4.0 metric 1
Middle# undebug all

其含义解释如下:

●在每一行的开始都显示了事件发生的时间。

●由于split horizon默认是开启的,所以路由器从接口f0/1(邻居为Left)接收到的路由只有192.168.1.0一条,其度量值为1(跳)。从它的f0/0接口(邻居是Right)收到的路由是10.0.0.0,度量值为1(跳)。

●从f0/0接口以广播形式通告出去的路由有两条,分别是:172.16.3.0,度量值为1(跳);192.168.1.0,度量值为2(跳)。

●从f0/1接口以广播形式通告出去的路由有两条,分别是:10.0.0.0,度量值为2(跳);172.16.4.0,度量值为1(跳)。

Right路由器的debug输出如下:

Right#debug ip rip
RIP protocol debugging is on
Right#
00:32:51: RIP: received v1 update from 172.16.4.3 on FastEthernet0/1
00:32:51:      172.16.3.0 in 1 hops
00:32:51:      192.168.1.0 in 2 hops
00:33:08: RIP: sending v1 update to 255.255.255.255 via FastEthernet0/0 (10.11.0.1)
00:33:08: RIP: build update entries
00:33:08:  network 172.16.0.0 metric 1
00:33:08:  network 192.168.1.0 metric 3
00:33:08: RIP: sending v1 update to 255.255.255.255 via FastEthernet0/1 (172.16.4.4)
00:33:08: RIP: build update entries
00:33:08: network 10.0.0.0 metric 1
Right# undebug all

Left路由器的debug输出如下:

Left# debug ip rip
RIP protocol debugging is on
Left#
00:37:17: RIP: sending v1 update to 255.255.255.255 via FastEthernet0/0 (172.16.3.1)
00:37:17: RIP: build update entries
00:37:17:  network 192.168.1.0 metric 1
00:37:17: RIP: sending v1 update to 255.255.255.255 via FastEthernet0/1 (192.168.1.1)
00:37:17: RIP: build update entries
00:37:17:  network 10.0.0.0 metric 3
00:37:17:  network 172.16.0.0 metric 1
00:37:31: RIP: received v1 update from 172.16.3.3 on FastEthernet0/0
00:37:31:      10.0.0.0 in 2 hops
00:37:31:      172.16.4.0 in 1 hops
Left# undebug all