SRv6网络编程自学系列 | BGP-LS for SRv6

书籍来源:《SRv6网络编程:开启IP网络新时代》

这本书已经出了很多年了,但多年之后因为工作需要再来读一遍,除了温习之外,发现自己学到了更多的知识。一边学习一边整理读书笔记,并与大家分享,侵权即删,谢谢支持!

附上汇总贴:SRv6网络编程自学系列 | 汇总_COCOgsta的博客-CSDN博客


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的定义与功能。

  1. SRv6 SID NLRI

SRv6 SID NLRI用于描述SRv6 SID的网络层可达信息

  1. SRv6 SID Information TLV

SRv6 SID Information TLV是SRv6 SID NLRI的一个Sub-TLV,用于通告SID相关信息

  1. SRv6 Endpoint Function TLV

SRv6 Endpoint Function TLV是一种SRv6 SID NLRI属性。每个SRv6 SID都对应一个网络功能的指令,SRv6 Endpoint Function TLV就是用来携带每种SID类型的指令的

  1. SRv6 BGP Peer Node SID TLV

SRv6 BGP Peer Node SID TLV是一种SRv6 SID NLRI属性,用于携带和某个SID NLRI相关的BGP Peer信息。

  1. SRv6 SID Structure TLV

SRv6 SID Structure TLV是一种SRv6 SID NLRI属性,用于描述一个SRv6 SID的各部分的长度信息。

  1. SRv6 Capabilities TLV

SRv6 Capabilities TLV是一种SRv6 Node属性,用于通告某个网络节点支持的SRv6能力。

  1. SRv6 Node MSD Types

Node MSD TLV是一种Node属性TLV,描述节点最大SID栈深;Link MSD TLV是一种Link属性TLV,描述链路最大SID栈深。

  1. 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。

  1. 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”字段。

  1. SRv6 Locator TLV

SRv6 Locator TLV是一种SRv6前缀属性TLV,BGP-LS利用SRv6 Locator TLV和SRv6前缀NLRI结合,可以收集SRv6节点的Locator信息。

猜你喜欢

转载自blog.csdn.net/guolianggsta/article/details/129904937