路由与转发(Routing and Forwarding)

路由是数据包从源地址到目标地址的路径选择过程,转发是数据包在网络中的实际传输。


什么是路由

路由是决定数据包从源地址到目标地址的路径的过程。

路由的作用

  • 路径选择:选择最佳路径
  • 网络互联:连接不同网络
  • 负载均衡:分散网络流量
  • 故障恢复:自动选择备用路径

路由表(Routing Table)

路由表结构

路由表包含路由信息,用于决定数据包的转发路径。

路由表项

目标网络        子网掩码        网关          接口      跃点数
192.168.1.0     255.255.255.0   0.0.0.0       eth0      0
10.0.0.0        255.0.0.0       192.168.1.1   eth0      1
0.0.0.0         0.0.0.0        192.168.1.1   eth0      1  (默认路由)

字段说明

  • 目标网络:目标网络地址
  • 子网掩码:网络掩码
  • 网关:下一跳路由器地址(0.0.0.0 表示直连)
  • 接口:出接口
  • 跃点数:到达目标的跳数(Metric)

路由选择过程

最长匹配原则

原则:选择子网掩码最长的匹配路由

示例

目标地址:192.168.1.100

路由表:
192.168.1.0/24  → 匹配(24 位)
192.168.0.0/16   → 匹配(16 位)
0.0.0.0/0        → 匹配(0 位)

选择:192.168.1.0/24(最长匹配)

路由选择算法

  1. 提取目标 IP 地址
  2. 查找路由表:找到匹配的路由
  3. 选择最佳路由:最长匹配原则
  4. 转发数据包:通过指定接口和网关转发

路由协议

静态路由

定义:手动配置的路由

特点

  • ✅ 简单、可靠
  • ✅ 不占用网络带宽
  • ❌ 需要手动维护
  • ❌ 不适应网络变化

配置示例

# Linux
sudo ip route add 10.0.0.0/8 via 192.168.1.1
 
# Windows
route add 10.0.0.0 mask 255.0.0.0 192.168.1.1

动态路由

定义:路由协议自动学习和维护的路由

特点

  • ✅ 自动适应网络变化
  • ✅ 自动选择最佳路径
  • ❌ 占用网络带宽
  • ❌ 配置复杂

路由协议类型

1. RIP(Routing Information Protocol)

类型:距离向量路由协议

特点

  • 使用跳数作为度量
  • 最大跳数:15
  • 更新周期:30 秒
  • 适用于小型网络

工作原理

  • 路由器定期广播路由表
  • 收到路由更新后,更新自己的路由表

2. OSPF(Open Shortest Path First)

类型:链路状态路由协议

特点

  • 使用带宽作为度量
  • 支持分层路由(区域)
  • 快速收敛
  • 适用于大型网络

工作原理

  • 路由器交换链路状态信息
  • 构建网络拓扑图
  • 使用 Dijkstra 算法计算最短路径

3. BGP(Border Gateway Protocol)

类型:路径向量路由协议

特点

  • 用于自治系统(AS)之间
  • 互联网的核心路由协议
  • 支持策略路由
  • 适用于大型网络

工作原理

  • AS 之间交换路由信息
  • 使用 AS 路径作为度量
  • 支持复杂的路由策略

数据包转发过程

转发流程

1. 接收数据包
   ↓
2. 提取目标 IP 地址
   ↓
3. 查找路由表
   ↓
4. 找到匹配路由?
   ├─ 是 → 5. 选择最佳路由
   └─ 否 → 6. 使用默认路由或丢弃
   ↓
7. 检查目标是否在同一网络?
   ├─ 是 → 8. 直接发送(ARP 获取 MAC 地址)
   └─ 否 → 9. 发送到网关(路由器)
   ↓
10. 更新 TTL(Time To Live)
   ↓
11. 重新计算校验和
   ↓
12. 通过指定接口发送

ARP(Address Resolution Protocol)

作用:将 IP 地址映射到 MAC 地址

过程

1. 发送 ARP 请求(广播)
2. 目标主机响应 ARP 应答
3. 缓存 MAC 地址

NAT(网络地址转换)

什么是 NAT

NAT(Network Address Translation)将私有 IP 地址转换为公有 IP 地址。

NAT 的作用

  • 节省公网 IP:多个内网设备共享一个公网 IP
  • 提高安全性:隐藏内网结构
  • 灵活性:内网 IP 可以随意分配

NAT 类型

1. 静态 NAT

定义:一对一映射

示例

内网 IP:192.168.1.10 → 公网 IP:203.0.113.10
内网 IP:192.168.1.11 → 公网 IP:203.0.113.11

2. 动态 NAT

定义:多对多映射

示例

内网 IP 池:192.168.1.10-192.168.1.20
公网 IP 池:203.0.113.10-203.0.113.20

3. PAT(Port Address Translation)

定义:多对一映射,使用端口区分

示例

内网:192.168.1.10:12345 → 公网:203.0.113.1:54321
内网:192.168.1.11:12345 → 公网:203.0.113.1:54322

实际应用

查看路由表

# Linux
route -n
# 或
ip route show
 
# Windows
route print
 
# Mac
netstat -rn

添加路由

# Linux
sudo ip route add 10.0.0.0/8 via 192.168.1.1
 
# Windows
route add 10.0.0.0 mask 255.0.0.0 192.168.1.1

删除路由

# Linux
sudo ip route del 10.0.0.0/8
 
# Windows
route delete 10.0.0.0

跟踪路由

# Linux/Mac
traceroute www.example.com
 
# Windows
tracert www.example.com

常见问题

1. 默认路由的作用?

默认路由(0.0.0.0/0)是当没有匹配的路由时使用的路由,通常指向网关。

2. 路由和转发的区别?

  • 路由:路径选择过程(控制平面)
  • 转发:数据包的实际传输(数据平面)

3. 如何选择路由协议?

  • 小型网络:使用静态路由或 RIP
  • 中型网络:使用 OSPF
  • 大型网络:使用 BGP

总结

路由与转发要点:

  • 路由表:存储路由信息
  • 路由选择:最长匹配原则
  • 路由协议:静态路由、动态路由(RIP、OSPF、BGP)
  • 数据包转发:查找路由表,选择路径,转发数据包
  • NAT:网络地址转换,节省公网 IP

理解路由原理是网络配置和故障排查的基础。


相关链接


路由 转发 NAT 网络协议