MP-BGP(Multiprotocol Border Gateway Protocol)是对BGP(Border Gateway Protocol)的多协议扩展。MP-BGP使BGP支持的网络类型扩展为IPv4单播、IPv4组播和IPv6的单播类型网络。
简介
MP-BGP:
传统的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将忽略这两个属性的信息,不把它们传递给其它邻居。
MP_REACH_NLRI
功能简介
多协议可达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类型的附加信息。
− 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介绍.技术作坊.2012\u5e7406\u670820\u65e5