BGP 4 字节 AS 编号
4 字节自治系统编号概述
该技术概述介绍了 4 字节自治系统 (AS) 编号以及混合使用 2 字节和 4 字节 AS 编号的网络中 BGP 的操作。
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 字节 AS 编号范围的子集。支持 4 字节 AS 编号的瞻博网络路由器只需在 2 字节 AS 编号前面附加一串零。例如,2 字节 AS 编号 65000 成为 4 字节 AS 编号 00000.65000。
如果您的瞻博网络路由器支持 4 字节 AS 编号,并与不支持 4 字节 AS 编号的路由器有对等关系,则支持 4 字节 AS 编号的路由器将播发此功能后,在相邻 RIB-in 路由表中发生以下顺序:
支持 4 字节 AS 编号的路由器将从仅支持 2 字节 AS 编号的对等方接收播发。
在支持 4 字节 AS 编号的路由器上,2 字节 AS 路径通过在 2 字节 AS 编号前面附加一串零来转换为 4 字节 AS 编号。
如果路径中也存在 4 字节 AS 编号,则将其与路径中的 2 字节 AS 编号合并。
如果存在 AGGREGATOR 和 AS4_AGGREGATOR 属性,则也会合并这些属性。
如果您的瞻博网络路由器支持 4 字节 AS 编号,并与不支持 4 字节 AS 编号的路由器有对等关系,则会在相邻 RIB-out 路由表中发生以下顺序:
更新消息在发送至不支持 4 字节 AS 编号的路由器之前,会重新格式化。
支持 4 字节 AS 编号的路由器在 AS4_PATH 属性中发送 4 字节 AS 编号。
也会发送AS_PATH属性。它使用 2 字节 AS 编号进行编码。64537 以下的可映射 4 字节 AS 编号以 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 100000000044。

您可以使用路由器 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 100000000。这是因为路由器 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 编号范围,将会发生什么。
路由器 图 2 1 支持 4 字节 AS 编号。路由器 1 配置为使用 4 字节 AS 编号,AS 10000000000。路由器 2 支持 2 字节 AS 编号。路由器 2 配置了 2 字节 AS 编号,AS 65056。

路由器 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 编号。

在本案例中:
路由器 1 在AS_PATH属性中将 4 字节 AS 编号 1000000000 发送至路由器 2。
路由器 2 知道路由器 3 不支持 4 字节 AS 编号。
路由器 2 在 AS_PATH 属性中将 AS_TRANS 编号 AS 23456(代替 4 字节 AS 编号)发送至路由器 3。
路由器 2 在AS4_PATH属性中将 4 字节 AS 编号 1000000000 发送至路由器 3。
由于 AS4_PATH 属性是可传递的,因此路由器 3 会将 AS_PATH 属性和 AS4_PATH 属性都发送至路由器 4。
当路由器 4 收到AS_PATH并AS4_PATH属性时,它会合并路径语句以创建准确的 AS 路径。
您可以使用对路由器 3 的命令显示 AS 路径 show route
。在以下示例中,请注意 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 编号显示为 10000000000。在合并的 AS 路径中,将显示 AS 65056、AS 65000 和 AS 1000000000 的正确 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 编号。

在本案例中:
路由器 1 在AS_PATH属性中将 4 字节 AS 编号 1000000000 发送至路由器 2。
路由器 2 知道路由器 3 不支持 4 字节 AS 编号。
路由器 2 在 AS_PATH 属性中将 AS_TRANS 编号 AS 23456(代替 4 字节 AS 编号)发送至路由器 3。
路由器 3 会将 AS_PATH 属性和 AS4_PATH 属性都发送至路由器 4。
当路由器 4 收到AS_PATH并AS4_PATH属性时,它会合并路径语句以创建准确的 AS 路径。
您可以使用路由器 2 上的命令显示路由详细信息 show route
。在以下示例中,请注意 AS 路径显示为 10000000000。
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 环路潜力的小型网络

在第一个示例中,EBGP 路由,路由 10。1.2.3,首先由路由器 1 播发。路径中的第一个 AS 是在路由器 1 上配置的 AS 64596。路径中的第二个 AS 是在路由器 2 上配置的 AS 420000000。AS 42000000000 在 AS4_path 属性中发送,AS_TRANS编号 AS 23456 在 AS_PATH 属性中发送到路由器 3。路径中的第三个 AS 是在路由器 3 上配置的 AS 65003。
show route
命令输出显示路由 10 的 AS 路径。1.2.3(由路由器 3 到路由器 4 通告)。在命令输出中show route
,您首先看到 AS 64596。由于路由器 3 不支持 4 字节 AS 编号,您将看到第二个 AS 23456。由于路由器 2 使用 65000 的本地 AS 与路由器 3 建立对等关系,您可以看到第三个 AS 65000。AS 6 5 003 不在命令输出中show route
,因为命令是在使用 AS 65003 配置的路由器上输入的。
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 时,将检测路由环路。
在第二个示例中,路由器 4 首先播发 EBGP 路由 10.3.2.1。路径中的第一个 AS 是在路由器 4 上配置的 AS 60596。路径中的第二个 AS 是在路由器 3 上配置的 AS 65003。路径中的第三个 AS 是在路由器 2 上配置的 AS 420000000。
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 运行的是 Junos OS 9.2 版,支持 4 字节 AS 编号。路由器 1 配置为使用 2 字节 AS 编号,AS 12596。路由器 2 运行的是 Junos OS 8.5 版,支持 2 字节 AS 编号。路由器 2 配置了 2 字节 AS 编号,AS 60000。

以下示例显示了路由器 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 运行的是 Junos OS 9.2 版,支持 4 字节 AS 编号。路由器 2 配置为使用 4 字节 AS 编号,AS 1000000。路由器 3 运行的是 Junos OS 8.5 版,支持 2 字节 AS 编号。路由器 3 配置了 2 字节 AS 编号,AS 60000。

您可以配置一个本地 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 导出策略,以前置不相关的 ASN。最后,在路由器 A 上配置语句 enforce-first-as
,指向路由器 B。当路由器 A 获得 AS 路径时,它会检查 AS 路径中最左侧的 ASN 是否是前邻接方的 ASN,并导致来自路由器 B 的路由无效。
拓扑

配置 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 的路由已将路由器 A 的 ASN 前置到 AS 路径。
设置导出策略以从路由器 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 路径中。
show bgp 邻居。列出此路由器连接到的 BGP 路由器。显示路由器与哪些邻接方建立了对等会话。
show bgp summary。列出 BGP 组、对等方和会话状态信息。帮助确定是否建立了 BGP 会话。
show route protocol 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 路径中。
验证 enforce-first-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
已配置语句。