本文共 3052 字,大约阅读时间需要 10 分钟。
路由聚合的原理是,同一个自然网段内的不同子网的路由在向外(其它网段)发送时聚合成一个网段的路由发送。
RIP-1的协议报文中没有携带掩码信息,故RIP-1发布的就是自然掩码的路由。因此也不支持VLSM。
PS:VLSM 可变长子网掩码
路由聚合有两种方式。基于RIP进程的有类聚合:
聚合后的路由使用自然掩码的路由形式发布。比如,对于10.1.1.0/24(metric=2)和10.1.2.0/24(metric=3)- 这两条路由,会聚合成自然网段路由10.0.0.0/8(metric=2)。RIP–2聚合是按类聚合的,聚合得到最优的metric值。
默认时在有类网络的边界自动汇总,但可以关闭汇总。
undo summary关闭汇总。
拓扑图
首先配置好拓扑给出的配置接口
华为路由器环回接口配置命令,以此类推进行配置
[R1]interface LoopBack 0[R1-LoopBack0]ip address 172.16.0.1 24
下面进行配置RIP
R1
[R1]rip 1[R1-rip-1]version 1[R1-rip-1]network 172.16.0.0
R2
[R2]rip 1[R2-rip-1]version 1[R2-rip-1]net 172.16.0.0 [R2-rip-1]net 192.168.23.0
R3
[R3]rip[R3-rip-1]version 1[R3-rip-1]network 192.168.23.0[R3-rip-1]network 10.0.0.0
下面我们在R2 g0/0/0口抓包看看
PS:一个RIP数据包最多支持25条路由表更新 配置了RIP v2和认证的话最多只能24条
分析数据包发现并没有携带掩码信息 下面我们来查看R2的路由表
首先会学习到10.0.0.0网络 路由表 是R3发送给R2的 而且在发送中也是不带掩码的
有没有发现R2收到的是10.0.0.0网络的掩码是8位呢?可是我的环回口配置的是24位啊 这就是RIP V1的特性了 在有类网络的边界自动汇总,并且不能关闭汇总。
但并不是说 左边为C类 右边为A类才叫做网络边界 即使两边是A类 比如左边是20.0.0.0/8 右边 10.0.0.0/8 这时候这路由器也是边界路由器
下面我们再返回到R2上面查看路由表
172.16.0.0的网络有16位 24位 而且没有172.16.4.0的网络 那到底是为什么呢?
PS:因为配置RIP V1 如果发现R1 g0/0/1 发出去的数据包是在同一个主网络的子网 那么与g0/0/1口的掩码相匹配的就会被发送出去 因此 最底下那条就不会被发送
下面通过抓取R1 g0/0/1 数据包看看
发现RIP V1在发送路由更新的时候不带掩码 那么对方收到以后怎么知道这些路由表的掩码呢?
PS:R2会以接收路由表的接口的掩码来套在发送过来的路由那为什么会有一条172.16.0.0/16的路由呢 不应该相匹配的掩码是24位吗?
PS:这里应该存在了BUG 但变成16位的原因可能是R2认为该网络是一个边界 因为R2的右边又是另外一个网络 所以会变成16位 这里就暂且不细究了 因为我也不懂 可以去百度查查看
从以上实验发现RIP V1是不支持VLSM的 并且我们不想让路由在网络边界进行汇总 那么就要支持VLSM 我们下面就来开启RIP V2
R1
[R1]rip 1[R1-rip-1]version 2
R2
[R2]rip 1[R2-rip-1]version 2
R3
[R3]rip 1[R3-rip-1]version 2
重新在R2 g0/0/0 抓取数据包看看
除了携带网络地址 还会携带掩码 下一跳 如果下一跳是0.0.0.0的话 那么意味着下一跳就是Src源地址 (172.16.12.2)
下面在R3查看一下RIP信息
现在已经是RIP V2了 默认路由汇总Summary:Enabled 是打开的 意味着默认情况下也是在网络的边界进行路由汇总 下面我们在R2查看路由汇总情况
现在为什么10.3.3.0是24位而不是前面汇总后的八位呢?
PS:如果接口启用水平分割、毒性发转,则不进行汇总。默认情况下呢 RIP所有接口都是启用了水平分割 所以我们现在看到的路由表是没有汇总的 如果想在水平分割打开的情况下 进行汇总 除非使用 “summary always”命令
[R3]rip 1[R3-rip-1]summary always
再次查看R2路由表
现在则进行了路由汇总
下面再把R1 R2的路由汇总打开 summary always 命令
[R1]rip 1[R1-rip-1]summary always
[R2]rip 1[R2-rip-1]summary always
现在看到的3台路由器都是进行了路由汇总 下面我们把3台路由器的汇总关闭掉
[R1-rip-1]undo summary[R2-rip-1]undo summary[R3-rip-1]undo summary
回到了原来的连续路由 实际上路由表为连续路由的话不好 为什么呢?
PS:因为路由表太大 太多的话 我们路由器转发数据包的时候查询的条目会很多 因此效率比较低 我们可以来做基于接口的聚合 也称手工的路由汇总
下面我们想在路由汇总关闭的情况下 R2向R3发送路由更新的时候 不要汇总成16位 那么我们怎么来算它的掩码位数呢?
172.16 是16位 加上后面全部一样的 也就是4位 总共就是20位 掩码就为 255.255.240.0
下面我们就可以来进行手工的路由汇总 在接口视图下进行配置(R2 g0/0/1)
[R2]int g0/0/1[R2-GigabitEthernet0/0/1]rip summary-address 172.16.0.0 ? IP_ADDRIP address mask[R2-GigabitEthernet0/0/1]rip summary-address 172.16.0.0 255.255.240.0
再到R3上面查看路由表
在R3就会看到一条路由表 而不像刚才有五条明细的路由表 这就是手工的路由汇总
下面在R2 g0/0/1 接口来进行抓包 看看数据包情况
抓包清楚的看到R2发送到R3现在只发送一条路由表 并且掩码为我们手工配置的20位
转载于:https://blog.51cto.com/12445563/2177905