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 字节 AS 编号范围的一个子集。支持 4 字节 AS 编号的瞻博网络路由器只需在 2 字节 AS 编号前面附加一串零。例如,2 字节 AS 编号 65000 变为 4 字节 AS 编号 00000.65000。

如果您的瞻博网络路由器支持 4 字节 AS 编号,并且与不支持 4 字节 AS 编号的路由器有对等关系,则在支持 4 字节 AS 编号的路由器向新对等方播发此功能之后,相邻的 AS 输入路由表中将执行以下顺序:

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

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

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

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

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

  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 点符号格式配置 AS 编号,请包含该 autonomous-system 语句并指定 4 字节 AS 编号。在以下示例中,AS 编号设置为 1.10。

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

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

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

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

当地址前缀播发通过域时,该域通过在与地址前缀关联的AS路径中前置其自治系统编号 (ASN),有效地对前缀播发进行“签名”。在网络中的任意点上,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 前附加 4 次 AS 1000000000。

图 1:在 AS 路径中前置 4 字节 AS 编号的 EBGP AS Network routing path with four routers: Router 1 and 2 use 4-byte AS numbers, Router 3 uses 2-byte AS number causing route propagation issue, Router 4 uses 4-byte AS number.

您可以在路由器 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 由以下格式指定的三个组件组成:

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

在以下示例中, target 使用 4 字节 AS 编号 334324 且分配的编号为的 132 社区表示为 target:334324L:132。

注意:

如果在不支持 4 字节 AS 编号的对等路由器上显示目标扩展社区信息,则路由器将显示 target:unknown format。

了解通过支持 2 字节的域的支持 4 字节的路由器 AS 路径

本节介绍当支持 4 字节 AS 编号的路由器向仅支持 2 字节 AS 编号的路由器发送 AS 路径语句时,如果第一台路由器配置的 AS 编号超出 2 字节 AS 编号范围,则该路由器会发生什么情况。

在 图 2 中,路由器 1 支持 4 字节 AS 编号。路由器 1 配置为使用 4 字节 AS 编号,AS 1000000000。路由器 2 支持 2 字节 AS 编号。路由器 2 配置了 2 字节 AS 编号,AS 65056。

图 2:支持 4 字节的路由器 AS 路径到支持 2 字节的路由器 Network diagram of communication between Router 1 with AS number 1000000000 and Router 2 with AS number 65000. AS path shows transition from 4-byte to 2-byte AS numbers, using green, red, and blue colors for support values.
  • 路由器 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 路径 Network routing path with four routers: Router 1 and 2 use 4-byte AS numbers, Router 3 uses 2-byte AS number causing route propagation issue, Router 4 uses 4-byte AS number.

在这个案例中:

  • 路由器 1 在 AS_PATH 属性中将 4 字节AS号AS 10000000000 发送至路由器 2。

  • 路由器 2 知道路由器 3 不支持 4 字节 AS 编号。

  • 路由器 2 在 AS_PATH 属性中将 AS_TRANS 编号 AS 23456(代替 4 字节 AS 编号)发送至路由器 3。

  • 路由器 2 将 4 字节AS编号(AS AS4_PATH 属性中的 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 属性是传递属性,因此会转发到下一个路由器。

您可以对路由器 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 1000000000 的正确 AS 路径编号。

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

图 4:通过 2 字节 AS 域的 IBGP 4 字节 AS 路径 Network routing scenario showing propagation of route 1.2.3.4 through routers. Router 1: AS 100000000, 4-byte support. Router 2: AS 64500, 4-byte support. Router 3: AS 64500, converted to 2-byte. Router 4: AS 64500, 4-byte restored. Discrepancies occur with 2-byte support.

在这个案例中:

  • 路由器 1 在 AS_PATH 属性中将 4 字节AS号AS 10000000000 发送至路由器 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 属性时,它会合并 path 语句以创建准确的 AS 路径。

您可以对路由器 2 使用命令来 show route 显示路由详细信息。在以下示例中,请注意 AS 路径显示为 1000000000。

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

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

了解 4 字节 AS 编号和路由识别符

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

路由识别符配置为 6 字节值,您可以将其指定为 as-number:,其中as-number是分配的 AS 编号number,(也称为管理编号或分配编号子字段)是任意 2 字节或 4number 字节值。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 字节的路由器之间建立对等关系中所述。要配置本地 AS 编号,请包含 local-as 该语句,指定要使用的 2 字节 AS 编号 (65001),并包括该 private 选项。

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

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

本节介绍路由环路检测如何适用于支持和不支持 4 字节 AS 编号的路由器。 图 5 显示了一个可能出现 BGP 环路的小型网络。

图 5:4 字节 AS 编号和环路检测 Network topology showing routers with BGP configuration. Routers 1 and 2 support 4-byte AS numbers; Routers 3 and 4 support 2-byte AS numbers. Connections: Router 1 to Router 2 via IBGP; Router 2 to Router 3; Router 1 to Router 4 via IBGP. EBGP routes: Router 1 exports 10.1.2.3; Router 4 exports 10.3.2.1.

在第一个示例中,EBGP 路由路由 10.1.2.3 首先由路由器 1 播发。路径中的第一个 AS 是路由器 1 上配置的 AS 64596。路径中的第二个 AS 是路由器 2 上配置的 AS 4200000000。AS 4200000000 在 AS4_路径属性中发送,AS_TRANS 编号 AS 23456 在 AS_PATH 属性中发送至路由器 3。路径中的第三个 AS 是路由器 3 上配置的 AS 65003。

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

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

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

show route命令输出显示了由路由器 2 向路由器 1 播发的路由 10.3.2.1 的 AS 路径。在命令输出中show route,您首先会看到 AS 64596,然后会看到 AS 65003。AS 4200000000 不在命令输出中show route,因为命令是在使用 AS 4200000000 配置的路由器上输入的。

当路由器 1 在路径中看到自己的 AS 编号 AS 64596 时,将检测路由环路。

使用 2 字节 AS 编号在支持 4 字节的路由器与支持 2 字节的路由器之间建立对等关系 AS

本节介绍当支持 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 字节的路由器有对等关系 Network diagram with Router 1 AS number 123456 supporting 4-byte AS numbers and Router 2 AS number 65000 supporting 2-byte AS numbers. Route 1.2.3.4 is advertised.
  • 以下示例显示了路由器 1 配置的相关部分。

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

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

使用 4 字节 AS 编号在支持 4 字节的路由器与支持 2 字节的路由器之间建立对等关系 AS

本部分介绍当支持 4 字节 AS 编号的路由器与仅支持 2 字节 AS 编号的路由器建立对等关系时,如果第一台路由器配置了 2 字节 AS 编号范围之外的 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 字节的路由器有对等关系 AS 编号 Network topology showing Router 2 (AS 100000, 4-byte) linked to Router 3 (AS 65000, 2-byte). Route 192.1.2.3/32 is advertised.

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

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

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

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

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

要求

开始之前,请设置至少包含三个自治系统的 BGP 网络。三台独立的路由器足以满足需求。

概述

该 enforce-first-as 语句确保 AS 路径中的第一个(最左侧)自治系统编号 (ASn) 与播发邻接方的 ANS 一致 AS。

在设置拓扑时,路由器 C 在 BGP 中向路由器 B 播发静态路由,然后路由器 B 将路由重新播发给路由器 A。然后,将指向路由器 A 的导出策略添加到路由器 B。最后, enforce-first-as 在路由器 A 上配置指向路由器 B 的语句。当路由器 A 获取 AS 路径时,它会检查 AS 路径中最左侧的 ASN 是否为前邻接方的 ASN,并使来自路由器 B 的路由无效。

拓扑结构

Network topology diagram with three Autonomous Systems: A ASN 65541, B ASN 65542, and C ASN 65543. A connects to B via 192.0.2.1. B connects to A via 192.0.2.2 and to C via 198.51.100.1. C connects to B via 198.51.100.2. Connection between B and C labeled 803253.

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

CLI 快速配置

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

路由器 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。当列 State 显示用斜杠分隔的三个数字时,BGP 会话已启动。

验证静态路由

目的

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

行动

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

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

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

意义

使用该 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 neighbor。列出此路由器连接到的 BGP 路由器。显示路由器已与哪些邻接方建立了对等会话。

显示 BGP 摘要。列出 BGP 组、对等方和会话状态信息。帮助确定是否已建立 BGP 会话。

show route protocol bgp。列出从 BGP 获知的路由。确认路由器仅从所需邻接方学习路由。

行动

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

意义

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

验证 enforce-first-as 语句是否有效

目的

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

行动

验证路由 198.51.100.17。

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

意义

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

变更历史表

是否支持某项功能取决于您使用的平台和版本。使用 功能资源管理器 确定您的平台是否支持某个功能。

发布
描述
9.1
Junos OS 9.1 及更高版本支持 4 字节 AS 编号。