问题描述
目前,网络使用的 AS-Num 范围为 1 至 65535(2 字节),随着网络规模的扩大,可分配的 AS 号已经濒临枯竭;
解决方案
需要将 AS 号范围扩展为 1 至 4294967295(4 字节),且支持 4-BYTE-ASN 的 BGP 设备能够与仅支持 2-BYTE-ASN 的 BGP 设备兼容;
特性特征
注意事项:虽然称为 4-BYTE-ASN,而实际的 ASN 仍旧为 2-BYTE,但其采用 Path-Attr 来传递 4-BYTE-ASN(后面将详细说明);
概念术语
Speaker(发言者)
发送 BGP 消息的路由器称为 BGP Speaker,它接收或产生新的路由信息,并发布给其它 BGP Speaker;
Peer(对等体)
相互交换消息的 BGP Speaker 之间互称 Peer;
New Speaker vs. Old Speaker
支持 4-BYTE-ASN 扩展能力的 BGP Speaker,称为 New Speaker;
不支持 4-BYTE-ASN 扩展能力的 BGP Speaker,称为 Old Speaker;
New Session vs. Old Session
New Speaker 之间建立的 BGP 连接,称为 New Session;
New Speaker 和 Old Speaker 之间或者 Old Speaker 之间建立的 BGP 连接,称为 Old Session;
4-BYTE-ASN 的格式
表示 4-BYTE-ASN 分为两种形式:
1)点分形式:点分形式的 4-BYTE-ASN 格式一般为:x.y;
2)整数形式:其与点分形式的换算关系是:x * 65536 + y;
例如,点分形式的 4-BYTE-ASN 2.3,对应的整数形式的 4-BYTE-ASN 为:2*65536+3=131075;
在系统内部,这两种形式,其都是以无符号的整数形式存储;
协议细节
4-BYTE-ASN 是将 AS 号的编码范围由 2 字节扩大为 4 字节,并通过定义新的能力码和新的可选过渡属性来协商 4-BYTE-ASN 能力和传递 4-BYTE-ASN 信息,使 New Speaker 之间、New Speaker 和 2-BYTE-ASN 的 Old Speaker 之间能够进行通信;
1)为了支持 4-BYTE-ASN,标准协议定义了一种新的 Open 能力码(0x41,代表本端支持 4 字节能力扩展)用于进行 BGP 连接的能力协商;
2)另外,标准协议还定义了 2 种新的可选过渡属性 AS4_Path 和 AS4_Aggregator 用于在 Old Session 上传递 4 字节 AS 信息;
3)如果 New Speaker 和 Old Speaker 建立连接,且 New-Speaker.ASN > 65535,则在 Old Speaker 需指定 Peer.ASN 为 AS_TRANS。其中 AS_TRANS 是保留 ASN,值为 23456;
Huawei NetEngine 8000 系列路由器支持按照两种形式配置 4-BYTE-ASN。配置文件里 4-BYTE-ASN 的格式与用户配置时使用的格式一致;
携带 4-BYTE-ASN 的 Open 消息
BGP 通过相互通告 Open 消息来进行能力协商,其中 New Speaker 的 Open 消息格式如图所示:
BGP 的 Open 消息头是固定的,其中 My AS Number 字段填写的是本地 AS 号,但是 My AS Number 字段只占有两个字节,无法填充 4-BYTE-ASN;
因此 New Speaker 在发送 Open 消息时,将 AS_TRANS 号 23456 填充到 My AS Number 字段,而将自己实际的 4AS Number 填写在可选能力字段,这样邻居间就能通过 Open 消息的可选能力字段获知对方是否支持 4 字节 AS 能力;
协商支持 4AS 能力
不同的 BGP Speaker 之间,通过 Open 消息,向对端通告是否支持 4AS 能力:
当能力协商完成后:
1)New Speaker 之间建立 New Session;
2)New Speaker 和 Old Speaker 之间建立 Old Session;
能力协商的细节
如图,「New Speaker 与 New Speaker」、「New Speaker 与 Old Speaker」,其邻居建立和路由信息传递过程:
当 New Speaker 向 Old Speaker 传递 Route 时:
1)Route 会同时携带 AS_Path 属性和 AS4_Path 属性,以此来辅助传递 4-BYTE-ASN 信息;
2)AS4_Path 属性是可传递的,当 Old Speaker 收到 AS4_Path 属性时,会向其他 Speaker 传递;
路由信息的传递
在 New Speaker 之间的 Update 消息中,AS_Path 属性里的 AS 号按照 4 字节进行编码,而 Old Speaker 的 Update 消息中 AS_Path 属性的 AS 号是按照 2 字节编码的;
当 New Speaker 向 Old Speaker 发送 Update 消息时,如果存在大于 65535 的 AS 号信息,会使用 AS4_Path 属性辅助 AS_Path 属性传递 4-BYTE-ASN 信息,AS4_Path 属性对 Old Speaker 来说是完全透明的;
如图所示,当 AS 2.2 的 New Speaker 向 AS 65002 的 Old Speaker 发送 Update 消息时,Update 消息里的 AS_Path 为(23456,23456,65001),AS4_Path 为(2.2,1.1,65001),其中 23456 就是使用 AS_TRANS 替代 1.1 和 2.2 的结果。AS 65002 的 Old Speaker 在向外发送路由时,不会对 AS4_Path 做任何改动,而是将(2.2,1.1,65001)透明传输给其他 AS;
当 New Speaker 从 Old Speaker 收到带有 AS_Path 属性、AS4_Path 属性的 Update 消息时,会根据重构算法重构出真正的 AS_Path 属性;
如图所示,当 AS 65003 的 New Speaker 从 AS 65002 的 Old Speaker 收到带有 AS_Path 属性(65002,23456,23456,65001)和 AS4_Path 属性(2.2,1.1,65001)的 Update 消息后,重构出真正的 AS_Path 属性(65002,2.2,1.1,65001);
配置案例
使能 BGP 协议,进入 BGP 视图,或者直接进入 BGP 视图。 as-number:指定 AS 号。 对整数形式的 AS 号,取值范围是 1~4294967295。 对点分形式的 AS 号,格式为 x.y,x 和 y 都是整数形式,x 的取值范围是 1~65535,y 的取值范围是 0~65535。 [Huawei] bgp as-number [~R1] bgp 1.1 [~R1-bgp] peer 10.1.2.2 as-number 1.1 [~R1-bgp] peer 10.1.2.2 connect-interface Loopback 0
补充说明:
1)调整 4-BYTE-ASN 的显示格式会影响 AS-Path 正则表达式和扩展团体属性过滤器的匹配结果,所以如果当前系统使用了 AS-Path 正则表达式或者扩展团体属性过滤器做为出口或者入口策略,配置 BGP4 字节 AS 号的显示格式后,需要重新配置 AS-Path 正则表达式和扩展团体属性过滤器,否则会导致路由不能匹配出口或者入口策略,产生网络故障;