基于GNS3的RIP路由协议仿真

2019-08-15 10:44
实验室研究与探索 2019年7期
关键词:单播路由表路由器

郝 贤 云

(江西应用工程职业学院 计算机信息工程系,江西 萍乡 337042)

0 引 言

动态路由协议在当今网络通信过程中发挥着至关重要的作用,其设计目标是为了使网络中的路由器能够交换路由信息,并快速适应网络结构的变化。如果按作用范围可进一步划分为:内部网关协议(通常在自治系统内部部署,用于交换自治系统内的路由信息)与外部网关协议(通常在自治系统边界路由器中部署,用于交换两个自治系统内的路由信息)。众所周知常见的路由信息协议[1-3](Routing Information Protocol,RIP)就属于内部网关协议的一种,具有配置简单便捷、占用网络带宽小、支持流量负载均衡、支持IPV4与IPV6、支持明文与加密认证、支持可变长子网掩码(Variable Length Subnetwork Mask,VLSM)、支持自动路由汇总等优点。但是与其他内部网关协议如OSPF、EIGRP相比,RIP路由协议不仅在可扩展性与收敛速度方面呈现出明显的劣势,而且其度量值由跳数来决定,且最高跳数只有15跳的特性使其只适合在小型网络中部署使用。(如果跳数为16跳及以上,则会被认为路由不可达)RIP路由协议一共有RIPv1、RIPv2、RIPng 3个版本:早期版本RIPv1安全性与功能性均较差,目前已被RIPv2版本所代替。首先,它不支持安全认证;其次,它仅对有类网络提供支持;第三,它采用广播的方式进行报文发送(这势必会占用一定的网络带宽)。后期版本RIPv2可以看作是对RIPv1功能的扩展,使RIP路由协议更适应当代IPv4网络。它不仅支持可变长子网掩码、安全认证等功能,而且还可以对路由条目进行标记。最显著的特点是其既可以使用组播方式又可以使用广播方式发送报文信息,默认情况下使用组播方式发送报文信息。RIPng与RIPv2不仅工作方式类似,而且也属于无类路由协议。只是它的配置过程要比RIPv2繁琐复杂,且只能在IPv6网络环境中部署使用。

1 RIP协议的工作原理[4-6]

以运行RIP协议的路由器A与路由器B举例说明。当 RIP路由器A从与之相邻的RIP路由器B处获得RIP报文后,(此RIP报文中包含路由器B的完整路由表),需要对此报文的下一跳字段和跳数字段进行修改:下一跳字段的地址要更改为路由器B与路由器A互连的接口地址;跳数字段的具体数值则需要加1。更改后的报文需要和路由器A中的路由表进行比对:如果在路由器A的路由表与更改后的报文中同时存在去往某个目的网络的路由,则比较二者的跳数(具体相关规则如下:更改后的报文到达目的网络的跳数,大于路由器A的路由表中已有到达目的网络的跳数,则路由器A的路由表不需要进行更新;否则路由器A的路由表需要用更改后报文中到达目的网络的路由替换原有路由条目)。如果去往某个目的网络的路由只在更改后的报文中存在,则路由器A会认为发现了新路由,从而将此路由条目加入到自己的路由表中。需要注意的是:RIP协议交换路由信息这种行为,只会在两台相邻RIP路由器之间发生。如果RIP路由器在更新计时器设定的时间范围内没有收到相同路由的更新信息,则会认为该路由已不可达,并启动垃圾收集定时器。一旦在垃圾收集定时器设定的时间范围内,路由器仍旧没有收到该条路由的更新信息,那么就会将此条路由从路由表中彻底删除。

2 RIP协议的基本配置[7-8]

RIP路由协议的部署与配置过程并不复杂,通常RIP路由器只需宣告与之相连的主类网络即可,受其收敛速度较慢的影响,网络中的RIP路由器往往不能在相近的时间内完成对路由表的更新,造成路由环路的产生。为尽可能的避免这种情况的出现 ,RIP路由协议采用了水平分割、毒性逆转等多种防范机制。水平分割对于防止路由环路、降低路由更新信息对网络带宽的占用率有着明显的作用,其核心思想为:RIP路由器从某个接口收到路由更新信息后,此路由更新信息将不允许从这个接口再发送回去。毒性逆转可使RIP路由器对无效路由的处理,不再受路由无效计时器规定时间的制约,近而可快速处理网络中存在的路由环路。

在GNS3网络仿真平台上,搭建一个由路由器K1、K2、K3组成的小型RIP网络,并给出路由器K2的相关配置命令。(路由器K1、K3的配置命令读者参考K1即可)。网络结构如图1所示。

图1 RIP协议基本配置

(1)路由器K2的相关配置

k2(config)#int e1/0

k2(config-if)#ip add 211.68.202.2 255.255.255.0

k2(config)#int loopback 1

k2(config-if)#ip add 211.68.194.1 255.255.255.0

k2(config)#router rip

k2(config-router)#ver 2

k2(config-router)# network 211.68.202 0

k2(config-router)# network 211.68.194.0

为验证RIP协议配置是否正确,以路由器K2为例,使用sh ip proto命令查看路由器K2上RIP协议的工作状态。如图2所示。从中可以得出以下几点结论:路由器K2只运行了RIP这一种内部网关路由协议(使用的版本为Version 2),且该协议所通告路由的管理距离为120,路由更新计时器所设定的路由更新频率为30 s一次,确定路由为无效的等待时间为180 s,最多可支持4条链路负载均衡,且没有其他路由协议重分布到RIP自治域中;路由器K2所有接口的入方向与出方向均没有配置访问控制列表;路由器K2从邻居路由器K1的e1/0 接口(接口地址为211.68.202.1)学习RIP路由信息。

路由器K1、K2、K3在按顺序启动过程中,以路由器K1的e1/0接口为源,通过网络分析软件捕获了K1--K2链路上的RIP报文如图3所示。由图3可见:路由器K1通过e1/0接口,使用组播地址224.0.0.9,发送编号为10的RIP请求报文。路由器K2在接收到路由器K1发送的RIP请求报文后,以单播的方式发送编号为11的报文作为对其的回应,该报文中包含211.68.194.0网段的路由信息。紧接着路由器K2以组播的方式发送编号为12的RIP更新报文,该报文中同样包含211.68.194.0网段的路由信息。此时,路由器K1已学习到全网路由,并以组播的方式发送编号为19的RIP更新报文,该报文中包含211.68.195.0网段的路由信息。至此路由器K2也学习到了全网路由。

图2 路由器K2上RIP协议的工作状态

图3 K1-K2链路上的RIP报文

3 RIP协议被动接口与单播更新配置[9-11]

运行RIP协议的路由器通常会在网络中以30s一次的频率,以广播或组播的方式发送大量的路由更新信息。这其中有一部分路由更新信息是RIP路由器不必要发送的,这样不仅会造成网络带宽被大量占用,也给网络安全带来极大的隐患。黑客有可能截获网络中的路由更新信息并对其进行修改,再将伪造的路由更新信息发往RIP路由器,导致路由表的度量值发生错误。为有效避免这种情况的发生,可以将RIP路由器的接口均设置为被动接口(被动接口不允许发送路由更新报文,主要用来防止其它路由器学习到本地路由器中的路由信息),路由器之间互联的串口设置为单播更新,提高网络的安全性,减少不必要的带宽损耗。

为让读者能够轻松掌握RIP协议被动接口与单播更新的具体配置方法,在GNS3网络仿真平台上,搭建一个由路由器R1、R2组成的RIP网络,路由器之间使用单播的方式发送路由更新信息,且所有接口均设置为被动接口。网络结构如图4所示。下面给出路由器R1、R2的相关配置命令。

图4 RIP协议被动接口与单播更新

(1)路由器R1的被动接口配置

R1(config)#router rip

R1(config-router)#passive-interface def //路由器R1中的所有接口均配置为被动接口

R1(config-router)#network 192.168.30.0

R1(config-router)#network 211.68.195.0

(2)路由器R2的被动接口配置

R2(config)#router rip

R2(config-router)#passive-interface def

R2(config-router)#network 192.168.40.0

R2(config-router)#network 211.68.195.0

路由器R1、R2的被动接口配置完成后,其各自的S2/0接口将无法使用广播或组播的方式发送路由更新信息,但该接口仍可以接收路由更新信息。此时,由于路由器R1、R2没有进行单播更新配置,路由器R1、R2的路由表中只有自己的直连路由。以路由器R1为例,查看其路由表如图5所示。

(3)路由器R1的单播更新配置

R1(config-router)#neigh 211.68.195.2

(4)路由器R2的单播更新配置

R2(config-router)#neigh 211.68.195.1

路由器R1、R2的单播更新配置完成后,其各自的S2/0接口将使用单播的方式发送路由更新信息,两台路由器的路由表中存在全网路由。就路由器R1而言,其路由表中新增加了到达192.168.40.0网段的路由;对于路由器R2来说,其路由表中新增加了到达192.168.30.0网段的路由。以路由器R1为例,再次查看其路由表如图6所示。

图5 被动接口配置完成后路由器R1的路由表

图6 单播更新配置完成后路由器R1的路由表

4 RIP协议触发更新配置[12-13]

为能有效节省网络带宽资源以及提高网络收敛速度,RIP协议改进出了一种新的机制用于发送路由更新数据包,即触发更新(RIP路由器仅在有路由表发生变化时发送的RIP路由通告,且仅携带本地路由表中有变化的路由信息)。需要注意的是:RIP触发更新只能配置在点到点的链路中,只有链路两端的路由器都配置了触发更新,这种新的路由更新数据包发送机制才会生效。配置了触发更新的两台RIP路由器,收到的路由信息会被标注为permanent。

在GNS3网络仿真平台上,搭建了一个由路由器R1、R2组成的RIP网络。两台路由器使用串口S2/0进行互联,并分别启用RIP触发更新机制。网络结构如图7所示。

下面给出路由器R1、R2的相关配置命令。

(1)路由器R1的RIP触发更新配置

R1(config)#int s2/0

图7 RIP协议触发更新

R1(config-if)#ip rip trig

(2)路由器R2的RIP触发更新配置

R2(config)#int s2/0

R2(config-if)#ip rip trig

为了验证在路由器R1、R2上配置的RIP触发更新是否成功,以路由器R1为例,使用debug ip rip命令查看RIP协议的更新过程。如图8所示。从中可以看到:在路由器R1、R2上配置的RIP触发更新已成功开启。路由器R1在S2/0接口与LOOPBACK 1接口上发送RIP触发更新请求,向路由器R2的S2/0接口发送触发更新。在从路由器R2的S2/0接口收到触发更新后,路由器R1会向路由器R2的S2/0接口发送一个编号为5的确认。192.168.40.0 in 1 hops 为从路由器R2的S2/0接口收到的路由条目。

图8 RIP协议更新过程

5 RIP协议认证配置[14-15]

为提高网络的可靠性与安全性,避免伪造的路由更新被路由器接收,RIP提供了以下2种身份认证方式:明文认证和密文认证(只有RIP协议版本2支持身份认证功能,而RIP协议版本1是不支持身份认证功能的)。但是RIP协议版本2支持的身份认证均为单向,举例来说:两台RIP路由器A与B,路由器A对路由器B进行了认证,并不等于路由器B对路由器A也进行了认证。因此路由器A可以接收来自路由器B的路由更新信息,但是路由器B不能接收路由器A的路由更新信息。需要注意的是:无论进行明文认证还是密文认证,两台RIP路由器都需要先定义钥匙串名(两台路由器的钥匙串名可以相同也可以不同)和具体的钥匙即KEY值(可定义多个KEY值)。路由器A对B进行明文认证时:路由器B会向路由器A发送不带ID信息的最小ID值KEY;路由器A收到路由器B发来的KEY后,会与自己的KEY进行比对,只要能够匹配上就认证通过;路由器A对B进行密文认证时:路由器B会向路由器A发送带ID信息的最小ID值KEY;路由器A收到路由器B发来的KEY后,会在定义的钥匙串中查找是否有相同ID 的KEY,如果存在并且KEY值相同则认证通过,否则不予通过。如果没有相同ID 的KEY,则向后查找一次与之最相近ID的KEY(如果存在并且KEY值相同则认证通过,否则不予通过)。

在GNS3网络仿真平台上,搭建了一个由路由器A、B组成的RIP网络。两台路由器使用串口S2/1进行互联,并分别启用明文认证与密文认证。网络结构如图9所示。下面给出路由器A、B的相关配置命令。

(1)RIP协议明文认证配置

A(config)#key chain yangyang

图9 RIP协议认证

A(config-keychain)#key 1

A(config-keychain-key)#key-string gyy

A(config)#int s2/1

A(config-if)#ip rip authent mode text

A(config-if)#ip rip authent key-chain yangyang

B(config)#key chain shenb

B(config-keychain)#key 1

B(config-keychain-key)#key-string gyy

B(config)#int s2/1

B(config-if)#ip rip authent mode text

B(config-if)#ip rip authent key-chain shenb

(2)RIP协议密文认证配置

A(config)#int s2/1

A(config-if)#ip rip authent mode MD5

B(config)#int s2/1

B(config-if)#ip rip authent mode MD5

6 RIP协议负载均衡配置[16-18]

负载均衡有助于提高网络的灵活性与可靠性。RIP协议默认支持4条链路的负载均衡,但是通过maximum-paths命令可实现支持16条链路的负载均衡。另外,需要说明的是:RIP协议可支持2种方式的负载均衡,即基于目的地址的负载均衡(需要在路由器中开启CEF)和基于分组的负载均衡(需要路由器关闭CEF与路由交换高速缓存)。其中,基于目的地址的负载均衡可根据数据包目的地址的不同,选择不同的路径进行转发。这种方式的负载均衡工作效率更高,因此在实际工作中普遍采用这种方式的负载均衡。

为让读者能够轻松掌握RIP协议负载均衡的具体配置方法,在GNS3网络仿真平台上,搭建了一个由路由器R1、R2、R3组成的RIP网络,路由器R1与路由器R2通过S2/0接口互联,路由器R3与路由器R1通过S2/1接口互联,路由器R3与路由器R2通过S2/2接口互联。当路由器R1采用基于目的地址的负载均衡时:访问IP地址192.168.70.1的数据包走S2/0接口,访问IP地址192.168.70.2的数据包走S2/1接口;当路由器R1采用基于分组的负载均衡时:访问IP地址192.168.70.1的数据包一半走S2/0接口,另一半走S2/1接口。网络结构如图10所示。下面给出路由器R1的相关配置命令。

图10 RIP协议负载均衡

(1)路由器R1基于目的地址的负载均衡配置

R1(config)#router rip

R1(config)#ip cef

R1(config)#int s2/0

R1(config-if)#ip route-cache

R1(config)#int s2/1

R1(config-if)#ip route-cache

(2)路由器R1基于分组的负载均衡配置

R1(config)#router rip

R1(config)#no ip cef

R1(config)#int s2/0

R1(config-if)#no ip route-cache

R1(config)#int s2/1

R1(config-if)#no ip route-cache

上述配置完成后,在路由器R1中使用扩展PING命令测试基于分组的负载均衡配置效果。

R1#ping

Protocol [ip]:

Target IP address:192.168.70.1

Repeat count [2]:

Datagram size [100]:

Timeout in seconds [2]:

Extended commands [n]:y

Source address or interface:192.168.20.1

Sending 2,100-byte ICMP Echos to 192.168.70.1,timeout is 2 seconds:

Packet sent with a source address of 192.168.20.1

Reply to request 0 (36 ms).Received packet has options

Total option bytes= 40,padded length=40

Record route:

(192.168.60.1)

(192.168.70.1)

(192.168.60.2)

(192.168.20.1)<*>

(0.0.0.0)

(0.0.0.0)

End of list

Reply to request 1 (116 ms).Received packet has options

Total option bytes= 40,padded length=40

Record route:

(192.168.50.1)

(192.168.70.2)

(192.168.70.1)

(192.168.60.2)

(192.168.20.1)<*>

(0.0.0.0)

(0.0.0.0)

End of list

从中可以看到:当以路由器R1上的LOOPBACK 1接口IP地址为源地址访问目标IP地址192.168.70.1时,会有一半的数据包先从S2/0接口发出,到达访问目标后,再经路由器R1的S2/0接口返回源地址。剩下的另一半数据包会先从S2/1接口发出,然后经路由器R3的S2/2接口到达访问目标,而后同样经路由器R1的S2/0接口返回源地址。至此可以说,路由器R1已成功实现了基于分组的负载均衡。

7 结 语

RIP路由协议相对于其它动态路由协议不仅配置过程较为简单,而且也便于管理和实施,但是其自身的局限性使其只适用于小型网络。现实中的网络往往不局限于部署一种路由协议,更多的是在路由器中部署多种路由协议,通过路由重分布的方式让不同自治域中的路由可以相互学习。总之,无论部署哪种路由协议都应从网络性能角度考虑,合理规划网络结构以及选择网络设备。

猜你喜欢
单播路由表路由器
高空通信平台非正交广播与单播复用容量研究
买千兆路由器看接口参数
维持生命
路由器每天都要关
路由器每天都要关
晋西南褐土上小麦苜蓿套作对土壤氮素及植物吸氮的影响
基于OSPF特殊区域和LSA的教学设计与实践
研究路由表的查找过程
城市车辆网络单播路由协议:审查、分类和开放问题研究
IP互动电视快速频道切换的解决方案与实现