忘记密码   免费注册 查看新帖 |

ChinaUnix.net

  平台 论坛 博客 文库 频道自动化运维 虚拟化 储存备份 C/C++ PHP MySQL 嵌入式 Linux系统
最近访问板块 发新帖
查看: 1911 | 回复: 1

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

论坛徽章:
0
发表于 2018-07-26 11:54 |显示全部楼层


前言
      上一章我们给大家介绍了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中选路,因为对于路由协议来说,选路是非常重要的!希望大家支持我们的技术公众号!

论坛徽章:
0
发表于 2018-08-01 14:36 |显示全部楼层
谢谢楼主分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则

第67期:Neo4j图数据库平台架构最佳实践
【微学堂】10月18日 20:00(周四)

当下,数据的规模和类型每时每刻都在呈几何级数的增长,仅能够管理大量的数据是不够的,关键是能从海量数据中发掘出有用的信息,特别是数据之间的关联,能高效存储和处理数据之间关联的新型数据库为图数据库。 本讲座将介绍Neo4j图数据库的基本概念、设计特点、架构和经典应用场景实战分享。

进入课堂>>
  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号 北京市公安局海淀分局网监中心备案编号:11010802020122
广播电视节目制作经营许可证(京) 字第1234号 中国互联网协会会员  联系我们:wangnan@it168.com
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP