特点
- 使用扩散更新算法(DUAL)实现快速汇聚并且保证无环
- 更新方式:触发,增量,有界
触发更新:与周期性对应,当网络结构发生变化才会发生发送更新,网络稳定不发送。
增量更新:一般距离矢量基于路由表更新,增量更新只发生改变信息的路由条目信息(增加,删除,修改的都算)
有界更新:判断对对方有没有影响,如果没有则不发送。 - 使用单播和组播:组播地址是224.0.0.10
判断接口是点对点连接,采用单播更新,如果是MA网络,采用组播更新 - 支持可变长子网掩码
- 支持自动汇总和手动汇总
- 支持等价和非等价的负载均衡。
协议号:88,使用IP分组来传送路由信息
扩散更新算法(DUAL)
1.通告距离(AD),即邻居路由器到达目的网络的metric值。
2.可行距离(FD),从本地到目的地,经过下一跳路由器的metric值。
3.后继路由器(successor):最小的FD的下一跳路由器。
4.可行性条件(FC):AD < FDmin,就认为具有传输数据的能力。
5.可行后继路由器(FS):满足FC条件的,备份路由的下一跳路由器,可以是多个
在上图中间的各个参数的值
Network | Neighbor | FD | AD |
---|---|---|---|
Z | B | 30 | 10 |
C | 20 | 10 | |
D | 45 | 25 |
- 后继路由器是C
- E->D->Z是不满足FC条件的
- 可行后继路由器是B
报文类型
Hello报文
Hello报文打招呼,建立邻居关系。并在邻居关系建立之后keep alive,该种报文不需要确认。
hello发送间隔:和介质有关系的,在T1速率之下或者是更低的NBMA接口上每60秒发送一次;在LAN和其 他串行接口上是5秒一次;
使用bandwidth可以指定速率从而影响发送频率
TTL值(Time to live:2)等于2,表示这个hello包只能在本链路有效,不可跨越路由器;
protocol:EIGRP(88),88表示EIGRP的协议号;
目标IP是一个组播地址:224.0.0.10;
opcode:Hello/Ack 说明这个包的类型
Autonomous System:20 as号为20;此值必须与对端匹配;
K1~K5:分别为1,0,1,0,0;只在hello报文中存在,用于验证邻居,此值必须匹配;
Hold time:15 邻居保持时间为15秒,是hello间隔的3倍;
路由器软件版本:12.4
EIGRP的版本号;1.2
这个时候的ack为0,一般不为0的情况下是确认报文
注意: EIGRP hello报文中携带了EIGRP路由协议的AS号 和K 值,如果这两个条件不一样两端的EIGRP邻居是无法建立的
hello报文的hold-time需要大于发送间隔(正常一般为三倍)否则eigrp邻居会翻滚
更新报文
更新报文:更新数据包只在必要的时候传递必要的信息(一般在邻居关系建立之后用该种报文传递必要的信息),当只有某一指定路由器更新时,使用单播发送,当多个路由器需要更新,则以组播形式发送,该种报文需要确认报文进行确认。
拓扑信息中更新10.0.0.0/8的路由条目;
Delay:延迟为128000;
Bandwidth:带宽为256
查询报文
查询报文:路由丢失,可以向邻居查询关于路由信息,通常以组播方式进行发送,有时也单播,需要确认报文进行确认。
首先收到报文内容是“Goodbye Message”的hello包
R2以单播的方式发送给自己的邻居R1:
Opcode:Query(3)标识这是一个查询报文;
Prefix Length :标识了掩码长度为30位;
Destination:172.16.1.4 标识这条路由已经不可达;
应答报文
应答报文:对查询报文进行应答,单播可靠方式发送
Opcode:Reply(4)标识这是一个应答报文;
如果收敛完毕了,就重置了序列号
确认报文
确认报文:ACK,专门用来应答上述几种报文。
opcode为5的并且ACK不为0的报文是ACK报文,而不是Hello报文;
Acknowledge:22表示是对序列号为22的数据包确认
配置eigrp
Switch(config)#ip routing
Switch(config)#router eigrp 100 //AS号为100,与对端保持一致即可
Switch(config-router)#network 1.1.1.1 0.0.0.0 //lo1的地址
Switch(config-router)#network 192.168.1.0 0.0.0.255 //接口的段
Switch(config-router)#network 1.1.1.0 //如果是整个ABC也可以不写反掩码
Switch(config-router)#no auto-summary //关闭eigrp的自动汇总功能
等价和非等价的负载均衡
等价负载均衡
当到达目的地有多条路径时,而多条路径的metric值一样,这时就可以做等价负载均衡,让数据包均衡转发,不过要看该路由器的转发方式,如果是快速转发方式,这种方式无用(本地产生的数据包除外)
Switch#sh ip eigrp topology
IP-EIGRP Topology Table for AS 100/ID(2.2.2.2)
Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply,
r - Reply status
P 1.1.1.1/32, 1 successors, FD is 156160
via 192.168.1.1 (156160/128256), FastEthernet0/1
P 2.2.2.2/32, 1 successors, FD is 128256
via Connected, Loopback0
P 3.3.3.3/32, 1 successors, FD is 156160
via 192.168.3.1 (156160/128256), FastEthernet0/2
P 192.168.1.0/24, 1 successors, FD is 28160
via Connected, FastEthernet0/1
P 192.168.2.0/24, 2 successors, FD is 30720
via 192.168.1.1 (30720/28160), FastEthernet0/1
via 192.168.3.1 (30720/28160), FastEthernet0/2 //通过查看拓扑表可以看见到达192.168.2.0/24有两条路径,两者都为可行距离FD=30720,所有这里实现了等价负载均衡。
P 192.168.3.0/24, 1 successors, FD is 28160
via Connected, FastEthernet0/2
非等价负载均衡
只有eigrp可以做非等价负载均衡,意思是,到达同一目的地有多条路径,而它们的度量值不一样时,可以做非等价负载均衡,可以通过设置variance值来进行不等价负载均衡,即两数相除取整加1,满足此条件的线路就可以按非等价负载均衡的方式发送数据包,也要看数据包的转发方式,如果是快速转发方式,可能没有效果,但是对于本地产生的数据包可以实现非等价,因为此时,本地产生的数据包还是按进程转发方式转发数据包的,对其他路由器的数据包,要关闭快速转发,可以启用cef,且cef对本地的数据包也是产生效果的,记住,不能更改默认的均衡方式,即默认的traffic-share balanced命令不能被修改!
Switch#sh ip eigrp topology
IP-EIGRP Topology Table for AS 100/ID(2.2.2.2)
Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply,
r - Reply status
P 1.1.1.1/32, 1 successors, FD is 158720
via 192.168.3.1 (158720/156160), FastEthernet0/2
via 192.168.1.1 (2630400/128256), FastEthernet0/1
P 2.2.2.2/32, 1 successors, FD is 128256
via Connected, Loopback0
P 3.3.3.3/32, 1 successors, FD is 156160
via 192.168.3.1 (156160/128256), FastEthernet0/2
P 192.168.1.0/24, 1 successors, FD is 2502400
via Connected, FastEthernet0/1
P 192.168.2.0/24, 1 successors, FD is 30720
via 192.168.3.1 (30720/28160), FastEthernet0/2
via 192.168.1.1 (2504960/28160), FastEthernet0/1 //修改接口带宽之后这里的FN值就不一样了
P 192.168.3.0/24, 1 successors, FD is 28160
via Connected, FastEthernet0/2
EIGRP默认支持四条链路的不等代价的负载均衡,使用下面命令可支持六条
Switch(config)#router EIGRP 10
Switch(config-router)#maximum-paths 6
配置实现非等价负载均衡
R1(config)#router eigrp 1
R1(config-router)#variance 82 // 33=[2504960/ 30720]+1,满足条件.
EIGRP中的metric计算
需要注意的是带宽是数据出口的接口带宽的最低值,延迟是数据出接口的延迟的累加。
注意单位。
EIGRP的三张表
邻居表
show ip eigrp neighbors
拓扑表
show ip eigrp topology
路由表
show ip route eigrp
查询命令
查询邻居
Switch#sh ip eigrp neighbors
IP-EIGRP neighbors for process 100
H Address Interface Hold Uptime SRTT RTO Q Seq
(sec) (ms) Cnt Num
0 192.168.1.2 Fa0/2 13 00:01:15 40 1000 0 9
1 192.168.2.2 Fa0/1 11 00:00:32 40 1000 0 14
H:邻居编号:
address:邻居的地址,主地址;
interface:标识是从本路由器哪个接口收到到hell报文;
hold:邻居保持时间;
Uptime:表示从该邻居收到的第一个报文到现在所经历的时间;
SRTT:表示从发出ERGRP报文开始到收到ACK所经历的平均时间;这个时间主要也是给RTO参 考的;
RTO:是单播重传ERGRP分组所要等待的时间;
Q:队列中等待的ERGRP分组数目,如果这个数大于0,那么说明可能存在拥塞问题;
seq:从邻居收到ERGRP分组的序列号;
查看当前配置的路由
show ip protocols 命令来检查路由配置。
show ip protocols 命令会显示路由器当前配置的路由协议。可以用来确认
- 是否已配置 RIP 路由
- 发送和接收 RIP 更新的接口是否正确
- 路由器通告的网络是否正确
- RIP 邻居是否发送了更新
查看eigrp拓扑表
Switch#Show ip eigrp topology
IP-EIGRP Topology Table for AS 100/ID(192.168.2.1)
Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply,
r - Reply status
P 1.1.1.1/32, 1 successors, FD is 128256
via Connected, Loopback0
P 2.2.2.2/32, 1 successors, FD is 156160
via 192.168.1.2 (156160/128256), FastEthernet0/2
P 3.3.3.3/32, 1 successors, FD is 156160
via 192.168.2.2 (156160/128256), FastEthernet0/1
P 192.168.1.0/24, 1 successors, FD is 28160
via Connected, FastEthernet0/2
P 192.168.2.0/24, 1 successors, FD is 28160
via Connected, FastEthernet0/1
P 192.168.3.0/24, 2 successors, FD is 30720
via 192.168.1.2 (30720/28160), FastEthernet0/2
via 192.168.2.2 (30720/28160), FastEthernet0/1
Passive——收敛完成
active——正在收敛
updata——等待ack的状态
Query——发送了query,等待query的ack
Reply——发送了reply,等待reply的ack
Reply status——发送了query,收到了ack,等待reply
Sia status——卡在活动状态,发query90秒后,发送 SIA query报文确认对方是否收到,到达3分钟时候,就会将路由置为sia状态。
IP路由表
查看eigrp的路由表
Switch#show ip route eigrp
2.0.0.0/32 is subnetted, 1 subnets
D 2.2.2.2 [90/156160] via 192.168.1.2, 00:06:17, FastEthernet0/2
3.0.0.0/32 is subnetted, 1 subnets
D 3.3.3.3 [90/156160] via 192.168.2.2, 00:05:33, FastEthernet0/1
D 192.168.3.0/24 [90/30720] via 192.168.1.2, 00:06:12, FastEthernet0/2
[90/30720] via 192.168.2.2, 00:05:33, FastEthernet0/1
重发布引入的是DEX,AD是170,内部是90.