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字节,也称为16位 AS 数字,2个八进制数作为数字,提供一个65536作为编号的池。2 字节AS编号范围已耗尽。RFC 4893 中指定了 4 字节 AS 编号 ,BGP 支持四字节 AS 编号空间 ,提供了 4,294,967,296 AS 编号池。

从2009年1月1日起,互联网编号分配机构(IANA)仅将4字节分配为编号,除非专门请求2字节 AS 编号。互联网工程任务组(IETF) RFC 4893 定义了一种从2字节过渡到4字节 AS 数字以及保持向后兼容性的方法。

RFC 4893 引入了两个新的可选可传递 BGP 特性 AS4_PATH 和 AS4_AGGREGATOR。这些新属性用于在不支持4字节 AS 编号的 BGP 扬声器上将4字节作为路径信息传播。

RFC 4893 还引入了保留的、众所周知的2字节 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字节作为数字,则无需将新的4字节用作数字。"2 字节 AS 编号" 范围是4字节 AS 编号范围的子集。支持4字节 AS 数字的 Juniper 网络路由器只需在2字节的前面加上一个零字符串作为数字。例如,2字节 AS 编号65000将变为4字节,编号为00000.65000。

如果您的瞻博网络路由器支持4个字节的数字,并且与路由器的对等关系不支持4字节 AS 编号,则以下顺序发生在路由表中相邻的筋-中,在支持4字节 AS 数字的路由器之后向新对等方通告此功能:

  1. 支持4字节 AS 数字的路由器接收对等方的通告,该广告仅支持2字节 AS 编号。

  2. 在支持4字节 AS number 的路由器上,将2字节 AS 路径转换为4字节 AS 数字,方法是在2字节前面加上一个以数字表示的零字符串。

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

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

如果瞻博网络路由器支持4个字节的数字,并且与路由器的对等关系不支持4字节 AS 编号,则会在相邻的筋出路由表中进行以下顺序:

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

  2. 支持4字节 AS 数字的路由器将4字节视为 AS4_PATH 属性中的编号。

  3. 同时发送 AS_PATH 属性。它使用2字节 AS 编号进行编码。可映射4字节 AS 数字低于64537,以2字节为数字形式发送。64536以上的非可映射4字节 AS 数字,以已知的2字节为数字表示,即23456。

  4. 单个对等组用于支持4字节 AS 编号的路由器,以及仅支持2字节 AS 编号的路由器。

配置4字节自主系统编号

本节介绍如何将4字节配置为数字,以及如何验证 BGP 对等体是否支持4字节 AS 数字。

在运行 AS 9.2 及更高版本的路由器上,AS Junos OS数字以纯数字格式或AS点符号格式指定。例如,65546编号为4字节,以格式为65546的形式表示。在运行 AS 9.2 及更高版本的路由器上,AS编号以 AS 点符号格式表示,Junos OS 1.10。

  • 要将4字节配置为 AS 点表示法格式,请包含autonomous-system语句并指定4字节 AS 编号。在下面的示例中,AS 号设置为1.10

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

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

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

在 AS 路径中将4字节作为数字预先计算

当地址前缀通告通过域时,域将自己的自治系统编号 (ASN) 附加至与地址前缀相关联的 AS 路径,有效地"标记"前缀通告。在网络中的任何一点,AS 路径都介绍了一系列连接域,形成从当前点到原始域的路径。AS 路径列表中最左侧的数字是接收地址前缀通告的邻接方的 ASN。数字序列指示了此更新传播到的 As 序列。

本节介绍如何在 AS 路径的开头预先列出一个或多个 AS 编号。AS 编号将添加到路径起始处(实际 AS 编号之后),然后路由从该通道开始添加到路径中。预置 AS path 可使路径看起来更长,因此更不 BGP 更可取。

注:

从 Junos OS 版本15.1 开始,该enforce-first-as语句在 as 路径中实施第一个(最左侧)的自治系统编号(asn)是上一次邻居的 ASN,因为该域是 transited 的。

图 1中,路由器2配置为在 as 编号65000之前将 1000000000 4 时间前置。

图 1: 使用4字节作为编号的 EBGP,预置为 AS 路径使用4字节作为编号的 EBGP,预置为 AS 路径

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

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

将4个字节配置为编号,并 BGP 扩展社区属性

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

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

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

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

在下面的示例中, target以4字节为编号334324的社区,指定的编号132表示为。 target:334324L:132

注:

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

通过支持2字节功能的域了解支持4字节的路由器作为路径

本节介绍在支持4字节 AS 编号的路由器将 AS path 语句发送到仅支持2字节 AS 数字的路由器时,如果第一台路由器在2字节之外的数字范围内配置为 AS 编号。

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

图 2: 4字节支持的路由器,可用作支持2字节路由器的路径4字节支持的路由器,可用作支持2字节路由器的路径
  • 路由器 2 不接受 AS_PATH 属性中的 4 字节AS_PATH 编号。您可使用路由器1上show bgp neighbor的命令验证这一点。

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

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

在这种情况下:

  • 路由器1在 AS_PATH 属性中将4字节编号(AS 1000000000)发送到路由器2。

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

  • 路由器2在 AS_PATH 属性中将 AS_TRANS 号码作为23456发送,以将4字节编号到路由器3。

  • 路由器2将4字节 AS 编号,AS AS4_PATH 属性中的1000000000发送到路由器3。

  • 由于 AS4_PATH 属性可传递,因此路由器3会将 AS_PATH 属性和 AS4_PATH 属性发送到路由器4。

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

您可使用路由器3上的show route命令显示 AS 路径。在下面的示例中,请注意 AS number 23456 显示在 AS 路径中,并且是UnrecognizedAS4_PATH 属性。由于 AS4_PATH 属性是可传递属性,因此将其转发至下一个路由器。

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

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

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

在这种情况下:

  • 路由器1在 AS_PATH 属性中将4字节编号(AS 1000000000)发送到路由器2。

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

  • 路由器2在 AS_PATH 属性中将 AS_TRANS 号码作为23456发送,以将4字节编号到路由器3。

  • 路由器3同时将 AS_PATH 属性和 AS4_PATH 属性发送到路由器4。

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

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

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

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

了解4个字节 AS 编号和路由 Distinguishers

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

路由 distinguisher 配置为6字节值,您可以将其指定as-number为:number,其中as-number ,您指定为编号, number (也称为管理编号或分配编号子字段)为2字节或4字节值。AS 编号可以在1到4294967295范围内。如果 AS number 为2字节值,则管理号码为4字节值。如果 AS number 为4字节值,则管理编号为2字节值。

由 4 字节 AS 编号和 2 字节管理编号组成的 RD,在 RFC 4364、BGP/MPLS IP 虚拟专用网络中定义为 2 类 路由识别器。

要使用 4 字节编号AS RD,可以将字母"L"附加到编号末尾。在以下示例中,4字节 AS number 为7765000,管理编号为1000:

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

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

BGP 中最重要的功能之一是使用 AS_PATH 属性在自治系统级别进行路由循环检测。思考 AS_PATH 的简单方法是,路由到达目标时所经过的自治系统的列表。路由器检查并避免环路在从邻接 AS 时收到的 AS_PATH 中的数字。

本节介绍路由循环检测如何与支持和不支持4字节 AS 编号的路由器混合使用。图 5显示了一个小网络,可能会有 BGP 环路。

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

在第一个示例中,EBGP 路由(路由1.2.3.4)首先由路由器1通告。As in 路径中的第一个 AS 与路由器1上配置的12596相同。路径中的第二个 AS 与路由器2上配置的1000000相同。AS 1000000 在 AS4_path 属性中发送,AS_TRANS 号码 AS 23456 将在 AS_PATH 属性中发送到路由器3。在路由器3上配置的第三个 AS 为60000。

show route命令输出显示了由路由器3到路由器4公布的路由1.2.3.4 的 AS 路径。在show route命令输出中,您首先会看到12596。因为路由器3不支持4字节 AS 数字,所以您看到的是23456秒。由于路由器2使用本地65000与路由器3建立对等关系,因此您将看到65000第三。AS 60000 不在命令输出中,因为命令是在使用 AS show route 60000 配置的路由器上输入的。

在这种情况下,当路由器4在路径中将其自身视为编号(如12596)时,将检测路由循环。

第二个示例中,EBGP 路由(路由4.3.2.1)最先由路由器4通告。As in 路径中的第一个 AS 与路由器4上配置的12596相同。在路由器3上,第二种 AS 在路径中与配置为60000。第三 AS 的路径与路由器2上配置的1000000相同。

命令 show route 输出显示AS 4.3.2.1 路由 2 向路由器 1 播发的路由 1 的路由路径。在 show route 命令输出中,第一个AS 12596,第AS 60000 秒。AS 1000000 不在show route命令输出中,因为命令是在配置为 AS 1000000 的路由器上输入的。

当路由器1在路径中看到自己的编号(如12596)时,将检测到路由循环。

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

本节介绍了支持4字节 AS 编号的路由器时,如果两个路由器均配置为2字节 AS 编号范围内的编号,则为路由器提供对等关系,仅支持2字节 AS 编号。

图 6中,路由器1运行 Junos OS 版本9.2,支持4字节 AS 编号。路由器1配置为使用2字节 AS 编号,如12596。路由器2正在运行 Junos OS 版本8.5,支持2字节 AS 数字。路由器2配置2字节 AS 编号,如60000。

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

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

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

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

本节介绍了支持4字节 AS 编号的路由器时,如果第一个路由器在2字节外配置为数字范围,则为路由器提供对等关系,仅支持2字节 AS 编号。

图 7中,路由器2正在运行 Junos OS 版本9.2,支持4字节 AS 编号。路由器2配置为使用4字节 AS 编号,如1000000。路由器3正在运行 Junos OS 版本8.5,支持2字节 AS 数字。路由器3配置2字节 AS 编号,如60000。

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

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

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

要验证路由 22.1.2.3 AS路径是否包含 AS 65530,请使用路由器 show route 3 上的 命令。以下示例显示已建立 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 的静态路由,然后 readvertises 路由到路由器 A。然后将一个不相关的 ASN 加入路由器 A 的出口策略添加到路由器 B 中。最后, enforce-first-as该语句在路由器 A 方向上配置为路由器 b。当路由器 A 获取 AS 路径时,它会检查 AS 路径中最左侧的 ASN 是否为上一邻居的 ASN,并使来自路由器 B 的路由无效。

拓扑

配置执行第一条 as 语句以检查路由

CLI 快速配置

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

路由器 A 上的初始配置

路由器 B 上的初始配置

路由器 C 上的初始配置

操作

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

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

  3. 验证静态路由是否正在进入路由器 B 和路由器 A。

    请注意,在路由器 A 上,路由显示为路径为 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 表中没有路径。我们可以看到,路由器 B 有两个对等方、65541和65543。当State列显示由斜杠分隔的三个数字时,BGP 会话将启动。

验证静态路由

用途

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

行动

从操作模式运行show bgp neighbor命令。

从操作模式运行show bgp summary命令。

从操作模式运行show route protocol bgp命令。

含义

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

通过该show bgp summary命令,您可以看到 inet 表中现在有一个路由,表示该表已获知此路由。

show route protocol bgp命令将确认路由器是否为学习路由。您可以看到路由和 AS 路径。请注意,在路由器 A 中,我们可以看到 AS 路径附加在路由器 C 和 B 的 ASNs (65543和65542)后面。

验证预置导出策略

用途

验证 ASNs 是否处于从路由器 B 接收的路由器的路径。

显示 bgp 邻域。列出了此路由器连接到的 BGP 路由器。显示了路由器与之建立了对等会话的邻居。

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

显示路由协议 bgp。列出了从 BGP 获知的路由。确认路由器只从所需的邻居学习路由。

行动

从操作模式运行show route protocol bgp命令。

含义

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

验证实施前陈述语句是否正常工作

用途

验证路由器是否仅从所需的邻居学习路由。

行动

验证路由198.51.100.17。

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

含义

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

发布历史记录表
版本
说明
9.1
Junos OS 版本9.1 和更新版本支持4字节 AS 数字。