欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

[重温云本地] 第 4 章 云网络 第 4.3.7.6 节 - MP-BGP 协议

最编程 2024-05-07 22:06:33
...

《重识云原生系列》专题索引:

  1. 第一章——不谋全局不足以谋一域
  2. 第二章计算第1节——计算虚拟化技术总述
  3. 第三章云存储第1节——分布式云存储总述
  4. 第四章云网络第一节——云网络技术发展简述
  5. 第四章云网络4.2节——相关基础知识准备
  6. 第四章云网络4.3节——重要网络协议
  7. 第四章云网络4.3.1节——路由技术简述
  8. 第四章云网络4.3.2节——VLAN技术
  9. 第四章云网络4.3.3节——RIP协议
  10. 第四章云网络4.3.4节——OSPF协议
  11. 第四章云网络4.3.5节——EIGRP协议
  12. 第四章云网络4.3.6节——IS-IS协议
  13. 第四章云网络4.3.7节——BGP协议
  14. 第四章云网络4.3.7.2节——BGP协议概述
  15. 第四章云网络4.3.7.3节——BGP协议实现原理
  16. 第四章云网络4.3.7.4节——高级特性
  17. 第四章云网络4.3.7.5节——实操
  18. 第四章云网络4.3.7.6节——MP-BGP协议

1 背景

        传统的BGP-4只能管理IPV4的路由信息,对于使用其他网络层协议(如ipv6)的应用,在跨自治系统传播时就受到一定限制。为了提供对多种网络层协议的支持,IETF对BGP-4进行了扩展,形成MP-BGP,MP-BGP标准是RFC4760(Multiprotocol Extensions for BGP-4,BGP-4的多协议扩展)。

        BGP-4使用的报文中,与IPv4相关的三处信息都由Update报文携带,这三条信息分别是:NLRI(Network Layer Reachability Information)字段、Next_Hop属性、Aggregator属性(该属性中包含形成聚合路由的BGP Speaker的IP地址)。

        为实现对多种网络层协议的支持,BGP-4需要将网络层协议的信息反映到NLRI及Next_Hop。MP-BGP中引入了两个新的路径属性:

        MP_REACH_NLRI:Multiprotocol Reachable NLRI,多协议可达NLRI。用于发布可达路由及下一跳信息。

        MP_UNREACH_NLRI:Multiprotocol Unreachable NLRI,多协议不可达NLRI。用于撤销不可达路由。 这两种属性都是可选非过渡(Optional non-transitive)的,因此,不提供多协议能力的BGP Speaker将忽略这两个属性的信息,不把它们传递给其它邻居。

2 功能简介

        多协议可达NLRI提供了以下功能:

        向对等体发布可达路由。发布下一跳信息。例如,BGP4+中的Next_Hop属性用IPv6地址来表示,可以是IPv6全球单播地址或者下一跳的链路本地地址。使能路由器报告本地系统中的部分或全部SNPA(Sub-network Points of Attachment)。

主要字段的解释如下:

  • Address Family Identifier:该字段携带了网络层协议的地址族标识,对应RFC1700的“Address Family Number”所定义的地址族值。例如IPv4的值是1,IPv6的值是2。Subsequent Address Family Identifier:该字段提供了NLRI类型的附加信息。

− 1:用于单播模式的NLRI

− 2:用于组播模式的NLRI

− 3:同时用于单播和组播模式的NLRI

  • Length of Next Hop Network Address:“Network Address of Next Hop”字段的长度,以字节为单位。Network Address of Next Hop:下一跳网络地址,该字段长度可变。Number of SNPAs:下面的字段中SNPA的数量。如果该字段取值为0,表示属性中不包含SNPA。
  • Length of Nth SNPA:第N个SNPA字段的长度,以半字节(semi-octets)为单位。Nth SNPA of Next Hop:路由器的SNPA,该路由器的网络地址包含在“Network Address of Next Hop”字段中。这个字段的长度是字节的整数倍,即以半字节为单位的“Length of Nth SNPA”字段四舍五入得出的整数值。如果SNPA包含奇数个半字节,该字段尾部剩余的半个字节以0补位。
  • Network Layer Reachability Information:可达路由列表。如果“Subsequent Address Family Identifier”字段置位,则每个NLRI由一个二元组(Length-Prefix)表示。− Length表示IP地址前缀的长度,单位为比特。

        如果为0,则说明该前缀匹配所有的IP地址。

− Prefix包含了IP地址的前缀,后面则是填充比特,用于保证字段结尾符合字节边界,填充比特的值无意义。

    • 携带了MP_REACH_NLRI属性的Update消息必须携带用于EBGPIBGP信息交换的Origin属性和AS_Path属性。另外,如果这个Update消息在IBGP对等体之间传播,还要携带Local_Pref属性。如果这条消息是从EBGP对等体接收的,本地系统需要检查AS_Path列表最左侧的AS号是否与发送该信息的AS号一致。如果不一致,本地系统会发送Notification消息(携带Update消息错误码)给对端。
    • 如果Update消息中MP_REACH_NLRI属性没有携带NLRI,则该消息也不允许携带Next_Hop属性。如果这条消息中包含了Next_Hop属性,Next_Hop属性将被忽略。多协议不可达NLRI用于撤销一条或多条不可达路由。
  • Withdrawn Routes:不可达路由列表。

        携带了MP_UNREACH_NLRI属性的Update消息不再需要携带其他的属性。

参考链接 

MP-BGP_百度百科

【HCIE-R&S 天梯路】MP-BGP