TCPIP卷一(11):EIGRP的汇总、stub、leak-map参数

说明

关于EIGRP stub后面还有许多参数,并且还有许多features,只有明白了这些参数的意思,后续设计stub区域的时候,才不会困惑,并且对于EIGRP还有汇总,EIGRP的汇总是我最喜欢的特性了,可以随时随地的进行汇总,leak-map可能是比较陌生的参数了,我习惯称为路由泄露,也是EIGRP的一个很大的改进。

案例分析一:Stub区域参数的应用

TCPIP卷一(11):EIGRP的汇总、stub、leak-map参数

地址信息如图所示,整个环境处于EIGRP,但是,A处于分支机构,设置为stub区域,避免不必要的查询,B和C为Center,主要研究stub参数的应用。

A(config)#router eigrp 1
A(config-router)#network 0.0.0.0 0.0.0.0
A(config-router)#eigrp stub

B(config)#router eigrp 1
B(config-router)#network 0.0.0.0 0.0.0.0

C(config)#router eigrp 1
C(config-router)#network 0.0.0.0 0.0.0.0

D(config)#router eigrp 1
D(config-router)#network 0.0.0.0 0.0.0.0
(这里我宣告以一个偷懒的方式了,全部宣告进EIGRP里面)

TCPIP卷一(11):EIGRP的汇总、stub、leak-map参数

关于stub的参数有6种,默认情况下处于connected 和 summary。

一、Default 参数

TCPIP卷一(11):EIGRP的汇总、stub、leak-map参数

可以看到 show run里面默认是conected 和 summary的

TCPIP卷一(11):EIGRP的汇总、stub、leak-map参数

这时候在D上面查看路由发现只有关于A本身的路由,这是因为stub的参数是conteced的含义,只发送自身直连的路由信息,默认还有个summary,也就是说如果这时候A上面还有个汇总路由的话,那么它也会被D学习到。

A(config)#int f0/1
A(config-if)#ip summary-address eigrp 1 23.0.0.0 240.0.0.0
这时候在A上面进行汇总,查看D路由器路由表的情况

TCPIP卷一(11):EIGRP的汇总、stub、leak-map参数

这时候D路由器上面就有条汇总路由了,至于为什么是16,这是因为子网掩码导致的。

这里强调下关于stub参数的含义,只是针对stub本身路由来说的,也就是说只有当stub路由器本身的直连 或者自身的汇总路由才会发送给邻居。

二、Redistribute 和 static

第二组参数就是Redistribute和static了,这两组参数是可以组合的。

TCPIP卷一(11):EIGRP的汇总、stub、leak-map参数

这时候在A上面添加了一个静态路由,那么D是否能收到这条路由呢?

TCPIP卷一(11):EIGRP的汇总、stub、leak-map参数

这时候D并没有关于静态路由的学习,这是为什么呢?

分析:这条静态路由在A上面是独立存在的,它并不是属于任何协议中,对于EIRP来说,它只会宣告在它EIGRP进程中学习到的静态路由才会发送给邻居,那么这个就必须把这条静态路由重分布进EIGRP中。

A(config)#router eigrp 1
A(config-router)#redistribute static

TCPIP卷一(11):EIGRP的汇总、stub、leak-map参数

这时候关于3.3.3.3的路由就被学习到了,关于redistribute也一样,只要是在A上面进行重分布进来的路由信息都会传递给邻居。

三、received-only

A(config)#router eigrp 1
A(config-router)#eigrp stub receive-only

对于receive-only来说非常好理解,就是说stub路由器只接收路由,而不转发任何路由信息给其他邻居路由器,所以,它和其他参数是冲突的。

四、leak-map

TCPIP卷一(11):EIGRP的汇总、stub、leak-map参数

在这么个环境下,总部通过下放默认路由来引入分部的流量走总部,而分部的流量以一个汇总条目给总部,这样对于之前提到过的参数是不好实现的,这时候Cisco提出了leak-map的参数,泄露的意思,我们看怎么实现这个效果。

C(config)#ip route 0.0.0.0 0.0.0.0 null 0
C(config)#router eigrp 1
C(config-router)#redistribute static

在总部路由器上下放一条默认路由,让B、和A都能学习到,这时候由于A是末节区域,它不会传递给D。

TCPIP卷一(11):EIGRP的汇总、stub、leak-map参数

这时候是学习到关于默认路由信息了。

TCPIP卷一(11):EIGRP的汇总、stub、leak-map参数

这时候D是没有这条路由信息的。

A(config)#access-list 1 permit 0.0.0.0 0.0.0.0
A(config)#route-map stub permit 10
A(config-route-map)#match ip address 1

A(config)#router eigrp 1
A(config-router)#eigrp stub leak-map stub

TCPIP卷一(11):EIGRP的汇总、stub、leak-map参数

这时候,完全可以看到D路由器上只有一条默认路由,这对于分支来说是够了的,它就只需要去往总部的流量引入即可。
那么分支有去总部的流量了,但是总部没有返回的流量,我们因该怎么设计的好呢。

TCPIP卷一(11):EIGRP的汇总、stub、leak-map参数

这时候,我们完全可以在A路由器上汇总分支网络的路由,也就是实际通讯网络的条目即可,比如192.168.0.0/16网段,而中间经过路由器的网段则不需要知道,因为总部只需要知道怎么去往实际通讯流量即可,中间路由器有每个细节的路由,知道怎么去转发。

A(config-router)#eigrp stub summary leak-map stub 这时候可以这样组合即可

关于EIGRP Stub区域的应用就说到这,这是卷一提及比较少的部分,我也只是入门而已,还有许多的功能可以应用,根据实际情况来考虑即可。

案例分析二:EIGRP的路由汇总

我喜欢EIGRP这个协议的另外一个原因就是可以随时随地的进行汇总,它不像OSPF一样,必须在ABR或者ASBR上面才能汇总,这使得我在部署***的时候,Center做汇总非常好,而EIGRP则很好的实现了。

自动汇总:对于EIGRP来说,在低版本IOS上面是开启了自动汇总的,但是,在15.0的IOS中是关闭的,并且自动汇总在现网中有许多的弊端,我们通常需要手工进行汇总,这样既精确又不会出现路由环路或者次优路径问题。

关闭命令很简单,no auto-summary ,另外,注意一个特性就是EIGRP的自动汇总只会汇总自身宣告的路由,而不会改变邻居传递的路由信息。

我们做汇总信息,尽量是靠源来做,因为这样更加能节约中间路由器的资源,当然有些时候需要根据环境来定义,而不是盲目的根据这个原则来。

TCPIP卷一(11):EIGRP的汇总、stub、leak-map参数

地址信息如图,A去往3.3.3.0网段有两条路径可以去往,并且在A上面实现了负载均衡的效果,这时候需要在B和D做汇总,在A上面看到的为3.3.3.0/24的条目,并且负载均衡

A(config)#router eigrp 1
A(config-router)#no auto-summary
A(config-router)#network 0.0.0.0

B(config)#router eigrp 1
B(config-router)#no auto-summary
B(config-router)#network 0.0.0.0

D(config)#router eigrp 1
D(config-router)#network 0.0.0.0
D(config-router)#no auto-summary

C(config)#router eigrp 1
C(config-router)#no auto-summary
C(config-router)#network 0.0.0.0 0.0.0.0

TCPIP卷一(11):EIGRP的汇总、stub、leak-map参数

可以看到关于3.3.3.0网段的全部负载均衡了,但是对于如果一个庞大的路由表来说,对于路由器的内存和查表的速度会大大降低,所以,我们可以进行路由汇总,另外路由汇总的一个好处就是隐藏不稳定的网络,假设一个路由条目老出现翻动的话,那么对于CPU影响是非常大的,而对于汇总后的路由,则不会出现这个情况。

这时候在B和D上面进行路由汇总

B(config)#int f0/0
B(config-if)#ip summary-address eigrp 1 3.3.3.0 255.255.255.0

D(config)#int f0/1
D(config-if)#ip summary-address eigrp 1 3.3.3.0 255.255.255.0

TCPIP卷一(11):EIGRP的汇总、stub、leak-map参数

这时候就进行汇总了,对于A路由器上来说,只有出现了一个路由条目信息。

汇总后的其他特性

TCPIP卷一(11):EIGRP的汇总、stub、leak-map参数

可以看到在汇总的路由器上出现了一个汇总条目指向 null0的路由,为什么对于EIGRP来说,会产生这么个路由条目呢,并且它的AD值是5,而RIP却不会产生,这就是高级路由协议的特性,自动产生一个指向null0接口的汇总路由,目的就是防止环路。

TCPIP卷一(11):EIGRP的汇总、stub、leak-map参数

可以看到distance 为5。

总结: 

1、当自动汇总开启的时候,本地会自动产生一个主类网络指向Null0接口
2、当做手动汇总一定在路由出方向做,会自动产生一条汇总路由信息指向Null0接口,为了防止环路。
3、当明细路由一直存在,那么汇总路由就不会消失
4、Metric选取明细路由中最小的一条。
5、汇总路由的Metric为5,本地有效, 作用是为了防止环路的产生
6、 汇总的好处:1、隐藏网络的不稳定性 2、节约路由表体积,减少链路资源消耗


关于EIGR leak-map在EIGRP汇总中的使用

TCPIP卷一(11):EIGRP的汇总、stub、leak-map参数

假设有这么种情况,希望A访问单数网段的时候走D路径,可能它们是服务器需要防火墙检测流量是否合法,而双数则走B路径。这时候,汇总后EIGRP提供了一个特性,也是路由泄露,把一些特殊情况需要知道明细路由,告诉给A。

B(config)#access-list 1 permit 3.3.3.0 0.0.0.254
B(config)#route-map stub permit 10
B(config-route-map)#match ip address 1

B(config)#int f0/0
B(config-if)#ip summary-address eigrp 1 3.3.3.0 255.255.255.0 leak-map stub

D(config)#access-list 1 permit 3.3.3.1 0.0.0.254
D(config)#route-map stub permit 10
D(config-route-map)#match ip address 1

D(config)#interface f0/1
D(config-if)#ip summary-address eigrp 1 3.3.3.0 255.255.255.0 leak-map stub

TCPIP卷一(11):EIGRP的汇总、stub、leak-map参数

可以看到关于 3.3.3.1、3、5走的都是10.1.1.2,也就是有防火墙的地方,而 2、4走到都是12.1.1.2,关于ACL的写法,这是IE的一个考点,也就是匹配奇数和偶数的路由。

总结:这次详细介绍了关于EIGRP的leak-map、stub和汇总路由的特性,这些都是工作中特别重要的,关于leak-map对于一些特殊需求的时候,还是非常有用的。

本文首发于公众号:网络之路博客

上一篇:从零开始学数据结构和算法:java工程师就业方向


下一篇:Java字符串数组输入赋值,附高频面试题合集