7. IP 路由
- [7. IP 路由](#7. IP 路由)
-
- 概述
- [7.1 直接传递与间接传递](#7.1 直接传递与间接传递)
- [7.2 IP 路由核心机制](#7.2 IP 路由核心机制)
- [7.3 路由表](#7.3 路由表)
-
- [7.3.1 路由表的构成](#7.3.1 路由表的构成)
- [7.3.2 信宿地址采用网络地址的好处](#7.3.2 信宿地址采用网络地址的好处)
- [7.3.3 下一跳地址的优势](#7.3.3 下一跳地址的优势)
- [7.3.4 特殊路由表项](#7.3.4 特殊路由表项)
- [7.3.5 路由算法](#7.3.5 路由算法)
- [7.4 静态路由](#7.4 静态路由)
-
- [7.4.1 特点](#7.4.1 特点)
- [7.4.2 自治系统(AS)](#7.4.2 自治系统(AS))
- [7.4.3 配置命令](#7.4.3 配置命令)
- [7.4.4 问题](#7.4.4 问题)
- [7.5 动态路由](#7.5 动态路由)
-
- [7.5.1 路由算法分类](#7.5.1 路由算法分类)
- [7.5.2 路由协议分类](#7.5.2 路由协议分类)
- 本章要点
7. IP 路由
概述
IP 路由(路由选择)是为数据报从信源到信宿寻找最佳 / 较佳路径的过程,核心依据是网络拓扑结构,通过路由表实现。路由表存在于主机和路由器中,反映局部网络拓扑,其使用频率远高于刷新频率(路由表由 IP 模块使用,由路由协议负责建立和刷新)。
7.1 直接传递与间接传递
数据报从信源到信宿的传递分为两种方式:
- 直接传递:数据报直接发送到最终信宿(信源与信宿位于同一物理网络)。
- 间接传递:信源与信宿位于不同物理网络,数据报需经过中间路由器转发(由多个中间传递组成)。
关系:完整的数据传递过程由 "1 次直接传递 + 0~ 多次间接传递" 构成。
7.2 IP 路由核心机制
- 路由选择依据:网络拓扑结构(抽象为 "点 - 线" 模型:点表示路由器,线表示网络)。
- 表驱动路由 :主机和路由器均通过路由表进行路由选择,路由表反映局部网络拓扑,所有路由表的集合反映整体拓扑。
- 路由表操作:
- 使用:IP 模块根据数据报目的 IP 地址和路由表选择下一跳(高频操作,每秒可达数百次)。
- 建立与刷新:由专门的路由协议负责(低频操作,每隔十秒至数十秒一次)。
- 路由表维护:ICMP 可对主机路由表进行重定向;动态路由协议(如 OSPF)负责动态刷新路由表,确保其及时反映网络结构变化。
7.3 路由表
路由表是主机和路由器中反映网络拓扑的数据集,核心功能是指明去往某信宿的路径,由多个字段构成。
7.3.1 路由表的构成
路由表为二维表,每个表项包含以下核心字段:
字段 | 含义 |
---|---|
信宿地址 | 通常为目标网络的 IP 地址(而非单主机地址,减小路由表规模)。 |
子网掩码 | 用于提取数据报目的 IP 地址对应的网络地址(与目的 IP "与" 操作后匹配信宿地址)。 |
下一跳地址 | 数据报通往信宿的 "下一步" 地址(可为路由器 IP 或本地接口,将多个路由器串联成完整路径)。 |
输出接口 | 路由器发送数据报的接口 IP 地址。 |
度量 | 衡量路径优劣的指标(通常为跳数,即途经路由器数量,取最小值)。 |
7.3.2 信宿地址采用网络地址的好处
- 减小路由表规模:网络数量远少于主机数量,简化表结构。
- 匹配网络抽象结构:抽象拓扑中仅关注网络,不关注单主机。
- 增强适应性:主机增减不影响路由表(信息隐藏)。
- 降低开销:减少路由表维护和路由选择的计算量。
7.3.3 下一跳地址的优势
- 路由表中仅存储 "下一跳" 而非完整路径,可:
- 大幅减小路由表规模;
- 消除路径冗余信息;
- 简化路由表维护。
7.3.4 特殊路由表项
- 特定主机路由 :
- 信宿地址为单主机 IP,子网掩码为
255.255.255.255
。 - 用途:为特定主机指定特殊路径(如安全性测试、网络管控)。
- 信宿地址为单主机 IP,子网掩码为
- 默认路由 :
- 信宿地址和子网掩码均为
0.0.0.0
(0.0.0.0/0
)。 - 用途:当路由表中无匹配的网络 / 主机地址时,默认使用此路径(通常指向自治系统外的出口路由器)。
- 限制:一个路由表最多只能有一条默认路由。
- 信宿地址和子网掩码均为
7.3.5 路由算法
IP 模块根据数据报目的 IP 地址和路由表选择路径的步骤:
- 提取数据报目的 IP 地址;
- 将路由表中各表项的子网掩码与目的 IP 进行 "与" 操作,得到目标网络地址;
- 匹配规则:
- 优先匹配特定主机路由(最长掩码匹配原则);
- 其次匹配网络地址;
- 若均不匹配,使用默认路由;
- 若无默认路由,丢弃数据报并发送 "网络不可达" ICMP 差错报告。
7.4 静态路由
静态路由是通过手工配置建立和维护路由表的方式,适用于小型、拓扑稳定的网络。
7.4.1 特点
- 路由器初始仅知晓直连网络,非直连网络需手工添加路由表项;
- 路由表为本地文件,网络结构变化时需人工调整。
7.4.2 自治系统(AS)
- 定义:由独立管理机构控制的一组网络和路由器的集合,内部拓扑、路由机制自主选择。
- 静态路由应用:自治系统内网络需手工添加到路由表,去往外部的网络通过默认路由转发。
7.4.3 配置命令
- Windows 系统 (
route
命令):- 添加:
route add 目的网络 mask 子网掩码 下一跳 [metric 度量]
- 删除:
route delete 目的网络 mask 子网掩码
- 显示:
route print
- 选项:
-p
(重启后保留路由)。
- 添加:
- Cisco 路由器 :
- 添加:
ip route 目的网络 子网掩码 下一跳/出口接口
- 删除:
no ip route 目的网络 子网掩码 下一跳/出口接口
- 显示:
show ip route
。
- 添加:
7.4.4 问题
- 大型网络中手工配置工作量极大;
- 无法动态适应网络拓扑变化(如链路故障);
- 可能产生冗余路径,增加管理复杂度。
7.5 动态路由
动态路由通过路由协议自动建立和维护路由表,适用于大型、拓扑动态变化的网络。核心原则是 "最短路径优先"(以跳数、时延等为度量)。
7.5.1 路由算法分类
- 距离 - 向量算法(V-D 算法) :
- 思想:路由器周期性向相邻路由器广播 "(信宿,距离)" 序偶(V 为信宿,D 为跳数),根据最短路径优先原则刷新路由表。
- 优点:简单易实现。
- 缺点:收敛速度慢(网络变化后,所有路由器同步拓扑信息耗时久);信息交换量大(每次广播近完整路由表)。
- 链路 - 状态算法(L-S 算法 / SPF 算法) :
- 思想:路由器通过 "链路状态通告(LSA)" 交换邻接链路状态,构建全局拓扑图,使用 Dijkstra 算法生成以自身为根的最短路径树(SPF 树),再构造路由表。
- 优点:收敛速度快(局部变化仅扩散相关信息);信息交换量小(仅广播链路状态变化)。
7.5.2 路由协议分类
动态路由协议分为内部网关协议(IGP) (自治系统内)和外部网关协议(EGP)(自治系统间)。
1. 路由信息协议(RIP)------ IGP,基于距离 - 向量算法
- 核心机制:以跳数为度量(1 跳 = 1 个路由器),最大有效跳数为 15(16 表示不可达)。
- 解决的问题 :
- 路由环路:限制最大跳数为 15,避免无限循环。
- 相同距离路径:先入为主(保留首次收到的路径)。
- 失效路径:为路由表项设定时器(180 秒无更新则标记为 "不可达",120 秒后删除)。
- 慢收敛(计数到无穷):
- 水平分割 + 毒性逆转:从某接口收到的路由信息,再从该接口发出时将距离设为 16(不可达),避免环路。
- 触发刷新:网络变化时立即广播更新,加速收敛。
- RIPv1 与 RIPv2 的对比:
特性 | RIPv1 | RIPv2 |
---|---|---|
子网支持 | 不支持(无子网掩码字段) | 支持(含子网掩码字段,兼容 VLSM 和 CIDR) |
鉴别机制 | 无 | 支持(明文口令 / 加密鉴别) |
通告方式 | 广播(255.255.255.255) | 组播(224.0.0.9) |
报文格式 | 无路由标记、下一跳字段 | 含路由标记(区分路由源)、下一跳字段 |
- 报文与封装:
- 报文类型:请求(类型 1)、响应(类型 2),响应报文含多个(信宿,距离)序偶。
- 封装:UDP 数据报(端口 520),最大报文长度 504 字节(含 25 个路由项)。
2. 开放最短路径优先(OSPF)------ IGP,基于链路 - 状态算法
- 核心机制 :自治系统划分为区域(减少路由信息量),主干区域(0.0.0.0)连接所有区域,边界路由器汇总区域信息。路由器通过 LSA 交换链路状态,构建链路状态数据库(LSDB),生成 SPF 树,再构造路由表。
- 关键特性 :
- 支持服务类型路由(根据数据报 TOS 字段选择路径)。
- 可为接口指派费用(基于吞吐率、时延等,影响路径选择)。
- 负载均衡(相同费用的路径平均分配流量)。
- 层次化结构(区域隐藏内部拓扑,支持大规模网络)。
- 支持多种鉴别机制(不同区域可采用不同方式)。
- 组播通告(减少无关主机开销)。
- 报文类型 :
- 共 5 种,均含 24 字节标准首部(版本、类型、长度等):
- Hello 分组(类型 1):发现 / 维护邻机关系,周期发送。
- 数据库描述分组(类型 2):交换 LSDB 概要,同步拓扑信息。
- 链路状态请求分组(类型 3):请求缺失的 LSA 细节。
- 链路状态更新分组(类型 4):泛洪 LSA(核心报文)。
- 链路状态确认分组(类型 5):确认 LSA 接收,保证可靠性。
- 共 5 种,均含 24 字节标准首部(版本、类型、长度等):
- 封装:直接封装在 IP 数据报中(协议字段 = 89)。
3. 增强型内部网关路由协议(EIGRP)------ IGP,Cisco 私有
- 核心机制 :结合距离 - 向量和链路 - 状态特性,使用扩散更新算法(DUAL) 计算路由。
- 路由表结构 :
- 邻机表:存储邻机状态信息。
- 拓扑表:存储可行后继路由(备用次佳路由)。
- 路由表:存储后继路由(最佳路由,用于转发)。
- 报文类型 :
- Hello:发现 / 维护邻机关系。
- Update:发送路由更新信息。
- Query:路由失效且无备用路由时,向邻机查询。
- Reply:响应 Query 报文。
- Ack:确认收到报文(通过其他报文承载,或单播 Hello 报文)。
- 封装:直接封装在 IP 数据报中(协议字段 = 88)。
4. 边界网关协议(BGP)------ EGP,基于路径 - 向量算法
- 核心机制:用于自治系统间交换路由信息,路径以 "自治系统号(ASN)序列" 表示,支持基于策略的路由(考虑政治、经济、安全等因素)。
- 报文类型 :
- 打开报文(类型 1):建立邻机关系(TCP 连接建立后发送)。
- 更新报文(类型 2):通告新路由或删除无效路由(核心报文)。
- 保持活动报文(类型 3):定期发送,维持邻机连接。
- 通告报文(类型 4):报告错误或关闭连接。
- 封装:通过 TCP 传输(端口 179),保证可靠性。
- 防环机制:路由更新时,若路径中已包含本地 ASN,则拒绝该路径。
本章要点
- 数据传递分为直接传递(同一网络)和间接传递(跨网络,经路由器转发)。
- 路由表是路由选择的核心,含信宿地址、子网掩码、下一跳、输出接口、度量,特殊表项包括特定主机路由(
255.255.255.255
)和默认路由(0.0.0.0/0
)。 - 静态路由手工配置,适用于小型稳定网络;动态路由通过协议自动维护,适用于大型动态网络。
- 路由算法分为距离 - 向量(如 RIP)和链路 - 状态(如 OSPF),前者简单但收敛慢,后者复杂但收敛快。
- 主要路由协议:
- RIP(IGP,V-D 算法,跳数度量,适用于小型网络);
- OSPF(IGP,L-S 算法,区域划分,适用于大规模网络);
- EIGRP(Cisco 私有 IGP,DUAL 算法,复合度量);
- BGP(EGP,路径 - 向量算法,AS 间路由,支持策略路由)。