Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

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 输入路由表中将发生以下顺序:

  1. 支持 4 字节 AS 编号的路由器从只支持 2 字节 AS 编号的对等方接收播发。

  2. 在支持 4 字节 AS 编号的路由器上,2 字节 AS 路径通过在 2 字节 AS 编号前面附加一串零来转换为 4 字节 AS 编号。

  3. 如果路径中也存在 4 字节 AS 编号,则将其与路径中的 2 字节 AS 编号合并。

  4. 如果聚合器和AS4_AGGREGATOR属性存在,则这些属性也会合并。

如果您的瞻博网络路由器支持 4 字节 AS 编号,并且与不支持 4 字节 AS 编号的路由器存在对等关系,则相邻的 RIB-out 路由表中将按以下顺序执行:

  1. 更新消息在发送到不支持 4 字节 AS 编号的路由器之前会重新格式化。

  2. 支持 4 字节 AS 编号的路由器在 AS4_PATH 属性中发送 4 字节 AS 编号。

  3. 还会发送 AS_PATH 属性。它使用 2 字节 AS 编号进行编码。可映射的 4 字节 AS 编号(低于 64537)作为 2 字节 AS 编号发送。64536 以上的不可映射 4 字节 AS 编号以已知的 2 字节 AS 编号 (AS 23456) 表示。

  4. 单个对等组,用于支持 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 编号,请包含该 语句并指定 4 字节 AS 编号。autonomous-system 在以下示例中,AS 编号设置为 。1.10

  • 要以纯数字格式配置 4 字节 AS 编号,请包含该 语句并指定 4 字节 AS 编号。autonomous-system 在以下示例中,AS 编号设置为 。65546

  • 协商 BGP 对等会话后,可以验证对等方是否支持 4 字节 AS 编号。要验证对等方是否支持 4 字节 AS 编号,请使用 命令。show bgp neighbor 在以下示例中,对等方不支持 4 字节 AS 编号。

  • 在以下示例中,对等方支持 4 字节 AS 编号。

在 AS 路径中前置 4 字节 AS 编号

当地址前缀播发经过域时,域会将其自治系统编号 (ASN) 前置到与地址前缀关联的 AS 路径上,从而有效地对前缀播发进行“签名”。在网络中的任意点上,AS 路径描述了一系列连接的域,这些域构成从当前点到始发域的路径。AS 路径列表中最左侧的数字是接收地址前缀播发的相邻 AS 的 ASN。数字序列表示传播此更新所通过的 AS 序列。

本节介绍如何在 AS 路径的开头附加一个或多个 AS 编号。在将路由源自的实际 AS 编号添加到路径之后,AS 编号将添加到路径的开头。前置 AS 路径会使较短的 AS 路径看起来更长,因此会降低其对于 BGP 的可取性。

注:

从 Junos OS 15.1 版开始,该 语句强制实施 AS 路径中的第一个(最左侧)自治系统编号 (ASN) 是域传输时前邻接方的 ASN。enforce-first-as

在 中,路由器 2 配置为在 AS 编号 65000 前面附加 AS 1000000000 4 次。图 1

图 1: EBGP,4 字节 AS 编号已前置到 AS 路径EBGP,4 字节 AS 编号已前置到 AS 路径

您可以使用路由器 3 上的 show route 命令显示路由详细信息。在以下示例中,请注意路由器 3 上的 AS 路径中显示的前置 AS 编号是AS_TRANS编号 AS 23456。这是因为路由器 3 不支持 4 字节 AS 编号。

您可以使用路由器 4 上的 show route 命令显示路由详细信息。在以下示例中,请注意路由器 4 上的 AS 路径中显示的前置 AS 编号为 AS 1000000000。这是因为路由器 4 支持 4 字节 AS 编号并合并了 AS_PATH 和 AS4_PATH 属性。

配置 4 字节 AS 编号和 BGP 扩展社区属性

BGP 社区是一组共享公共属性的目标。您可以配置标准社区属性和扩展社区属性以包含在 BGP 更新消息中。

例如,配置 VPN 路由转发 (VRF) 实例时,您需要配置路由目标。路由目标是一种类型的 BGP 扩展社区属性。要创建命名的 BGP 扩展社区属性,请包含该 语句并指定社区成员:community

要指定社区成员,必须指定社区 ID。公共组 ID 由三个组件组成,您按以下格式指定:

某些 BGP 扩展社区属性的字段是 AS 编号。administrator 要配置 扩展社区(包括纯数字格式的 4 字节 AS 编号),请将字母“L”附加到数字末尾。target

在以下示例中, 具有 4 字节 AS 编号且分配的编号 为 的 社区表示为 。target334324132target: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。

图 2: 支持 4 字节的路由器 AS 路径到支持 2 字节的路由器支持 4 字节的路由器 AS 路径到支持 2 字节的路由器
  • 路由器 2 不接受 AS_PATH 属性中的 4 字节 AS 编号。您可以使用路由器 1 上的命令进行 验证。show bgp neighbor

图 3 显示了运行 EBGP 的四个路由器。路由器 1、路由器 2 和路由器 4 支持 4 字节 AS 编号。路由器 3 不支持 4 字节 AS 编号。

图 3: 通过 2 字节 AS 域的 EBGP 4 字节 AS 路径通过 2 字节 AS 域的 EBGP 4 字节 AS 路径

在这种情况下:

  • 路由器 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 上的命令显示 AS 路径。在以下示例中,请注意 AS 编号 23456 显示在 AS 路径中,并且 AS4_PATH 属性为 。show routeUnrecognized 由于 AS4_PATH 属性是传递属性,因此会转发到下一个路由器。

您可以使用路由器 4 上的命令显示 路由详细信息。在以下示例中,请注意,当 AS 路径转换路由器 3(如 AS2(2 字节 AS)路径所示)时,AS 编号显示为 AS_TRANS。show route 这意味着路由器 3 看到的 AS 编号为 23456。在 AS4(4 字节 AS)路径中,AS 编号显示为 1000000000。在合并的 AS 路径中,将显示 AS 65056、AS 65000 和 AS 100000000 的正确 AS 路径编号。

图 4 显示了 4 个运行 IBGP 的路由器。路由器 1、路由器 2 和路由器 4 支持 4 字节 AS 编号。路由器 3 不支持 4 字节 AS 编号。

图 4: 通过 2 字节 AS 域的 IBGP 4 字节 AS 路径通过 2 字节 AS 域的 IBGP 4 字节 AS 路径

在这种情况下:

  • 路由器 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 上的命令显示 路由详细信息。在以下示例中,请注意 AS 路径显示为 1000000000。show route

您可以使用路由器 3 上的命令显示 路由详细信息。在以下示例中,请注意 AS 路径显示为 65000 23456。show route

您可以使用路由器 4 上的命令显示 路由详细信息。在以下示例中,请注意合并的 AS 路径显示为 65000 1000000000。show route

了解 4 字节 AS 编号和路由区分符

路由识别符 (RD) 是一个以服务提供商客户的 IPv4 地址为前缀的 8 字节字段。生成的 12 字节字段是唯一的 VPN-IPv4 地址。BGP 消息中的 RD 由两个主要字段组成,即类型字段(2 字节)和值字段(6 字节)。类型字段确定应如何解释值字段。

路由识别符配置为 6 字节值,您可以将其指定为 :,其中 是分配的 AS 编号,(也称为管理编号或分配的编号子字段)是任意 2 字节或 4 字节值。as-numbernumberas-numbernumber 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:

如果要配置的路由器是不支持 4 字节 AS 编号的路由器的 BGP 对等方,则还需要配置本地 AS 编号,如使用 4 字节 AS 编号在支持 4 字节的路由器和支持 2 字节的路由器之间建立对等关系中所述。使用 4 字节 AS 编号在支持 4 字节的路由器与支持 2 字节的路由器之间建立对等关系要配置本地 AS 编号,请包含 该语句,指定要使用的 2 字节 AS 编号 (65001),并包括该 选项。local-asprivate

了解 4 字节 AS 编号和路由环路检测

BGP 中最重要的功能之一是使用 AS_PATH 属性在自治系统级别检测路由环路。思考AS_PATH的一种简单方法是,它是路由到达目的地所经过的自治系统列表。路由器在从相邻 AS 接收的 AS_PATH 中检查自己的 AS 编号,从而检测并避免环路。

本节介绍路由环路检测如何与支持和不支持 4 字节 AS 编号的路由器混合配合使用。 图 5 显示了具有 BGP 环路潜力的小型网络。

图 5: 4 字节 AS 编号和环路检测4 字节 AS 编号和环路检测

在第一个示例中,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。

命令输出显示路由 10 的 AS 路径。路由器 3 向路由器 4 播发的 1.2.3。在命令输出中,您首先看到 AS 64596。show routeshow route 因为路由器 3 不支持 4 字节 AS 编号,所以您将看到第二个 AS 23456。由于路由器 2 使用了本地 AS 65000 与路由器 3 建立对等关系,因此您会看到第三个 AS 65000。AS 6 5 00 3 不在命令输出中,因为命令是在使用 AS 65003 配置的路由器上输入的。show route

在这种情况下,当路由器 4 在路径中看到自己的 AS 编号 AS 64596 时,它将检测路由环路。

在第二个示例中,EBGP 路由路由 10.3.2.1 首先由路由器 4 通告。路径中的第一个 AS 是在路由器 4 上配置的 AS 60596。路径中的第二个 AS 是在路由器 3 上配置的 AS 65003。路径中的第三个 AS 是在路由器 2 上配置的 AS 4200000000。

命令输出显示路由 10 的 AS 路径。3.2.1 如路由器 2 向路由器 1 播发的那样。在命令输出中,您首先会看到 AS 64596,其次会看到 AS 65003。show routeshow route AS 4200000000 不在命令输出中,因为命令是在使用 AS 4200000000 配置的路由器上输入的。show route

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

图 6: 支持 4 字节的路由器,与使用 2 字节 AS 编号且支持 2 字节的路由器有对等关系支持 4 字节的路由器,与使用 2 字节 AS 编号且支持 2 字节的路由器有对等关系
  • 以下示例显示了路由器 1 配置的相关部分。

  • 要验证路由 1.2.3.4 的 AS 路径是否包含 AS 12596,请在路由器 2 上使用 命令。以下示例显示 BGP 对等会话是以正常方式建立的,并且路由 1.2.3.4 的 AS 路径包含 AS 12596:show route

  • 要显示路由器 1 上记录的会话建立消息,请使用 命令。show log messages 以下示例显示路由器 1 发现路由器 2 不支持 4 字节 AS 编号:

使用 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。

图 7: 支持 4 字节的路由器,与使用 4 字节 AS 编号的支持 2 字节的路由器具有对等关系支持 4 字节的路由器,与使用 4 字节 AS 编号的支持 2 字节的路由器具有对等关系

您可以配置一个本地 AS 编号,仅在与 BGP 邻接方建立 BGP 会话期间使用它,但在发送至外部 BGP 对等方的 AS 路径中将其隐藏。要配置本地 AS 编号,请包含 该语句,指定要使用的 2 字节 AS 编号 65530,并包括该 选项。local-asprivate 使用此配置,发送至外部对等方的 AS 路径中仅包含全局 AS 编号 1000000。以下示例显示了路由器 2 配置的相关部分:

路由器 3 上的对等 AS 编号应等于路由器 1 上的本地 AS 编号。以下示例显示了路由器 3 配置的相关部分:

要验证路由 22.1.2.3 的 AS 路径是否包含 AS 65530,请在路由器 3 上使用 命令。以下示例显示已建立 BGP 对等会话,并且路由 22.1.2.3 的 AS 路径包含 AS 65530:show route

示例:在 BGP 网络的 AS 路径中强制实施正确的自治系统编号

此示例说明如何将 在层次结构级别设置的 语句用作安全措施。enforce-first-as[edit protocols bgp] 配置此语句可创建一致性检查,以确保 BGP 对等方是路由信息的合法发送方。

要求

开始之前,请设置至少包含三个自治系统的 BGP 网络。三个独立的路由器就足够了。

概述

该 语句强制要求 AS 路径中的第一个(最左侧)自治系统编号 (ASN) 与播发邻接方的 ASN 一致。enforce-first-as

在拓扑中,路由器 C 在 BGP 中播发到路由器 B 的静态路由,然后路由器 B 将路由重新播发到路由器 A。然后,将针对路由器 A 的导出策略添加到路由器 B,以将不相关的 ASN 添加到路由器 B。最后, 在路由器 A 上针对路由器 B 配置语句。当路由器 A 获取 AS 路径时,它会检查 AS 路径中最左侧的 ASN 是否是前一个邻居的 ASN,并使来自路由器 B 的路由无效。enforce-first-as

拓扑

配置 enforce-first-as 语句以检查路由

CLI 快速配置

要快速配置此示例的初始配置,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改任何必要的详细信息以匹配您的网络配置,然后将命令复制并粘贴到层次结构级别的 CLI 中。[edit]

路由器 A 上的初始配置

路由器 B 上的初始配置

路由器 C 上的初始配置

程序

分步过程
  1. 在路由器 C 上配置静态路由。

  2. 为静态路由配置导出策略。

  3. 验证静态路由是否直通路由器 B 和路由器 A。

    请注意,在路由器 A 上,路由显示的 AS 路径为 65542 65543。从路由器 B 到路由器 A 的路由已在 AS 路径中前置路由器 A 的 ASN。

  4. 设置导出策略以从路由器 B 前置 ASN。

  5. 验证路由器 A 上的路由 198.51.100.17。

    请注意,ASN 65555 已前置到 AS 路径。

  6. 在路由器 A 上配置语句。enforce-first-as

    当您再次检查路由时,您会看到路由 198.51.100.17 不再在路由器 A 上通过。

验证

验证 BGP 会话

目的

验证是否已建立 BGP 会话,以及路由器是否与哪些邻居建立了对等会话。

操作

在操作模式下,运行 命令。show bgp summary

意义

第一行显示配置的组数以及打开或关闭的对等方数。此输出显示有两个对等方 192.0.2.1 和 198.51.100.2 向上。表部分显示 inet.0 表中没有路径。我们可以看到路由器 B 有两个对等方,65541 和 65543。当列 显示三个用斜杠分隔的数字时,BGP 会话已启动。State

验证静态路由

目的

验证静态路由是否从路由器 C 导出到路由器 B 和 A。

操作

在操作模式下,运行 命令。show bgp neighbor

在操作模式下,运行 命令。show bgp summary

在操作模式下,运行 命令。show route protocol bgp

意义

使用命令, 您可以按名称查看导出策略。show bgp neighbor

使用该命令,您可以看到 inet.0 表中现在有一个路由,表明该表已学习此路由。show bgp summary

该 命令确认路由器正在学习路由。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

意义

您可以看到,65555 已前置到 AS 路径中。

验证“先实施为”语句是否正常工作

目的

验证路由器是否仅学习来自所需邻接方的路由。

操作

验证路由 198.51.100.17。

如果发出 命令,则不会显示路由信息。show route

意义

静态路由已隐藏,因为它包含不相关的 ASN,并且已配置该 语句。enforce-first-as

变更历史表

是否支持某项功能取决于您使用的平台和版本。 使用 Feature Explorer 查看您使用的平台是否支持某项功能。

版本
说明
9.1
Junos OS 9.1 及更高版本支持 4 字节 AS 编号。