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 字节 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 编号。