<!-- wp:quote -->

<p>  学会忘记痛苦,为阳光记忆腾出空间。 </p>
<!-- /wp:quote --> <!-- wp:more --> <!-- /wp:more --> <!-- wp:tadv/classic-paragraph --> <h1>RIP V1的路由汇总</h1> <!-- /wp:tadv/classic-paragraph --> <!-- wp:tadv/classic-paragraph -->
  • 路由聚合的原理是,同一个自然网段内的不同子网的路由在向外(其它网段)发送时聚合成一个网段的路由发送。
  • RIP-1的协议报文中没有携带掩码信息,故RIP-1发布的就是自然掩码的路由。因此也不支持VLSM。
  • 在有类网络的边界自动汇总,并且不能关闭汇总。

<!-- /wp:tadv/classic-paragraph -->

<!-- wp:paragraph -->
<p>之前说RIP版本1,是不携带掩码发送的,所以它发布的就是自然掩码的路由,所以不支持VLSM(可变长度子网掩码。)这样RIP版本1,在实际中有很多的缺点,比如下图这个例子:</p>
<!-- /wp:paragraph -->

<!-- wp:tadv/classic-paragraph -->
<p></p>
<!-- /wp:tadv/classic-paragraph -->

<!-- wp:paragraph -->
<p>注意这个图中AR1的环回口地址掩码。前面都是三个24位的,只有一个22位的,我们称之为可变长度的子网掩码。</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>在AR1上配置环回口是这样写的:</p>
<!-- /wp:paragraph -->

<!-- wp:tadv/classic-paragraph -->

[AR1]interface LoopBack 3
[AR1-LoopBack3]ip address  172.16.4.1 22

<p>其他的都是同理就不再赘述了。现在起RIP进程</p>

[AR1]rip
[AR1-rip-1]version 1
[AR1-rip-1]network 172.16.0.0

<p>这样AR1就配置完了。现在看AR2</p>

[AR2]rip
[AR2-rip-1]version 1 
[AR2-rip-1]network 172.16.0.0
[AR2-rip-1]network 192.168.23.0

<p>最后是AR3</p>

[AR3]rip
[AR3-rip-1]version 1
[AR3-rip-1]network 192.168.23.0
[AR3-rip-1]network 10.0.0.0

<p>这样就配置好了。现在我们抓包看看(随便一个接口都可以):</p>
<p></p>
<p> </p>
<!-- /wp:tadv/classic-paragraph -->

<!-- wp:paragraph -->
<p>我们可以看到只携带了地址,没有带掩码。现在看看AR2的路由表:</p>
<!-- /wp:paragraph -->

<!-- wp:tadv/classic-paragraph -->

[AR2]display  ip routing-table protocol  rip  
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Public routing table : RIP
         Destinations : 4        Routes : 4        

RIP routing table status : <Active>
         Destinations : 4        Routes : 4

Destination/Mask    Proto   Pre  Cost      Flags NextHop         Interface

       10.0.0.0/8   RIP     100  1           D   192.168.23.2    GigabitEthernet
0/0/1
     172.16.0.0/16  RIP     100  1           D   172.16.12.1     GigabitEthernet
0/0/0
     172.16.1.0/24  RIP     100  1           D   172.16.12.1     GigabitEthernet
0/0/0
     172.16.2.0/24  RIP     100  1           D   172.16.12.1     GigabitEthernet
0/0/0

RIP routing table status : <Inactive>
         Destinations : 0        Routes : 0

<!-- /wp:tadv/classic-paragraph -->

<!-- wp:paragraph -->
<p>大家注意看为什么AR3上是24位的掩码,但是传递到AR2就成了8位的了,这是因为 在有类网络的边界自动汇总,并且不能关闭汇总。 那什么是边界路由,例如:</p>
<!-- /wp:paragraph -->

<!-- wp:tadv/classic-paragraph -->
<p></p>
<!-- /wp:tadv/classic-paragraph -->

<!-- wp:paragraph -->
<p>这样就是说AR2,AR3是网络边界。一变是C类,一变是A类。当然如果两边是10.0.0.0/8和另一边是20.0.0.0/8两边都是A类的,那么这样也是边界路由。</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>现在来看为什么AR2学习不到AR1的那条loopback3:172.16.4.1/22路由呢,因为在发送时,会看AR1的G0/0/0接口,因为G0/0/0接口是24位的掩码,所以这边只发送24位的,也就是前三个。</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>但是我们抓包看看效果:</p>
<!-- /wp:paragraph -->

<!-- wp:tadv/classic-paragraph -->
<p></p>
<!-- /wp:tadv/classic-paragraph -->

<!-- wp:paragraph -->
<p>我们发现,AR1的G0/0/0接口在传播的时候会发送两个172.16.0.0的条目,其实这里就有一个是我们那个环回口3的路由信息了, 但是由于它不带掩码,所以发送过来AR2的G0/0/0接口是24位的,所以它就不要那个环回口3的22位那一条路由,所以AR2的路由表就没有关于AR1的环回口3的路由信息。现在我们再看看AR2的路由表</p>
<!-- /wp:paragraph -->

<!-- wp:tadv/classic-paragraph -->

<AR2>display  ip routing-table protocol   rip  
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Public routing table : RIP
         Destinations : 4        Routes : 4        

RIP routing table status : <Active>
         Destinations : 4        Routes : 4

Destination/Mask    Proto   Pre  Cost      Flags NextHop         Interface

       10.0.0.0/8   RIP     100  1           D   192.168.23.2    GigabitEthernet
0/0/1
     172.16.0.0/16  RIP     100  1           D   172.16.12.1     GigabitEthernet
0/0/0
     172.16.1.0/24  RIP     100  1           D   172.16.12.1     GigabitEthernet
0/0/0
     172.16.2.0/24  RIP     100  1           D   172.16.12.1     GigabitEthernet
0/0/0

RIP routing table status : <Inactive>
         Destinations : 0        Routes : 0

<p>这里呢应该三条都是24位的掩码才对,不知道这是一个bug还是说AR2将AR1这一段给认为成了边界路由汇总掉了。</p>
<p>现在可以看出来RIP版本1是不支持VLSM的,如何让其支持呢,很简单,使用版本2。</p>
<p>现在我们将其全都改成版本2的,以AR1为例:</p>

[AR1]rip
[AR1-rip-1]version 2 

<p>其它两个同理,闲话少叙</p>
<p>现在我们再抓包看看:</p>
<p></p>
<!-- /wp:tadv/classic-paragraph -->

<!-- wp:paragraph -->
<p>我们可以看到这次多了一个标记字段和掩码下一跳,这个下一跳全“0”意味着下一跳就是源地址,相当于随机发送的,就是发送方。这里看似很简单多了一个掩码,但是会引发很多问题。</p>
<!-- /wp:paragraph -->

<!-- wp:tadv/classic-paragraph -->
<p></p>
<!-- /wp:tadv/classic-paragraph -->

<!-- wp:paragraph -->
<p>可以看到RIP版本2,默认情况下在网络的边界也是自动汇总的。</p>
<!-- /wp:paragraph -->

<!-- wp:tadv/classic-paragraph -->

<AR2>display  ip routing-table protocol  rip  
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Public routing table : RIP
         Destinations : 5        Routes : 5        

RIP routing table status : <Active>
         Destinations : 5        Routes : 5

Destination/Mask    Proto   Pre  Cost      Flags NextHop         Interface

       10.3.3.0/24  RIP     100  1           D   192.168.23.2    GigabitEthernet
0/0/1
     172.16.0.0/24  RIP     100  1           D   172.16.12.1     GigabitEthernet
0/0/0
     172.16.1.0/24  RIP     100  1           D   172.16.12.1     GigabitEthernet
0/0/0
     172.16.2.0/24  RIP     100  1           D   172.16.12.1     GigabitEthernet
0/0/0
     172.16.4.0/22  RIP     100  1           D   172.16.12.1     GigabitEthernet
0/0/0

RIP routing table status : <Inactive>
         Destinations : 0        Routes : 0

<p>这时候我们发现10.0.0.0/24这里成了24位,不是我们想象中的8位了,这是因为,如果接口启用水平分割、毒性发转,则不进行汇总,除非使用 “summary always”命令。如果你想开启水平分割又想路由汇总你只能这样:</p>

[AR2]rip
[AR2-rip-1]summary always 

<p>这样每个路由器执行以下哟。这个时候你再查看就会发现已经自动汇总了。而且AR2上面那些来自AR1的22位掩码的路由表也都有了,这是因为RIPv2支持VLSM。</p>
<p></p>
<!-- /wp:tadv/classic-paragraph -->

<!-- wp:tadv/classic-paragraph -->

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

<!-- /wp:tadv/classic-paragraph -->

<!-- wp:paragraph -->
<p>然后看AR3的路由表:</p>
<!-- /wp:paragraph -->

<!-- wp:tadv/classic-paragraph -->
<p></p>
<!-- /wp:tadv/classic-paragraph -->

<!-- wp:paragraph -->
<p>就会发现这是一个汇总的路由表,现在我们来关闭这些汇总。在AR1上:</p>
<!-- /wp:paragraph -->

<!-- wp:tadv/classic-paragraph -->

[AR1-rip-1]undo  summary
<p>其它两个同理,不赘述了,我们关闭了之后现在在AR3上面看到的应该就是明细的路由了,我们看看:</p> <p></p> <!-- /wp:tadv/classic-paragraph --> <!-- wp:paragraph --> <p>其实路由表里面条目太多了也不好,因为这种可以汇总的路由存在的太多就会导致条目繁多,占资源,但是我们又不想全局都进行汇总,于是就有了在接口下进行路由汇总(聚合),这种方式被称之为手工的自动汇总;</p> <!-- /wp:paragraph --> <!-- wp:tadv/classic-paragraph --> <h1>RIP-2路由聚合</h1> <!-- /wp:tadv/classic-paragraph --> <!-- wp:tadv/classic-paragraph --> <h2>路由聚合有两种方式。基于RIP进程的有类聚合:</h2>
  • 聚合后的路由使用自然掩码的路由形式发布。比如,对于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)这两条路由,可以在指定接口上

<!-- /wp:tadv/classic-paragraph -->

<!-- wp:paragraph -->
<p>现在我们以这个图为例子,将左边这5条172的路由表汇总成一条,但是我们不想要它变成16位的。我们来观察一下:</p>
<!-- /wp:paragraph -->

<!-- wp:tadv/classic-paragraph -->
<p></p>
<!-- /wp:tadv/classic-paragraph -->

<!-- wp:paragraph -->
<p>现在在AR2的G0/0/01 接口下配置:</p>
<!-- /wp:paragraph -->

<!-- wp:tadv/classic-paragraph -->

[AR2-GigabitEthernet0/0/1]rip summary-address 172.16.0.0 255.255.240.0
<p>然后我们在AR3上查看就是:</p> <p></p> <!-- /wp:tadv/classic-paragraph --> <!-- wp:paragraph --> <p>然后我们看看抓包(在AR2的G0/0/01接口上):</p> <!-- /wp:paragraph --> <!-- wp:tadv/classic-paragraph --> <p></p> <!-- /wp:tadv/classic-paragraph --> <!-- wp:paragraph --> <p>可以看到那些明细的路由表都变成了16跳不可达的,然后汇总的成了1,然后掩码也是20位的。这就是关于汇总的问题,看起来不复杂,但是在实际中如果拓扑图很大,就容易翻车</p> <!-- /wp:paragraph --> <!-- wp:paragraph --> <p>好了如果觉得本文对你有帮助的话,请点赞打赏支持一下吧!!</p> <!-- /wp:paragraph -->
最后修改:2020 年 02 月 28 日 06 : 51 PM
请俺喝杯咖啡呗