CCNP知识笔记
路由选路原理
路由信息来源
路由信息怎么来的?
直连路由(C):
- 通过直连接口UP产生智联路由条目(物理层UP+数据链路层UP)
静态路由(S):
- 通过网络管理员逐条写入的路由条目,不会随网络状况的改变而改变
- 通常情况下适用于小型网络。
- 优点:稳定,安全性高,不会产生更新所以呀不占用链路贷款。
- 缺点:配置复杂,需要手动维护“增删改”。
动态路由Dynamic Routing:
- 通过不熟动态路由协议,路由设备之间相互传递,得到的条目。
- 通常情况下适用于中大型网络(按照实际网络要求选择协议)
- 运行了动态路由协议的设备之间有感知机制,会交互“控制层面”的报文。
- 优点:配置简单、方便管理、极大的降低了管理员的工作量。
- 缺点:占用物理硬件资源(设备计算,链路贷款)、安全风险、计算失误。
原理
管理距离(AD)(可信度)


有类以及无类路由查找
- 无类路由查找(ip classless):路由器不会注意目的地址的类别,它会在目的地址和所有己知的路由之间逐位(bit by bit)执行最长匹配
- 有类路由查找(noip classless):路由器收到心个数据包时,先查找目的地址所属主类,如果路由表中有主类路由,则再去找子网,如果有子网路由,则查询被限定在子网中,并进一步查找,如果最终查找失败,则丢弃数据包,即使有默认路由存在;如果本地没有该主类路由,则看是否有默认路由,如果有,则转发如果无,则丢弃。
无类查找是无论什么类型的IP都进行查找,直到找到匹配路线,比较慢。而有类差查找会查找同类型的IP,不会查找非同类型的IP,而且查找到匹配路线后就会放弃查找
最长匹配原则
- 主机地址(主机路径)
- 子网
- 一组子网(汇总路由)
- 主网号
- 超网(CIDR)
- 缺省地址
路由表的递归查询
R1为源,R3为目的,想要到达30.0,查到需要先到23.0,如何到23.0,又查到需从12.2,最后是从S0/0接口发出信息,就是这样的一步一步的递归查询
在我们手动配置时,需要在R1上配置
ip route 192.168.23.0 255.255.255.255 192.168.12.0
这就是R1可以以下一条为R2的路径去连通R3.
原理可以理解成送快递,从北京发往南京,北京的店铺和南京收货人地址都是一个逻辑地址,但是不可能通过一个人直接发往,应该是一层一层转过去。用户和发货商才是实际地址,相当于MAC,逻辑地址相当于IP。而IP相当于是送货点和收货点,这是不可以更改的,MAC是促进层层递进的,每次都需要更改,每次路由器收到信息时都需要拆封表皮(MAC),保留内皮(IP)。
路由选择主要参照两个量:
控制:即采用协议,如static,RIP,OSPF,EIGRP,IS-IS等等。
数据:即路由信息(怎么去),包含目标(IP+mask),via(下一跳),Cost(度量值)。
一般不同协议之间比较的是优先级(AD,管理距离),相同协议直接比较的是metric,不同协议比较的不同,EIGRP比较的是贷款延迟、OSPF比较的是带宽,等等。
相同路由下才会比较,掩码不同时基于最长掩码匹配原则,越长越精准
故,要去1.0的路线将A路线加进掩码为25位的路由表里,又因为管理距离(AD)90又加了C在24位掩码路由表里,而2.0的路线在路由相同的情况下仅添加D
EIGRP协议基础
抓包路由器间的信息
先是2已有EIGRP协议,而1没有,故一开始收到2的hello包,但是并没有回应。在给一配置EIGRP之后,1也开始发送hello包,两者收到对方的hello包之后便开始更新各自的报文,ACk确认了,就建立起了邻居关系。
在我们用2向邻居喊话时,抓包可以看看到2发给1的更新路由
我们在配置EIGRP时后面的1是AS号,如果要起邻居关系必须是AS号一致。这是和OSPF不一样的
OSPF是进程号,本地有效
总结EIGRP邻居形成条件:
- AS号验证:邻居之间AS号必须相同
- 价值观:理论是参照5K,但是实际参考带宽和延迟两个参数。
- “暗号”一致:认证和加密方式必须相同。
关于route-id
仅仅是一个名字的含义,并没有太多含义,好比出国起了一个外国名字
如果没有route-ID就会去调用loopback0的地址,再没有就去调用 2、 里的地址,哪个大调用哪个,图中就会调用192.168.3.254
手动宣告邻居表,将12.1.1.1这个地址宣告给其他邻居
拓扑表,小括号里的数字,前者是可行距离(FD),后者是通告距离
检查接口,从左到右依次是最大可行距离,带宽,延迟
手动更改接口带宽,要注意的是,改的仅是参考值,给协议看的,并非实际带宽
手动更改延迟,要注意的是,延迟会是你输入的数字的十倍
以上实验
在R1上配置loopback0接口地址并且如图宣告出去,
在R2上收到的路由如图所示
路由表上的跟宣告没有关系,仅和配置的IP有关。
从R1到R4、5会有两条路线,因为用的线路是一样的,所以两条路线都会被保留在路由表
拓扑表里可行距离和通告距离都是一样的。
如果我们想要仅使用一条路线,根据EIGRP协议参考,可以更改带宽或者延迟(并不会更改实际数值)来选择,由于带宽较麻烦,我们便更改延迟。
我们将R2接口延迟改成10,也就是100延迟,相较于原本的1000延迟快很多,所以R1路由表就保留了R2的路线,而R3路线仅会在拓扑表里当备胎
一个有时会犯的错误,有时会忘记延迟十倍这件事,故而延迟被我们调的很大
我们发现R1连拓扑表里都没有了R3的路线,这是为什么呢?
我们看R3的拓扑表,发现去R4那条的路线有两条,一条是直接去,另一条就是通过R2去到R4,而且后者优先级更高。意思是R3通往R4的路本身就是从R2走更优,故而R1问R3的时候,R3这条路不会被通告给R1,于是就形成了只有一条路的情况。
R3通往R4的路是R2发给他的,收到信息的R3不会再发给R1。
从一个接口收到的路由不会从这个接口发出去——防环
路由汇总
在R1的环回接口配1.1,剩下的几个接口加了secondary,意思是子地址
这样我们仅能查看到1.1这一个地址,但是我们可以查看到其他地址的路由
我们在R2这里配一个新地址
这六个地址都是要宣告在EIGRP里的
记得开启自动路由汇总
一开始R3收到的路由会是全部的地址
在R2这里我们汇总路由,是将10.1.所有的地址都汇总
这样就只会收到一个,且通告距离是用的近的
汇总之后,在R2里,这个汇总路由的管理距离是5,是非常高的,但是R2发送给R3之后,R3这边的路由就又会变成正常的90的管理距离了,发送给其他路由器会是90,不过返回给R2的话R2会拒收,因为这里有一份
EIGRP参考值
K1=1这是权重,EIGRP默认是参考两个值的(即带宽和延迟),不过也可以对路由进行修改
这里修改成了参考五个值,如果仅修改这一个,那么邻居就会分离,因为价值观不同了、
主要是接口的不同,所以我们直接改R4接口
原本由于线路原因,R4甚至不能成为备胎,不过在改过接口之后就会成为备胎。不过只能在拓扑表里待着,因为可行距离太大
OSPF没有默认等价负载功能,EIGRP默认四条等价负载,但是可以改到32条
这种情况就是无等价负载,只能有一条线路,剩下的都在拓扑表当备胎
通过修改V值(Variamce、平衡因子)来实现不等价负载——即使备胎也可以帮忙传输
V值计算:
A是可行线路的可行距离,B是备胎的可行距离
成功从备胎“转正”了
大致比例就是A/B
我们可以看到R3去10.1.1.0有两条线路,路由里仅有13.1,拓扑表里有两条,这也就是S和FS
通过debug方式去看Q和R的报文
再shutdownR1的loopback0接口,
EIGRP的stub功能,告诉总部我是一个不重要的分部,然后我的分支不会汇报到总部去,我的hello包里只有直连和汇总的路由,而且拒绝和阻止查询
这样的话,如果R3有很多1.2 1.3 1.4这样的分支,就不会汇报到总部,减少R1和R2的路由压力
这种情况下就没这么复杂了,R1loopback0断开之后的debug可以看出来
我们在监听里加一个update,可以看到R3直接告诉他们10.1不可达