rip的度量值
技术背景
- 对于动态路由而言,度量值是一个非常重要的概念。
- 度量值就是指到达目的网络所需的代价或成本。
- 每种路由协议都定义了路由的度量值,但是它们对度量值的规定可能不尽相同:
(1)比如有的路由协议使用到达目的网络沿途需经过的路由器个数作为路由的度量值(距离矢量路由协议),
(2)而有的协议则基于链路带宽计算路由度量值(链路状态路由协议)。 - 度量值的大小将直接影响路由器对到达某个目的网段的路由(或者说路径)的优选:
(1)比如当一台路由器发现两条路径可以到达同一个目的地(或者说路由器从两个不同的下一跳学习到去往同一个目的网络的路由),并且这两条路由都是通过同一种路由协议发现的,
(2)那么通常情况下度量值更优的那条路由会被优选,而度量次优的路由则作为备份,只有当最优路由失效时,次优路由才会被使用。
RIP以跳数(Hop Count)作为路由的度量值,所谓的跳数,就是到达目的网络所需经过的路由器个数,也就是说RIP的度量值需为非负整数,而且跳数越少,路由被认为越优。
举个例子:
如下图所示的网络拓扑
- R1到达直连网段1.0.0.0/8的度量值为0。
- 当RIP更新周期的到来时,它将该条路由从部署了RIP协议的GE0/0/0接口通告出去,在R1所通告的路由更新中,1.0.0.0/8路由携带的度量值为1,也就是说,R1将该条路由的度量值加1后才通告给R2。
- R2收到R1通告的路由更新后,将1.0.0.0/8路由学习过来,加载到路由表中,并将路由的度量值设置为1,也就是沿用R1所通告的度量值。
- 然后R2将1.0.0.0/8路由从自己的GE0/0/1接口通告出去,而在R2所通告的路由更新中,该条路由的度量值被设置为2,R2将路由的度量值加1后通告给R3。
- 最后,R3也能学习到1.0.0.0/8路由,度量值为2。
度量值分为:接收度量值和发送度量值
发送度量值仅当接口发送rip路由时才会添加到路由表中(默认为1)
接收度量值会在接口接收到rip路由之前,把该度量值加入到该路由表上(默认为0)
(可以简述为:路由器在发送路由时要加上度量值,在接收路由时不需要加上度量值。)
RIP使用跳数作为度量值的设定使得路由器能够直观地知道自己距离目的网络的“远近”。在路由优选的过程中,通过比较度量值,RIP会从可选路径中选择一条到达目的网络的最优路径,最优意味这跳数最小。
示例2
如下图所示的网络拓扑
- 假设所有路由器都运行了RIP,则R5会将路由5.0.0.0/8通告给R2、R4,通告时路由的度量值设置为1跳。
- R2在收到这条路由更新后,会把这条路由通告给R1并告知度量值为2跳,那么R1便发现了一条到达5.0.0.0/8的路由。
- 另一方面,R4从R5学习到5.0.0.0/8路由后会进一步通告给R3,而R3又会将其通告给R1,这样R1又发现了另一条到达5.0.0.0/8的路由。
- 此刻对于R1而言,有两条路由可以到达5.0.0.0/8,那么R1就会进行最优路由的选择:
(1)优选规则:拥有更少跳数的路由将被优选并最终被加载到路由表中作为数据转发的依据。
(2)因此在R1的路由表中,5.0.0.0/8路由的下一跳是R2。
引入问题
通过跳数来度量到达目的网络的远近非常简单和直观,但是也存在一个明显的问题。在上文所述的例子中,如果网络链路带宽不一致,RIP的这种度量值的设计就可能导致路径选择不合理。
如下图所示的网络拓扑:
网络中的链路带宽是不一致的,但是RIP并不关心链路的带宽,它只关心到达目的地沿途需经过的路由器个数,因此即使R1-R3-R4-RS这条路径的沿途链路带宽要比另一条路径高得多,但由于这条路径的跳数更大,因此它将永远不会被Rl选择作为到达5.0.0.0/8的路径(除非另一条路径失效),这显然是不合理的。
在这种场景中,网络管理员可以通过对RIP路由的度量值进行适当地调整,例如,将低带宽路径的RIP路由的度量值增加一个特定的量,使得其不被目标设备优选,进而影响数据流量的转发路径。
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,本文链接:https://blog.csdn.net/mn3321/article/details/107722158.