【誉天教育|解忧杂货店】RIPv1和RIPv2的收发路由规则--华为数通R&S实验漫载(9)

前言

      上一章我们给大家介绍了RIPv2的配置,从配置的角度来讲,RIPv2的基础配置还是比较简单的,那么我们这一章就主要给大家讲一下RIPv1和RIPv2在收发路由时需要遵循的规则,因为大家通过之前的一章RIPv1和RIPv2的理论知识应该已经知道了RIPv1和RIPv2的报文中携带路由时是不一样的,因为RIPv1是不携带路由的掩码信息的,所以路由的掩码的计算是什么样的呢?这就需要我们通过实验去验证,我们依然选择华为eNSP模拟器验证,使用版本为390。

RIPv1发送路由规则

      如下图所示,在R1和R2之间运行RIPv1,并将R1和R2直连网段以及R1上的loopback接口通告进RIP,其中使用多个loopback接口进行实验测试,具体拓扑和配置如下:

R1的配置:

interface GigabitEthernet0/0/0
 ip address 10.1.12.1 24
interface LoopBack0
 ip address 10.1.1.1 32
interface LoopBack1
 ip address 192.168.1.1 25 
interface LoopBack2
 ip address 10.1.2.1 24
interface LoopBack3
 ip address 10.1.3.1 25
#
rip 1
 version 1
 network 10.0.0.0
 network 192.168.1.0

R2的配置:

interface GigabitEthernet0/0/0
 ip address 10.1.12.2 24
#
rip 1
 version 1
 network 10.0.0.0

      配置完成后,在R1和R2之间的链路使用wireshark工具抓包(右键路由器->数据抓包,选择接口即可),测试输出如下所示:


      如图可以看到RIPv1路由更新报文确实是广播发送的,在该路由更新报文中可以看到携带了5条路由信息,符合我们的配置,其中包括4个loopback接口和一个物理直连接口。但是在我们的印象中RIPv1是一个有类路由协议,并且在路由更新报文中是没有子网掩码信息的,所以在RIPv1的路由更新报文中只会携带路由的前缀信息,并且应该都是主类的前缀,比如:192.168.1.0、10.0.0.0、172.16.0.0这样的,但是从抓包我们可以看到既有10.0.0.0又有10.1.1.1,那么这是什么情况呢?

      实际上这和发送接口所在网段和掩码有关系,RIPv1发送路由时遵循以下规则,需要将发送网段和接口所在网段掩码进行比较:

  • 如果主类网络号相同,掩码相同,则发送明细路由前缀,比如10.1.2.0/24和发送接口10.1.12.0/24的是在同于一主类网络并且掩码一致,所以会发送10.1.2.0的路由前缀。

  • 如果主类网络号相同,但是掩码不同,则发送主类网络前缀,比如10.1.3.0/25和发送接口10.1.12.0/24是在同一主类网络,但是掩码不同,所以发送10.0.0.0的路由前缀。但是如果主机位有1,则以主机路由发送32位的前缀,比如10.1.1.1/32和接口10.1.12.0/24的主类网络号相同,但是掩码不同,但是在主机位有置1,所以就发送10.1.1.1的主机路由。

  • 如果主类网络号不同,掩码相同或者不同,都发送主类网络前缀,比如192.168.1.0/25和发送接口10.1.12.0/24不在同一主类网络,并且掩码也不同,所以发送主类网络前缀192.168.1.0。

      这样的发送规则记忆起来非常复杂,口诀给大家:双同主机发明细,其余情况发主类。希望大家能够记住。

      那么此时路由前缀就根据这些规则发送到了对端R2,但是R2在接收这些路由时缺少了一个非常重要的东西,就是掩码,没有掩码,不成方圆,一条路由不光要有前缀,也要有掩码,但是,这些接收的路由的掩码从何而来呢?接下来我们就来看一下R2是怎么把这些路由加上掩码的。

RIPv1接收路由规则

      如下图所示为R2的通过RIP学习到的路由表,我们发现这些路由都有了响应的掩码。


      如上图所示,每条路由都加上了响应的掩码,原因就是跟入接口的网段掩码有关系,需要比较接受路由的前缀和入接口所在网段和掩码,所以R2在接收路由时遵循了如下的规则:

  • 收到的路由和入接口地址在同一主类网络,就以入接口掩码匹配路由的掩码,比如10.1.2.0这条路由和入接口10.1.12.0/24在同一主类网络,所以其掩码就是10.1.2.0/24。

  • 收到的路由和入接口地址在同一主类网络,但是收到的直接就是主类路由,就以主类掩码匹配,比如10.0.0.0这条路由和接口10.1.12.0/24在同一主类网络,但是10.0.0。0本身就是主类路由,所以掩码就是10.0.0.0/8。

  • 收到的路由与入接口不在同一主类网络中,则以接受路由的主类网络掩码匹配,比如192.168.1.0和入接口10.1.12.0/24不再同一主类网络,则其掩码就是192.168.1.0/24。

  • 如果在匹配时,发现出去网络位,在主机位有置1,则以32位掩码匹配,比如10.1.1.1和入接口10.1.12.0/24在进行24位掩码匹配时,发现10.1.1.1的后8位有置1,所以其掩码就是10.1.1.1/32。

      这规则记忆起来还是太复杂了,口诀给大家:收入同主类,以入掩码,收入不同主类,以注掩码,主机路由不变。
      根据以上收发路由的规则,我们就发现了虽然RIPv1是一个有类路由协议,并不支持CIDR和VLSM,但是通过设备协议自身的一些优化机制,使得其可以支持一部分无类的网络,这样做也是使得RIPv1能够有更高的性能。但是实际上RIPv1还是不能够更好的支持CIDR的场景,所以,在现网中不会再出现,因为RIPv2就是一个无类的路由协议了,所以我们接下来就看一下RIPv2是怎么支持CIDR的。

RIPv2发送/接收路由规则

      由于RIPv2是支持VLSM和CIDR的无类路由协议,所以在发送路由时可以直接携带掩码,所以也就没有了RIPv1那样的优化机制,所以比如对于192.168.1.0/25这样的路由可以直接发送192.168.1.0/25并且可以直接接收使用。

      但是由于RIPv2是支持自动聚合的,所以如果开启了自动聚合的话,就需要考虑到自动聚合主类路由的发送情况。在华为设备上自动聚合默认开启(RIP进程视图下summary命令默认配置),会将明细路由聚合为主类网络,但是我们实际在使用RIPv2时并没有出现聚合的情况,是因为自动聚合和水平分割同时开启时,自动聚合是不生效的,所以路由器依然会发送明细路由,但是可以通过在RIP进程下配置summary always命令强制开启自动聚合,强制开启的自动聚合会将明细路由聚合为主类网络,但是仅限于和出接口不在同一主类网络的路由。所以要想对所有路由都配置自动聚合需要我们关闭水平分割(在接口下使用命令undo split-horizon)。

      RIPv2接收路由很简单,因为路由本身就可以携带掩码了,所以直接以接收路由的掩码进行使用就可以了。

总结

      本章主要介绍了RIPv1和RIPv2在发送路由和接收路由时需要遵循的规则,从这些规则我们可以看出来,RIPv1主要是因为不支持无类网络,所以有更多的规则去优化,所以这样的协议在现网中不常见,已经被淘汰了,RIPv2由于其可以在路由中携带掩码信息可以支持CIDR,所以会被更多的运用在网络中,但是由于在华为设备上有自动聚合和水平分割等规则,所以我们在实际部署时需要考虑到这些因素。

      下一章我们会主要给大家介绍如何在RIPv2中选路,因为对于路由协议来说,选路是非常重要的!希望大家支持我们的技术公众号!


【誉天教育|解忧杂货店】RIPv1和RIPv2理论知识--华为数通R&S实验漫载(7)

猜你喜欢

转载自blog.51cto.com/13628849/2150614