第5章:网络层:控制平面(三)
声明:以下所有内容均来自陈老师的课件,此博客只是为了方便日后复习
提纲
- 概述
- 路由选择算法
- 链路状态
- 距离向量
- Internet中自治系统内部的路由选择:OSPF
- ISP之间的路由选择:BGP
- SDN控制平面
- 因特网控制报文协议
- 网络管理和SNMP
Internet中自治系统内部的路由选择
让路由选择变得可扩展化
到目前为止关于路由选择的学习 -- 过于理想化
- 将任意规模的网络抽象为一张图来计算路由
- 所有路由器都是同样的
- 网络“扁平化”(网络内部层次单一)
- ...在实际网络(特别是大规模网络)中,不可行!
规模:数以亿计的目的主机
- 难以在路由表中存储所有目的地
- 路由信息的交换量庞大,会淹没链路!
管理自治
- Internet:网络的网络
- 每个网格管理员/组织可能都期望自主控制其内部网络内部的路由选择
Internet的可扩展化路由器选择方法
- 将路由器聚合为一个区域,称为自治系统(“autonomous systems”,AS)
- 自治系统内部(又称“域内”):在同一个AS内的路由选择
- 在同一个AS中的路由器必须运行相同的域内路由选择协议
- 在不同AS中的路由器可以运行不同的域内路由选择协议
- 网关路由器:位于AS的“边缘”,直接连接到在其他AS中的一台或多台路由器
- 自治系统间(又称“域间”):在AS间的路由选择
- 网关运行域间路由选择(同时也执行域内路由选择)
互联的自治系统
转发表由自治系统内部路由选择算法和自治系统间路由选择算法共同配置
- 自治系统内部路由选择算法确定用于AS内部的目的地的表项
- 自治系统间路由选择算法&自治系统内部路由选择算法共同确定用于AS外部的目的地的表项
自治系统间路由选择:对于域内转发的作用
- 假设一个AS1内的路由器接收到了一个目的地为AS1外部的数据报
- 路由器应该转发到AS1内的网关路由器。应该是哪个呢?
- AS1的域间路由必须选择:
- 学习哪些目的地是可通过AS2到达的、哪些目的地是可以通过AS3到达的
- 将这些网络的可达性信息传播给AS1内的所有路由器
![image]()
自治系统内路由选择:在一个AS内部的路由选择
最常见的自治系统内部路由选择协议
- RIP:路由选择信息协议(Routing Information Protocol)[RFC 1723]
- 经典的DV算法:每隔30秒交换距离向量
- 不再广泛使用
- EIGRP: 增强型内部网关路由选择协议(Enhanced Interior Gateway Routing Protocol)
- 基于DV算法
- 原先是Cisco专用的 (在2013年才开放 [RFC 7868])
- OSPF:开放最短路优先(Open Shortest Path First) [RFC 2328]
- 链路状态路由选择
- IS-IS路由选择协议(ISO标准,不是RFC标准):几乎与OSPF一样
OSPF路由选择
- “开放”:路由选择协议规范是公共可用的
- 经典的LS算法
- 每台路由器洪泛OSPF链路状态通告(该OSPF报文直接由IP承载,而不是TCP/UDP)给整个AS内部的所有其他路由器
- 可以使用多种不同的链路开销度量(带宽、时延等)
- 每台路由器拥有全局网络拓扑,使用Dijkstra算法计算转发表
- 安全:所有OSPF报文都是经过验证的(防止恶意入侵)
层次化的OSPF
- 2个级别的层次性:本地区域、骨干区域
- 链路状态通告只在本地区域或骨干区域内部洪泛
- 每个节点拥有所在区域的详细拓扑信息;关于区域外部的其他目的地,仅知道到达它的方向
![image]()
ISP之间的路由选择:BGP
Internet的自治系统间路由选择协议:BGP
- 边界网关协议(Border Gateway Protocol, BGP):是Internet的AS间路由选择事实上的标准
- 关键作用:将Internet“粘合”成一个整体
- 运行子网向Internet其他网络通告其存在以及它所能到达的目的地(“我在这里,这是我能联系到的人及其联系方式”)
- BGP为每个AS提供了以下方法:
- 外部BGP(eBGP):从相邻的AS或者子网可达性信息
- 内部BGP(iBGP):将获得的子网可达性信息传播给AS内部所有路由器
- 根据子网可达性信息和策略,确定到达其他网络的好路径
外部BGP(eBGP)连接和内部BGP(iBGP)连接

BGP基础
- BGP会话:两台BGP路由器(“peer”)在一个半永久的TCP连接上交换BGP报文
- 每台路由器通告的内容是:它去往不同目的子网前缀的路由/路径(BGP是一个路径向量协议)
- 当AS3的网关路由器3a向AS2的网关路由器2c通告路径“AS3,X”
- AS3向AS2承诺,它可以将数据报转发给子网X
![image]()
- AS3向AS2承诺,它可以将数据报转发给子网X
路径属性与BGP路由
- BGP通告的路由:前缀(prefix)+ 属性(attributes)
- 前缀:被通告的目的子网
- 两个重要属性
- AS-PATH:前缀的通告所经过的AS序列
- NEXT-HOP:AS-PATH起始的路由器接口的IP地址(从当前AS到吓一跳AS有多条链路,在NEXT-HOP属性中告诉对方通过哪个接口转发)
- 基于策略的路由:
- 网关路由器接收到路由通告之后,使用输入策略来接受或拒绝该路由(比如,从不将流量路由到AS Y)
- AS策略也决定了是否向其他邻近的AS通告收到的这个路由信息
BGP路径通告

- 路由器AS2.2c从AS3.3a接收到一个路径通告“AS3,X”(通过eBGP)
- 根据AS2的策略,AS2.2c接收了路径“AS3,X”,并且通过iBGP将该路径通告给AS2内的所有路由器
- 根据AS2的策略,AS2.2a通过eBGP向AS1.1c通告路径“AS2,AS3,X”
- 网关路由器可能学习到了多条去往目的地的路径
- AS1的网关路由器1c从路由器2a学习到路径“AS2,AS3,X”
- AS1的网关路由器1c从路由器3a学习到路径“AS3,X”
- 根据策略,AS1的网关路由器1c选择了路径“AS3,X”,并且通过iBGP将其通告给AS1内所有路由器
![image]()
BGP报文
- BGP路由器之间通过TCP连接来交换BGP报文
- BGP报文:
- OPEN:打开到远程BGP路由器的TCP连接,并认证发送方
- UPDATE:通告新路径(或者撤销原路径)
- KEEPALIVE:在无UPDATE时,保活(KEEP ALIVE)连接,也用于对OPEN请求做确认(ACK)
- NOTIFICATION:报告先前报文的错误;也被用于关闭连接
BGP路径通告与OSPF、转发表表项设置

- Q:路由器是如何设置到这些远程子网前缀的转发表表项的?
- 回顾:1a,1b,1d通过iBGP从1c那里学习到: “去往X的路径要经过1c”
- 1d通过OSPF域内路由得知:要到达1c,必须通过本地接口1
- 1d的转发表中新增了一条表项:为了到达X,要通过本地接口1
- 1a通过OSPF域内路由得知:要到达1c,必须通过本地接口2
- 1a的转发表中新增一条表项:为了到达X要通过本地接口2
![image]()
BGP路由选择算法
- 路由器可以获得一个关于目的子网前缀的多条路由,根据以下规则从这些路由中选出一个:
- 本地偏好值属性:策略决策
- 最短AS-PATH:AS跳数
- 最靠近NEXT-HOP路由器:热土豆路由器选择
- 附加的判据:使用BGP标识符
热土豆路由器选择

- 路由器2d通过iBGP学习到:它可以经过2a或2c到达X
- 热土豆路由选择:选择具有最小域内开销的网关路由器作为通往X的出口(比如,2d选择2a,即使通往X需要经过较多的AS跳数):不操心域间开销!
BGP通过路径通告执行策略

假设一个ISP只想路由去往/来自其客户网络的流量(不想承载其他ISP之间的流量————一种典型的现实策略)
- A,B,C是提供商网络
- x,w,y是客户(对应某个提供商)
- x是双宿的:接入到了2个提供商网络
- 策略强制:x不想路由从B经由x到C的分组
- 所以x将不会通告给B,它实际上可以路由到C
![image]()
- 所以x将不会通告给B,它实际上可以路由到C
- A向B和C通告路径Aw
- B选择不向C通告BAw!
- B向C通告BAw,无法获取收益(只会增加负担),因为C,A,w都不是B的客户
- 因此,C无法学习到路径CBAw(即使该路径存在):每个ISP感受到的网络和真实不一致
- C将会通过CAw(而不是使用B)来路由到w
为什么采用不同的AS间和AS内部路由选择协议?
- 策略:
- AS间:管理员期望能控制流量如何被路由,谁的路由经过其网络等(策略主导)
- AS内:单一管理,无需策略决策(策略微不足道)
- AS内部的各子网的主机尽可能地利用资源进行快速的路由选择
- 规模:
- AS间:必须考虑规模问题(涉及到大量网络之间的路由选择),以便支持全网的数据转发
- AS内:规模不是关注的焦点
- 对于太大的AS,可以进行拆分
- AS内部路由选择可支持层次性,分层路由选择节约了路由表空间,降低了路由更新流量
- 性能:
- AS间:策略可能比性能更重要
- AS内:更多地关注性能







浙公网安备 33010602011771号