- 互联网路由
- 自治系统内部协议:路由信息协议(RIP)和开放最短路径优先协议(OSPF)
- 自治系统间协议:边界网关协议(BGP)
- 到目前为止我们对路由的研究 —— 理想化
- 所有路由器完全相同,网络呈 “扁平化” 结构
- 但实际情况并非如此
- 规模问题:当存在 2 亿个目标地址时
- 路由表无法存储所有目标地址
- 路由表交换会导致链路拥塞
- 管理自治性问题
- 互联网本质是 “网络的网络”
- 每个网络的管理员可能希望自主控制其网络内的路由策略
- 将路由器聚合为区域,即自治系统(AS)
- 同一自治系统内的路由器运行相同的路由协议
- 自治系统内部路由协议
- 不同自治系统中的路由器可运行不同的内部路由协议
- 网关路由器
- 自治系统中负责向系统外目标地址转发路由的路由器
- 与其他网关路由器运行自治系统间路由协议
- 与本自治系统内的路由器运行内部路由协议
- 由单个互联网服务提供商(ISP)或大型组织管理的路由器与网络集合
- 一个互联的网络系统,被唯一分配 16 位或 32 位的自治系统编号(AS Number)
- 任意两个节点之间至少存在一条路由路径
- 使用统一的路由协议
- 一级互联网服务提供商(Tier 1 ISPs)通过私人直连或在网络交换中心(peering centers)实现相互对等互联
- 二级互联网服务提供商(Tier 2 ISPs)之间相互对等互联,并从一级服务商获取网络转接(transit)服务
- 非转接自治系统(包括末梢网络 stub 与多归属网络 multi-homed)不承载转接流量
-
内部网关协议(IGP):用于自治系统(AS)内部的路由
- 在自治系统内的路由器之间传递路由信息
- 可专注于性能优化
- 不同自治系统之间的路由算法和路由表可能存在差异
-
外部网关协议(EGP):用于自治系统(AS)之间的路由
- 路由器需要获取其所在自治系统之外的网络信息
- 支持可达性的汇总信息
- 策略因素可能优先于性能考量
常见协议
-
内部网关协议(IGP)—— 自治系统(AS)内部协议
-
RIP(路由信息协议):采用距离向量算法
-
OSPF(开放最短路径优先协议):采用链路状态算法
-
IGRP(内部网关路由协议):思科私有协议
-
外部网关协议(EGP)—— 自治系统(AS)间协议
-
BGP(边界网关协议)
-
用于 ARPANET 的第一代路由算法
-
每个节点(路由器或主机)与相邻节点交换信息
-
相邻节点均直接连接至同一网络
-
节点维护以下向量:
-
每个直接连接网络的链路成本
-
每个目标的估计距离和下一跳向量
-
相邻节点之间交换 DV 更新消息以构建 / 更新路由表
-
变更传播需较长时间
-
-
-
ARPANET 的第二代路由算法
-
路由器初始化时,会确定每个接口的链路成本
-
向拓扑中的所有其他路由器通告链路成本集合
-
并非仅向相邻路由器通告
- 此后会监控链路成本
- 若发生显著变化,路由器会通告新的链路成本集合
-
每台路由器均可构建整个网络配置的拓扑结构
-
能够计算到每个目标网络的最短路径
-
路由器构建路由表,列出到达每个目标的下一跳
-
路由器不使用分布式路由算法
-
可使用任意路由算法确定最短路径
-
实际应用中常采用迪杰斯特拉(Dijkstra)算法
-
链路状态和距离向量算法对于外部网关协议并不有效
- 不同自治系统(AS)可能使用不同的度量标准,且存在不同的限制条件
-
并非所有子网都希望或需要被所有系统知晓
-
距离向量算法
- 无法提供路由过程中所经过自治系统的相关信息
-
链路状态算法
- 向所有路由器泛洪链路状态信息的方式难以管理
-
最受关注的是所经过的自治系统(AS)
-
无需路由度量标准
-
每个网关路由器向邻居广播到达目标的完整路径
- 每块信息均列出路由中访问过的所有自治系统
- 无需包含距离或成本估算
-
使网关路由器能够执行策略路由
-
避开经过特定自治系统的路径
-
最小化中转自治系统的数量
-
其他因素,例如链路速度、网络容量、拥塞倾向、整体运行质量和安全性
-
-
BGP(边界网关协议)
- 实际上用于自治系统(AS)间路由的互联网标准协议
-
OSPF(开放最短路径优先协议)
-
互联网中使用最广泛的自治系统(AS)内部协议
- 采用距离向量算法
- 1982 年被纳入 BSD-UNIX 发行版
- 距离度量:跳数(最大 15 跳)
- 距离向量:通过 RIP 更新消息每 30 秒在相邻节点间交换一次
- 若 180 秒内未收到更新消息,则意味着到相邻节点的链路已丢失
- 每次通告:最多列出 25 个目标网络
- 通告通过 UDP 数据包发送
-
链路成本采用后续队列长度计算,而非仅依据跳数
-
RIP 路由表由名为 routed(守护进程)的应用层进程管理
-
通告通过 UDP 数据包发送,并定期重复
-
OSPF(RFC 2328),取代了路由信息协议(RIP)
-
采用链路状态路由算法
- 每台路由器维护与相邻路由器的本地链路状态列表
- 通过泛洪方式每 10 秒向整个自治系统(AS)传输更新状态信息(通告)
-
OSPF 消息直接承载于 IP 之上,而非 UDP
-
每条链路分配成本度量值
-
每个节点将拓扑图存储为有向图
-
路由器节点
-
网络节点:(中转网络与末梢网络)
-
边:路由器 — 路由器、路由器 — 网络
-
采用迪杰斯特拉算法计算到每个目标的最短路径
-
将网络、主机和 BGP 路由器作为目标
-
每台路由器计算其 SPF 树,显示到达所有其他目标的最小成本路径
-
路由数据包时仅使用下一跳
-
安全性:对所有 OSPF 消息进行身份验证,以防止恶意入侵
-
允许存在多条等成本路径
-
每条链路针对不同服务类型(TOS)设置多个成本度量值
-
例如:卫星链路成本在尽力而为服务中设为 “低”,在实时服务中设为 “高”
-
集成单播与组播支持
-
组播 OSPF(MOSPF)与 OSPF 使用相同的拓扑数据库
-
大型域中的分层 OSPF
-
内部路由器(IR)
-
所有链路均连接至同一区域内的网络
-
区域边界路由器(ABR)
-
“汇总” 本区域内网络的距离信息
-
向其他区域边界路由器通告
-
骨干路由器(BBR)
-
仅在骨干区域内运行 OSPF 路由
-
自治系统边界(ASB)路由器
-
即 BGP 路由器
-
路由器链路通告:由所有 OSPF 路由器生成
- 区域内路由器的链路状态,在区域内泛洪传播
-
网络链路通告:由指定路由器生成
- 列出连接到网络的路由器,在区域内泛洪传播
-
汇总链路通告:由区域边界路由器生成
-
指向其他区域目标的路由
-
指向自治系统边界(ASB)路由器的路由
-
自治系统外部链路通告:由 ASB 路由器生成
-
描述指向 OSPF 网络外目标的路由
-
在 OSPF 网络的所有区域内泛洪传播
-
自治系统(AS)之间存在三种基本关系
-
自治系统 A 可以是自治系统 B 的客户
-
自治系统 A 可以是自治系统 B 的提供商
-
自治系统 A 可以是自治系统 B 的对等体
-
业务影响
-
客户向提供商付费
-
对等体之间不互相付费
-
交换流量大致相等
- 自治系统(AS)拓扑结构反映了自治系统之间的业务关系
- 自治系统之间的业务关系会影响哪些路由是可接受的
- 目标为 IP 前缀(如 12.0.0.0/8)
- 节点是自治系统(AS)
- 每个 AS 的内部结构对外隐藏
- 链路既代表物理连接,也体现业务关系
- 域间路由协议为 BGP(边界网关协议)
- 由 AS 边界路由器实现
BGP:基本概念 一个自治系统(AS)将其针对一个或多个 IP 前缀的最优路由进行通告(即 “导出”) 每个自治系统会从所收到的前缀通告中,选择其认为的 “最优” 路由
BGP 受距离向量算法启发,按目标进行路由通告,不全局共享网络拓扑信息,路径的迭代式分布式收敛,但存在四个关键区别
-
核心思想:通告完整路径
-
距离向量:按目标发送距离度量值
-
路径向量:为每个目标发送完整路径
-
优势
-
环路避免机制简单(直接丢弃包含环路的路径)
-
可基于完整路径制定灵活且具表达性的策略
-
为实现可扩展性,BGP 可对不同前缀的路由进行聚合。
- 实现 BGP 协议标准
- 规定与其他 BGP “发言者” 交换的消息内容
- 消息类型(如路由通告、更新等)
- 消息语法
- 处理这些消息的方式
- 例如:“当收到 BGP 更新时,执行……”
- 遵循协议规范中的 BGP 状态机及策略决策等
-
eBGP:不同自治系统(AS)边界路由器之间的 BGP 会话
-
用于学习到达外部目标的路由
-
iBGP:同一自治系统内边界路由器与其他路由器之间的 BGP 会话
- 用于在内部分发从外部学习到的路由
-
IGP(内部网关协议):域内路由协议
- 提供内部可达性
- 例如:OSPF、RIP
- 借助 eBGP 学习到达外部目标的路由
- 利用 iBGP 在自治系统内部分发从外部学习到的路由
- 通过 IGP 确定到达出口的最短路径
-
打开(Open)
-
建立 BGP 会话(BGP 使用 TCP 协议)
-
通知(Notification)
- 报告异常状况
-
更新(Update)
-
向邻居通告新路由
-
向邻居通告已失效的旧路由
-
-
保活(Keep-alive)
- 向邻居确认连接仍保持活跃状态
-
格式为 <IP 前缀:路由属性>
-
属性描述路由的特性
-
有两种更新类型
-
通告:新路由或现有路由的变更
-
撤销:移除不再存在的路由
路由通过属性进行描述
-
用于路由选择 / 导出决策
-
部分属性为本地属性
- 即在自治系统(AS)内部私有,不包含在通告中
-
部分属性会随 eBGP 路由通告一起传播
-
BGP 中存在许多标准化属性
属性:(1)AS 路径
- 包含在路由通告中
- 按逆序列出路由通告所经过的所有自治系统(AS)的向量
(2)本地优先级(LOCAL PREF)
- 在不同 AS 路径之间进行选择时的本地偏好值
- 属于自治系统(AS)本地属性,仅在 iBGP 消息中携带
- 数值越高,优先级越高
(3)多出口鉴别器(MED)
- 当自治系统(AS)通过两条或更多链路互联时使用;它用于指定前缀与所通告链路的 “接近程度”
- 数值越低越优先
- 通告前缀的自治系统设置 MED 值
- 接收前缀的自治系统(可选择)使用 MED 来选择链路
(4)IGP 成本
- 用于热土豆路由(即尽可能快速将流量转出本自治系统)
- 每台路由器基于域内协议的路径成本,选择距离最近的出口点




























