首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

网络工程师:古老的动态路由协议

路由器等三层设备只能发现直连路由,要访问远端的网络就需要有相应网络的路由。手工配置的静态路由在少数情况下可以使用,比如一个边缘网络的出口(包括企业网到Internet的出口),而更多的情况下,使用静态路由非常痛苦,不仅配置工作量大,而且维护非常困难。

能不能让网络中的三层设备自己发现并学习到网络中所有网段的路由呢?

动态路由协议就是来实现这个目的的。

最古老的动态路由协议,叫RIP(Routing Information Protocol,路由信息协议)。

RIP协议由于设计上的缺陷,目前在网络中基本不会使用。本文仅对RIP作简单介绍。

RIP的设计思想非常单纯,也是最容易想到的:让每台路由器都把自己知道的路由从端口通告出去,那么网络中每台路由器就可以知道网络中所有网段的路由。

如上图,R1和R3把自己知道的直连路由都从端口通告出去,R2和电脑都能收到。电脑不会运行RIP,所以不知道这是个什么消息而丢弃。而R2就知道了网络中还有10.1.1.0/24和10.1.4.0/24两条路由,R2把自己所知道的全部四条路由再从所有端口通告出去,R1就知道了10.1.3.0/24和10.1.4.0/24两条路由,R3也知道了10.1.1.0/24和10.1.2.0/24两条路由。

RIP自动学习路由的初衷就实现了。

我们仔细品味一下,事实上每台路由器除了直连路由外,其他路由都是听别人告诉你、而不是你自己发现的!

这就有很大隐患了!如果网络永远不会出故障,这样做可能没有问题。但是,故障毕竟是常态,网络运维人员当然希望网络永远没有故障,但没有故障的网络并不存在。

如上图,假设R1连接PC的链路故障,R1上10.1.1.0/24的直连路由消失,此时R2的路由更新消息中却携带10.1.1.0/24路由,R1错误地学习到10.1.1.0/24路由,下一跳为R2,而R2上这条路由是从R1学到的,下一跳是R1,因而造成路由环路。

从这个例子中可以看出,RIP的初始设计甚至可以说有些幼稚,所以后来RIP增加了六个防环机制用于避免路由环路,并且也由版本1改进到版本2。

六个防环机制我们不在这里作介绍了。

RIP版本1称为RIPv1,是一个基于有类的路由协议,通告的路由信息只包含路由前缀,不包含掩码,由接收方根据路由前缀的自然分类加上自然掩码。

RIPv1路由包含的范围过大,无法进行子网划分,且路由通告方式为广播,这给其他设备带来很多麻烦(每30秒要处理一次广播报文),增加了资源消耗。

RIPv2改为无类协议,支持子网划分和路由聚合,通告的路由信息包含掩码,且通告方式改为组播(组播地址224.0.0.9),减少了其他设备的消耗(没有运行RIP的设备收到发给224.0.0.9的报文会直接丢弃,不再解封装处理)。

但是RIP由于15跳的限制,无法适应大规模网络,且由于防环机制的影响,网络拓扑如果发生变化,RIP的收敛时间较长(最长可以到2分钟),这是很难忍受的时长。

RIP路由的开销只看距离,也就是跳数,跟链路带宽没有关系,这也很不合理。比如,从A到B有两条路,一条是高速公路,距离10公里;另一条路只能步行,距离5公里。RIP只会选择距离近的,而不关心怎么去。

由于跳数限制、收敛时间太长以及开销的不合理,使RIP路由协议逐渐边缘化,被其他动态路由协议取代,现网中基本不会再使用RIP作为动态路由协议。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200608A0PS8A00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券