4.6 层次选路
一、层次选路
1.一个区域内的路由器组成集合 “自治系统”
2.同一个自治系统的路由器运行相同的路由协议——区域内路由协议
3.不同自治系统内的路由器可以运行不同的区域内路由协议
4.网关路由器:和其他自治系统内的路由器直接相连的路由器,运行域间路由协议,与其他网关路由器交互;和自治系统内的所有其他路由器一样也运行域内路由协议
二、域内路由协议(RIP, OSPF)
1.RIP(实现网络层功能,以应用进程的形式实现,依靠UDP提供的功能)
- 采用距离向量算法
- 每条链路权值看作1,代价视作经过路由器的跳数
- RIP 通告:每隔30秒,通过响应报文在邻居间交换距离向量
2.OSPF
- 采用链路状态算法
- 每个路由器都广播OSPF通告,OSPF通告记录每个邻居的链路特征和费用。 通告会散布到整个自治系统 (通过洪泛法)
- OSPF信息直接通过 IP传输 (不是 TCP 或 UDP)
- 对于每个链路, 有多个消费尺度用于不同的服务类型(如跳数,拥塞程度,代价)
- 在大的区域中使用层次 OSPF (即在同一个自治系统内部进行划分)
-
- 两级层次: 本地区域, 主干区域(这些区域都是在一个自治系统内)
- 只在区域内发送链路状态通告
- 边界路由器: 连接到其他自治系统
- 主干路由器:限于在主干区域内运行OSPF路由协议(本身不是区域边界路由器)
- 区域边界路由器(同时属于本地区域和主干区域):“汇总”了到本区域内部网络的路径, 并通告给其他区域边界路由器.
三、域间选路协议(边界网关协议BGP)
1.AS域间任务:了解通过各邻居AS可以到达哪些目的端,并将这些可达信息传播给AS内的所有路由器
2.转发表:根据AS内和AS间选路算法而配置
AS域内的选路项:用于目的端在域内的选路。
AS域内和AS域间的选路项:用于目的端在域外的选路。
3.BGP会话:路由器对通过半永久TCP连接来交换选路信息,和物理链路无关(并不总是和某条物理链路对应)
4.BGP通告:eBGP->跨越两个AS的BGP连接;iBGP->相同AS内部两路由器之间的连接。
通告:在会话(连接)的基础上
4.BGP路由:前缀+属性=“路由”
前缀:表示一个子网或子网的集合,如138.16.68/22
路径属性:当通告前缀时,通告包含了BGP属性。两个重要属性↓
- AS-PATH: 包含了前缀的通告已经通告过的那些AS,如 AS1 AS2 ……,采用一种防止产生路由循环的机制
- NEXT-HOP: 指出到达下一个AS的具体AS间边界路由器
(可能存在多条从当前AS到达下一个AS的链路) 当网关路由器接收到路由通告时,使用输入策略来决定接收/舍弃该通告。
5.BGP路由选择
- 路由器可能知道到相同前缀的多条路由,路由器必须从中选择
- 排除规则(应用排除规则直到有一条留下):
本地偏好值属性->具有最高偏好值的路由被选择->最短AS-PATH的路由->最靠近 NEXT-HOP路由器的路由->热土豆路由->其他标准
- 热土豆路由:选择具有最小最低开销的网关,尽快将分组送出域内,不考虑域间代价。
6.为什么AS内选路和AS间选路采用不同的协议 ?
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下