BGP 4 字节 AS 编号
4 字节自治系统编号概述
此技术概述介绍了 4 字节自治系统 (AS) 编号,以及 BGP 在混合 2 字节和 4 字节 AS 编号的网络中的操作。
2 字节 AS 编号(也称为 16 位 AS 编号或 2 字节 AS 编号)提供包含 65,536 个 AS 编号的池。2 字节 AS 编号范围已用尽。4 字节 AS 编号在 RFC 4893《 BGP 对四字节 AS 编号空间的支持 》中指定,并提供包含 4,294,967,296 个 AS 编号的池。
自 2009 年 1 月 1 日起,互联网编号分配机构 (IANA) 仅分配 4 字节 AS 编号,除非特别要求提供 2 字节 AS 编号。互联网工程任务组 (IETF) RFC 4893 定义了一种从 2 字节 AS 编号平滑过渡到 4 字节 AS 编号并保持向后兼容性的方法。
RFC 4893 引入了两个新的可选的传递 BGP 属性,AS4_PATH 和 AS4_AGGREGATOR。这些新属性用于跨不支持 4 字节 AS 编号的 BGP 发送方传播 4 字节 AS 路径信息。
RFC 4893 还引入了保留的、众所周知的 2 字节 AS 编号 AS 23456。此保留的 AS 编号在 RFC 4893 中称为 AS_TRANS。
RFC 7300《 最后自治系统 (AS) 编号的保留 》和互联网草案 draft-ietf-idr-as0-06 限制在配置中使用 2 字节 AS 编号 65535、4 字节 AS 编号 4294967295UL 和 AS 编号 0。因此,当您使用这些受限制的 AS 编号时,提交操作将会失败。
另请参阅
实现 4 字节自治系统编号
Junos OS 9.1 及更高版本支持 4 字节 AS 编号。
如果您的网络当前使用 2 字节 AS 编号,则无需获取新的 4 字节 AS 编号。2 字节 AS 编号范围是 4 字节范围的一个子集。支持 4 字节 AS 编号的瞻博网络路由器只需在 2 字节 AS 编号前面附加一串零。例如,2 字节 AS 编号 65000 变为 4 字节 AS 编号 00000.65000。
如果您的瞻博网络路由器支持 4 字节 AS 编号,并且与不支持 4 字节 AS 编号的路由器存在对等关系,则在支持 4 字节 AS 编号的路由器向新对等方播发此功能后,相邻的 RIB 输入路由表中将发生以下顺序:
支持 4 字节 AS 编号的路由器从只支持 2 字节 AS 编号的对等方接收播发。
在支持 4 字节 AS 编号的路由器上,2 字节 AS 路径通过在 2 字节 AS 编号前面附加一串零来转换为 4 字节 AS 编号。
如果路径中也存在 4 字节 AS 编号,则将其与路径中的 2 字节 AS 编号合并。
如果聚合器和AS4_AGGREGATOR属性存在,则这些属性也会合并。
如果您的瞻博网络路由器支持 4 字节 AS 编号,并且与不支持 4 字节 AS 编号的路由器存在对等关系,则相邻的 RIB-out 路由表中将按以下顺序执行:
更新消息在发送到不支持 4 字节 AS 编号的路由器之前会重新格式化。
支持 4 字节 AS 编号的路由器在 AS4_PATH 属性中发送 4 字节 AS 编号。
还会发送 AS_PATH 属性。它使用 2 字节 AS 编号进行编码。可映射的 4 字节 AS 编号(低于 64537)作为 2 字节 AS 编号发送。64536 以上的不可映射 4 字节 AS 编号以已知的 2 字节 AS 编号 (AS 23456) 表示。
单个对等组,用于支持 4 字节 AS 编号的路由器以及仅支持 2 字节 AS 编号的路由器。
另请参阅
配置 4 字节自治系统编号
本节介绍如何配置 4 字节 AS 编号,以及如何验证 BGP 对等方是否支持 4 字节 AS 编号。
在运行 Junos OS 9.2 版及更高版本的路由器上,可以指定纯数字格式或 AS 点表示法格式的 AS 编号。例如,4 字节 AS 编号 65,546 以纯数字格式表示为 65546。在运行 Junos OS 9.2 版及更高版本的路由器上,相同的 AS 编号以 AS 点符号格式表示为 1.10。
要以 AS 点表示法格式配置 4 字节 AS 编号,请包含该
autonomous-system
语句并指定 4 字节 AS 编号。在以下示例中,AS 编号设置为1.10
。user@host# set routing-options autonomous-system 1.10
要以纯数字格式配置 4 字节 AS 编号,请包含该
autonomous-system
语句并指定 4 字节 AS 编号。在以下示例中,AS 编号设置为65546
。user@host# set routing-options autonomous-system 65546
协商 BGP 对等会话后,可以验证对等方是否支持 4 字节 AS 编号。要验证对等方是否支持 4 字节 AS 编号,请使用
show bgp neighbor
命令。在以下示例中,对等方不支持 4 字节 AS 编号。user@host# show bgp neighbor 192.168.1.9 | match "AS" Peer: 192.168.1.9+179 AS 65056 Local: 192.168.1.3+52616 AS 65000 Peer does not support 4 byte AS extension
在以下示例中,对等方支持 4 字节 AS 编号。
user@host# show bgp neighbor 192.168.1.9 | match "AS" Peer: 192.168.1.10+52679 AS 1000000000 Local: 192.168.1.3+179 AS 65000 Peer supports 4 byte AS extension (peer-as 1000000000)
另请参阅
在 AS 路径中前置 4 字节 AS 编号
当地址前缀播发经过域时,域会将其自治系统编号 (ASN) 前置到与地址前缀关联的 AS 路径上,从而有效地对前缀播发进行“签名”。在网络中的任意点上,AS 路径描述了一系列连接的域,这些域构成从当前点到始发域的路径。AS 路径列表中最左侧的数字是接收地址前缀播发的相邻 AS 的 ASN。数字序列表示传播此更新所通过的 AS 序列。
本节介绍如何在 AS 路径的开头附加一个或多个 AS 编号。在将路由源自的实际 AS 编号添加到路径之后,AS 编号将添加到路径的开头。前置 AS 路径会使较短的 AS 路径看起来更长,因此会降低其对于 BGP 的可取性。
从 Junos OS 15.1 版开始,该 enforce-first-as
语句强制实施 AS 路径中的第一个(最左侧)自治系统编号 (ASN) 是域传输时前邻接方的 ASN。
在 中 图 1,路由器 2 配置为在 AS 编号 65000 前面附加 AS 1000000000 4 次。
![EBGP,4 字节 AS 编号已前置到 AS 路径](../concept/../../images/g040519.gif)
您可以使用路由器 3 上的 show route 命令显示路由详细信息。在以下示例中,请注意路由器 3 上的 AS 路径中显示的前置 AS 编号是AS_TRANS编号 AS 23456。这是因为路由器 3 不支持 4 字节 AS 编号。
user@Router3# show route 1.2.3.4 detail ... 1.2.3.4/32 *[BGP/170] 01:39:55, localpref 100, from 192.168.1.3 AS path: 65000 23456 23456 23456 23456 I
您可以使用路由器 4 上的 show route 命令显示路由详细信息。在以下示例中,请注意路由器 4 上的 AS 路径中显示的前置 AS 编号为 AS 1000000000。这是因为路由器 4 支持 4 字节 AS 编号并合并了 AS_PATH 和 AS4_PATH 属性。
user@Router4# show route 1.2.3.4 detail ... 1.2.3.4/32 *[BGP/170] 01:39:55, localpref 100, from 192.168.1.9 AS path: 65056 65000 1000000000 1000000000 1000000000 1000000000 I
另请参阅
配置 4 字节 AS 编号和 BGP 扩展社区属性
BGP 社区是一组共享公共属性的目标。您可以配置标准社区属性和扩展社区属性以包含在 BGP 更新消息中。
例如,配置 VPN 路由转发 (VRF) 实例时,您需要配置路由目标。路由目标是一种类型的 BGP 扩展社区属性。要创建命名的 BGP 扩展社区属性,请包含该 community
语句并指定社区成员:
community name { members [ community-ids ]; }
要指定社区成员,必须指定社区 ID。公共组 ID 由三个组件组成,您按以下格式指定:
type:administrator:assigned-number
administrator
某些 BGP 扩展社区属性的字段是 AS 编号。要配置 target
扩展社区(包括纯数字格式的 4 字节 AS 编号),请将字母“L”附加到数字末尾。
在以下示例中, target
具有 4 字节 AS 编号 334324
且分配的编号为 的 132
社区表示为 target:334324L:132
。
[edit policy-options] community vpn_blue members [ target:334324L:132 ];
如果在不支持 4 字节 AS 编号的对等路由器上显示目标扩展社区信息,路由器将显示 target:unknown format
。
另请参阅
了解通过支持 2 字节的域的支持 4 字节的路由器 AS 路径
本节介绍当支持 4 字节 AS 编号的路由器将 AS 路径语句发送到仅支持 2 字节 AS 编号的路由器(如果第一个路由器配置的 AS 编号超出 2 字节 AS 编号范围)时会发生什么情况。
路由器 1 支持 图 2 4 字节 AS 编号。路由器 1 配置为使用 4 字节 AS 编号,AS 1000000000。路由器 2 支持 2 字节 AS 编号。路由器 2 配置了 2 字节 AS 编号 AS 65056。
![支持 4 字节的路由器 AS 路径到支持 2 字节的路由器](../concept/../../images/g040516.gif)
路由器 2 不接受 AS_PATH 属性中的 4 字节 AS 编号。您可以使用路由器 1 上的命令进行
show bgp neighbor
验证。user@Router1# show bgp neighbor 192.168.1.9 | match "AS" Peer: 192.168.1.9+179 AS 65056 Local: 192.168.1.2+64053 AS 65080 Peer does not support 4 byte AS extension
图 3 显示了运行 EBGP 的四个路由器。路由器 1、路由器 2 和路由器 4 支持 4 字节 AS 编号。路由器 3 不支持 4 字节 AS 编号。
![通过 2 字节 AS 域的 EBGP 4 字节 AS 路径](../concept/../../images/g040519.gif)
在这种情况下:
路由器 1 在 AS_PATH 属性中将 4 字节 AS 编号 1000000000 发送至路由器 2。
路由器 2 知道路由器 3 不支持 4 字节 AS 编号。
路由器 2 在 AS_PATH 属性中将 AS_TRANS 编号 AS 23456(代替 4 字节编号)发送至路由器 3。
路由器 2 在 AS4_PATH 属性中将 4 字节 AS 编号 1000000000 发送至路由器 3。
由于 AS4_PATH 属性为传递属性,路由器 3 会将 AS_PATH 属性和 AS4_PATH 属性都发送至路由器 4。
当路由器 4 收到 AS_PATH 和 AS4_PATH 属性时,它会合并 path 语句以创建准确的 AS 路径。
您可以使用路由器 3 上的命令显示 show route
AS 路径。在以下示例中,请注意 AS 编号 23456 显示在 AS 路径中,并且 AS4_PATH 属性为 Unrecognized
。由于 AS4_PATH 属性是传递属性,因此会转发到下一个路由器。
user@Router3# show route 1.2.3.4 detail AS path: 65000 23456 I Unrecognized Attributes: 13 bytes
您可以使用路由器 4 上的命令显示 show route
路由详细信息。在以下示例中,请注意,当 AS 路径转换路由器 3(如 AS2(2 字节 AS)路径所示)时,AS 编号显示为 AS_TRANS。这意味着路由器 3 看到的 AS 编号为 23456。在 AS4(4 字节 AS)路径中,AS 编号显示为 1000000000。在合并的 AS 路径中,将显示 AS 65056、AS 65000 和 AS 100000000 的正确 AS 路径编号。
user@Router4# show route 1.2.3.4 detail ... AS path: AS2 PA[3]:65056 65000 AS_TRANS AS path: AS4 PA[2]:65056 1000000000 AS path: Merged[3]:65056 65000 1000000000 I
图 4 显示了 4 个运行 IBGP 的路由器。路由器 1、路由器 2 和路由器 4 支持 4 字节 AS 编号。路由器 3 不支持 4 字节 AS 编号。
![通过 2 字节 AS 域的 IBGP 4 字节 AS 路径](../concept/../../images/g040518.gif)
在这种情况下:
路由器 1 在 AS_PATH 属性中将 4 字节 AS 编号 1000000000 发送至路由器 2。
路由器 2 知道路由器 3 不支持 4 字节 AS 编号。
路由器 2 在 AS_PATH 属性中将 AS_TRANS 编号 AS 23456(代替 4 字节编号)发送至路由器 3。
路由器 3 会将 AS_PATH 属性和 AS4_PATH 属性都发送至路由器 4。
当路由器 4 收到 AS_PATH 和 AS4_PATH 属性时,它会合并 path 语句以创建准确的 AS 路径。
您可以使用路由器 2 上的命令显示 show route
路由详细信息。在以下示例中,请注意 AS 路径显示为 1000000000。
user@Router2# show route 1.2.3.4 detail ... AS path: 1000000000
您可以使用路由器 3 上的命令显示 show route
路由详细信息。在以下示例中,请注意 AS 路径显示为 65000 23456。
user@Router3# show route 1.2.3.4 detail ... AS path: 65000 23456 I
您可以使用路由器 4 上的命令显示 show route
路由详细信息。在以下示例中,请注意合并的 AS 路径显示为 65000 1000000000。
user@Router4# show route 1.2.3.4 detail ... AS path: 65000 1000000000 I
另请参阅
了解 4 字节 AS 编号和路由区分符
路由识别符 (RD) 是一个以服务提供商客户的 IPv4 地址为前缀的 8 字节字段。生成的 12 字节字段是唯一的 VPN-IPv4 地址。BGP 消息中的 RD 由两个主要字段组成,即类型字段(2 字节)和值字段(6 字节)。类型字段确定应如何解释值字段。
路由识别符配置为 6 字节值,您可以将其指定为 as-number
:,其中 as-number
是分配的 AS 编号,number
(也称为管理编号或分配的编号子字段)是任意 2 字节或number
4 字节值。AS 编号的范围可以从 1 到 4,294,967,295。如果 AS 编号是 2 字节值,则管理编号为 4 字节值。如果 AS 编号是 4 字节值,则管理编号为 2 字节值。
由 4 字节 AS 编号和 2 字节管理编号组成的 RD 在 RFC 4364 BGP/MPLS IP 虚拟专用网络中定义为 2 类路由识别符。
要使用 4 字节 AS 编号配置 RD,请将字母“L”附加到数字末尾。在以下示例中,4 字节 AS 编号为 7765000,管理编号为 1000:
user@Router1# set routing-instances 4B route-distinguisher 7765000L:1000
如果要配置的路由器是不支持 4 字节 AS 编号的路由器的 BGP 对等方,则还需要配置本地 AS 编号,如 使用 4 字节 AS 编号在支持 4 字节的路由器和支持 2 字节的路由器之间建立对等关系中所述。要配置本地 AS 编号,请包含 local-as
该语句,指定要使用的 2 字节 AS 编号 (65001),并包括该 private
选项。
user@Router1# set routing-instances 4B protocols bgp group 4B2Bpeers local-as 65001 private
另请参阅
了解 4 字节 AS 编号和路由环路检测
BGP 中最重要的功能之一是使用 AS_PATH 属性在自治系统级别检测路由环路。思考AS_PATH的一种简单方法是,它是路由到达目的地所经过的自治系统列表。路由器在从相邻 AS 接收的 AS_PATH 中检查自己的 AS 编号,从而检测并避免环路。
本节介绍路由环路检测如何与支持和不支持 4 字节 AS 编号的路由器混合配合使用。 图 5 显示了具有 BGP 环路潜力的小型网络。
![4 字节 AS 编号和环路检测](../concept/../../images/g040535.png)
在第一个示例中,EBGP 路由,路由 10。1.2.3,首先由路由器 1 播发。路径中的第一个 AS 是在路由器 1 上配置的 AS 64596。路径中的第二个 AS 是在路由器 2 上配置的 AS 4200000000 。AS 4200000000 在 AS4_path 属性中发送,AS_TRANS编号 AS 23456 在 AS_PATH 属性中发送到路由器 3。路径中的第三个 AS 是路由器 3 上配置的 AS 65003。
show route
命令输出显示路由 10 的 AS 路径。路由器 3 向路由器 4 播发的 1.2.3。在命令输出中show route
,您首先看到 AS 64596。因为路由器 3 不支持 4 字节 AS 编号,所以您将看到第二个 AS 23456。由于路由器 2 使用了本地 AS 65000 与路由器 3 建立对等关系,因此您会看到第三个 AS 65000。AS 65003 不在命令输出中show route
,因为命令是在使用 AS 65 003 配置的路由器上输入的。
user@Router3# show route advertising-protocol bgp 192.168.1.2 ... Prefix Nexthop MED Lclpref AS path 10.2.3.4/32 Self 65000 23456 64596 I
在这种情况下,当路由器 4 在路径中看到自己的 AS 编号 AS 64596 时,它将检测路由环路。
在第二个示例中,EBGP 路由路由 10.3.2.1 首先由路由器 4 通告。路径中的第一个 AS 是在路由器 4 上配置的 AS 60596。路径中的第二个 AS 是在路由器 3 上配置的 AS 65003。路径中的第三个 AS 是在路由器 2 上配置的 AS 4200000000。
show route
命令输出显示路由 10 的 AS 路径。3.2.1 如路由器 2 向路由器 1 播发的那样。在命令输出中show route
,您首先会看到 AS 64596,其次会看到 AS 65003。AS 4200000000 不在命令输出中 show route
,因为命令是在使用 AS 4200000000 配置的路由器上输入的。
user@Router2# show route advertising-protocol bgp 192.168.1.10 ... Prefix Nexthop MED Lclpref AS path 10.3.2.1/32 Self 65003 64596 I
当路由器 1 在路径中看到自己的 AS 编号 AS 64596 时,将检测路由环路。
另请参阅
使用 2 字节 AS 编号在支持 4 字节的路由器与支持 2 字节的路由器之间建立对等关系
本节介绍当支持 4 字节 AS 编号的路由器与仅支持 2 字节 AS 编号的路由器建立对等关系时会发生什么情况,如果两个路由器都配置了 2 字节 AS 编号范围内的 AS 编号。
在 中 图 6,路由器 1 运行的是支持 4 字节 AS 编号的 Junos OS 9.2 版。路由器 1 配置为使用 2 字节 AS 编号,AS 12596。路由器 2 运行的是 Junos OS 8.5 版,支持 2 字节 AS 编号。路由器 2 配置了 2 字节 AS 编号,AS 60000。
![支持 4 字节的路由器,与使用 2 字节 AS 编号且支持 2 字节的路由器有对等关系](../concept/../../images/g040515.gif)
以下示例显示了路由器 1 配置的相关部分。
user@Router1# show configuration … autonomous-system 12596; … local-address 192.168.1.10; export static-to-bgp; peer-as 60000;
要验证路由 1.2.3.4 的 AS 路径是否包含 AS 12596,请在路由器 2 上使用
show route
命令。以下示例显示 BGP 对等会话是以正常方式建立的,并且路由 1.2.3.4 的 AS 路径包含 AS 12596:user@Router2# show route 1.2.3.4 1.2.3.4/32 *[BGP/170] 00:01:29, localpref 100, from 192.168.1.10 AS path: 12596 I > via at-0/1/0.1001
要显示路由器 1 上记录的会话建立消息,请使用
show log messages
命令。以下示例显示路由器 1 发现路由器 2 不支持 4 字节 AS 编号:user@Router1# show log messages Nov 7 09:41:39.443493 bgp_4byte_aspath_add_cap():153 AS4-Peer 192.168.1.9 (External AS 60000)(SEND): 4 byte AS capability added, AS 12596 Nov 7 09:41:39.443582 bgp_send: sending 67 bytes to 192.168.1.9 (External AS 60000) […] Nov 7 09:41:39.448055 bgp_4byte_aspath_adjust():1279 AS4-Peer 192.168.1.9 (External AS 60000)(SEND): Adjust BGP update to Old/New BGP speaker format Nov 7 09:41:39.448132 bgp_4byte_aspath_adjust():1290 AS4-Peer 192.168.1.9 (External AS 60000)(SEND): Cached information of previous update format is not used Nov 7 09:41:39.448162 bgp_generate_2byte_aspath():422 AS4-Peer 192.168.1.9 (External AS 60000)(SEND): Generating 2 byte AS path from 4 byte as-path Nov 7 09:41:39.448198 bgp_send: sending 64 bytes to 192.168.1.9 (External AS 60000)
另请参阅
使用 4 字节 AS 编号在支持 4 字节的路由器与支持 2 字节的路由器之间建立对等关系
本节介绍当支持 4 字节 AS 编号的路由器与仅支持 2 字节 AS 编号的路由器建立对等关系时会发生什么情况(如果第一个路由器配置的 AS 编号超出 2 字节 AS 编号范围)。
在 中 图 7,路由器 2 运行的是支持 4 字节 AS 编号的 Junos OS 9.2 版。路由器 2 配置为使用 4 字节 AS 编号,AS 1000000。路由器 3 运行的是 Junos OS 8.5 版,支持 2 字节 AS 编号。路由器 3 配置了 2 字节 AS 编号,AS 60000。
![支持 4 字节的路由器,与使用 4 字节 AS 编号的支持 2 字节的路由器具有对等关系](../concept/../../images/g040517.gif)
您可以配置一个本地 AS 编号,仅在与 BGP 邻接方建立 BGP 会话期间使用它,但在发送至外部 BGP 对等方的 AS 路径中将其隐藏。要配置本地 AS 编号,请包含 local-as
该语句,指定要使用的 2 字节 AS 编号 65530,并包括该 private
选项。使用此配置,发送至外部对等方的 AS 路径中仅包含全局 AS 编号 1000000。以下示例显示了路由器 2 配置的相关部分:
user@Router2# show configuration … autonomous-system 1000000; … local-address 192.168.1.9; export static-to-bgp; neighbor 192.168.1.3 { peer-as 60000; local-as 65530 private; }
路由器 3 上的对等 AS 编号应等于路由器 1 上的本地 AS 编号。以下示例显示了路由器 3 配置的相关部分:
user@Router3# show configuration … autonomous-system 60000; … local-address 192.168.1.3; neighbor 192.168.1.9 { peer-as 65530;
要验证路由 22.1.2.3 的 AS 路径是否包含 AS 65530,请在路由器 3 上使用 show route
命令。以下示例显示已建立 BGP 对等会话,并且路由 22.1.2.3 的 AS 路径包含 AS 65530:
user@Router3# show route 22.1.2.3 ... 22.1.2.3/32 *[BGP/170] 01:39:55, localpref 100, from 192.168.1.9 AS path: 65530 I > via so-1/0/3.0
另请参阅
示例:在 BGP 网络的 AS 路径中强制实施正确的自治系统编号
此示例说明如何将 enforce-first-as
在层次结构级别设置的 [edit protocols bgp]
语句用作安全措施。配置此语句可创建一致性检查,以确保 BGP 对等方是路由信息的合法发送方。
要求
开始之前,请设置至少包含三个自治系统的 BGP 网络。三个独立的路由器就足够了。
概述
该 enforce-first-as
语句强制要求 AS 路径中的第一个(最左侧)自治系统编号 (ASN) 与播发邻接方的 ASN 一致。
在拓扑中,路由器 C 在 BGP 中播发到路由器 B 的静态路由,然后路由器 B 将路由重新播发到路由器 A。然后,将针对路由器 A 的导出策略添加到路由器 B,以将不相关的 ASN 添加到路由器 B。最后, enforce-first-as
在路由器 A 上针对路由器 B 配置语句。当路由器 A 获取 AS 路径时,它会检查 AS 路径中最左侧的 ASN 是否是前一个邻居的 ASN,并使来自路由器 B 的路由无效。
拓扑学
![](../example/../../images/g043253.gif)
配置 enforce-first-as 语句以检查路由
CLI 快速配置
要快速配置此示例的初始配置,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改任何必要的详细信息以匹配您的网络配置,然后将命令复制并粘贴到层次结构级别的 CLI [edit]
中。
路由器 A 上的初始配置
set interfaces ge-1/0/0 unit 0 family inet address 192.0.2.1/29 set interfaces ge-1/0/0 unit 0 family mpls set interfaces lo0 unit 0 family inet address 10.127.0.1/32 set routing-options router-id 10.127.0.1 set routing-options autonomous-system 65541 set protocols mpls interface ge-1/0/0.0 set protocols bgp group pe type external set protocols bgp group pe peer-as 65542 set protocols bgp group pe neighbor 192.0.2.2 set protocols ospf area 0.0.0.0 interface lo0.0 passive set protocols ospf area 0.0.0.0 interface ge-1/0/0.0 set protocols ldp interface ge-1/0/0.0 set protocols ldp interface lo0.0
路由器 B 上的初始配置
set interfaces ge-0/0/0 unit 0 family inet address 192.0.2.2/29 set interfaces ge-0/0/0 unit 0 family mpls set interfaces ge-0/0/1 unit 0 family inet address 198.51.100.1/29 set interfaces ge-0/0/1 unit 0 family mpls set interfaces lo0 unit 0 family inet address 10.127.0.2/32 set routing-options router-id 10.127.0.2 set routing-options autonomous-system 65542 set protocols bgp group pe1 type external set protocols bgp group pe1 peer-as 65541 set protocols bgp group pe1 neighbor 192.0.2.1 set protocols bgp group pe3 type external set protocols bgp group pe3 peer-as 65543 set protocols bgp group pe3 neighbor 198.51.100.2
路由器 C 上的初始配置
set interfaces ge-1/0/0 unit 0 family inet address 198.51.100.2/29 set interfaces ge-1/0/0 unit 0 family mpls set interfaces lo0 unit 0 family inet address 10.127.0.3/32 set routing-options router-id 10.127.0.3 set routing-options autonomous-system 65543 set protocols mpls interface ge-1/0/0.0 set protocols bgp group pe type external set protocols bgp group pe peer-as 65542 set protocols bgp group pe neighbor 198.51.100.1 set protocols ospf area 0.0.0.0 interface lo0.0 passive set protocols ospf area 0.0.0.0 interface ge-1/0/0.0 set protocols ldp interface ge-1/0/0.0 set protocols ldp interface lo0.0
程序
分步过程
在路由器 C 上配置静态路由。
C-re0# set routing-options static route 198.51.100.17/29 next-hop 198.51.100.20 C-re0# set routing-options static route 198.51.100.17/29 readvertise C-re0# commit
为静态路由配置导出策略。
C-re0# set policy-options policy-statement export-static from protocol bgp C-re0# set policy-options policy-statement export-static then accept C-re0# set protocols bgp group pe export export-static C-re0# commit
验证静态路由是否直通路由器 B 和路由器 A。
B-re0# run show route 198.51.100.17 inet.0: 49 destinations, 49 routes (49 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 198.51.100.17/29 *[BGP/170] 00:11:40, localpref 100 AS path: 65543 I, validation-state: unverified > to 198.51.100.2 via ge-0/0/1.0 A-re0# run show route 198.51.100.17 inet.0: 49 destinations, 49 routes (49 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 198.51.100.17/29 *[BGP/170] 00:10:31, localpref 100 AS path: 65542 65543 I, validation-state: unverified > to 192.0.2.2 via ge-1/0/0.0
请注意,在路由器 A 上,路由显示的 AS 路径为 65542 65543。从路由器 B 到路由器 A 的路由已在 AS 路径中前置路由器 A 的 ASN。
设置导出策略以从路由器 B 前置 ASN。
B-re0# set policy-options policy-statement as-prepender from neighbor 198.51.100.2 B-re0# set policy-options policy-statement as-prepender then as-path-prepend 65555 B-re0# set protocols bgp group pe1 export as-prepender B-re0# commit
验证路由器 A 上的路由 198.51.100.17。
A-re0# run show route 198.51.100.17 inet.0: 49 destinations, 49 routes (49 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 198.51.100.17/29 *[BGP/170] 00:00:50, localpref 100 AS path: 65555 65542 65543 I, validation-state: unverified > to 192.0.2.2 via ge-1/0/0.0 [edit] A-re0#
请注意,ASN 65555 已前置到 AS 路径。
-
enforce-first-as
在路由器 A 上配置语句。A-re0# set protocols bgp enforce-first-as A-re0# commit
当您再次检查路由时,您会看到路由 198.51.100.17 不再在路由器 A 上通过。
验证
验证 BGP 会话
目的
验证是否已建立 BGP 会话,以及路由器是否与哪些邻居建立了对等会话。
操作
在操作模式下,运行 show bgp summary
命令。
B-re0> show bgp summary Groups: 2 Peers: 2 Down peers: 0 Table Tot Paths Act Paths Suppressed History Damp State Pending inet.0 0 0 0 0 0 0 Peer AS InPkt OutPkt OutQ Flaps Last Up/Dwn State|#Active/Received/Accepted/Damped... 192.0.2.1 65541 367 369 0 0 2:43:57 0/0/0/0 0/0/0/0 198.51.100.2 65543 369 368 0 0 2:44:00 0/0/0/0 0/0/0/0
意义
第一行显示配置的组数以及打开或关闭的对等方数。此输出显示有两个对等方 192.0.2.1 和 198.51.100.2 向上。表部分显示 inet.0 表中没有路径。我们可以看到路由器 B 有两个对等方,65541 和 65543。当列 State
显示三个用斜杠分隔的数字时,BGP 会话已启动。
验证静态路由
目的
验证静态路由是否从路由器 C 导出到路由器 B 和 A。
操作
在操作模式下,运行 show bgp neighbor
命令。
C-re0#> show bgp neighbor Peer: 198.51.100.1+179 AS 65542 Local: 198.51.100.2+62588 AS 65543 Type: External State: Established Flags: <Sync> Last State: OpenConfirm Last Event: RecvKeepAlive Last Error: None Export: [ export-static ]
在操作模式下,运行 show bgp summary
命令。
B-re0> show bgp summary Groups: 2 Peers: 2 Down peers: 0 Table Tot Paths Act Paths Suppressed History Damp State Pending inet.0 1 1 0 0 0 0 Peer AS InPkt OutPkt OutQ Flaps Last Up/Dwn State|#Active/Received/Accepted/Damped... 192.0.2.1 65541 8 10 0 0 2:59 0/0/0/0 0/0/0/0 198.51.100.2 65543 10 10 0 0 3:02 1/1/1/0 0/0/0/0
在操作模式下,运行 show route protocol bgp
命令。
A-re0> show route protocol bgp inet.0: 49 destinations, 49 routes (49 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 198.51.100.17/29 *[BGP/170] 00:12:35, localpref 100 AS path: 65542 65543 I, validation-state: unverified > to 192.0.2.2 via ge-1/0/0.0 iso.0: 1 destinations, 1 routes (1 active, 0 holddown, 0 hidden) mpls.0: 4 destinations, 4 routes (4 active, 0 holddown, 0 hidden) inet6.0: 2 destinations, 2 routes (2 active, 0 holddown, 0 hidden)
意义
使用命令, show bgp neighbor
您可以按名称查看导出策略。
show bgp summary
使用该命令,您可以看到 inet.0 表中现在有一个路由,表明该表已学习此路由。
该 show route protocol bgp
命令确认路由器正在学习路由。您可以看到路由和 AS 路径。请注意,在路由器 A 中,我们可以看到 AS 路径前置了路由器 C 和 B 的 ASN(65543 和 65542)。
验证前置导出策略
目的
验证 ASN 是否在从路由器 B 接收的路由器的 AS 路径中。
显示 BGP 邻居。列出此路由器连接到的 BGP 路由器。显示路由器与哪些邻居建立了对等会话。
显示 BGP 摘要。列出 BGP 组、对等方和会话状态信息。帮助确定是否已建立 BGP 会话。
显示路由协议 BGP。列出从 BGP 获知的路由。确认路由器仅学习来自所需邻居的路由。
操作
在操作模式下,运行 show route protocol bgp
命令。
A-re0> show route protocol bgp inet.0: 49 destinations, 49 routes (49 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 198.51.100.17/29 *[BGP/170] 00:00:24, localpref 100 AS path: 65555 65542 65543 I, validation-state: unverified > to 192.0.2.2 via ge-1/0/0.0 iso.0: 1 destinations, 1 routes (1 active, 0 holddown, 0 hidden) mpls.0: 4 destinations, 4 routes (4 active, 0 holddown, 0 hidden) inet6.0: 2 destinations, 2 routes (2 active, 0 holddown, 0 hidden)
意义
您可以看到,65555 已前置到 AS 路径中。
验证“先实施为”语句是否正常工作
目的
验证路由器是否仅学习来自所需邻接方的路由。
操作
验证路由 198.51.100.17。
A-re0> show route 198.51.100.17 all detail inet.0: 49 destinations, 49 routes (48 active, 0 holddown, 1 hidden) 198.51.100.17/29 (1 entry, 0 announced) BGP /-101 Next hop type: Router, Next hop index: 581 Address: 0x9db5ad0 Next-hop reference count: 1 Source: 192.0.2.2 Next hop: 192.0.2.2 via ge-1/0/0.0, selected Session Id: 0x141 State: <Hidden Ext> Local AS: 65541 Peer AS: 65542 Age: 1w2d 23:48:47 Validation State: unverified Task: BGP_65542.192.0.2.2 AS path: 65555 65542 65543 I Localpref: 100 Router ID: 10.127.0.2 Hidden reason: fails enforce-first-as check
如果发出 show route
命令,则不会显示路由信息。
A-re0> show route 198.51.100.17 A-re0>
意义
静态路由已隐藏,因为它包含不相关的 ASN,并且已配置该 enforce-first-as
语句。
变更历史表
是否支持某项功能取决于您使用的平台和版本。 使用 Feature Explorer 查看您使用的平台是否支持某项功能。