rip 路由学习

概述:    我们在学习rip的时候都知道ripv1不支持VLSM和CIDR,其本质是因为rip的报文中不携带子网掩码
 产生问题:    不连续的子网会形成错误的负载分担
 原因分析:    
                  
                 
底层左边的网段是172.16.1.0,右边是172.16.2.0,但运行rip v1 时R2和R3都会将主类网络发布给R1即172.16.0.0,这是在R1会学到两个关于172.16.0.0的路由形成错误的负载均衡。




那么问题来了,在ripv1中我们要尽可能的避免不连续子网的问题,当连续子网会存在什么问题,详见下面分析:


拓扑如上,按照我们的逻辑思维R1可能学习到172.16.0.0的主类路由,我们来看一下路由学习情况


这时我们看到与我们的判断不相符
我们来分析一下,产生此类情况无非有两种情况,一种是R2发给R1的时候发布的是具体路由,另一种情况是R1收到数据后将子网掩码添加上去的(但是大家要记住无论什么情况都不可能携带子网掩码)我们抓包看一下


从抓的包可以看出R2在发布的时候是发布的具体路由,但是我们看到在R1的路由表上172.16.1.0这个网络是携带子网掩码的,猜测应该是R1根据自己的掩码给加上去的




举一反三:刚才我们看到要发布的路由(即172.16.1.0)和发布路由的接口(172.16.2.2)处于同一子网,这时我们让发布的路由和发布路由的接口不处于不同网段尝试一下
此时起两个loop口一个为23位一个为25位


那么我们来看这个时候的R1是否学习到172.16.3.0和172.16.4.0是否是明细路由




此时我们看到R1并没有学到明细路由而是学到主网路由




通过以上例子我们可以得出一个结论,R2在发布路由的时候看路由是否和自己属于同一主网,第二R2会查看发布的路由是否和自己属于同一明细的子网,如果是属于会将具体的明细路由发布给对端但此时不携带子网掩码,当对端收到路由后查看是一个明细路由,会将收到路由的接口的掩码赋给收到的路由




下面我们在思考一个问题


在R2上宣告172.16.5.1/32看R1的路由学习情况,大家可以通过上述的结论对此问题做出解释,再次不做赘述

你可能感兴趣的:(rip 路由学习)