# 4.5 路由协议 ## 一、路由协议概述 ### 1.1 什么是路由协议 **路由协议**: - 路由器之间交换路由信息的协议 - 用于建立和维护路由表 - 实现动态路由 ### 1.2 路由协议的分类 **按范围分类**: - **内部网关协议(IGP)**:自治系统内部使用 - **外部网关协议(EGP)**:自治系统之间使用 **按算法分类**: - **距离向量路由协议**:RIP - **链路状态路由协议**:OSPF、IS-IS - **路径向量路由协议**:BGP --- ## 二、内部网关协议(IGP) ### 2.1 RIP(Routing Information Protocol) #### RIP概述 **RIP**: - 距离向量路由协议 - 使用跳数作为度量 - 最大跳数:15 - 每30秒广播路由表 #### RIP的特点 **优点**: - 简单 - 易于配置 - 开销小 **缺点**: - 收敛慢 - 最大跳数限制(15跳) - 可能产生路由环路 - 度量不精确(只考虑跳数) #### RIP的工作原理 1. **初始化**: - 路由器只知道自己直连的网络 - 距离为0 2. **交换路由信息**: - 每30秒向邻居发送路由表 - 收到路由信息后更新自己的路由表 3. **路由表更新**: - 收到邻居的路由信息 - 如果新路径更短,更新 - 如果原路径的下一跳发送了新的信息,更新 #### RIP报文格式 ``` | 命令(1字节) | 版本(1字节) | 必须为零(2字节) | | 地址族标识符(2字节) | 必须为零(2字节) | | IP地址(4字节) | | 必须为零(4字节) | | 必须为零(4字节) | | 度量(4字节) | ``` **命令**: - 1:请求 - 2:响应 **度量**: - 跳数(1-16) - 16表示不可达 #### RIP的版本 **RIP v1**: - 有类路由协议 - 不支持子网掩码 - 广播更新 **RIP v2**: - 无类路由协议 - 支持子网掩码(CIDR) - 组播更新(224.0.0.9) - 支持认证 #### RIP的路由环路问题 **问题**: - 路由信息传播慢 - 可能形成路由环路 **解决方法**: - **定义最大度量**:16跳为不可达 - **水平分割**:不向原方向通告路由 - **毒性逆转**:向原方向通告无穷大度量 - **抑制计时器**:延迟更新 - **触发更新**:立即发送更新 ### 2.2 OSPF(Open Shortest Path First) #### OSPF概述 **OSPF**: - 链路状态路由协议 - 使用Dijkstra算法 - 无类路由协议 - 支持区域划分 #### OSPF的特点 **优点**: - 收敛快 - 无路由环路 - 支持大规模网络 - 度量精确(带宽) - 支持认证 **缺点**: - 复杂 - 开销大 - 需要更多内存和CPU #### OSPF的工作原理 1. **发现邻居**: - 发送Hello报文 - 建立邻居关系 2. **交换链路状态**: - 发送LSA(链路状态通告) - 泛洪LSA到整个区域 3. **构建拓扑数据库**: - 收集所有LSA - 构建链路状态数据库(LSDB) 4. **计算最短路径**: - 使用Dijkstra算法 - 计算到所有节点的最短路径 - 生成路由表 #### OSPF的报文类型 **Hello报文**: - 发现和维护邻居关系 - 10秒发送一次(广播网络) **DD(Database Description)报文**: - 描述链路状态数据库摘要 - 用于数据库同步 **LSR(Link-State Request)报文**: - 请求特定的LSA **LSU(Link-State Update)报文**: - 发送完整的LSA - 泛洪LSA **LSAck(Link-State Ack)报文**: - 确认收到LSA #### OSPF的区域 **区域(Area)**: - 将网络划分为多个区域 - 减少LSA泛洪范围 - 减少路由表大小 **区域类型**: - **标准区域**:普通区域 - **骨干区域(Area 0)**:所有区域必须连接到骨干 - **Stub区域**:不接收外部路由 - **Totally Stubby区域**:不接收外部和区域间路由 - **NSSA(Not-So-Stubby Area)**:Stub区域但允许引入外部路由 **路由器类型**: - **IR(Internal Router)**:所有接口在同一区域 - **ABR(Area Border Router)**:连接骨干区域和其他区域 - **BR(Backbone Router)**:至少一个接口在骨干区域 - **ASBR(AS Boundary Router)**:引入外部路由 #### OSPF的度量 **Cost(代价)**: - Cost = 10⁸ / 带宽(bps) - 带宽越大,Cost越小 **路径代价**: - 路径上所有链路Cost之和 #### OSPF与RIP的比较 | 特性 | RIP | OSPF | |-----|-----|------| | 类型 | 距离向量 | 链路状态 | | 算法 | Bellman-Ford | Dijkstra | | 度量 | 跳数 | 带宽(Cost) | | 收敛速度 | 慢 | 快 | | 路由环路 | 可能 | 不会 | | 网络规模 | 小(15跳) | 大 | | 复杂性 | 简单 | 复杂 | | 开销 | 小 | 大 | --- ## 三、外部网关协议(EGP) ### 3.1 BGP(Border Gateway Protocol) #### BGP概述 **BGP**: - 路径向量路由协议 - 用于自治系统之间 - 当前版本:BGP-4 #### BGP的特点 **优点**: - 支持大规模网络 - 支持策略路由 - 可靠传输(TCP) - 无路由环路 **缺点**: - 复杂 - 收敛慢 #### BGP的工作原理 1. **建立TCP连接**: - 使用TCP端口179 - 建立BGP对等体(Peer) 2. **交换路由信息**: - 交换整个BGP路由表 - 之后只交换变化 3. **维护路由信息**: - 定期发送Keepalive - 检测对等体状态 #### BGP的报文类型 **Open报文**: - 建立BGP连接 - 协商参数 **Update报文**: - 通告或撤销路由 - 主要报文类型 **Notification报文**: - 报告错误 - 关闭连接 **Keepalive报文**: - 维持连接 - 60秒发送一次 **Route-Refresh报文**: - 请求重新发送路由 #### BGP的路径属性 **Well-known Mandatory(公认必遵)**: - ORIGIN:路由来源 - AS_PATH:AS路径 - NEXT_HOP:下一跳 **Well-known Discretionary(公认自决)**: - LOCAL_PREF:本地优先级 - ATOMIC_AGGREGATE:原子聚合 **Optional Transitive(可选过渡)**: - AGGREGATOR:聚合者 - COMMUNITY:团体 **Optional Non-transitive(可选非过渡)**: - MED(Multi-Exit Discriminator):多出口区分 #### BGP的路由选择 **选择顺序**: 1. 最高WEIGHT(Cisco私有) 2. 最高LOCAL_PREF 3. 本地起源(network/redistribute/summary) 4. 最短AS_PATH 5. 最低ORIGIN类型(IGP < EGP < Incomplete) 6. 最低MED 7. eBGP优于iBGP 8. 最低IGP Cost到下一跳 9. 最老的eBGP路由 10. 最低Router ID 11. 最短Cluster List 12. 最低邻居IP地址 #### BGP的AS_PATH **AS_PATH**: - 记录路由经过的AS序列 - 防止路由环路 - 用于路由选择 **类型**: - AS_SEQUENCE:AS序列 - AS_SET:AS集合(聚合路由) #### iBGP和eBGP **iBGP(Internal BGP)**: - 同一AS内的BGP - 需要全互联或路由反射器 - 管理距离:200 **eBGP(External BGP)**: - 不同AS之间的BGP - 直接连接 - 管理距离:20 --- ## 四、路由协议比较 ### 4.1 IGP比较 | 特性 | RIP | OSPF | IS-IS | |-----|-----|------|-------| | 类型 | 距离向量 | 链路状态 | 链路状态 | | 算法 | Bellman-Ford | Dijkstra | Dijkstra | | 度量 | 跳数 | Cost | Cost | | 收敛 | 慢 | 快 | 快 | | 环路 | 可能 | 不会 | 不会 | | 规模 | 小 | 大 | 大 | | 区域 | 无 | 有 | 有 | | 复杂性 | 简单 | 复杂 | 复杂 | | 应用 | 小型网络 | 企业网 | ISP | ### 4.2 EGP | 特性 | BGP | |-----|-----| | 类型 | 路径向量 | | 传输 | TCP | | 度量 | 路径属性 | | 收敛 | 慢 | | 环路 | 不会 | | 规模 | 极大 | | 策略 | 支持 | | 应用 | Internet | --- ## 五、考研重点 1. **路由协议的分类**: - IGP和EGP - 距离向量、链路状态、路径向量 2. **RIP**: - 特点 - 工作原理 - 路由环路问题及解决方法 - RIP v1和RIP v2的区别 - 与OSPF的比较 3. **OSPF**: - 特点 - 工作原理 - 报文类型 - 区域划分 - 路由器类型 - 度量(Cost) - 与RIP的比较 4. **BGP**: - 特点 - 工作原理 - 报文类型 - 路径属性 - 路由选择过程 - iBGP和eBGP - AS_PATH的作用 5. **路由协议比较** --- *下一节:4.6 IP组播*