路由协议:自治系统、域内与域间路由、RIP、OSPF、BGP。
4.5 路由协议
4.5.1 自治系统
- **自治系统(AS)**:在单一技术管理下的许多网络、IP地址以及路由器的集合,使用一种内部路由选择协议和共同的度量。每个AS对其他AS表现出统一的路由选择策略。
AS类型:
- 末梢AS:较小的AS,只与直接连接的AS交换分组,不转发来自其他AS的分组。
- 多归属AS:末梢AS同时连接到两个或多个AS,但不允许分组穿越。
- 穿越AS:主干道AS,为其他AS有偿转发分组。
- 对等AS:经协商的AS之间,彼此交换分组不收费。
4.5.2 域内路由与域间路由
| 协议类型 | 作用范围 | 协议示例 |
|---|---|---|
| 内部网关协议(IGP) | 自治系统内部 | RIP、OSPF |
| 外部网关协议(EGP) | 自治系统之间 | BGP |
4.5.3 RIP路由协议
RIP是一种分布式的基于距离向量的路由选择协议,最大优点是简单。
基本规定
- 距离(跳数):到直接相连网络距离为1,每经过一个路由器加1。
- 好路由:优先选择跳数少的路径。
- 最大跳数:15跳,16表示网络不可达(RIP仅适用于小型网络)。
- 更新频率:默认每30秒广播一次路由更新信息。
- 版本:RIP不支持子网掩码,RIP2支持CIDR和变长子网掩码。
RIP特点
- 仅和相邻路由器交换信息。
- 交换全部路由表(自己知道的所有信息)。
- 按固定时间间隔交换(30秒)。
距离向量算法
收到相邻路由器X发来的RIP报文后:
- 修改报文:下一跳地址改为X,距离加1。
- 更新路由表:
- 若目的网络不在表中 → 添加。
- 若已在表中且下一跳是X → 替换。
- 若已在表中且下一跳不是X → 仅当新距离更小时更新。
- 超时处理:3分钟未收到邻居更新,将其距离设为16(不可达)。
问题:坏消息传播得慢
- 网络故障时,RIP需要较长时间才能将信息传遍所有路由器(收敛慢)。
RIP报文
- 应用层协议,使用UDP(端口520)传送。
- 一个RIP报文最多包含25个路由。
4.5.4 OSPF路由协议
OSPF(开放最短路径优先)是一种基于链路状态的路由选择协议。
- 开放:公开发表;最短路径优先:使用Dijkstra算法。
- 网络层协议,直接使用IP数据报传送(协议字段=89)。
OSPF与RIP的区别
| 特征 | RIP | OSPF |
|---|---|---|
| 信息发送范围 | 仅相邻路由器 | 本自治系统所有路由器(洪泛法) |
| 发送内容 | 路由表(距离、下一跳) | 链路状态(相邻路由器、链路度量) |
| 发送时机 | 周期性(30秒) | 链路状态变化时或周期性(30分钟) |
| 路由计算 | 距离向量 | Dijkstra算法 |
| 收敛速度 | 慢 | 快 |
OSPF特点
- 支持多种度量(费用、距离、时延、带宽等),可为不同业务计算不同路由。
- 支持多路径间的负载平衡。
- 具有鉴别功能,保证安全性。
- 支持可变长子网划分和CIDR。
- 每个链路状态带有32位序号,序号越大状态越新。
区域划分
为使OSPF适应大规模网络,将一个自治系统划分为若干区域:
- 主干区域(标识符0.0.0.0):连通其他下层区域。
- 区域边界路由器:概括区域信息。
- 自治系统边界路由器:与其他AS交换路由信息。
OSPF分组类型
| 类型 | 作用 |
|---|---|
| 问候(Hello) | 发现和维持邻站可达性(每10秒交换) |
| 数据库描述 | 交换链路状态数据库摘要信息 |
| 链路状态请求 | 请求缺失的链路状态项目 |
| 链路状态更新 | 用洪泛法更新链路状态(核心分组) |
| 链路状态确认 | 确认更新分组 |
- 40秒未收到Hello分组,认为邻居不可达,更新LSDB并重新计算路由。
4.5.5 BGP路由协议
BGP(边界网关协议)是不同自治系统之间交换路由信息的外部网关协议。
BGP只寻求较好路由(避免环路),而非最佳路由,原因:
- 因特网规模太大。
- 各AS度量标准不同。
- 需考虑政治、经济、安全等策略。
路径向量路由选择协议,应用层协议,基于TCP(端口179)。
BGP工作原理
- 每个AS选择至少一个BGP发言人。
- 发言人之间建立TCP连接,交换BGP报文建立BGP会话。
- 交换网络可达性信息(到达某网络所要经过的一系列AS)。
- 最终形成树形结构的AS连通图。
BGP连接类型
- eBGP:不同AS之间的BGP连接。
- iBGP:同一AS内部的BGP连接(AS内部iBGP必须全连通)。
路由通告规则:
- eBGP收到 → 可通过iBGP告知同一AS内对等端。
- iBGP收到 → 可通过eBGP告知不同AS对等端。
- iBGP收到 → 不能转告同一AS内不同iBGP对等端。
BGP路由格式
1 | BGP路由 = “前缀,BGP属性” = “前缀,AS-PATH,NEXT-HOP” |
- AS-PATH:经过的AS号序列,用于避免环路。
- NEXT-HOP:通告路由的起点。
BGP路由选择规则
- 本地偏好值最高的路由。
- AS跳数最少的路由。
- 热土豆路由(尽快离开本AS)。
BGP报文类型
| 报文 | 作用 |
|---|---|
| 打开(Open) | 建立BGP连接 |
| 更新(Update) | 发送路由信息或撤销路由 |
| 保活(Keepalive) | 确认连接,周期维护(30秒) |
| 通知(Notification) | 报告差错 |
三种路由协议对比
| 特征 | RIP | OSPF | BGP |
|---|---|---|---|
| 类型 | 内部 | 内部 | 外部 |
| 路由算法 | 距离-向量 | 链路状态 | 路径-向量 |
| 传输协议 | UDP (520) | IP (协议89) | TCP (179) |
| 路径选择 | 跳数最少 | 代价最低 | 较好非最佳 |
| 交换结点 | 相邻路由器 | 所有路由器 | 相邻BGP发言人 |
| 交换内容(首次) | 全部路由表 | 链路状态信息 | 整个BGP路由表 |
| 交换内容(后续) | 全部路由表 | 有变化的部分 | 有变化的部分 |
例题(2017年37题)
直接封装RIP、OSPF、BGP报文的协议分别是(D. UDP、IP、TCP)
习题
RIP协议的最大跳数限制是(B. 15)
RIP协议使用的传输层协议及端口是(B. UDP, 520)
RIP协议的路由表中,一条路由条目包含(A. 目的网络、下一跳地址、跳数)
在OSPF网络中,路由器之间交换链路状态信息的分组是(D. 链路状态更新分组)
OSPF协议中,路由器根据(A. Dijkstra算法)来计算最短路径
关于OSPF区域的描述,正确的是(D. 以上都对)
BGP协议主要用于(B. 自治系统(AS)之间的路由选择)
BGP路由器通过(C. BGP报文)来交换路由信息
在BGP协议中,用于建立和维护BGP连接的报文是(C. Keepalive报文)
笔记结束