RIP协议
内部网关协议,是一种动态路由选择协议,采用UDP协议520端口,范围限制在15跳。仅和相邻的路由器交换信息,交换本路由器知道的全部信息,按固定时间间隔交换路由信息。采用距离向量算法。
缺陷:路由器跳数并不能衡量网络链路的传输速度;最大跳数限制为15,无法搭建大型网络。
OSPF协议
将大型网络分割成若干区域,包括一个骨干区域和多个非骨干区域。
1. OSPF 使用以下三种数据结构:
- 邻居表:存储与直接相连路由器的邻居关系信息。
- 链路状态数据库(LSDB):存储所有链路状态通告(LSA)的集合,反映网络的拓扑结构。每个 OSPF 路由器都有一份 LSDB 副本。
- 路由表:根据 LSDB 计算出的最短路径,用于实际转发数据包。
2. OSPF 的主要步骤
- 邻居发现和建立:路由器发送 Hello 包,通过匹配网络参数(区域 ID、认证等)与其他路由器建立邻居关系。
- 链路状态通告(LSA):每个路由器生成 LSA,描述自身的链路状态。LSA 在网络中泛洪传递,确保所有路由器的 LSDB 数据库一致。
- 计算最短路径树(SPF):使用 Dijkstra 算法计算从自己到其他路由器的最短路径。生成的最短路径树(SPT)用于构建路由表。
- 路由更新:当网络拓扑变化(如链路中断)时,OSPF 会重新生成 LSA 并快速更新路由表。
BGP协议
BGP 的数据结构
- 邻居表(Adj-RIB-In):存储从邻居接收的所有路由信息。
- 路由表(Loc-RIB):存储路由器选择的最优路由。
- 邻居输出表(Adj-RIB-Out):存储将要发送给邻居的路由信息。
邻居建立(Peering)
BGP 路由器通过建立 TCP 连接(默认端口 179) 来交换路由信息。
建立邻居的步骤:
- Idle:等待手动配置邻居。
- Connect:尝试建立 TCP 连接。
- OpenSent:发送 Open 消息。
- OpenConfirm:接收对方的 Open 消息。
- Established:邻居关系建立,开始交换路由信息。
路由通告
BGP 路由器通告的内容是 网络前缀(如 192.168.1.0/24
)及其路径属性。
路由更新类型:
增量更新:仅通告变化的路由信息。
撤销更新:通知邻居某条路由不再可达。
路由选择规则
BGP 采用多条件的决策机制来选择最优路由,关键规则如下(按优先级):
优先值(Weight):本地策略设定,越高越优。
本地优先级(Local Preference):网络管理员设置的策略,值越高越优。
AS 路径长度:路径包含的 AS 数量,越短越优。
起源类型(Origin Type):内部路由优于外部路由。
下一跳(Next-Hop):检查下一跳是否可达。
路由器 ID:用于最终决策。