《重识云原生系列》专题索引:
- 第一章——不谋全局不足以谋一域
- 第二章计算第1节——计算虚拟化技术总述
- 第三章云存储第1节——分布式云存储总述
- 第四章云网络第一节——云网络技术发展简述
- 第四章云网络4.2节——相关基础知识准备
- 第四章云网络4.3节——重要网络协议
- 第四章云网络4.3.1节——路由技术简述
- 第四章云网络4.3.2节——VLAN技术
- 第四章云网络4.3.3节——RIP协议
- 第四章云网络4.3.4节——OSPF协议
- 第四章云网络4.3.5节——EIGRP协议
- 第四章云网络4.3.6节——IS-IS协议
- 第四章云网络4.3.7节——BGP协议
- 第四章云网络4.3.7.2节——BGP协议概述
- 第四章云网络4.3.7.3节——BGP协议实现原理
- 第四章云网络4.3.7.4节——高级特性
- 第四章云网络4.3.7.5节——实操
- 第四章云网络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消息必须携带用于EBGP和IBGP信息交换的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