HCNA——RIP的路由汇总

HCNA——RIP的路由汇总

RIP V1的路由汇总

  • 路由聚合的原理是,同一个自然网段内的不同子网的路由在向外(其它网段)发送时聚合成一个网段的路由发送。

  • RIP-1的协议报文中没有携带掩码信息,故RIP-1发布的就是自然掩码的路由。因此也不支持VLSM。

  • 在有类网络的边界自动汇总,并且不能关闭汇总。

PS:VLSM 可变长子网掩码

RIP-2路由聚合

  • RIP-2支持路由聚合,因为RIP-2报文携带掩码位,所以支持子网划分。在RIP-2中进行路由聚合可提高大型网络的可扩展性和效率,缩减路由表。

路由聚合有两种方式。基于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值。

  • 基于接口的聚合:用户可以指定聚合地址。比如,对于10.1.1.0/24(metric=2)和10.1.2.0/24(metric=3)这两条路由,可以在指定接口上配置聚合路由10.1.0.0/16(metric=2)来代替原始路由。

RIP V2的路由汇总

  • 默认时在有类网络的边界自动汇总,但可以关闭汇总。

  • undo summary关闭汇总。

  • 如果接口启用水平分割、毒性发转,则不进行汇总,除非使用 “summary always”命令。

实验开始

拓扑图

enter description here

首先配置好拓扑给出的配置接口

华为路由器环回接口配置命令,以此类推进行配置

1
2
[R1]interface LoopBack 0
[R1-LoopBack0]ip address 172.16.0.1 24

下面进行配置RIP

R1

1
2
3
[R1]rip 1
[R1-rip-1]version 1
[R1-rip-1]network 172.16.0.0

R2

1
2
3
4
[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

1
2
3
4
[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口抓包看看

enter description here

PS:一个RIP数据包最多支持25条路由表更新 配置了RIP v2和认证的话最多只能24条

enter description here

分析数据包发现并没有携带掩码信息 下面我们来查看R2的路由表

enter description here

首先会学习到10.0.0.0网络 路由表 是R3发送给R2的 而且在发送中也是不带掩码的

有没有发现R2收到的是10.0.0.0网络的掩码是8位呢?可是我的环回口配置的是24位啊 这就是RIP V1的特性了 在有类网络的边界自动汇总,并且不能关闭汇总。

enter description here

但并不是说 左边为C类 右边为A类才叫做网络边界 即使两边是A类 比如左边是20.0.0.0/8 右边 10.0.0.0/8 这时候这路由器也是边界路由器

下面我们再返回到R2上面查看路由表

enter description here

172.16.0.0的网络有16位 24位 而且没有172.16.4.0的网络 那到底是为什么呢?

enter description here

PS:因为配置RIP V1 如果发现R1 g0/0/1 发出去的数据包是在同一个主网络的子网 那么与g0/0/1口的掩码相匹配的就会被发送出去 因此 最底下那条就不会被发送

下面通过抓取R1 g0/0/1 数据包看看

enter description here

发现RIP V1在发送路由更新的时候不带掩码 那么对方收到以后怎么知道这些路由表的掩码呢?

enter description here
PS:R2会以接收路由表的接口的掩码来套在发送过来的路由

那为什么会有一条172.16.0.0/16的路由呢 不应该相匹配的掩码是24位吗?

PS:这里应该存在了BUG 但变成16位的原因可能是R2认为该网络是一个边界 因为R2的右边又是另外一个网络 所以会变成16位 这里就暂且不细究了 因为我也不懂 可以去百度查查看

从以上实验发现RIP V1是不支持VLSM的 并且我们不想让路由在网络边界进行汇总 那么就要支持VLSM 我们下面就来开启RIP V2

R1

1
2
[R1]rip 1
[R1-rip-1]version 2

R2

1
2
[R2]rip 1
[R2-rip-1]version 2

R3

1
2
[R3]rip 1
[R3-rip-1]version 2

重新在R2 g0/0/0 抓取数据包看看

enter description here

除了携带网络地址 还会携带掩码 下一跳 如果下一跳是0.0.0.0的话 那么意味着下一跳就是Src源地址 (172.16.12.2)

下面在R3查看一下RIP信息

enter description here

现在已经是RIP V2了 默认路由汇总Summary:Enabled 是打开的 意味着默认情况下也是在网络的边界进行路由汇总 下面我们在R2查看路由汇总情况

enter description here

现在为什么10.3.3.0是24位而不是前面汇总后的八位呢?

PS:如果接口启用水平分割、毒性发转,则不进行汇总。默认情况下呢 RIP所有接口都是启用了水平分割 所以我们现在看到的路由表是没有汇总的 如果想在水平分割打开的情况下 进行汇总 除非使用 “summary always”命令

1
2
[R3]rip 1
[R3-rip-1]summary always

再次查看R2路由表

enter description here

现在则进行了路由汇总

下面再把R1 R2的路由汇总打开 summary always 命令

1
2
[R1]rip 1
[R1-rip-1]summary always
1
2
[R2]rip 1
[R2-rip-1]summary always

enter description here

enter description here
enter description here

现在看到的3台路由器都是进行了路由汇总 下面我们把3台路由器的汇总关闭掉

1
2
3
4
5
[R1-rip-1]undo summary

[R2-rip-1]undo summary

[R3-rip-1]undo summary

enter description here

回到了原来的连续路由 实际上路由表为连续路由的话不好 为什么呢?

PS:因为路由表太大 太多的话 我们路由器转发数据包的时候查询的条目会很多 因此效率比较低 我们可以来做基于接口的聚合 也称手工的路由汇总

下面我们想在路由汇总关闭的情况下 R2向R3发送路由更新的时候 不要汇总成16位 那么我们怎么来算它的掩码位数呢?

enter description here

172.16 是16位 加上后面全部一样的 也就是4位 总共就是20位 掩码就为 255.255.240.0

下面我们就可以来进行手工的路由汇总 在接口视图下进行配置(R2 g0/0/1)

1
2
3
4
[R2]int g0/0/1
[R2-GigabitEthernet0/0/1]rip summary-address 172.16.0.0 ?
IP_ADDR<X.X.X.X> IP address mask
[R2-GigabitEthernet0/0/1]rip summary-address 172.16.0.0 255.255.240.0

再到R3上面查看路由表

enter description here

在R3就会看到一条路由表 而不像刚才有五条明细的路由表 这就是手工的路由汇总

下面在R2 g0/0/1 接口来进行抓包 看看数据包情况

enter description here

抓包清楚的看到R2发送到R3现在只发送一条路由表 并且掩码为我们手工配置的20位

实验总结

  • 掌握RIP v1的路由汇总
  • 掌握RIP v2的路由汇总
与你分享网络技术文章,你的支持让我有更大的动力!