Skip to content

Latest commit

 

History

History
446 lines (279 loc) · 14.1 KB

File metadata and controls

446 lines (279 loc) · 14.1 KB

CH5-2

内容

  • 互联网路由
  • 自治系统内部协议:路由信息协议(RIP)和开放最短路径优先协议(OSPF)
  • 自治系统间协议:边界网关协议(BGP)

互联网路由

  • 到目前为止我们对路由的研究 —— 理想化
    • 所有路由器完全相同,网络呈 “扁平化” 结构
    • 但实际情况并非如此
  • 规模问题:当存在 2 亿个目标地址时
    • 路由表无法存储所有目标地址
    • 路由表交换会导致链路拥塞
  • 管理自治性问题
    • 互联网本质是 “网络的网络”
    • 每个网络的管理员可能希望自主控制其网络内的路由策略

分层路由

  • 将路由器聚合为区域,即自治系统(AS)
  • 同一自治系统内的路由器运行相同的路由协议
    • 自治系统内部路由协议
    • 不同自治系统中的路由器可运行不同的内部路由协议
  • 网关路由器
    • 自治系统中负责向系统外目标地址转发路由的路由器
    • 与其他网关路由器运行自治系统间路由协议
    • 与本自治系统内的路由器运行内部路由协议

自治系统(AS)

  • 由单个互联网服务提供商(ISP)或大型组织管理的路由器与网络集合
  • 一个互联的网络系统,被唯一分配 16 位或 32 位的自治系统编号(AS Number)
  • 任意两个节点之间至少存在一条路由路径
  • 使用统一的路由协议

  • 一级互联网服务提供商(Tier 1 ISPs)通过私人直连或在网络交换中心(peering centers)实现相互对等互联
  • 二级互联网服务提供商(Tier 2 ISPs)之间相互对等互联,并从一级服务商获取网络转接(transit)服务
  • 非转接自治系统(包括末梢网络 stub 与多归属网络 multi-homed)不承载转接流量


内部网关协议(IGP)和外部网关协议(EGP)

  • 内部网关协议(IGP):用于自治系统(AS)内部的路由

    • 在自治系统内的路由器之间传递路由信息
    • 可专注于性能优化
    • 不同自治系统之间的路由算法和路由表可能存在差异
  • 外部网关协议(EGP):用于自治系统(AS)之间的路由

    • 路由器需要获取其所在自治系统之外的网络信息
    • 支持可达性的汇总信息
    • 策略因素可能优先于性能考量

常见协议

  • 内部网关协议(IGP)—— 自治系统(AS)内部协议

  • RIP(路由信息协议):采用距离向量算法

  • OSPF(开放最短路径优先协议):采用链路状态算法

  • IGRP(内部网关路由协议):思科私有协议

  • 外部网关协议(EGP)—— 自治系统(AS)间协议

  • BGP(边界网关协议)

距离向量

  • 用于 ARPANET 的第一代路由算法

  • 每个节点(路由器或主机)与相邻节点交换信息

  • 相邻节点均直接连接至同一网络

  • 节点维护以下向量:

    • 每个直接连接网络的链路成本

    • 每个目标的估计距离和下一跳向量

      • 相邻节点之间交换 DV 更新消息以构建 / 更新路由表

      • 变更传播需较长时间

链路状态

  • ARPANET 的第二代路由算法

  • 路由器初始化时,会确定每个接口的链路成本

  • 向拓扑中的所有其他路由器通告链路成本集合

  • 并非仅向相邻路由器通告

    • 此后会监控链路成本
    • 若发生显著变化,路由器会通告新的链路成本集合
  • 每台路由器均可构建整个网络配置的拓扑结构

  • 能够计算到每个目标网络的最短路径

  • 路由器构建路由表,列出到达每个目标的下一跳

  • 路由器不使用分布式路由算法

  • 可使用任意路由算法确定最短路径

  • 实际应用中常采用迪杰斯特拉(Dijkstra)算法

外部网关协议(EGP)的要求

  • 链路状态和距离向量算法对于外部网关协议并不有效

    • 不同自治系统(AS)可能使用不同的度量标准,且存在不同的限制条件
  • 并非所有子网都希望或需要被所有系统知晓

  • 距离向量算法

    • 无法提供路由过程中所经过自治系统的相关信息
  • 链路状态算法

    • 向所有路由器泛洪链路状态信息的方式难以管理

外部网关协议(EGP)—— 路径向量

  • 最受关注的是所经过的自治系统(AS)

  • 无需路由度量标准

  • 每个网关路由器向邻居广播到达目标的完整路径

    • 每块信息均列出路由中访问过的所有自治系统
    • 无需包含距离或成本估算
  • 使网关路由器能够执行策略路由

    • 避开经过特定自治系统的路径

    • 最小化中转自治系统的数量

    • 其他因素,例如链路速度、网络容量、拥塞倾向、整体运行质量和安全性

BGP 与 OSPF

  • BGP(边界网关协议)

    • 实际上用于自治系统(AS)间路由的互联网标准协议
  • OSPF(开放最短路径优先协议)

  • 互联网中使用最广泛的自治系统(AS)内部协议


RIP(路由信息协议)

  • 采用距离向量算法
  • 1982 年被纳入 BSD-UNIX 发行版
  • 距离度量:跳数(最大 15 跳)
  • 距离向量:通过 RIP 更新消息每 30 秒在相邻节点间交换一次
  • 若 180 秒内未收到更新消息,则意味着到相邻节点的链路已丢失
  • 每次通告:最多列出 25 个目标网络
  • 通告通过 UDP 数据包发送

RIP 表处理

  • 链路成本采用后续队列长度计算,而非仅依据跳数

  • RIP 路由表由名为 routed(守护进程)的应用层进程管理

  • 通告通过 UDP 数据包发送,并定期重复


开放最短路径优先

  • OSPF(RFC 2328),取代了路由信息协议(RIP)

  • 采用链路状态路由算法

    • 每台路由器维护与相邻路由器的本地链路状态列表
    • 通过泛洪方式每 10 秒向整个自治系统(AS)传输更新状态信息(通告)
  • OSPF 消息直接承载于 IP 之上,而非 UDP

  • 每条链路分配成本度量值

  • 每个节点将拓扑图存储为有向图

  • 路由器节点

  • 网络节点:(中转网络与末梢网络)

  • 边:路由器 — 路由器、路由器 — 网络

  • 采用迪杰斯特拉算法计算到每个目标的最短路径

最短路径优先(SPF)操作

  • 将网络、主机和 BGP 路由器作为目标

  • 每台路由器计算其 SPF 树,显示到达所有其他目标的最小成本路径

  • 路由数据包时仅使用下一跳

OSPF 高级特性

  • 安全性:对所有 OSPF 消息进行身份验证,以防止恶意入侵

  • 允许存在多条等成本路径

  • 每条链路针对不同服务类型(TOS)设置多个成本度量值

  • 例如:卫星链路成本在尽力而为服务中设为 “低”,在实时服务中设为 “高”

  • 集成单播与组播支持

  • 组播 OSPF(MOSPF)与 OSPF 使用相同的拓扑数据库

  • 大型域中的分层 OSPF

  • 内部路由器(IR)

  • 所有链路均连接至同一区域内的网络

  • 区域边界路由器(ABR)

  • “汇总” 本区域内网络的距离信息

  • 向其他区域边界路由器通告

  • 骨干路由器(BBR)

  • 仅在骨干区域内运行 OSPF 路由

  • 自治系统边界(ASB)路由器

  • 即 BGP 路由器


链路状态通告

  • 路由器链路通告:由所有 OSPF 路由器生成

    • 区域内路由器的链路状态,在区域内泛洪传播
  • 网络链路通告:由指定路由器生成

    • 列出连接到网络的路由器,在区域内泛洪传播
  • 汇总链路通告:由区域边界路由器生成

  • 指向其他区域目标的路由

  • 指向自治系统边界(ASB)路由器的路由

  • 自治系统外部链路通告:由 ASB 路由器生成

  • 描述指向 OSPF 网络外目标的路由

  • 在 OSPF 网络的所有区域内泛洪传播


BGP

自治系统间业务关系塑造拓扑与策略

  • 自治系统(AS)之间存在三种基本关系

  • 自治系统 A 可以是自治系统 B 的客户

  • 自治系统 A 可以是自治系统 B 的提供商

  • 自治系统 A 可以是自治系统 B 的对等体

  • 业务影响

  • 客户向提供商付费

  • 对等体之间不互相付费

  • 交换流量大致相等

  • 自治系统(AS)拓扑结构反映了自治系统之间的业务关系
  • 自治系统之间的业务关系会影响哪些路由是可接受的

域间路由:设置

  • 目标为 IP 前缀(如 12.0.0.0/8)
  • 节点是自治系统(AS)
  • 每个 AS 的内部结构对外隐藏
  • 链路既代表物理连接,也体现业务关系
  • 域间路由协议为 BGP(边界网关协议)
  • 由 AS 边界路由器实现

BGP:基本概念 一个自治系统(AS)将其针对一个或多个 IP 前缀的最优路由进行通告(即 “导出”) 每个自治系统会从所收到的前缀通告中,选择其认为的 “最优” 路由

BGP 受距离向量算法启发,按目标进行路由通告,不全局共享网络拓扑信息,路径的迭代式分布式收敛,但存在四个关键区别

  • 核心思想:通告完整路径

  • 距离向量:按目标发送距离度量值

  • 路径向量:为每个目标发送完整路径

  • 优势

    • 环路避免机制简单(直接丢弃包含环路的路径)

    • 可基于完整路径制定灵活且具表达性的策略

为实现可扩展性,BGP 可对不同前缀的路由进行聚合。


“运行 BGP” 是什么意思?

  • 实现 BGP 协议标准
  • 规定与其他 BGP “发言者” 交换的消息内容
    • 消息类型(如路由通告、更新等)
    • 消息语法
  • 处理这些消息的方式
    • 例如:“当收到 BGP 更新时,执行……”
    • 遵循协议规范中的 BGP 状态机及策略决策等

自治系统(AS)中的边界路由器通过外部边界网关协议(eBGP)会话,与其他自治系统的边界路由器运行 BGP 协议。

一个自治系统(AS)中的边界路由器通过内部边界网关协议(iBGP)会话与同一自治系统内的其他路由器运行 BGP 协议。

eBGP、iBGP 与 IGP

  • eBGP:不同自治系统(AS)边界路由器之间的 BGP 会话

  • 用于学习到达外部目标的路由

  • iBGP:同一自治系统内边界路由器与其他路由器之间的 BGP 会话

    • 用于在内部分发从外部学习到的路由
  • IGP(内部网关协议):域内路由协议

    • 提供内部可达性
    • 例如:OSPF、RIP

eBGP、iBGP 与 IGP 的协同作用

  • 借助 eBGP 学习到达外部目标的路由
  • 利用 iBGP 在自治系统内部分发从外部学习到的路由
  • 通过 IGP 确定到达出口的最短路径

BGP 中的基本消息

  • 打开(Open)

  • 建立 BGP 会话(BGP 使用 TCP 协议)

  • 通知(Notification)

    • 报告异常状况
  • 更新(Update)

    • 向邻居通告新路由

    • 向邻居通告已失效的旧路由

  • 保活(Keep-alive)

    • 向邻居确认连接仍保持活跃状态

路由更新

  • 格式为 <IP 前缀:路由属性>

  • 属性描述路由的特性

  • 有两种更新类型

  • 通告:新路由或现有路由的变更

  • 撤销:移除不再存在的路由

路由属性

路由通过属性进行描述

  • 用于路由选择 / 导出决策

  • 部分属性为本地属性

    • 即在自治系统(AS)内部私有,不包含在通告中
  • 部分属性会随 eBGP 路由通告一起传播

  • BGP 中存在许多标准化属性


属性:(1)AS 路径

  • 包含在路由通告中
  • 按逆序列出路由通告所经过的所有自治系统(AS)的向量

(2)本地优先级(LOCAL PREF)

  • 在不同 AS 路径之间进行选择时的本地偏好值
  • 属于自治系统(AS)本地属性,仅在 iBGP 消息中携带
  • 数值越高,优先级越高

(3)多出口鉴别器(MED)

  • 当自治系统(AS)通过两条或更多链路互联时使用;它用于指定前缀与所通告链路的 “接近程度”
  • 数值越低越优先
  • 通告前缀的自治系统设置 MED 值
  • 接收前缀的自治系统(可选择)使用 MED 来选择链路

(4)IGP 成本

  • 用于热土豆路由(即尽可能快速将流量转出本自治系统)
  • 每台路由器基于域内协议的路径成本,选择距离最近的出口点