一个报文的路由器之旅_RIP路由器并不是收到所有的更新都处理:即使没有邻居关系...

概述

各位小伙伴大家好,从今天我们就开始讲解动态路由协议了,咱们会先从最简单的RIP协议说起。希望小伙伴多支持我,帮忙点赞和转发,这样大黄才有做下去的动力!也非常欢迎新朋友关注我的头条号,一起讨论网络问题!

RIP是一个古老的路由协议,由美国的C. Hedrick和罗格斯大学在1988年联合发布,收录在RFC1058中(是不是那时你能还没有出生呢:))。正因为太古老,所以当时看起来比较先进的理念,在今天也变的比较落后了,导致RIP慢慢的被边缘化,比如RIP只支持小规模的网络(Hop最大16)、不会形成邻居关系、定时更新路由表等。。。

今天要讲述的就是RIP路由器,在没有形成邻居关系的情况下,收到路由更新,要不要处理!

原理

我们都知道OSPF、ISIS、BGP这三种路由协议,它们之间交换路由信息之前,需要协商很多参数才能形成邻居关系的。并且一个路由器只会处理它邻居发送的路由信息,收到非邻居发送的路由信息以后,都会丢弃。

但是RIP协议比较特殊,因为它诞生的太早,没有邻居关系一说。那RIP路由器是不是会处理所有收到的路由信息呢?

答案是肯定不会的,不然就乱套了! 那RIP是如何判断要不要处理接收到的路由信息呢?

小伙伴能猜到吗?(沉思30秒,看看有没有印象)


如果没想到,也没有关系!其实你是知道的,只是你没注意而已!

答案就是RIP路由器通过比较接收到路由更新的接口IP和报文源IP在不在同一个网段:

  • 自己接口IP和路由更新报文的源IP在同一个网段:处理报文;
  • 自己接口IP和路由更新报文的源IP不在同一个网段:丢包报文;

说穿了以后,是不是觉得很简单?因为两台路由器相连接口配置在同一个网段的事情,是我们一直在做的,只是没有特别注意而已!我们今天就以一个例子来证明一下这个观点!

举例

拓扑

12deff252e88ff9341afe70e3d8932bc.png
  • 按照拓扑配置好地址;
  • R1、R2、R3都启用RIP协议;
  • 通告12.1.1.0/24, 23.1.1.0/24 两个网段。

配置

R1、R2、R3的RIP地址:

f57e3a247e9874df8c3c8cfdaf88603d.png

RIP配置

测试

第一步:我们在R1的F0/0接口使用wireshark抓包,发现R2每隔30秒,就发送一次路由更新:

21591d949c43c48663729f41caaf95b7.png

R2发送的路由更新信息

  • 此路由更新的源IP为R2的接口IP:12.1.1.2;
  • 此路由更新包含的路由信息为:23.0.0.0。

第二步:查看R1的路由表,发现有R2发送的路由更新;

f95c7f04f3e3fb0140f2f859794dd0b6.png

R1的路由表

  • 说明R1会处理R2发送的路由更新信息。

第三步:修改R2的接口地址为100.1.1.2,和R1的接口地址不在同一个网段;

e6d2f038a4f8151e762803a9dd7d25a9.png

修改IP

第四步:清除R1的路由表信息;

f101a63192a4d69b7803001cff5a6dae.png

清除路由表信息

  • 此时路由表中没有R2发送的路由信息;

第五步:在R2上发布100.1.1.0/24这个网段的路由(启用RIP);

79da299125eec0de9b2adaf87cf753ec.png

R2发布100.1.1.0网段的路由

第六步:查看抓包信息:

d91d6ab6c30385a2356b56abe39bdc7d.png

抓包信息

  • 发送路由更新信息的源IP地址变为100.1.1.2,和R1的接口不在同一个网段了。

第七步:查看R1路由表:

3af008d33fbc40a51a3bd5f6fdf01763.png

R1路由表

  • 发现R1没有23.0.0.0网段的路由;
  • 这就说明R1即使收到路由更新,也不会处理,而是丢弃了。

例外

难道不在同一个网段,真的就不能处理了吗?如果客户很任性,非要你处理不在同一个网段的路由更新呢!(通常中国的甲方就是这么牛B!)

也是有办法的,思科提供了一条命令,可以忽略对更新报文的源IP进行检查,只要收到路由更新都会处理,配置命令如下:

d2108c8f35f95a269899738b92c194aa.png

R1配置忽略源IP检查

不过这么任性进行配置也是有不好后果,路由器里没有这条路由对应的下一跳出口,如果要使用这条路由转发数据,还要自己手工去指定,否则收到报文以后,还是会丢弃报文!

218e9bcc12658fc3e8b2f372c30a99f7.png

查看路由表,下一跳为R2上的100.1.1.2

我们可以看出,RIP路由器默认是会进行源IP地址检查的,如果不需要检查,只需要no掉即可!

总结

各位小伙伴,经过上面的讲解,对RIP路由器是否处理收到的更新报文的依据已经了解了吧?我来做一下简单的总结:

  1. RIP路由器默认会检查看更新报文的源IP是否和路由器接口IP在不在同一个网段;
  2. 如果在同一个网段,才会处理更新信息;
  3. 如果不在同一个网段,不会处理更新信息;
  4. 如果不想做源IP的检查,需要使用命令“no validate-update-source”,来disable。

可能还有悟性比较高的小伙伴会奇怪,如果两个路由器接口不在同一个网段,R1怎么还处理R2发送过来的更新报文?它们之间交互协议报文的MAC是如何填充的呢?按照我们之前文章的描述,假设你是一个报文,看路由器会如何处理你,只有知道了对方的MAC地址,才能封装报文。这个问题的答案其实上面抓包截图里已经有了哦,发现的小伙伴欢迎留言!

最后给大家推荐一个专栏,专门介绍如何使用思科模拟器的。模拟器是学习网络知识必备的,并且价格便宜,每个小节不到1元钱,欢迎购买!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值