第10章 动态选路协议
所属:TCP/IP详解 卷1:协议 来源:TCP/IP详解 卷1:协议
本章介绍动态选路协议,包括RIP、OSPF、BGP和CIDR等。
10.1 引言
什么是动态选路
动态选路(Dynamic Routing):
- 路由器之间交换路由信息
- 自动学习路由
- 自动适应拓扑变化
- 不用手动配置
动态选路自动学习和更新路由。
为什么需要动态选路
为什么需要动态选路:
- 大网络静态配置太麻烦
- 拓扑经常变化
- 需要自动适应
- 需要冗余和容错
动态选路的好处:
- 自动学习
- 自动适应变化
- 容错
- 减少人工配置
大网络需要动态选路。
动态选路协议
常见的动态选路协议:
| 协议 | 类型 | 用途 |
|---|---|---|
| RIP | 距离矢量 | 小型网络 |
| OSPF | 链路状态 | 中型/大型网络 |
| BGP | 路径矢量 | 互联网,AS之间 |
有多种动态选路协议。
本章讨论的内容
本章讨论的内容:
- 动态选路的基本概念
- RIP协议
- OSPF协议
- BGP协议
- CIDR:无类域间选路
本章介绍动态选路协议。
10.2 选路协议的分类
按算法分类
按算法分类:
-
距离矢量(Distance Vector)
- 知道距离和方向
- 不知道全网拓扑
- 邻居之间交换路由表
- 简单,收敛慢
- 比如RIP
-
链路状态(Link State)
- 知道全网拓扑
- 交换链路状态信息
- 用SPF算法计算
- 复杂,收敛快
- 比如OSPF
-
路径矢量(Path Vector)
- 知道路径
- 交换路径信息
- 比如BGP
三种主要的算法类型。
按范围分类
按范围分类:
-
内部网关协议(IGP)
- Interior Gateway Protocol
- 一个自治系统(AS)内部
- 比如RIP、OSPF
-
外部网关协议(EGP)
- Exterior Gateway Protocol
- 自治系统之间
- 比如BGP
IGP和EGP。
自治系统
自治系统(Autonomous System, AS):
- 一个独立管理的网络
- 同一个管理机构
- 统一的选路策略
- 有唯一的AS号
例子:
- 一个运营商的网络
- 一个大公司的网络
- 都是一个AS
AS是一个独立管理的网络。
10.3 RIP协议
什么是RIP
RIP(Routing Information Protocol):
- 路由信息协议
- 距离矢量算法
- 用跳数作为度量
- 适合小型网络
- 简单,容易实现
RIP是简单的距离矢量协议。
RIP的基本原理
RIP的基本原理:
-
定期更新
- 每隔30秒
- 给邻居发自己的路由表
-
距离矢量
- 每个路由条目有跳数
- 到目的网络的跳数
-
更新路由
- 收到邻居的路由表
- 比较,选最好的
- 更新自己的路由表
-
最大跳数
- 最大15跳
- 16跳表示不可达
- 所以只适合小网络
RIP用跳数,定期更新。
RIP的版本
RIP的版本:
-
RIP v1
- 有类路由
- 不支持VLSM
- 广播更新
- 不支持认证
-
RIP v2
- 无类路由
- 支持VLSM
- 多播更新
- 支持认证
RIP有两个版本。
RIP的优缺点
优点:
- 简单
- 容易实现
- 容易配置
- 适合小网络
缺点:
- 最大15跳,只适合小网络
- 收敛慢
- 度量值只有跳数,不考虑带宽
- 可能有路由环路
RIP简单但有局限。
10.4 OSPF协议
什么是OSPF
OSPF(Open Shortest Path First):
- 开放最短路径优先
- 链路状态协议
- 用SPF算法
- 适合中大型网络
- 开放标准
OSPF是链路状态协议。
OSPF的基本原理
OSPF的基本原理:
-
链路状态
- 每个路由器知道自己的链路状态
- 泛洪给所有路由器
- 每个路由器都有全网拓扑图
-
SPF算法
- Dijkstra算法
- 计算最短路径
- 以自己为根
-
区域划分
- 可以分成多个区域
- 减少LSA数量
- 提高效率
-
度量值
- 代价(cost)
- 通常基于带宽
- 带宽越高代价越小
OSPF用链路状态和SPF算法。
OSPF的特点
OSPF的特点:
- 链路状态算法
- 收敛快
- 没有跳数限制
- 支持VLSM和CIDR
- 支持区域划分
- 支持等价路由
- 支持认证
- 只用IP协议号89,不用UDP/TCP
OSPF功能强大。
OSPF的区域
OSPF的区域:
- 骨干区域(Area 0)
- 其他区域
- 所有区域都要连骨干
- 减少路由信息
为什么划分区域:
- 减少LSA数量
- 减少计算量
- 提高稳定性
- 一个区域出问题不影响其他
区域划分提高效率和稳定性。
OSPF的优缺点
优点:
- 收敛快
- 没有跳数限制
- 度量值更合理(带宽)
- 支持大网络
- 支持VLSM/CIDR
- 没有路由环路
缺点:
- 复杂
- 配置难
- 对路由器要求高
- 资源消耗大
OSPF强大但复杂。
10.5 BGP协议
什么是BGP
BGP(Border Gateway Protocol):
- 边界网关协议
- 路径矢量协议
- 用于AS之间
- 互联网的核心路由协议
- 现在是BGP-4
BGP是互联网的核心路由协议。
BGP的作用
BGP的作用:
- 在AS之间交换路由信息
- 选择最佳路径
- 实施选路策略
- 互联网的骨干就是用BGP
BGP用于AS之间的选路。
BGP的基本原理
BGP的基本原理:
-
路径矢量
- 路由携带AS路径
- 经过哪些AS
- 可以防止环路
-
TCP传输
- 用TCP 179端口
- 可靠传输
- 不用定期更新,只在变化时更新
-
策略选路
- 可以配置各种策略
- 控制选路
- 很灵活
-
慢收敛
- 互联网路由太多
- 不能频繁变化
- 稳定优先
BGP是路径矢量,用TCP传输。
BGP的特点
BGP的特点:
- 路径矢量算法
- 用TCP传输
- 支持CIDR
- 支持路由聚合
- 策略选路
- 用于AS之间
- 互联网规模
BGP功能强大,适合互联网。
BGP的优缺点
优点:
- 适合超大规模网络
- 灵活的策略
- 可靠传输
- 支持CIDR
缺点:
- 非常复杂
- 配置难
- 收敛慢
- 资源消耗大
BGP强大但非常复杂。
10.6 CIDR:无类域间选路
什么是CIDR
CIDR(Classless Inter-Domain Routing):
- 无类域间选路
- 不按A/B/C类分
- 用前缀长度表示
- 更灵活,更节省地址
CIDR打破了分类地址的限制。
为什么需要CIDR
为什么需要CIDR:
问题:
- A类太大,B类不够用,C类太小
- 地址浪费严重
- 路由表越来越大
- 地址空间不够用
CIDR的解决:
- 不分类,任意前缀长度
- 可以聚合路由
- 减少路由表大小
- 提高地址利用率
CIDR解决了分类地址的问题。
CIDR表示法
CIDR表示法:
- IP地址/前缀长度
- 比如192.168.1.0/24
- 前24位是网络位
例子:
- 10.0.0.0/8:原来的A类
- 172.16.0.0/12:12位前缀
- 192.168.0.0/16:16位前缀
- 192.168.1.0/24:24位前缀
- 192.168.1.128/25:25位前缀
CIDR用前缀长度表示。
路由聚合
路由聚合(Route Aggregation):
- 也叫路由汇总
- 把多个小网络聚合成一个大网络
- 减少路由表条目
例子:
192.168.0.0/24
192.168.1.0/24
192.168.2.0/24
...
192.168.255.0/24
可以聚合为:
192.168.0.0/16
好处:
- 路由表变小
- 减少内存
- 减少计算
- 更稳定
路由聚合减少路由表大小。
10.7 小结
动态选路概述
-
什么是动态选路
- 自动学习路由
- 自动适应变化
-
为什么需要
- 大网络
- 拓扑变化
- 容错
-
分类
- 距离矢量、链路状态、路径矢量
- IGP、EGP
RIP
-
特点
- 距离矢量
- 跳数度量
- 最大15跳
- 定期更新
-
版本
- v1:有类,广播
- v2:无类,多播,认证
-
优缺点
- 优点:简单
- 缺点:跳数限制,收敛慢
OSPF
-
特点
- 链路状态
- SPF算法
- 代价度量(带宽)
- 区域划分
-
区域
- 骨干区域Area 0
- 其他区域
- 减少LSA
-
优缺点
- 优点:收敛快,无跳数限制,功能强
- 缺点:复杂,资源消耗大
BGP
-
特点
- 路径矢量
- TCP传输
- AS之间
- 策略选路
-
用途
- 互联网骨干
- AS之间选路
-
优缺点
- 优点:超大规模,灵活
- 缺点:非常复杂,收敛慢
CIDR
-
什么是CIDR
- 无类域间选路
- 前缀长度表示
-
为什么需要
- 地址浪费
- 路由表太大
-
路由聚合
- 多个小网络聚合成一个
- 减少路由表
关键概念
-
动态选路
- 自动学习
- 自动适应
-
RIP
- 距离矢量
- 跳数
- 小网络
-
OSPF
- 链路状态
- SPF
- 中大型网络
-
BGP
- 路径矢量
- AS之间
- 互联网
-
CIDR
- 无类
- 前缀长度
- 路由聚合