SRv6 网络编程自学系列 | BGP-LS for SRv6
书籍来源:《SRv6网络编程:开启IP网络新时代》
这本书已经出了很多年了,但多年之后因为工作需要再来读一遍,除了温习之外,发现自己学到了更多的知识。一边学习一边整理读书笔记,并与大家分享,侵权即删,谢谢支持!
附上汇总贴:SRv6网络编程自学系列 | 汇总_COCOgsta的博客-****博客
IETF引入了BGP-LS,控制器可以通过BGP-LS收集网络拓扑的信息。
4.2.1 BGP-LS概述
BGP-LS的典型应用场景和架构如图4-3所示,其中Consumer(消费者)相当于控制器。在每个IGP域中,只需其中一台路由设备运行BGP-LS,直接和Consumer建立BGP-LS邻居关系。采用这种集中式的BGP Speaker机制后,Consumer只需对外建立一个BGP-LS连接,就可以实现对全网拓扑信息的收集,从而简化了网络的运维和部署。
图4-3 BGP-LS的典型应用场景和架构
BGP-LS采用MP_REACH_NLRI(多协议可达NLRI)和MP_UNREACH_NLRI(多协议不可达NLRI)属性作为链路状态NLRI的容器,即链路状态NLRI是作为BGP的Update消息中的一种MP_REACH_NLRI或MP_UNREACH_NLRI属性。
在支持SR之前,BGP-LS主要定义了4种链路状态NLRI。
- Node NLRI(节点NLRI)。
- Link NLRI(链路NLRI)。
- IPv4 Topology Prefix NLRI(IPv4拓扑前缀NLRI)。
- IPv6 Topology Prefix NLRI(IPv6拓扑前缀NLRI)。
BGP-LS属性主要包括以下3个属性:Node Attribute(节点属性);Link Attribute (链路属性);Prefix Attribute(前缀属性)。
BGP-LS链路状态NLRI和属性的摘要信息如表4-1所示 [4]。
表4-1 链路状态NLRI和属性的摘要信息
4.2.2 BGP-LS SRv6扩展
BGP-LS新定义了一个SRv6 SID NLRI,用于通告SRv6 SID的网络层可达信息,其内容包括以下部分。
- Protocol-ID:协议标识符。
- Local Node Descriptors:本地节点描述符。
- SRv6 SID Descriptors:SRv6 SID描述符,用于描述一个SRv6 SID的信息。目前定义为一个TLV,即SRv6 SID Information TLV。
BGP-LS针对SRv6 SID NLRI,定义了SRv6 SID NLRI属性,用于携带与SRv6 SID可达性相关的属性。目前定义了以下3个相关属性(以TLV的形式)。
- SRv6 Endpoint Function:用于携带和某个SID NLRI相关联的Endpoint Function信息(如End.DT4等)。
- SRv6 BGP Peer Node SID:用于携带和某个SID NLRI相关联的BGP Peer(对等体)信息。
- SRv6 SID Structure:用于描述一个SRv6 SID的各部分的长度信息。
BGP-LS还对既有属性进行了扩展,定义了一系列的属性TLV。
- Node Attribute扩展,新增了2个属性:SRv6 Capabilities属性用于通告节点支持的SRv6能力;SRv6 Node MSD Types属性用于通告一个SRv6节点处理SID栈的能力。
- Link Attribute扩展:SRv6 End.X SID属性用于通告P2P/P2MP的END.X SID;SRv6 LAN End.X SID属性用于通告广播网的END.X SID。
- Prefix Attribute扩展:SRv6 Locator属性用于通告节点的SRv6 Locator的网段地址。
以下详细介绍相关NLRI和各种属性TLV的定义与功能。
- SRv6 SID NLRI
SRv6 SID NLRI用于描述SRv6 SID的网络层可达信息
- SRv6 SID Information TLV
SRv6 SID Information TLV是SRv6 SID NLRI的一个Sub-TLV,用于通告SID相关信息
- SRv6 Endpoint Function TLV
SRv6 Endpoint Function TLV是一种SRv6 SID NLRI属性。每个SRv6 SID都对应一个网络功能的指令,SRv6 Endpoint Function TLV就是用来携带每种SID类型的指令的
- SRv6 BGP Peer Node SID TLV
SRv6 BGP Peer Node SID TLV是一种SRv6 SID NLRI属性,用于携带和某个SID NLRI相关的BGP Peer信息。
- SRv6 SID Structure TLV
SRv6 SID Structure TLV是一种SRv6 SID NLRI属性,用于描述一个SRv6 SID的各部分的长度信息。
- SRv6 Capabilities TLV
SRv6 Capabilities TLV是一种SRv6 Node属性,用于通告某个网络节点支持的SRv6能力。
- SRv6 Node MSD Types
Node MSD TLV是一种Node属性TLV,描述节点最大SID栈深;Link MSD TLV是一种Link属性TLV,描述链路最大SID栈深。
- SRv6 End.X SID TLV
SRv6 End.X SID TLV是一种SRv6链路属性TLV,用于通告SRv6 End.X SID。另外,对于运行了BGP的节点,这个TLV还可以用于通告BGP EPE(Egress Peer Engineering,出口对等体工程)Peer 的 END.X SID。
- SRv6 LAN End.X SID TLV
SRv6 LAN End.X SID TLV也是一种SRv6链路属性TLV,用于发布一个广播网邻居类型的SRv6 End.X SID。
相比P2P的SRv6 End.X SID TLV,SRv6 LAN End.X SID TLV增加了“IS-IS System-ID or OSPFv3 Router-ID of the neighbor”字段。
- SRv6 Locator TLV
SRv6 Locator TLV是一种SRv6前缀属性TLV,BGP-LS利用SRv6 Locator TLV和SRv6前缀NLRI结合,可以收集SRv6节点的Locator信息。
推荐阅读
-
SRv6 网络编程自学系列 | BGP-LS for SRv6
-
[重温云本地] 第 4 章 云网络 第 4.3.7.6 节 - MP-BGP 协议
-
[重温云原生] 第 4 章 云网络 第 4.3.7.4 节 - BGP 协议高级功能
-
国王大道计算机网络 BGP 协议
-
ARP 协议有什么作用--ARP(AddressResolutionProtocol,地址解析协议)地址解析协议用于将计算机的网络地址(32 位 IP 地址)转换为物理地址(48 位 MAC 地址)[RFC826]。ARP 协议属于链路层协议,在以太网网络中,数据帧从一台主机传送到网络中的另一台主机时,是根据 48 位以太网地址(硬件地址)来确定接口的,而不是根据 32 位 IP 地址。内核(如驱动程序)必须知道目的地的硬件地址,才能发送数据。当然,点对点连接不需要 ARP 协议。 ARP 协议示例
-
网络协议 - BGP(边界网关协议)对整个网络的最详细解释
-
[云本地网络] 模拟运行!在两分钟内了解 BGP
-
基于 BGP 协议实施 Calico 的 IPIP 网络
-
关于全网 BGP 组属性的最详尽文章,采用华为、思科、瞻博网络三家厂商配置!
-
网络基础知识实用之路]带您学习 BGP 协议命令配置的文章