EIGRP是距离矢量路由协议,但又非距离矢量那样路由完全是别人告诉,而是通过维护3张表自己对比计算后放入路由表。同样会受水平分割影响。
- EIGRP建邻居过程
第一步:路由器R1和R2接口配置EIGRP后,在相应接口上向外组播发送Hello包;组播地址224.0.0.10
第二步:R2收到R1发来的hello包后,将R1列入自己的邻居表,再发送hello包此时hello包里会列出R2的地址,同理R1收到R2的hello包后也将R2列入自己邻居表,再发送hello包此时hello包里会列出R1的地址,此时双方都看见对方hello中列出自己后,双向邻居关系便建立成功
第三步:R1单播发送update,也就是向R1单播发送自己的路由表,R2在收到R1的update之后,向R2发送Ack通知对方已经收到update,然后再向R2单播发送自己的update
第四步:R2在收到R1的update之后,向R1发送Ack确认update已收到;
第五步:R1和R2都将收到的update放入拓扑数据库中计算路由表。
- 7种报文
- Hello:发现邻居
- Update : 单播/组播增量更新路由条目,只有第一次建邻居时单播,稳定后若更新路由组播
- Ack: 确认收到路由信息
- Query:当该路由器的目的网络路由消失(loopback),且没有FS情况下,则向邻居发query,触发计时器180s,邻居会回复ack(hello)表示收到query
- Reply:若是找到则回复reply
- SIA query:若是90s仍未收到reply,给邻居发SIA query
- SIA reply:若邻居关系还在就回复SIA reply
-
报文详解
EIGRP Hello报文(以224.0.0.10组播发送):发现邻居建立邻居关系同时选举DR/BDR,通过组播方式发送,使用不可靠的发送(Hello包在邻居收到后不需要确认);EIGRP Update更新报文:通过可靠传输协议RTP发送,RTP保证了EIGRP消息能够送达,从而让EIGRP更好地避免环路,当只有一台路由器需要路由更新时,update通过unicast的方式发送;当有多个路由器需要路由更新的时候,通过组播的方式发送;发给邻居的路由表,通过单播发送update数据包,邻居收到后必须回复确认消息;
EIGRP Query查询报文:当路由信息丢失并没有备用路由时,使用Query数据包向邻居查询,邻居必须回复确认
EIGRP Reply回复/应答报文:应答包是通过unicast的方式发送,并且方式都是可靠的(是对邻居Query数据包的回复,也需要邻居回复确认);
EIGRP Resquest(请求)packet:最初是打算提供给路由服务器(server)使用的,但是从来没实现过;
拓展RTP:
描述:RTP-实时传输协议-此协议用于传输语音和视频IP数据包
作用:负责EIGRP packet的按顺序的发送和接收,这个可靠的保障是通过cisco私有的一个算法实现的,使用组播地址224.0.0.10每个邻居接收到这个可靠的组播包的时候就会以一个unicast做为确认;
- 基础知识
- DUAL扩散更新算法,永远无环路,触发增量更新, 所以收敛快,不像rip等到一个周期才知道(全互联时会重复扩散),支持负载均衡,还支持非等价(两条路由都进路由表,一个路down掉直接用次优)
- FC条件:FD>AD永远无环路,选下一跳时如果通过你到达目标网络的cost小于我自己到达目标网络的cost就可以是下一跳
- 只要FD>AD就可以成为FS,但是如果主路径故障,FS路径会马上切换代替,不一定会成为主路径,还要看CD
- hello包的发送地址发现邻居:224.0.0.10,查询和应答是单播
- EIGRP通过RTP保证确认机制,使用确认号和序列号接替tcp工作
- 次优路径进路由表前提:主路径的FD*variance>备份路径FD,最终的流量分配是metric的反比,也就是metric越大分配的流量越少
- 常用命令大全:
①. (查看hello时间)show ip eigrp int detail
②. (不满足FC条件的也可查看)Show ip eigrp topology all-links
③. (修改接口cost):delay 200代表设置延迟为2000
④. (进程下)eigrp router-id 1.1.1.1 有routerid若相同,可以建立邻居,不传路由(ospf不可以重复)
⑤. 非等价负载均衡时只用最优的路径(进程下)traffic-share min across-interface
⑥. 关闭水平分割:no ip split-horizon eigrp 100
- 计算方式
度量值metric:【带宽(kbps)+延迟(10毫秒)】*256
带宽 = 10^7/最小带宽
延迟 = 源到目的地所有出接口延迟和/10
- EIGRP自动汇总(默认关闭)
• 只能汇总主类网络,10.1.0.0和10.2.0.0会自动汇总,12.1.1.0和34.1.1.0不会自动汇总
• 汇总好处:某一条明细路由删除并不会影响整个汇总路由
• 汇总缺点:若通过汇总到达某一路由器,但是并没有想去的明细网络,若此时该路由器上还存在静态默认,会造成环路,所以汇总路由应指向黑洞
• (进程下)no auto-summary,养成好习惯
- EIGRP手动汇总
(出接口)ip summary-address eigrp 100 10.1.0.0/20
- EIGRP下放默认路由
前提: 存在默认静态路由,下一跳是外网(重分布静态)
第一种方法:
(边界路由器)Router eigrp 100
(进程下)Redistribute static
第二种方法:
同理存在静态的前提下network出去
注意:出接口下汇总
- 建立邻居关系
Config#router eigrp 1
Config#network 10.1.0.0 255.255.0.0
查看EIGRP的路由表:#show ip route eigrp
查看EIGRP的拓扑表:#show ip eigrp topology | show ip eigrp topology all-links
- passive接口
(进程下)passive-interface default
(进程下)no passive-interface e0/0
- stub区域
(进程下默认)eigrp stub connected+summary
路由器不会给stub路由器发送query,会直接回reply说不存在,让路由器将该路由从路由表删除
以下是边界路由器通告给邻居的形式
①. Connected
②. receive-only
③. Redistributed
④. Summary
⑤. Static
- EIGRP认证
①. Key chain ccnp
②. Key 1(无论配置多少个key都只会匹配第一个)
③. key-string cisco
④. (接口下)ip authentication key-chain eigrp 100 ccnp(夹在中间)
⑤. (接口下)ip authentication mode eigrp 100 md5
- EIGRP命名
router eigrp ccnp
address-family ipv4 autonomous-system 100
address-family ipv6 autonomous-system 200
(在地址家族下代表关闭ipv6地址)shutdown
IPv6默认将所有接口宣告,可以单独进入接口(af-interface)shutdown取消宣告
- eigrp无法建立邻居原因
①. 进程号不一致
②. K不一致
③:不在同一子网
④:router-id冲突
K1:带宽
K2:可靠性(0)
K3:延迟
K4:负载(0)
K5:MTU