EIGRP
◆回顾动态协议:
RIP EIGRP ospf
封装 UDP 520 IP 88 IP 89
更新地址 224.0.0.9 224.0.0.10 224.0.0.5/6
使用passive实现单播 两端互指neighbor和出接口实现单播 NBMA 点到多点非广播单播键邻居
更新方式 完整,定时30秒 15%偏移,触发 增量更新,触发 定时30分钟 触发
AD 120 5 90 170 110
度量 跳数 5个K值 默认(带宽 延时) 带宽
BGP
封装 TCP 179
更新 单播
更新方式 增量 触发
■ RIP没有邻居的概念,只靠更新
OSPF的网络类型决定了更新方式(组播,单播),
网络类型由二层链路对应关系决定的:
广播型-以太网
P-2-O--ppp HDLC 帧中继的子接口
NBMA---帧中继的子接口和多点子接口
点到多点和点到多点非广播没有二层对应关系,是工程需呀开发的
◆EIGRP特点
高级距离矢量协议
快速收敛 ----------DUAL算法
支持VLSM CIDR;对比RIP 不支持产生一条CIDR路由,但是支持传递一条CIDR,rip接口下ip rip summary address x.x.x.x,这种方式不能用超网,但是可以本地生成一 条超网重分布到rip转发
部分更新
支持多种网络层协议-IP IPX等。。
灵活的网络设计
支持组播,单播更新--neighbr + 本地出接口
支持路由手动汇总 汇总默认开启 对比BGP默认关闭自动汇总
100%无环路(任何单一配置动态协议都是无环路的,重分布就不一定了)
配置简单--hello时间(默认5秒)dead时间(15秒),在低速链路MA网络,hello60秒dead3倍hello
也是自动的。
★支持非等价负载均衡
◆EIGRP 核心技术
- 邻居发现和故障恢复
邻居间使用hello(3个项目 AS号 ;认证 ;K值)
■建立邻居:
hello匹配三项(AS号,认证,K值),相同就建立了;K值,默认带宽和延 时,但是若修改了两位3个K值,而另一端还是默认,邻居就无法建立。
无法建立邻居:1,认证两端密码不同
2,ACL没有放开eigrp流量,考试时考官会做。
3,帧中继网络中,没有起组播(指neighbor+broadcast),而eigrp是组 播更新,所以导致无法键邻居。
4,一端单播指邻居,而没有指另一个对端时
5,hello包问题。
- 可靠的传输协议(RTP)理解为eigrp的一个可靠传输的技术
保障eigrp报到达所有邻居,原理类似TCP,发送一个数据包打序列号,对端确认,若不确认就 重传(最多重传16次)
★eigrp有5种报文,
hello 建立邻居
update 发送更新路由
query 询问邻居关于某个目的地的路由信息
request 应答响应查询包的详细路由信息
ACK 确认可靠的数据包
只有上述中间3种是可靠包,
A --UPDATE/Query/Request--> B A <--ACK-- B
第一个包组播发给B,若B没确认,A就单播重传给B,而且重传不是由进程传送, 而是复制一份重传的报文,放到接口,由接口重传(16次)。16次没有ACK就当 掉邻居关系。A再收到B的hello邻居又会起来,AB之间就会不停up/down.后期再 详细说如何解决
- UUA有限状态机
为每个目的选择最佳无环路径
最重要2点:
1,本地拓扑表保存去往所有目的的路径,计算出successer,并且根据符合FC, 可能会选出feasible successer.当successer当掉,feasible successer会马 上成为successer,不会像邻居发送查询。
2,当没有FS 时,successer当掉,路由器会向所有邻居查询,当收到所有查询 的回复后,重新确定路径才好收敛
- 协议无关模块(PDMs)
eigrp支持IP IPx appleTalk
每个协议都有自己的eigrp模块,并且独立其他模块。
◆EIGRP 5种报文
hello 建立和维持邻居 (对比BGP建立邻居用open 维持用keepalive)
HELLO:5秒 hold:15m秒 ;小于1.544M HOLD:60秒
update 发送更新路由
query 询问邻居关于某个目的地的路由信息 (在successer丢失且没有fs时产生的)
reply 应答响应查询包的详细路由信息 (对query的回应)
ACK 确认可靠的数据包
当收到query后,先确认ACK,然后在回应reply
network 在IGP作用:1,把接口路由通告出去。2,确定本地路由从哪些接口通告出去
EIGRP 的3张表
■邻居表
next-hot router | interface |
收到一个hello包(3个因素AS号,认证,K值)并匹配对应因素, 就产生一条邻居表项
■拓扑表
destination 1 | FD(最优路径本地到目的的距离) & AD (最优路径本地的下一条到目的的距离)via each neighbor |
把所有邻居产生的路径都放到拓扑表,包括来自不同邻居去往相同目的多条路径
■路由表
destination 1 | best route |
根据拓扑表,计算出最优路径
◆DUAL术语
AD 邻居到目的的成本
FD 本地到邻居+AD
FS 次佳路径的下一跳邻居
◆EIGRP 度量
带宽 k1 选择沿途路由入接口带宽最小值 ,kbps
延时 k3 沿途路由的入接口的延时总和 ,微妙
可靠性 k4
负载 k2
MTU k5
度量计算公式 ( 10~7 / 最小带宽 + 延时之和 / 10 )* 256
◆修改度量方法:
1.带宽:修改路由入接口带宽 接口下 bandwidth XXX 单位bit ;eigrp的管理流量占带宽的1/2
2,延时:修改路由入接口延时 接口下 delay 10 微妙
3,偏移列表:修改路由入方向,例如要再R1看到R3的度量,方向就是R3->R2->R1,要在R1看效果就要在R1 F0/0 或 R2 f0/0做offset-list
步骤 1,使用ACL 抓出要匹配的网段
access-list 10 permit 33.1.1.0
2,eigrp进程下 offset-list + acl号(0表示所有路径)+ 方向in + 要增加 的度量值 + 入接口
router eigrp 10
offset-list 10 in 13120 fastethennet 0/0
◆
hold hello时间3倍 15秒 在10-15之间波动 因为hello 5秒刷新一次
seq 最后一个可靠包数
Q 接口是否有队列 0:正常 。非零状态有两种:1,接口带宽不够。2,可靠报文需要重传时,需要重 传的报文放到接口,此时为 1
SRTT 平滑过渡时间。每发送一个可靠报文到对端回复ACK的时间
RTO 超时重传时间
◆show ip protocols 可看in out是否做策略,最大跳数100 ,非等价负载均衡,最大负载均衡的数量(默认4),宣告的路由,最后一次从哪些邻居收到的路由。
######################################################
######################################################
######################################################
###################################EIGRP 高级选项 ########################################
##########################################################################################
产生默认路由
回顾RIP 产生默认的 5 种放法
1,进程下 default information originat
2, 全局下写一条 静态 重分布到RIP
3,全局下写一条 静态 写法是指出接口 然后把接口宣告到RIP里.(产生问题:宣告0.0.0.0会把所有 接口都宣告进去)
ip route 1.1.1.1 255.255.255.255 f0/0
int f0/0
ip add 12.1.1.1 255.255.255.0
router rip
network 12.1.1.0
4,全局下 ip default-network 172.131.0.0
5,先手工创建默认路由到NULL0,然后在想传送默认路由的接口下手工汇总默认路由 ip summary-address rip 0.0.0.0 0.0.0.0
http://blog.sina.com.cn/s/blog_b38a88740101516y.html
####################################
##◆ EIGRP产生默认路由方法: ##
####################################
1,使用 ip default-netwok 下放缺省
首先,本地有一条主类路由 (两种方法)
1.1 写一条主类静态 ip route 172.31.0.0 255.255.0.0 172.31.1.1(实验中写对端地址不生 效,写出接口才生效)
1.2 本地一条直连的主类路由
其次,要把主类路由宣告进EIGRP router eigrp 10
network 172.31.0.0
最后,全局下 ip default-network 172.16.31.0.0
这样其下连接并运行的eigrp的路由器才好自动产生一条到达172.31的默认路由 D* 172.31.0.0/16 .....
这种方法不推荐。。!!!!因为必须有主类路由
2,重分布方式:
2.1 远端 R3 写一条 缺省指向null 0
ip route 0.0.0.0 0.0.0.0 null 0
2.2 eigrp进程下 把静态重分布进去
router ei 10
redistribute static
R1 看到一条 D*EX 问题是这条缺省的AD比较大 是170
3,进程下宣告一条已经有的的缺省
ip route 0.0.0.0 0.0.0.0 null 0
router ei 10
net 0.0.0.0
远端show ip route 可看的一条D* 0.0.0.0/0 的缺省 AD是90
注意:这种宣告 net 0.0.0.0 会把本地所有路由都宣告进eigrp进程了
4,用汇总方式产生
注意这种方法和以上3种相比 是有方向的
4.1 接口宣告进eigrp
4.2 接口下 ip summary-address eigrp 10 0.0.0.0 0.0.0.0
############################################################################################
######################
## EIGRP 的自动汇总 ##
######################
eigrp 默认开启自动汇总 ,但是开启后,将不支持 不连续的子网。
◆ 对比rip自动汇总,搞清3个问题
1,汇总哪些路由
rip :汇总所有 (本地产生;重分布进rip;从rip学习到的)
eigrp: 只汇总本地network的路由
2,汇总到多少位的长度掩码
汇总到主类网络 rip eigrp相同
3,在哪汇总 rip eigrp相同
在主类网络的边界汇总(边界指的是主类网络边界。边界内就是你连续的子网,即使汇总 也是传递明细路由)
主类网络边界:
R1---------R2--------R3
R1 loopback :1.1.11.1/24;R2 Lo0 :1.1.22.1/24;R3 lo0 :1.1.33.1/24
R1 R2 1.1.12.0/24
R2 R3 1.1.23.0/24
上述所有路由器都在1.0.0.0/8 的主类网络中
如果R2------R4 R2 R4之间是 24.1.1.0、24的网段,此时,R1 R2 R3就传递明细 R2连接R4的接口就是主类网络1.0.0.0/8的边界
◆ eigrp RIP 开启自动汇总 将 不支持连续子网
上图中,R2看R1 R3的环回口都是主类网络边界,所以R2只会收到1.0.0.0/8的路由,所以无法分辨去往1.1.11.0和1.1.33.0的路由。可能会造成去往1.1.11.0的数据发给1.1.33.0。
eigrp 手动汇总:
特点:
1, 支持接口上汇总 (路由的出出接口;对比修改带宽在路由的入接口)
ip summary-address eigrp 1 11.1.0.0 255.255.0.0
2,在一个接口创建了一个汇总以后,自动创建一个这个汇总指向null 0 的条目,以避免环路。
null 0 就是一个垃圾桶,当路由吓一跳指向null 0就会被丢弃;
本地汇总就会在本地自动生成把该汇总指向null 0的路由,且AD=5,保证最先匹配然后丢弃,来防止环路。
show ip route 11.1.0.0 255.255.0.0 看到null0的distance AD=5
3, 当每一条具体的路由都不可达后,自动汇总自动删除
4, 执行汇总的路由器自动为该汇总生成一个度量值(是根据所有明细中最小的那个度量值)
5,会抑制所有明细。
#######################################################################################
###############
## 负载均衡 ###
###############
非等价负载均衡实验:
步骤
1,启用IP
2,全网启用eigrp;可看的R2 R3负载均衡
3,修改R2 F2/0接口delay
4,eigrp 进程下 输入关键字 variance + 倍数
(条件:非等价的链路必须遵循FC条件,即次优路径AD小于最优路径的FD)
router eigrp 1
variance 2 (倍数选择:最优的FD乘以倍数要≥次优的FD)
5,R2 sho ip ro 33.1.1.0 中的share count 可看负载分配比例
#################################################################################################################################################################################################
## 配置eigrp广域网链路 ##
######################
EIGRP支持不同类型的广域网链路
点到点链路
NBMA{ 多点链路
{ 点到点链路
EIGRP的管理流量默认使用带宽的 50% 。可以手工修改比例
所以当在广域网配置eigrp时 就需要考虑低速链路的一半带宽,对eigrp是否够用,且还要保证eigrp工作的最低带宽需求,最大又不能让eigrp路由占满带宽,需要给流量流出带宽空间
◆实例:
当A和B之间使用的是T1链路,带宽是1.544M,但是公司可能只购买了32K的带宽,而eigrp是根据 链路带宽自动最大占用一半的,即默认会占用大概700多K,超过了实际购买的总带宽,所以在 eigrp更新时会占满带宽,链路的其他流量就会拥塞。
此时就需要手工修改抽口带宽:接口下 bandwidth 32
◆广域网接口带宽的使用
●在帧中继中 广域网接口的带宽的利用
- 默认带宽是T1 (1.544M)
- 可以再每个PVC中手动配置带宽
●在frame relay,ATM,ISDN PR 这样的多点网络总
- eigrp 使用物理接口的带宽除以邻居的数量(比如在MA网络中使用的链路是100K,所以默认就会使用50K,同时到达MA分支时还要平均分配带宽,即当一对二的NBMA网络中的 每个链路的带宽就是25K)
interface serial 0/1 multipoint
bandwidth 768
MA网络 就是一个物理接口对应对端多个物理接口
######################################################################################################## EIGRP 认证 ###############################################################################
- 许多路由协议支持验证,路由器验证他所收到的每个路由更新数据包
推荐使用MD5 明文抓包就能看到密码
- 支持明文认证的协议有
is-is
ospf
ripv2
- 支持MD5认证的协议有
ospf
rip v2
bgp
eigrp
eigrp认证
eigrp准许利用秘钥链来管理秘钥
指定一个ID,以及这个钥匙可以用多长时间,认证双方keyID必须一致。
按照秘钥号码的高低来匹配有效的秘钥
步骤
1,设置秘钥链 全局下key chain name-of-chain
key key-id
key-string text-密码
2,开启认证 接口下 ip authentication mode eigrp AS号 md5
3,调用秘钥链 ip authentication key-chain eigrp AS号 name-of-chain
验证和排错认证:debub eigrp packets可以看到“received packet with MD5 authentication”
实验:拓扑 R1---------R2
1,配置IP和loopback
2, 启用eigrp
,实验1:模拟现实中实际带宽100M,而因策略接口被修改成1K,为了eigrp能正常运行(带宽的\ 1/2),修改eigrp默认占用比。
修改R1 接口带宽 为1
int 1/0
bandwidth 1
sho int
int f1/0
ip bandwidth-percent eigrp 1 100000 (带宽的倍数 这里就是表示100M)
实验2: 认证
key chani test
key 1
key-string cisco
int f1/0
ip authen mode ei 1 md5
ip authen key-chain eigrp 1 test
实验3: offset-list 在路由出方向和入方向修改FD 所对应修改的不同变量
1, R1 看 R2 loopback0 AD --- show ip eigrp topology 22.1.1.1(156160/128256)
将FD改为157000
入方向:router ei 1
offset-list 0 in 840 fastethernet 1/0
sho ip ei to 看看到FD变为157000 而 AD值没变
2,R2出方向 将FD改为 160000 观察22.1.1.1的FD AD变化
出方向: router ei 1
offset-list 0 out 3000 fastenternet 1/0
R1 show ip ei to 可看到 22.1.1.1的FD增加3000是由AD增加了引起的
这样修改 就可以决定这条链路是否符合FC条件,参与负载均衡或非等价负载均衡
#########################################################################################################EIGRP 查询过程 ##############################################################################
当successor丢失 有FS 就立即 FS-->successor;没有FS 就像所有邻居发送查询
- successor丢失且没有FS时 将进行查处工作
- 这个路由条目将进入到主动状态 A 正常是P
- 查询消息将在 出后继接口 的所有接口上发送个所有邻居
R1 --request--> R2
<----ACK----
<-replay-----
- 若一个邻居没有到达这个网络的信息时,将向他的所有邻居来查询(没有就一直扩散的网络边缘)
- 若一个邻居有到达这个网络的信息时,他将应答这个查询消息,并停止查询消息在这个网络 的蔓延
◆ 卡在 active 状态 SIA
- 当路由器得到所有邻居的答复之后路由器将计算后继信息
- 默认情况下,若邻居3分钟内不答复这个查询,说明发生了SIA,路由器将重置这个邻居的邻居关系
SIA 的解决方案
路由器A 在活跃计时器一半时,发送一个SIA 查询。路由器B 应答查询,将继续保持邻居关系
A------B-------C
上图,若真正故障链路是BC,当A在1.5分钟发送 SIA Query 给B,B将恢复一个SIA Reply 给A,证明AB链路没问题,所以继续保持邻居关系。
然后,B--SIA Query-->C ,此时BC故障,就断开链路。
解决办法1:stub (命令:边界路由器 进程下 eigrp stub)
存根网络stub
- 提高网络稳定性,降低了资源利用率,简化远程路由器处理过程
- stub 网络使用在 hub-and-spoke 拓扑
- stub 路由器发出了一个特别的信息包,向所有周边路由器报告路由器报告其存根路由器位置
- 一个邻居收到了这位置通知,便不向这个存根路由器发送任何目的的查询信息了
解决办法2:汇总
A-----B------C---D
C发给B去往D的路由做了汇总,当CD断了后,B收到去往D的明细路由是,自己只有去D的汇总,就告诉C自己不可达到D.
debug eigrp packets query reply
实验:
一, 汇总限制SIA
1,配置IP R3启用两个loopback口
2,全网启用eigrp
3,R3 F1/0 ip summary eigrp 1 33.1.0.0 255.255.0.0
4, R3 shut down lo0
5, debug eigrp packet query reply 现象R2没有收到查询报文
二,stub限制 SIA
1,r1 进程下 eigrp stub
2,R3 shut down lo0
3, r1 r2 r3 debug eigrp packet query reply 现象 R3-->R2query R2--->R2 reply;
同时R1失去R3lo0的路由(R2把R3lo0metric值置为无穷大发送update给R1),就像R2查询,R2向R3查询,R3回复R2回复R1。
########################################################################################### ########## EIGRP STUB #################
stub路由器不会把收到的路由发送给任何路由器。!!!
本地: network的
直连的
静态的
重分布的
汇总的会发送出去(根据自己控制)
receive-only 不发送任何路由 , 只收不发。
connected 发送本地直连路由
static 发送自己静态路由(必须使用重分布)
summary 发送汇总
redistribute 发送重分布的
默认是connected 和 summary。。
命令:
进程下 eigrp stub receive-only | connected | static | summary
实验:也是用上图拓扑
R1 启用loopback0 11.1.1.0 255.255.255.0
R1进程下 分别指用 eigrp stub R2 看默认值
eigrp receive-only
eigrp connected
R1 int f1/0 ip summary eigrp 1 11.1.0.0 255.255.0.0 ;eigrp summary
R1 ip route 100.1.1.0 255.255.255.0 null 0
roueter ei 1
eigrp stub static
redistribute static
实验 II
Good bye消息
当R1 把f1/0的宣告从eigrp进程中no掉,正常R2会等15秒(hold time)
使用goodbye消息可以让R2马上知道R1断开邻居关系
或 no 掉进程
或 进程下passive-Interface f1/0
注意:passive-interface 被动接口和RIP 不同,eigrp是不收也不发eigrp包。rip是只收不发。
有两种不能发送goodbye
1,shut down 接口
2,路由器突然断电
单播建邻居。直连两个路由器必须都要配置
R2 进程下 neighbor 23.1.1.3 F1/1
R3 进程下 neighbor 23.1.1.2 f1/0