因为rip的收敛时间长 尤其是使用过程中 链路down掉 重收敛的时间比较长 所以在中到大型的园区网中很少用到rip协议 只有在很小的局域网中用到rip 因为收敛时间可能会稍微短一些
所以在中大型的园区网内会用到EIGRP 路由选择协议 收敛速度最快
EIGRP ----enhanced internat gateway routeing protocol 增强型的内部网关路由协议 思科私有协议 13年前只运行 在思科设备上 前身为IGRP (仅为有类协议 当前都不支持 ) 13年之后其他设备也可以支持 当前已经变为公有协议
核心算法 dval 既不是距离矢量又不是链路状态 eigrp 使用平衡混合性协议 有些行为是距离矢量 有些行为 时链路状态
归类:1.范围来分 ---igp 内部协议 金融网 银行网 运行商内网等等 都属于大型的内网
默认为100跳 可以修改到256跳
2.核心算法分类 a 距离矢量协议 例如 rip
b 链路状态协议 稍微高级一些 不发送路由表中的路由信息
· 可以传递lsa ( 链路状态信息 接口 网段等等链路通告) 泛洪的形式
lsa放在lsdb的链路状态数据库中
spf 最短路径算法 提取最优路径信息 加入路由表
链路状态协议都有三张表 eigrp与ospf都有
a 邻居表 建立邻居用hello报文 lsa
b 链路状态数据库(拓扑表) 包含邻居传过来的路由信息 放置lsa信息 链路如何连接的信息
c 路由表 根据b拓扑表进行扩散更新计算 去往目的地有哪些路径 并且提取最优路径计算 生成路由表
EIGRP不发送拓扑信息 仍旧发送路由条目信息 一个高级的距离矢量协议 b拓扑表可以用来做优化用来路由备份(只有在eigrp中才有) 一 旦最优的路由条目down掉 可以在拓扑表中以最短的时间计算出两外一条路由 ms级别
3.无类协议
a与ripv2的相同点
需要关闭自动汇总的功能 no auto-summary
精确汇总 手工汇总
b与ripv2的不同点
eigrp支持路由聚合-----高级的路由汇总
路由聚合与路由汇总的区别
路由汇总:172.16.0.0/24 与172.16.1.0/24 汇总成一条172.16.0.0/23 同样是子网
此为主b类网段 掩码长度为16位 汇总后的掩码长度大于或者等于16 都称为路由汇总
路由聚合:192.168.0.0/24与192.168.1.0/24 聚合成一条192.168.0.0/23
此为主c类网段 掩码长度为24为 聚合后的结果为23 小余24 所以称为路由聚合
192.168.0.0/23又叫做超网 super net
支持路由聚合就支持 就支持 CIDR 无类域间路由 通过汇总或聚合的方式减少internet骨干路由条 目的数量 ripv2是特例 并不支持路由聚合 即不会存在超网路由
EIGRP 特性
a 高级的距离矢量协议 advanced distance vector
b rapid covergence 快速的收敛
c 无类路由 没有环路
d 配置简单 类似与rip
rip封装:layer2 报头|ip|udp|rip|fcs| 格式 ripv2 组播地址224.0.0.9
eigrp封装:layer2 报头|ip|eigrp|fcs| 格式 少了udp信息 只封装了两次 叫做跃层封装
ip中有一个protocol字段 描述上层协议字段 值用来描述直接用ip报文封装的程序的属性 协议号字段 88 组播地址 224.0.0.10
时间
5s 带宽大于1.544m/bs
60s 带宽小于1.544m/bs
holdtime 保活时间-是hello报文发送周期的3倍
e 增量更新 incremental updates
路由更新报文
rip周期性发送路由更新报文
eigrp发送更新报文有两种情况: 增量更新
a 建立邻接关系 发送初始的路由更新报文 包含能发送的一切路由 即初始收敛
b 当拓扑变更 链路崩溃 路由器down等影响到路由条目时候 会发生路由重新收敛 才会再次发送路 由条目的更新报文
f load balancing across equal-and unequal-cost pathways 支持等价负载均衡和非等价负载均衡
ecmp 等价多路径 多条不相同的路径 管理距离和度量值一样
uecmp unequal cost multiple pathways 到某网段的多条不同路径 管理距离或者度量值不一样 均可以被加入到 路由表中 只是度量值较低的路由使用频率会更高
默认情况下 只支持ecmp 如果想支持uecmp 需要设置一个variance 的值 值为1 仅支持ecmp 值为1-128中 的任何一个值可以支持uecmp
g flexible network design 灵活的网络设计
h multicast and unicast instead of broadcast addrss 组播 单播替代广播
i support for VLSM and discontiguous subnets 支持VLSM和不连续子网 所有无类的路由选择协议均支持
j manual summarization at any point in the internetwork 手动汇总 需要关闭自动汇总
k support for multiple network layer protocols 支持不同网络协议栈 tcp/ip appletalk ipx/spx等等 可以同时运行多 个eigrp的进程 互相不影响 MPLS VPN 需要用到此种技术
EIGRP 细节
1.表
a 邻居表 ip eigrp neighbor table 建立邻居之后发送routing table中的路由条目(最优的)到topologytable
内容 next-hop router | interface
b 拓扑表 topology table 比路由表多fd可行距离和ad通告距离两项内容 每条路由条目都携带这两个参数 相同目的地的多条路由有好有坏(由dual算法来计算) 有最优的和可备份的 其他的比较次的路由会被 协议给隐藏 将最优的路由条目放到routing table中 同时维护一个备份的路由
内容 destination1|
c 路由表 仅仅是最优路由条目 routing table
内容 destination1|
2.建立邻居 (排错注意事项) 满足的条件
a 相同的AS号 表明自己路由器属于哪个AS组 association
b 相同的k值 衡量路径的优劣 k1-k5 默认值为 1 0 1 0 0 分别对应bandwidth 带宽 dely延迟
reliability可靠性 load负载 mtu最大传输单位
即默认情况下 计算路径好坏只计算带宽和可靠性
也可以修改其他的k值
c 相同的认证
3.分组报文类型
hello问候 update与rip报文一样 query查询 reply应答 ack确认
dual算法:涉及到查询和应答报文
本地计算 和扩散更新计算
本地计算是路由切换时使用 最优路由切换到备份路由继续使用时就是本地计算
扩散更新计算 :当一台路由器丢失了一条去往某网段的路由 同时并没有备份路由 此时需要进行此计算 询问邻居
步骤:
a 给邻居发送查询报文query 询问去往某网段怎么走 组播
b 单播 邻居查询自己的路由表 如果有就单播给源路由器 告知有路由条目并发送此条目 如果没 有同样告 知没有此路由 即无论有没有路由条目都必须用发送reply应答报文
如果邻居一直没发送reply报文 则会dual计算失败 会等待180s 如果还没有 则down掉与此邻居的 邻接关系
4.eigrp的重置邻居关系的三种方式:
a 三倍的hello时间未收到hello
b query报文发送后 180s内没有收到应答
c 给对方发送了16份可靠传输报文重传 都没有收到ack应答
根据eigrp报文的格式 由于是ip格式封装 并无可靠性可言 所以eigrp内部提供与tcp类似的可靠性的确认重 传机制 需要ack报文的确认报文应答 确认重传机制 支持最大的重传次数为16次
上面五中报文中 hello报文 不需要确认重传机制 因为周期性发送
更新报文 需要确认重传机制 不周期性发送
查询报文 需要确认重传机制
应答报文 需要确认重传机制
5.ack与hello的区别
报文中都有一个ack位 如果置0 就是hello报文;如果置为1就是ack报文
ack只能单播 而hello可以单播也可以组播
6.EIGRP metrics 度量值计算 包括k1-k5的5个方面 取值为0-255
带宽 延迟 负载 (默认1) 可靠性(默认255) 最大传输带单元
其中可靠性指的是报文发送成功率 丢包率 来评测
负载 链路带宽利用率 流量越多 负载越大 流量约少负载越小 选择负载越小的越好 路径越优
负载和可靠性的值默认值 负载为1 可靠性为255 不会根据链路的状态而动态 改变 需要通过管理 命令来修改
MTU一般不会出现在度量值的计算当中
计算公式:k1-k5默认值为 10110
默认:metric=bw+delay
delay=总延迟 10的-5次方为单位来表示 即10微s 为单位
bw=10的7次方/BW 单位为kb/s
metric=k1*bw+((k2*bw)/(256-load))+k3*delay
if k5 !=0
则Metric=metric*[k5/(reliablity+k4)]; 最后再*256 一般不用mtu计算度量值
实例:k1-k5如何取值
a-------b------c 为完整的路径
负载为ab ac两链路的最大值为完整路径的负载
带宽为ab ac两链路中最小的的为完整路径的带宽
延迟为ab ac两链路累加到一起 为完整路径的延迟
mtu为ab ac两链路的最小值
可靠性为ab ac的最小值
默认情况下只用带宽和延迟来计算度量值
接口的选择:统一的计算标准 基于控制层面路由流向所有入接口 提取所有入接口的所有带宽和延迟 带宽取 最小 延迟取和
EIGRP Path Calculation router c
a 上图中路由器c中有三张表分别是邻居表 拓扑表 最终路由表
b 假设目的网段为d c-a-d 和c-b-d 两条路由
拓扑表中fd表示可行性度量值 fd最小的为最优路由 2000代表路由器 c通过a到达d 即cad的度量值 ad代表通告度量值 1000代表路由器a到达目的网段的度量值 ad的度量值
同理 fd=2500为cbd的度量值
ad=1500 为bd的度量值
c 判断拓扑表中的路由能否成为备份路由的条件 FC 表示可行性条件专门用来选取备份路由
此路由中的ad值需要小余最优路由的fd的值 才能成为备份路由
在图中显示即bd的度量值小余cad的度量值 才能保证报文传递时距离目的地越来越近 否则如果bd大于cad表 示距 离目的地越来越远 有可能成为环路
d 图中successor表示最优路由的下一跳路由器 又叫后继站
feasible successor表示次优路径并且能够成为备份路由的下一跳路由器
EIGRP Configuration 配置命令
a autonomous-system 进程号或者叫名字 12.4ios版本 取值范围1-65535 必须是阿拉伯数字
15.xios版本 支持命名式的进程号 需要指定as号 两台邻居路由器as 号需要一致
b 关闭自动汇总 no auto-summary
c 支持两种宣告
1.主类宣告 与rip v2类似 主类网络号
2.精确宣告 利用通配符掩码方式 直接指定路由器的某个接口的ip地址 宣告进eigrp进程
实例
1.需求
r1-3为路由器 运行eigrp路由选择协议 r4 r5模拟pc机 r4获取r5dhcp服务器分配的ip地址
r1地址 s1/0 12.1.1.1 255.255.255.0
s1/1 13.1.1.1 255.255.255.0
r2地址 f0/0 24.1.1.2 255.255.255.0
s1/1 12.1.1.2 255.255.255.0
r3地址 s1/0 13.1.1.3 255.255.255.0
f0/1 35.1.1.3 255.255.255.0
r5地址 f0/0 35.1.1.5 255.255.255.0
2.命令
a dhcp server设置
r2#int fa 0/0
#ip helper-address 35.1.1.5 中继
r5#service dhcp
#ip dhcp pool 24
#network 24.1.1.0 255.255.255.0
#default-router 24.1.1.2
#dns-server 24.1.1.2
#ip dhcp excluded-address 24.1.1.1 24.1.1.3
#ip default-gateway 35.1.1.3
b eigrp 设置
r2#router eigrp 90 90 为eigrp进程号 id号 一般用管理距离值
#no auto-summary 取消自动汇总
#eigrp router-id 2.2.2.2 路由器id 距离矢量协议中用不到 但是在链路状态协议中是重要的
建立邻居时会用到
#network 24.1.1.2 0.0.0.0 宣告接口 更精确
#network 12.1.1.2 0.0.0.0
r1#router eigrp ccie
#address-family ipv4 unicast autonomous-system 90
地址簇 同一个进程支持多个协议 既可以支持v4又可以支持v6 也可以同时支多个不同的 网络
#eigrp router-id 1.1.1.1 定义路由器id
#network 12.1.1.1 0.0.0.0 宣告接口
#network 13.1.1.1 0.0.0.0
#topology base 关闭自动汇总
#no auto-summary
#show run | section router eigrp 验证命令
同时在ipv6上运行eigrp协议
#address-family ipv6 unicast autonomous-system 90
r3#router eigrp ccie
#address-family ipv4 unicast autonomous-system 90
#eigrp router-id 3.3.3.3
#network 13.1.1.3 0.0.0.0
#network 35.1.1.3 0.0.0.0
#topology base
#no auto-summary
实例2 手工汇总
1.r4地址 192168.1.4 255.255.255.0
r6地址 192.168.0.6 255.255.255.0
r2地址 192.168.1.2 255.255.255.0 连接r4 作为r4的网关
192.168.0.2 255.255.255.0 连接r6 作为r6的网关
取消r5的dhcp服务器功能
2.在r2的ser1/1接口 作手工汇总
#router eigrp 90
#network 192.168.0.2 0.0.0.0宣告接口
#network 192.168.1.2 0.0.0.0 之后在r1上验证路由表
接口级别汇总 控制层面的路由流向的出接口
r2#int ser1/1
#ip summary-address eigrp 90 192.168.0.0 255.255.254.0 手工汇总的命令
192.168.0.0/23 会出现在r1的路由表中 取代之前出现的两条路由 192.168.0.2和192.168.1.2
3.认证 与ripv2类似 eigrp但是只支持密文认证
r2#conf t
#key chain r2
#key 1
#key-string 密钥值
#int ser1/1
#ip authentication key-chain eigrp 90 r2
#ip authentication mod eeigrp 90 md5
其中r1为15.x版本的ios所以 认证命令需要在eigrp进程中进行设置 新版本的eigrp
r1#router eigrp ccie
#address-family ipv4 unicast autonomous-system 90
#af-interface serial 1/0 进入接口 在接口下进行认证
#authentication key-chain r1
#authentication mode md5
实例3 修改路由度量值 dual重新计算最优路径
选路 要求修改度量值 使用r2-r1-r3-r5路径
1.准备工作
配置r2和r3新加入接口的ip地址
r2 s1/0 23.1.1.2 255.255.255.0
#router eigrp 90 进程号
#network 23.1.1.2 0.0.0.0 宣告接口
#
r3 s1/1 23.1.1.3 255.255.255.0
#router eigrp ccie 进入进程
#address-family ipv4 unicast autonomous-system 90
#network 23.1.1.3 0.0.0.0
r2#show ip route eigrp 显示 35.1.1.0【90/2172416】 中括号中的数值为度量值
2.计算路径的度量值
上面的的2172416 计算的方法
路径为r2-r3-r5 需要提取带宽和延迟值
需要用到控制层面路由流向的入接口 r3的fa0/1 和 r2的serial1/0 r3#show interface fa0/1 显示接口的具体信息可以看到
BW 100000kb/s DLY 100 usec 一个是带宽 一个是延迟
根据上面的值计算
r2#BW 1544kb/s DLY 20000 usec
计算得带宽得(10的7次方)/1544=6476 总带宽
延迟得(20000+100)/10=2010
(6476+2010)*256=2172416
r2-r1-r3-r5的度量值就是在上面的度量值基础之上 多计算了r1的serial1/1接口的延迟
所以为(6476+2010+2000)*256=2684416
3.使用r1的路径 而不用直接走r3到r5
修改度量值方式与rip一样 使用偏移列表
a r2#access-list 10 permit 35.1.1.0
#router eigrp 90
#offset-list 10 in 600000 serial 1/0
#end
#clear ip route *
验证#show ip route eigrp
显示路由经过r1 度量值为2684416为最优路由条目
b 声明被动接口
r2#router eigrp 90
#passive-interface fastethernet 0/0
#passive-interface fastethernet 0/1
验证:show ip protocol 可以查看哪些接口是被动接口 也可看到v值 非等价负载开关
c 非等价负载均衡
条件一:(最优路径的fd)*v值》=(次优路径的fd) 但是由于度量值不同 所以负载不一样 一个大一个小
条件二:次优路径的ad必须要小余最优路径的fd
同时满足以上两个条件 此次优路径就可以加入路由表 与最优路由一起负载均衡
设置v值命令
r2#router eigrp 90
#variance 2 设为2
排错命令
a show run | section router eigrp 查看eigrp全局的配置命令
b show ip route eigrp 查看是否有目标路由条目 看是否有过滤
c 1.查看是否有邻居 show ip eigrp neighbors 查看as号是否一致
2.查看宣告接口 是否有报文在排队 show ip eigrp interfaces
3.查看k值 router eigrp 90
metric weights 0 1 0 1 0 0 其中第一个0代表 tos值 只能为0 其余一次为k1-k5
4.查看秘钥是否启用 并且一致