前言
路由是网络层的核心功能,负责将数据包从源地址转发到目的地址。理解路由算法和常用路由协议的工作原理,是软考中级网络工程师的重要内容。
路由基础
路由表结构
路由器通过查找路由表来决定数据包的转发路径:
| 目的网络 | 子网掩码 | 下一跳 | 接口 |
|---|---|---|---|
| 192.168.1.0 | 255.255.255.0 | 192.168.1.2 | Ethernet0 |
| 192.168.2.0 | 255.255.255.0 | 192.168.1.1 | Ethernet1 |
| 0.0.0.0 | 0.0.0.0 | 202.114.0.1 | Ethernet2 |
最后一行是默认路由,当目的地址不匹配任何具体路由时使用。
路由选择原则
- 最长前缀匹配:选择子网掩码最长(即网络位最多)的路由
- 管理距离优先:相同前缀时,选择管理距离(Metric)更小的
- 负载均衡:多条等价路由时可以分担流量
路由算法
静态路由 vs 动态路由
| 类型 | 特点 |
|---|---|
| 静态路由 | 手工配置,固定不变,适合小型网络 |
| 动态路由 | 自动学习和更新,适应网络变化,适合大型网络 |
常用路由算法
1. 距离向量(Distance Vector)
原理:路由器只知道自己到目的网络的距离(跳数),与邻居交换信息
算法:Bellman-Ford算法
优点:简单、配置容易 缺点:慢收敛、计数到无穷问题、路由环路
代表协议:RIP(Routing Information Protocol)
2. 链路状态(Link State)
原理:路由器掌握整个网络拓扑结构,计算最短路径
算法:Dijkstra算法
优点:收敛快、无环路 缺点:计算复杂、资源消耗大
代表协议:OSPF(Open Shortest Path First)
3. 路径向量(Path Vector)
原理:记录到达目的的完整路径,避免环路
代表协议:BGP(Border Gateway Protocol)
路由协议详解
RIP协议
特点:
- 最大跳数:15跳(16跳视为不可达)
- 更新周期:每30秒广播路由表
- 度量标准:跳数(Hop Count)
- 端口:UDP 520
版本:
- RIPv1:有类路由(Classful)
- RIPv2:无类路由(Classless,支持CIDR和VLSM)
OSPF协议
特点:
- 开放标准:公开协议,互操作性好
- 链路状态:使用Dijkstra算法
- 区域概念:将AS划分为区域,减少路由表规模
- 度量标准:代价(Cost),基于带宽计算
- 100Mbps → Cost = 1
- 10Mbps → Cost = 10
- 快速收敛:触发更新,仅当网络变化时发送
- 认证支持:支持明文和MD5认证
OSPF区域类型:
- 骨干区域(Area 0):必须连续,其他区域必须连接
- 普通区域:连接到骨干区域
- 末梢区域:只有一个出口点(ABR)
BGP协议
特点:
- 外部网关协议:用于自治系统(AS)之间的路由
- 路径向量协议:携带AS路径信息
- TCP端口179:可靠传输
- 策略路由:基于属性(AS-PATH等)实现路由策略
BGP类型:
- eBGP:外部BGP,不同AS之间
- iBGP:内部BGP,同一AS内部
BGP选路原则:
- 忽略下一跳AS(Local Pref)
- AS_PATH最短
- ORIGIN类型(IGP < EGP < Incomplete)
- MED值(多出口歧视)
- Router ID最小
- Cluster List长度
- Peer IP地址
路由配置示例
静态路由配置
| |
OSPF基本配置
| |
练习题
题目1:RIP协议中,当路由器收到跳数为16的路由信息时,会( )
A. 正常更新路由表 B. 将该路由标记为不可用 C. 丢弃该路由信息 D. 向源路由器发送错误消息
答案:C(RIP最大跳数为15,16视为不可达)
题目2:OSPF协议中,以下关于区域的描述错误的是( )
A. 骨干区域的区域ID必须是0 B. 所有区域必须与骨干区域相连 C. OSPF支持VLSM D. OSPF使用跳数作为度量标准
答案:D(OSPF使用Cost,不是跳数)
题目3:路由器收到一个数据包,查路由表发现有多条匹配路由时,优先选择( )
A. 跳数最少的 B. 带宽最大的 C. 子网掩码最长的 D. 管理距离最小的
答案:C(最长前缀匹配原则)
附录
参考文献
- 《路由算法与协议》- RFC文档
- CCNP路由与交换指南
- 软考中级网络工程师网络管理部分