EIGRP基本配置

命令:

R1(config)#router eigrp 1        //启动EIGRP进程,进程号为1

R1(config-router)#network 172.31.1.0 0.0.0.255        //通告172.31.1.0/24网段

R1(config-router)#auto-summary        //启用自动汇总(默认启用)

EIRGP配置实验

R1(config)#router eigrp 1

R1(config-router)#network 172.31.1.0 0.0.0.255

R1(config-router)#network 172.31.12.0 0.0.0.3

R1(config-router)#auto-summary

R2(config)#router eigrp 1

R2(config-router)#network 172.31.0.0

R2(config-router)#network 172.16.0.0

R3(config)#router eigrp 1

R3(config-router)#network 172.16.0.0

R4(config)#router eigrp 1

R4(config-router)#network 172.16.0.0

说明:

1.“R1(config)#router eigrp autonomous-system”的作用是用来启动EIGRP的路由进程。参数“autonomous-

  system”由管理员选择,取值范围在1-65535之间。尽管EIGRP将进程ID称为“自治系统”ID,它实际上起进程

  ID的作用,与ISP的自治系统ID无关。EIGRP路由域内的所有路由器都必须使用相同的进程ID号。

2.“R1(config-router)#network network_number”通告直连网段,匹配的接口都将被启用EIGRP。诸如通告

  “172.31.0.0”等有类网络地址时,该路由器上于该有类网络地址的所有接口都将启用EIGRP。有时管理员

  并不想为所有接口启用EIGRP,仅想通告某些特定子网,这时可以使用“wildcard-mask”(通配符掩码)选项

  与“network”命令一起使用,通配符掩码是用广播地址(255.255.255.255)减去子网掩码得到的。例如:

  “R1(confg-router)#172.31.12.0 0.0.0.3”。在高版本的IOS中,通配符掩码也支持网络掩码的写法,如:

  “R1(confg-router)#172.31.12.0 255.255.255.252”。

3.“R1(config-router)#auto-summary”启用自动汇总,EIGRP默认开启有类网络边界自动汇总,但是只对本地

  产生的路由进行自动汇总,对于穿越本路由器的路由条目,EIGRP不能自动汇总,这一点和RIP不同。

R2#show ip rotue        //查看路由表

EIRGP配置实验

术语:

1级路由:指子网掩码等于或小于网络地址有类掩码的路由条。如:192.168.1.0/24属于1级网络路由,因为它

   的子网掩码等于网络有类掩码。1级路由可以是:

   ① 默认路由:是指地址为0.0.0.0/0的静态路由,或者路由代码后紧跟“*”的路由条目。

   ② 超网路由:是指掩码小于有类掩码的网络地址。

   ③ 网络路由:是指子网掩码等于有类掩码的路由。网络路由也可以是父路由。

最终路由:指路由条目中包含下一跳IP地址或送出接口的路由。

1级父路由:指路由条目中不包含任何网络的下一跳IP地址或送出接口的网络路由。父路由实际上是表示存在2

   级路由的一个标题,2级路由也称为子路由。只要向路由表中添加一个子网,就会在路由表中自动创建1级父

   路由。

2级路由:指有类网络地址的子网路由,2级路由也称为子路由,2级路由的来源可以是直连网络、静态路由或动

   态路由协议。2级子路由也属于最终路由,因为2级路由包含下一跳IP地址或送出接口。
指向Null0接口的汇总路由

以上输出包含两条指向Null0接口的汇总路由,Null0接口实际上不存在。默认情况下,EIGRP使用Null0接口来丢弃与主类网络路由条目匹配但与该主类下所有子网路由都不匹配的数据包。

说明:EIGRP向路由表中自动加入一条Null0总结路由的条件必须同时满足下面三点:

① 至少有两个不同主类的网络在EIGRP进程中通告;

② 每个主类网络通过EIGRP至少发现了一个子网;

③ EIGRP进程中启用了自动汇总,或接口下执行了手动汇总。如果关闭自动汇总,则Null0汇总路由将被删除。

EIGRP度量值的计算

EIGRP度量值计算公式

= [K1×Bandwidth + K2×Bandwidth/(256 - Load) + K3×Delay] + [K5/(Reliability + K4)]×256

Bandwidth = [10^7/传递路由条目所经由链路中入口带宽(单位:kbps)的最小值]×256

Delay = [传递路由条目所经由链路中入口的延迟之和(单位:μs)/10]×256

EIGRP度量值计算公式又

= [K1×10^7/mixBW + K2×10^7/mixBW×(256 - Load) + K3×sumDelay/10 + K5/(Reliability + K4)]×256

默认情况下,K1 = K3 =1,K2 = K4 = K5 = 0。

= (10^7/mixBandwidth + sumDelay/10)×256

可以通过“R2#show interface s0/0”查看 Bandwidth 和 Delay;

“R2(config-if)#bandwidth 2000 //单位kb/s,R2(config-if)#delay 20000 //单位μs”设置带宽和延迟。

说明:默认情况下,EIGRP会使用不超过50%的接口带宽来传输EIGRP数据。这可以避免因EIGRP进程过度占用链路带宽而使得路由正常数据流量所需的带宽不足。配置接口上可供EIGRP使用的带宽百分百命令如下:

R1(config-if)#ip bandwidth-percent eigrp 1 50  //该接口传输EIGRP 1 的数据带宽不超过总带宽的50%

最长匹配原则:

1.路由器会查找1级路由(包括网络路由和超网路由),查找与IP数据包的目的地址最匹配的路由;

2.如果最佳匹配的路由是1级最终路由,则会使用该路由转发数据包;

3.如果最佳匹配的路由是1级父路由,则路由器检查该父路由的子路由,以找到最佳匹配的路由;

4.如果在2级路由中存在匹配的路由,则会使用该子路由转发数据包;

5.如果所有的2级子路由都不符合匹配条件,则判断路由器当前执行的是有类路由行为还是无类路由行为?;

6.如果执行的是有类路由行为,则会终止查找过程并丢弃数据包;

7.如果执行的是无类路由行为,则继续在路由表中搜索1级超网路由或默认路由以寻找匹配条目;

8.如果此时存在匹配位数相对较少的1级超网路由或默认路由,那么路由器会使用该路由转发数据包;

9.如果路由表中没有匹配的路由,则路由器会丢弃数据包。

说明:上述步骤进行到第5步时,路由器执行的有类路由行为或无类路由行为会影响到路由表的查找。可以通过命令:“R1(config)#ip classless”来配置无类路由行为,或通过命令:“R1(config)#no ip classless”来配置有类路由行为。在IOS 11.3和以后版本中,默认启用“ip classless”即执行无类路由查找。

注意:有类和无类路由行为不同于有类和无类路由协议,有类和无类路由协议影响路由表的填充方式,而有类和无类路由行为则确定在填充路由表后如何搜索路由表。

R2#show ip protocols        //查看启用的IP路由协议

EIRGP配置实验

R2#show ip eigrp neighbors        //查看EIGRP邻居信息

EIRGP配置实验
以上输出表明路由器R2有3个邻居。

运行EIGRP路由协议的路由器不能建立邻居关系的可能原因是:

1.EIGRP进程的AS号码不同;

2.计算度量值的K值不同,修改K值命令:

R2(config-router)#metric weights tos K1 K2 K3 K4 K5
R2#show ip eigrp topology        //查看EIGRP拓扑结构数据库

EIRGP配置实验

术语:

可行距离(FD):到达一个目的网络的最小度量值;

通告距离(AD):邻居路由器所通告的它自己到达目的网络的最小的度量值;

可行条件(FC):是EIGRP路由器更新路由表和拓扑表的依据,可行条件可以有效地阻止路由环路,实现路由的快

   速收敛,可行条件的公式为:FC = AD < FD。

后继(S):是一个邻居路由器,通过它到达目的网络的路由最优;

可行后继(FS):是一个邻居路由器,但是通过它到达目的地的度量值比其它路由器高,而且它的通告距离小于

   通过后继路由器到达目的网络的可行距离,即满足FC,因而被保存在拓扑表中,用作备份路由。

R2#show ip eigrp interfaces        //查看运行EIGRP路由协议的接口状况EIRGP配置实验

R2#show ip eigrp traffic        //查看EIGRP发送和接收到的数据包的统计情况EIRGP配置实验

R2#debug eigrp neighbors        //动态地查看EIGRP邻居关系的情况

在路由器R2上先将s0/0接口shutdown,然后再no shutdown,可以看到EIGRP邻居建立的过程。
EIRGP配置实验
R2#debug eigrp packets        //动态地显示EIGRP发送和接收到的数据包
EIRGP配置实验
术语:

在EIGRP中,有如下5种类型的数据包。

Hello:以组播的方式定期发送,用于建立和维持邻居关系。在大多数网络中,每5s发送一次EIGRP Hello数据

   包。在NBMA(非广播多路访问)网络上,每60s发送一次Hello数据包。保持时间用于告诉路由器在宣告邻居无

   法到达前应等待设备发送下一个Hello的最长时间。默认情况下,保持时间是Hello间隔时间的3倍,即在大多

   数网络上为15s,在低速NBMA网络上则为180s。保持时间截止后,EIGRP将宣告路由发生故障,而DUALL将通过

   发出查询来寻找新路径。可以通过如下的命令修改Hello发送间隔和保持时间:

   R1(config-if)#ip hello-interval eigrp 1 10        //设置EIGRP 1 的Hello数据包发送间隔为10s

   R1(config-if)#ip hold-time eigrp 1 30        //设置EIGRP 1 的保持时间为30s
更新:当路由器收到某个邻居路由器的第一个Hello包时,以单播传送方式回送一个包含它所知道的路由信息的

   更新包;当路由信息发生变化时,以组播方式发送只包含变化路由信息的更新包。

查询:当一条链路失效,路由器重新进行路由计算,但在拓扑表中没有可行的后继路由时,路由器就以组播的方

   式向它的邻居发送一个查询包,以询问它们是否有一条到目的地的后继路由器。

答复:以单播的方式回传给查询方,对查询数据包进行应答。

确认:以单播的方式传送,用来确认更新、查询和答复数据包。

 

EIGRP负载均衡

命令:

R4(config-router)#variance 2

R4(config-if)#delay 2000

R4(config-if)#bandwidth 100000

EIRGP配置实验

R1(config)#router eigrp 1

R1(config-router)#network 172.16.12.0 0.0.0.255

R1(config-router)#network 172.16.14.0 0.0.0.255

R1(config-router)#no auto-summary

R2(config)#router eigrp 1

R2(config-router)#network 172.16.2.0 0.0.0.255

R2(config-router)#network 172.16.12.0 0.0.0.255

R2(config-router)#network 172.16.23.0 0.0.0.255

R2(config-router)#no auto-summary

R3(config)#router eigrp 1

R3(config-router)#network 172.16.23.0 0.0.0.255

R3(config-router)#network 172.16.34.0 0.0.0.255

R3(config-router)#no auto-summary

R4config)#router eigrp 1

R4config-router)#network 172.16.4.0 0.0.0.255

R4config-router)#network 172.16.14 0.0.0.255

R4config-router)#network 172.16.34 0.0.0.255

R4config-router)#no auto-summary
实验调试

路由器R4到路由器R2的Loopback0网络有两条路径,但是路由器会将FD最小的放入路由表,选择走F1/0接口。

查看路由表:

EIRGP配置实验

查看拓扑表:
EIRGP配置实验
第二条路径选择S0/0接口的AD为“2297856”,而最优路由(选择F0/0接口)的FD为“2300416”,AD < FD,满足可行性条件 FC,所以第二条路径(选择S0/0接口)是最优路由(选择F0/0接口)的可行后继。

说明:如果不满足FC条件的路由条目在拓扑表中是看不到的,可以通过如下命令看到:

R4#show ip eigrp topology all-links
EIRGP配置实验
非等价负载均衡:

R4(config)#router eigrp 1

R4(config-router)#variance 2
算法:
FD(FS)/FD(S)取整 + 1,即要实现非等价负载均衡的路由的FD除以后继路由的FD,得数取整数后加1。

例如: 2809856 ÷ 2300416 取整= 1,1 + 1 = 2。EIRGP配置实验

以上输出表明路由器R4到“172.16.2.0”网络有两条路径可达,但是它们的度量值不同,这就是非等价负载均衡。两条链路按照链路的度量值的倍数分配数据包实现负载均衡。即使路由表中有其它的非等价路径的配置,如果只想选择最佳的路由转发数据包,可以进行如下配置:

R4(config-router)#traffic-share min across-interfaces

说明:只选择最佳路由转发需要关闭cef。
等价负载均衡:

根据EIGRP度量值计算公式,这两条路径的最小带宽是相同的,只要他们的延迟之和相同,就能实现等价路由。

R4(config)#int f1/0

R4(config-if)#delay 2000EIRGP配置实验


EIGRP路由汇总和EIGRP认证

命令:

R1(config)#key chain ccnp        //配置钥匙链

R1(config-keychain)#key 1        //配置KEY ID

R1(config-keychain-key)#key-string cisco        //配置KEY ID的密匙

R1(config-if)#ip authentication mode eigrp 1 md5        //配置认证模式为MD5

R1(config-if)#ip authentication key-chain eigrp 1 ccnp        //在接口调用钥匙链

R4(config-if)#ip summar-address eigrp 1 172.16.0.0 255.255.252.0        //配置汇总路由EIRGP配置实验

R1(config)#key chain ccnp

R1(config-keychain)#key 1

R1(config-keychain-key)#key-string cisco

R1(config)#int s0/0

R1(config-if)#ip authentication mode eigrp 1 md5

R1(config-if)#ip authentication key-chain eigrp 1 ccnp

R1(config)#router eigrp 1

R1(config-router)#network 172.16.12.0 0.0.0.255

R1(config-router)#no auto-summary

R2(config)#key chain ccnp

R2(config-keychain)#key 1

R2(config-keychain-key)#key-string cisco

R2(config)#int s0/0

R2(config-if)#ip authentication mode eigrp 1 md5

R2(config-if)#ip authentication key-chain eigrp 1 ccnp

R2(config)#int s0/1

R2(config-if)#ip authentication mode eigrp 1 md5

R2(config-if)#ip authentication key-chain eigrp 1 ccnp

R2(config)#router eigrp 1

R2(config-router)#network 172.16.12.0 0.0.0.255

R2(config-router)#network 172.16.23.0 0.0.0.255

R2(config-router)#no auto-summary

R3(config)#key chain ccnp

R3(config-keychain)#key 1

R3(config-keychain-key)#key-string cisco

R3(config)#int s0/0

R3(config-if)#ip authentication mode eigrp 1 md5

R3(config-if)#ip authentication key-chain eigrp 1 ccnp

R3(config)#int s0/1

R3(config-if)#ip authentication mode eigrp 1 md5

R3(config-if)#ip authentication key-chain eigrp 1 ccnp

R3(config)#router eigrp 1

R3(config-router)#network 172.16.23.0 0.0.0.255

R3(config-router)#network 172.16.34.0 0.0.0.255

R3(config-router)#no auto-summary

R4(config)#key chain ccnp

R4(config-keychain)#key 1

R4(config-keychain-key)#key-string cisco

R4(config)#int s0/0

R4(config-if)#ip authentication mode eigrp 1 md5

R4(config-if)#ip authentication key-chain eigrp 1 ccnp

R4(config-if)#ip summar-address eigrp 1 172.16.0.0 255.255.252.0

R4(config)#router eigrp 1

R4(config-router)#network 172.16.0.0 0.0.3.255

R4(config-router)#network 172.16.34.0 0.0.0.255

R4(config-router)#no auto-summary

路由汇总调试

路由器R3上只收到了被总结的路由条目“172.16.0.0/22”,没有收到明细路由。EIRGP配置实验

说明:总结路由的度量值是学到的明细路由度量值中最小的。

注意:当总结的明细路由全部down掉以后,汇总路由才自动从路由表里被删除,从而可以有效避免路由抖动。

路由器R4执行手动汇总后,在自己路由表中产生了一条指向“Null0”的EIGRP路由,目的是为了防止路由环路。EIRGP配置实验

注意:EIGRP既支持路由汇总又支持CIDR汇总(这一点和RIPv2是不相同的)!

认证信息调试

调试在R2和R3之间串行链路的EIGRP认证信息。

R2认证配置正确,R3配置有误,在R3上开启debug命令:

R3#debug eigrp packets        //抓取所有EIGRP数据包EIRGP配置实验


默认路由再发布

EIRGP配置实验

实验基本配置:

R1(config)#router eigrp 1

R1(config-router)#network 172.16.12.0 0.0.0.255

R1(config-router)#no auto-summary

R2(config)#router eigrp 1

R2(config-router)#network 172.16.12.0 0.0.0.255

R2(config-router)#network 172.16.23.0 0.0.0.255

R2(config-router)#no auto-summary

R3(config)#router eigrp 1

R3(config-router)#network 172.16.23.0 0.0.0.255

R3(config-router)#no auto-summary

R4(config)#ip rotue 172.16.0.0 255.255.0.0 s0/0

再发布默认路由一:(本地:直连默认路由 C*,静态默认路由 S*;其它:通告缺省默认路由 D*)

命令:

R3(config)#router eigrp 1

R3(config-router)#network 192.168.34.0        //通告要发布的默认网络

R3(config)#ip default-network 192.168.34.0        //指定本地的默认网络,并再发布默认路由

R3(config)#ip route 0.0.0.0 0.0.0.0 s0/0 192.168.34.4        //添加静态默认路由

“ip default-network”命令说明:

①该命令后面的网络必须被“network”进行通告,这点和RIP不同(RIP没有要求);

②该命令后面的网络一定要是主类网络;

③该命令后面的主类网络一定要在路由表中,即可以是直连的或者通过其它路由协议学习到的网络。

  1>可以通过“auto-summary”启用自动汇总,或ip route 192.168.34.0 255.255.255.0 null 0来添加;

  2>也可以通过ip route 192.168.34.0 255.255.255.0 s0/0或其它方法来添加。

实验调试

查看R3、R2的路由表:

EIRGP配置实验

“default-information”控制“ip default-network”产生的默认路由的接收和发送

如果不想让路由器R1和路由器R2接收到默认路由,可以通过命令:“default-information”来控制由

“ip default-network”产生的默认路由的接收和发送。

R3(config)#router eigrp 1

R3(config-router)#no default-information out        //拒绝发送默认路由

R2(config)#router eigrp 1

R2(config-router)#no default-information in       //拒绝接收默认路由

EIRGP配置实验

以上输出表明路由器R2和R1没有接收到带“*”的默认路由,而只是接收到了EIGRP的普通路由条目

“D 192.168.34.0/24”,这是因为在路由器R3使用了“network”命令通告了该网络。此时在路由器R1和R2上是不能ping通路由器R4的环回接口地址的。

再发布静态路由二:(本地:静态默认路由 S*;其它:通告缺省默认外部路由 D*EX)

命令:

R3(config)#ip route 0.0.0.0 0.0.0.0 s0/0 192.168.34.4        //添加静态默认路由

R3(config)#router eigrp 1

R3(config-router)#redistribute static        //再发布添加的静态默认路由

EIRGP配置实验
以上输出表明通过再发布静态默认路由也可以向EIGRP网络注入默认路由,默认路由的表示方式是“0.0.0.0”,这一点和“ip default-network”命令产生的默认路由的表示方式是不一样的。

说明:“D*EX”中的EX表示该路由是通过再发布进入EIGRP网络的。