目录
[1. 路由的基本概念](#1. 路由的基本概念)
[2. 路由聚合](#2. 路由聚合)
[3. 最长前缀匹配](#3. 最长前缀匹配)
[1. 核心原理](#1. 核心原理)
[4. 解决措施](#4. 解决措施)
[1. 核心原理](#1. 核心原理)
[2. 关键机制](#2. 关键机制)
[3. 特点](#3. 特点)
[1. 核心原理](#1. 核心原理)
[2. 关键机制](#2. 关键机制)
[1. 核心结构](#1. 核心结构)
[2. 转发流程](#2. 转发流程)
一、路由基础
1. 路由的基本概念
-
路由表:路由器存储的条目,包含目的网络、子网掩码、下一跳、接口、度量等信息,常见路由条目如下:
|---------|--------|-------|
|目的网络|子网掩码|下一跳| -
直连路由 :路由器自动发现的直连网络路由(通过路由器接口IP与网络掩码按位与操作得到),无需手动配置。
-
静态路由 :管理员手动配置的路由,适用于拓扑稳定的小型网络
-
默认路由 :当路由表中无匹配条目时使用的"兜底"路由,通常配置为
0.0.0.0。
2. 路由聚合
-
核心原理 :将多个连续子网的共同前缀提取出来,生成一个更大的网络地址,减少路由表条目。
-
计算示例:
-
子网
192.168.1.0/24、192.168.2.0/24、192.168.3.0/24 -
共同前缀为
192.168.0.0/22(二进制前22位相同)
-
-
作用 :减少路由表大小,降低路由器开销,提升收敛速度。
3. 最长前缀匹配
-
规则 :路由器转发数据包时,选择与目的IP地址前缀最长的路由条目(网络前缀越长,地址快就越小,路由就越具体)。
-
示例:
-
目的IP:
192.168.1.10 -
路由表条目:
192.168.1.0/24和192.168.0.0/21 -
优先匹配
/24(前缀更长,更精确)
-
二、路由选择协议分类
自治系统(AS)
-
定义:由同一管理机构控制的一组网络,拥有唯一的AS号(16位或32位)。
-
核心协议分类:
-
内部网关协议(IGP):AS内部的路由协议,如 RIP、OSPF。
-
外部网关协议(EGP):AS之间的路由协议,如 BGP。
-
三、RIP(路由信息协议)
1. 核心原理
-
距离向量算法:以"跳数"(经过的路由器数量)为度量,最大跳数为15(16表示不可达)。
-
更新机制:
-
周期性更新:每30秒向邻居广播路由表。
-
触发更新:路由拓扑结构变化时立即发送更新报文,加速收敛。
-
2.主要特征
和谁交换信息:于自己的邻居路由器交换信息。
交换什么信息:交换自己的路由表。
什么时候交换信息:周期性交换(一般为30s),若路由拓扑结构发生变化也会触发更新。
3.主要问题
坏消息传的慢(由于形成路由环路所导致)
4. 解决措施
-
水平分割:路由器不向路由信息的来源方向发送该路由,避免环路。
-
毒性逆转:将来自某邻居的路由信息,以跳数16(不可达)发回给该邻居,快速消除环路。
-
触发更新:路由变化时立即发送更新,而非等待30秒周期性更新。
-
计时器:
-
更新计时器:30秒(发送更新)
-
超时计时器:180秒(路由未更新则标记为不可达)
-
垃圾回收计时器:若再过120秒仍未收到邻居路由器发来的消息(删除不可达路由)
-
-
四、OSPF(开放最短路径优先)
1. 核心原理
-
链路状态算法:每个路由器生成链路状态通告(LSA),泛洪到全网,同步链路状态数据库(LSDB),再通过Dijkstra算法计算最短路径。
-
LSA包含两种链路状态:与直连网络的链路状态以及与邻居路由器的链路状态。
2. 关键机制
(1)邻居与邻接关系
-
Hello包 :每10秒发送(广播网络)或30秒(非广播网络),用于发现邻居、建立邻接关系。
-
DR/BDR选举:在广播/非广播网络中,选举指定路由器(DR)和备份指定路由器(BDR),减少LSA泛洪量
(2)区域划分
-
骨干区域(Area 0) :必须存在,所有非骨干区域必须连接到骨干区域,避免路由环路。
-
非骨干区域:标准区域、Stub区域、Totally Stub区域、NSSA区域等,用于减少LSA泛洪范围。
-
区域内部路由:所有接口都位于同一区域内。
-
区域边界路由器(ABR):一个接口连接自身区域,另一个接口来连接主干区域。
-
自治系统边界路由器(ASBR):自治系统内的,用于连接其他AS的路由器,引入外部路由。
(4)报文类型
|---------------|--------------|
| 报文 | 作用 |
| Hello | 发现邻居、建立邻接关系 |
| DBD(数据库描述) | 同步LSDB的摘要信息 |
| LSR(链路状态请求) | 请求缺失的LSA |
| LSU(链路状态更新) | 发送LSA |
| LSAck(链路状态确认) | 确认LSU,保证可靠泛洪 |
3. 特点
-
优点:无环路、收敛快、适合大型网络。
-
缺点:配置复杂、对路由器性能要求较高。
五、BGP(边界网关协议)
1. 核心原理
-
路径向量算法:基于AS路径、本地偏好等属性选择最优路由,确保AS间无环路。
-
核心目标:在AS之间传递路由信息,支持策略路由(如基于政治、经济因素选择路由)。
2. 关键机制
(1)连接建立
-
基于TCP(端口179)建立可靠连接,分为:
-
eBGP :不同AS之间的BGP连接,通常直接物理连接。
-
iBGP :同一AS内部的BGP连接,要求全连接(或通过路由反射器/联盟优化)。
-
(2)路由属性
-
必选属性:AS_PATH、NEXT_HOP、ORIGIN
-
可选属性:LOCAL_PREF等
-
核心属性优先级:
-
LOCAL_PREF(本地偏好,值越高越优先)
-
AS_PATH(AS数量越少越优先)
-
热土豆算法(选择离自己最近的出口)
-
Router ID(路由器的BGP标识,值越小越优先)
-
(3)报文类型
|--------------|-------------------------------|
| 报文 | 作用 |
| OPEN | 建立BGP连接,交换版本、AS号、Router ID等信息 |
| KEEPALIVE | 每60秒发送,维持连接(默认保持时间180秒) |
| UPDATE | 发送路由更新(新增/撤销路由),携带路由属性 |
| NOTIFICATION | 检测到错误时发送,关闭连接 |
六、路由器工作原理
1. 核心结构
-
路由选择部分 :通过路由协议构建和维护路由表。
-
分组转发部分:
-
输入端口:接收数据包,提取目的IP,查找路由表,确定下一跳。
-
交换结构:将数据包从输入端口转发到输出端口。
-
输出端口:封装数据包,发送到下一跳。
-
2. 转发流程
-
输入端口接收数据包,进行物理层和数据链路层处理。
-
提取目的IP地址,在路由表中进行最长前缀匹配,确定下一跳和输出端口。
-
交换结构将数据包转发到输出端口。
-
输出端口进行数据链路层封装,发送到下一跳。
七、三大路由协议详细对比
|-------|-----------|--------------|------------------|
| 对比项 | RIP | OSPF | BGP |
| 协议类型 | IGP | IGP | EGP |
| 算法原理 | 距离向量 | 链路状态 | 路径向量 |
| 度量 | 跳数(最大15) | 链路带宽 | AS路径、LOCAL_PREF等 |
| 传输层协议 | UDP(520) | IP(89) | TCP(179) |
| 更新方式 | 周期性广播/组播 | 触发更新+可靠泛洪 | 增量更新 |
| 收敛速度 | 慢(数分钟) | 快(数秒) | 较慢(依赖策略) |
| 适用场景 | 小型网络 | 中大型企业网络 | 互联网AS之间 |
| 环路处理 | 水平分割、毒性逆转 | 无环路(链路状态算法 ) | AS_PATH防环 |
