EIGRP
是思科私有协议,是一个距离矢量路由协议。
EIGRP
可以支持的协议有
IP
、
IPX
、
AppleTalk
。
EIGRP
的流量使用
IP
协议号
88.
EIGRP
内部的管理距离为
90
,从外部重分布进
EIGRP
的管理距离为
170.
EIGRP
使用
DUAL
算法来计算到达目的网络的最佳路径
。
EIGRP
使用
AS
区域的概念,不同区域的
EIGRP
是不能相互传递路由信息的。
AS
是基于接口定义的。
EIGRP
最大支持
255
跳,默认情况下为
100
跳。
EIGRP
支持
CIDR
和
VLSM
,默认也会自动汇总路由,该功能可以手工关闭;
EIGRP
支持手动汇总路由,且手动汇总没有任何限制,可以汇总到任意掩码长度。
EIGRP
支持认证且只支持
MD5
认证。可以使用
offset list
修改路由的
metric
,只可增加不可减少。
EIGRP
采用增量更新,只有路由有变化时,才会发送周期,并且只发送有变化的路由信息。
EIGRP
支持非等价负载均衡,默认为
4
条,最多支持
6
条。
EIGRP metric
EIGRP
的度量值分别为带宽、延迟、可靠性、负载、最大传输单元,这
5
个参数分别使用
K1/K2
、
K3
、
K4
、
K5
来表示,默认情况下,
K1=K3=1
,
K2=K4=K5=0
EIGRP
在计算度量值时,只需要计算从源到目的的最低带宽、延迟要各个接口的延迟之和。
公式中的带宽为
10000000
除以最小带宽,单位为
kbits
,延迟为所有延迟和除以
10
,单位是
ms
。
EIGRP
邻居
EIGRP
只会向自己的邻居以单播的形式发送路由表,也就是说
EIGPR
间要交换路由表,必须先建立邻居关系。
EIGRP
间的邻居关系通过发送
HELLO
包来发现和维护。
路由器上
启动
EIGRP
后,会使用
224.0.0.10
在相应接口上发送
HELLO
包,
EIGRP
会使用一张单独的表记录哪些路由器是自己的邻居,称为邻居表。只要收到
HELLO
包,便
将对方列为自己的邻居,并且写入邻居表,
EIGRP
会将邻居的地址写在
HELLO
包中。
EIGRP
断开或者进程关闭时,会发送
goodbye message
消息结束邻居关系。
EIGRP
会由于链路的不同,发送
HELLO
包的间隔也会不同:
60S
:所有带宽低于
1.544M
5S
:所有带宽大于
1.544M
邻居的
hold time
是
HELLO
包时间的
3
倍。
EIGRP
双方
HELLO
和
HOLD TIME
时间不一致,同样可以建立邻居。
EIGRP
不能使用
secondary
地址建立邻居,所有
EIGRP
数据包的源地址总是
primary
地址。
EIGRP
邻居建立的条件:
1、
双方在相同的
AS
2、
双方
HELLO
包正常,即双方接口
primary
地址是同一段
3、
双方计算度量值的方法相同,即
K
值取值相同
EIGPR
数据包
1.
HELLO
用来发现邻居和维护邻居关系,目标地址为
224.0.0.10
,
HELLO
包在邻居收到后不需要确认
2.
UPDATE
邻居建立后,
EIGRP
路由器发给邻居的路由表,以单播的方式发送,且需要邻居的确认
3.
QUERY
当路由丢失且没有备用路由时,向邻居发送
QUERY
消息,邻居必须回复
4.
REPLY
邻居对
QUERY
数据包的回复,也需要邻居的确认。
5.
ACK
所使用的确认数据包。
EIGRP
运行过程:
1、
双方路由器运行
EIGRP
,并发送
HELLO
包
2、
当路由器
B
收到
A
的
HELLO
包时,将
A
列入自己的邻居表,并向
A
发送
UPDATE
消息,也就是向
A
发送自己的路由表
3、
当路由器
A
收到
B
的
UPDATE
消息后,会发送
ACK
消息以确认收到
A
的
UPDATE
消息,然后
A
再向
B
发送自己的
UPDATE
。
4、
B
在收到
A
的
UPDATE
消息时,会返回
ACK
消息确认已经收到
5、
A
和
B
将收到的
UPDATE
放入到自己的拓扑数据库,并使用
DUAL
算法计算到达各个网段的最优路径
。
EIGRP
拓扑
当
EIGRP
从邻居处收到路由信息后,会将其放入到拓扑数据库中,然后使用
DUAL
算法计算到达各个目的地的最优路径存入路由表,不是最优的路由则放入拓扑数据库中,当最优路径失效时,便从拓扑数据库中查找备用路由继续放入路由表中使用。
RD
:邻居到达目的地的度量值
FD
:被放入路由表的最优路径被称为
FD
FS
:留在拓扑数据库的备用路径称为
FS
Successor:
到达目的地最优路径的下一跳被称为
successor.
FC
:可行性条件,邻居通告的
RD
必须小于
FD
,这样的邻居路径才会被放入到拓扑数据库中。
在上图中,
R1
为源,
R2
、
R3
向
R1
通告自己到达目的地的度量值被称为
RD
,而
R1
本身到达目的地的度量值称为
FD
;如果
R1
最后选择
R2
到达目的地,那么
R2
被称为
successor
。,那么
R3
也就是备用路径,那么
R3
被
称为
FS
。
FC
是一个条件,并不是所有的非最优路径都可以放入到拓扑数据库中,只有满足
FC
条件时,才会被放入到拓扑数据库中。
EIGRP
负载均衡
EIGRP
支持非等价负载均衡,默认为
4
条,最多
6
条。
并不是所有的备用路径都可以执行非等价负载均衡,这是靠度量值的大小决定的,只有度量值的大小在
FD
的
variance
倍数内的备用链路才有资格执行非等价负载均衡。
Variance
默认取值为
1
。
可以通过配置
traffic-share balanced
命令设置链路好的传递相对多的数据包,链路次的传递相对少的数据,默认为开启状态。
EIGRP SIA
EIGRP
中正常的路由称为
passive route
。
当路由表中最优路径丢失后,而拓扑数据库又没有备用链路时,
EIGRP
会向所有的邻居发送
QUERY
消息,试图查询邻居是否有到达目的地的路由信息,当发送
QUERY
消息后,该路由则被标记为
active route
,该状态称为
SIA
。如果
3
分钟内,
EIGRP
没有收到邻居的回复,则清除与该邻居的会话关系。