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) 编号以及混合使用 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 路由表中发生以下顺序:

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

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

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

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

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

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

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

  3. 也会发送AS_PATH属性。它使用 2 字节 AS 编号进行编码。64537 以下的可映射 4 字节 AS 编号以 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 编号,请包含 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 编号

当地址前缀播发通过域时,域通过将前缀的自治系统编号 (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。

图 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 100000000。这是因为路由器 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 编号的路由器将 AS 路径语句发送至仅支持 2 字节 AS 编号的路由器时,如果第一个路由器的 AS 编号超出 2 字节 AS 编号范围,将会发生什么。

路由器 图 2 1 支持 4 字节 AS 编号。路由器 1 配置为使用 4 字节 AS 编号,AS 10000000000。路由器 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 字节 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 属性是传递属性,因此会转发到下一个路由器。

您可以使用路由器 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 路径编号。

图 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 字节 AS 编号)发送至路由器 3。

  • 路由器 3 会将 AS_PATH 属性和 AS4_PATH 属性都发送至路由器 4。

  • 当路由器 4 收到AS_PATH并AS4_PATH属性时,它会合并路径语句以创建准确的 AS 路径。

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

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

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

了解 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:

如果要配置的路由器是不支持 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 编号和环路检测 4 字节 AS 编号和环路检测

在第一个示例中,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 配置的路由器上输入的。

在这种情况下,当路由器 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 配置的路由器上输入的。

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

图 6: 支持 4 字节的路由器,使用 2 字节 AS 编号与支持 2 字节的路由器有对等关系支持 4 字节的路由器,使用 2 字节 AS 编号与支持 2 字节的路由器有对等关系
  • 以下示例显示了路由器 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 字节的路由器之间建立对等关系

本节介绍当支持 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。

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

您可以配置一个本地 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) 与广告邻接方的 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 上的初始配置

路由器 B 上的初始配置

路由器 C 上的初始配置

程序

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

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

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

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

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

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

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

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

    再次检查路由时,您会发现路由 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 邻居。列出此路由器连接到的 BGP 路由器。显示路由器与哪些邻接方建立了对等会话。

show bgp summary。列出 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 编号。