Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

BGP 对等会话

使用外部 BGP 对等组的优势

BGP 是目前使用的唯一适合承载互联网上所有路由的路由协议。这主要是因为 BGP 在 TCP 上运行,可以利用 TCP 流控制。相比之下,内部网关协议 (IGP) 没有流量控制。当 IGP 具有过多的路由信息时,它们就会开始流失。当 BGP 的相邻发言者发送信息过快时,BGP 可以通过延迟 TCP 确认来限制邻居。

BGP 的另一个好处是(与 IS-IS 一样)它使用类型、长度、值 (TLV) 元组和网络层可达性信息 (NLRI),提供看似无限的可扩展性,而无需更改底层协议。

在 Junos OS 中,BGP 完全由策略驱动。操作员必须显式配置邻居以与 BGP 对等并显式接受路由进入 BGP。此外,路由策略用于过滤和修改路由信息。因此,路由策略提供对路由表的完全管理控制。

配置大量 BGP 对等邻居的首选方法是配置每个组包含多个邻居的对等组。

随着外部 BGP (EBGP) 组数量的增加,支持大量 BGP 会话的能力可能会成为 CPU 和内存资源扩展问题。支持较少的 EBGP 组通常比支持大量 EBGP 组的扩展性更好。与每个组中有多个对等体的几个 EBGP 组相比,这在数百个 EBGP 组的情况下变得更加明显。出现这种扩展行为的原因是 Junos OS 具有基于每个路由的每个组的数据结构。添加组时,会将这些数字相乘并减少可用内存量。

BGP 对等在两个独立的自治系统 (AS) 之间创建互利的流量交换关系。它在服务提供商交换点特别有用。这种关系的主要好处是降低了两个网络的传输成本和设备资源。创建 BGP 对等组的其他潜在好处包括降低 BGP 配置的复杂性,以及通过减少对传输提供商的依赖来增加路由冗余。

BGP 对等可用于在两个远程网络(如远程办公室和公司总部)之间创建点对点流量交换。它还可用于快速连接两个不同的网络,例如两个合并的办公室之间。

了解外部 BGP 对等会话

要在对等自治系统 (AS) 之间建立点对点连接,请在点对点链路的每个接口上配置 BGP 会话。通常,此类会话在网络出口点与 AS 外部的相邻主机进行。 图 1 显示了 BGP 对等会话的示例。

图 1: BGP 对等会话BGP 对等会话

在 中 ,路由器 A 是 AS 3 的网关路由器,路由器 B 是 AS 10 的网关路由器。图 1对于任一 AS 的内部流量,将使用内部网关协议 (IGP)(例如 OSPF)。要在对等 AS 之间路由流量,请使用 BGP 会话。

您可以将 BGP 路由设备排列成对等方组。不同的对等组可以具有不同的组类型、AS 编号和路由反射器群集标识符。

要定义仅将指定的 BGP 系统识别为对等方的 BGP 组,请通过包含一个或多个 语句来静态配置系统的所有对等方。neighbor 对等邻接方的地址可以是 IPv6 或 IPv4 地址。

建立 BGP 对等方后, BGP 对等方不会自动通告非 BGP 路由。在每个启用 BGP 的设备上,都需要配置策略才能将本地、静态或 IGP 获知的路由导出到 BGP RIB,然后将其作为 BGP 路由播发给其他对等方。默认情况下,BGP 的播发策略不会向对等方播发任何非 BGP 路由(例如本地路由)。

注:

在 SRX 系列防火墙上,您必须在区域的指定接口或所有接口上启用预期的主机入站流量。否则,默认情况下会丢弃发往此设备的入站流量。

例如,要允许 SRX 系列防火墙特定区域上的 BGP 流量,请使用以下步骤:

(所有接口) (指定接口)

示例:配置外部 BGP 点对点对等会话

此示例说明如何配置 BGP 点对点对等会话。

要求

在开始之前,如果默认 BGP 策略不适合您的网络,请配置路由策略以过滤传入的 BGP 路由并通告 BGP 路由。

概述

图 2 显示了具有 BGP 对等会话的网络。在示例网络中,AS 17 中的设备 E 具有与一组名为 的对等方的 BGP 对等会话。external-peers 对等方 A、B 和 C 驻留在 AS 22 中,IP 地址为 10.10.10.2、10.10.10.6 和 10.10.10.10。对等方 D 驻留在 AS 79 中,IP 地址为 10.21.7.2。此示例显示了设备 E 上的配置。

拓扑

图 2: 具有 BGP 对等会话的典型网络具有 BGP 对等会话的典型网络

配置

程序

CLI 快速配置

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

分步过程

下面的示例要求您在各个配置层级中进行导航。有关导航 CLI 的信息,请参阅《Junos OS CLI 用户指南》中的在配置模式下使用 CLI 编辑器。在配置模式下使用 CLI 编辑器https://www.juniper.net/documentation/en_US/junos/information-products/pathway-pages/junos-cli/junos-cli.html

要配置 BGP 对等会话,请执行以下操作:

  1. 配置对等方 A、B、C 和 D 的接口。

  2. 设置自治系统 (AS) 编号。

  3. 创建 BGP 组,并添加外部邻居地址。

  4. 指定外部 AS 的自治系统 (AS) 编号。

  5. 添加对等方 D,并在单个邻居级别设置 AS 编号。

    邻居配置将覆盖组配置。因此,虽然为组中的所有其他邻居设置,但设置为邻居 10.21.7.2。peer-as 22peer-as 79

  6. 将对等类型设置为外部 BGP (EBGP)。

成果

在配置模式下,输入 、 和 命令确认您的配置。show interfacesshow protocolsshow routing-options 如果输出未显示预期的配置,请重复此示例中的说明,以便进行更正。

如果完成设备配置,请从配置模式输入 commit

验证

确认配置工作正常。

验证 BGP 邻居

目的

验证 BGP 是否在配置的接口上运行,以及每个邻居地址的 BGP 会话是否处于活动状态。

操作

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

验证 BGP 组

目的

验证是否正确配置了 BGP 组。

操作

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

验证 BGP 摘要信息

目的

验证 BGP 配置是否正确。

操作

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

示例:在具有 IPv6 接口的逻辑系统上配置外部 BGP

此示例说明如何在具有 IPv6 接口的逻辑系统上配置外部 BGP (EBGP) 点对点会话。

要求

在此示例中,不需要除设备初始化之外的特殊配置。

概述

Junos OS 通过 IPv6 地址支持 EBGP 对等会话。在语句中 指定 IPv6 地址时,可以配置 IPv6 对等会话。neighbor 此示例使用 EUI-64 生成自动应用于接口的 IPv6 地址。EUI-64 地址是使用 IEEE EUI-64 格式作为地址的接口标识符部分(最后 64 位)的 IPv6 地址。

注:

或者,您可以使用手动分配的 128 位 IPv6 地址配置 EBGP 会话。

如果对接口使用 128 位链路本地地址,则必须包含该 语句。local-interface 此语句仅对 128 位 IPv6 链路本地地址有效,并且对于配置 IPv6 EBGP 链路本地对等会话是必需的。

使用链路本地地址配置 EBGP 对等仅适用于直接连接的接口。不支持多跃点对等互连。

接口启动后,您可以使用 命令查看接口上 EUI-64 生成的 IPv6 地址。show interfaces terse 您必须在 BGP 语句中使用这些生成的地址。neighbor 此示例演示完整的端到端过程。

在此示例中,帧中继接口封装应用于逻辑隧道 () 接口。lt 这是一项要求,因为在接口上 配置 IPv6 地址时,仅支持帧中继封装。lt

图 3 显示了具有 BGP 对等会话的网络。在示例网络中,路由器 R1 配置了五个逻辑系统。自治系统 (AS) 17 中的设备 E 与一组名为 的对等方具有 的 BGP 对等会话。external-peers 对等方 A、B 和 C 位于 AS 22 中。此示例显示了逻辑系统 A 和逻辑系统 E 上的分步配置。

拓扑

图 3: 具有 BGP 对等会话的典型网络具有 BGP 对等会话的典型网络

配置

程序

CLI 快速配置

要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改详细信息,以便与网络配置匹配,将命令复制并粘贴到 [edit] 层级的 CLI 中,然后从配置模式进入 commit

设备 A

设备 B

设备 C

设备 D

设备 E

分步过程

下面的示例要求您在各个配置层级中进行导航。有关导航 CLI 的信息,请参阅 CLI 用户指南中的在配置模式下使用 CLI 编辑器。在配置模式下使用 CLI 编辑器https://www.juniper.net/documentation/en_US/junos/information-products/pathway-pages/junos-cli/junos-cli.html

要配置 BGP 对等会话,请执行以下操作:

  1. 运行命令以 验证物理路由器是否具有逻辑隧道 () 接口。show interfaces terselt

  2. 在逻辑系统 A 上,配置接口封装、对等单元编号和 DLCI 以访问逻辑系统 E。

  3. 在逻辑系统 A 上,配置指向对等方 E 的链路的网络地址,并配置环路接口。

  4. 在逻辑系统 E 上,配置接口封装、对等单元编号和 DLCI 以访问逻辑系统 A。

  5. 在逻辑系统 E 上,配置指向对等方 A 的链路的网络地址,并配置环路接口。

  6. 运行命令以查看 EUI-64 生成的 IPv6 地址。show interfaces terse

    此示例中的 BGP 语句中使用了 2001 地址。neighbor

    注:

    fe80 地址是链路本地地址,此示例中不使用。

  7. 在其他逻辑系统上重复接口配置。

配置外部 BGP 会话

分步过程

下面的示例要求您在各个配置层级中进行导航。有关导航 CLI 的信息,请参阅 CLI 用户指南中的在配置模式下使用 CLI 编辑器。在配置模式下使用 CLI 编辑器https://www.juniper.net/documentation/en_US/junos/information-products/pathway-pages/junos-cli/junos-cli.html

要配置 BGP 对等会话,请执行以下操作:

  1. 在逻辑系统 A 上,创建 BGP 组并添加外部邻居地址。

  2. 在逻辑系统 E 上,创建 BGP 组并添加外部邻居地址。

  3. 在逻辑系统 A 上,指定外部 AS 的自治系统 (AS) 编号。

  4. 在逻辑系统 E 上,指定外部 AS 的自治系统 (AS) 编号。

  5. 在逻辑系统 A 上,将对等类型设置为 EBGP。

  6. 在逻辑系统 E 上,将对等类型设置为 EBGP。

  7. 在逻辑系统 A 上,设置自治系统 (AS) 编号和路由器 ID。

  8. 在逻辑系统 E 上,设置 AS 编号和路由器 ID。

  9. 对等方 A、B、C 和 D 重复这些步骤。

成果

在配置模式下,输入 show logical-systems 命令以确认您的配置。如果输出未显示预期的配置,请重复此示例中的说明,以便进行更正。

如果完成设备配置,请从配置模式输入 commit

验证

确认配置工作正常。

验证 BGP 邻居

目的

验证 BGP 是否在配置的接口上运行,以及每个邻居地址的 BGP 会话是否处于活动状态。

操作

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

意义

IPv6 单播网络层可达性信息 (NLRI) 正在邻居之间交换。

验证 BGP 组

目的

验证是否正确配置了 BGP 组。

操作

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

意义

组类型是外部的,并且组有四个对等方。

验证 BGP 摘要信息

目的

验证是否已建立 BGP 对等关系。

操作

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

意义

向下的同行:0 输出显示 BGP 对等方处于建立状态。

检查路由表

目的

验证 inet6.0 路由表中是否填充了本地路由和直接路由。

操作

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

意义

inet6.0 路由表包含本地路由和直接路由。要使用其他类型的路由填充路由表,必须配置路由策略。

了解内部 BGP 对等会话

当两台启用 BGP 的设备位于同一自治系统 (AS) 中时,BGP 会话称为 内部 BGP 会话或 IBGP 会话。BGP 在 IBGP 和外部 BGP (EBGP) 会话上使用相同的消息类型,但何时发送每条消息以及如何解释每条消息的规则略有不同。出于这个原因,有些人将IBGP和EBGP称为两个独立的协议。

图 4: 内部和外部 BGP内部和外部 BGP

在 中 图 4,Device Jackson、Device Memphis 和 Device Biloxi 彼此具有 IBGP 对等会话。同样,Device Miami 和 Device Atlanta 之间也有 IBGP 对等会话。

IBGP 的目的是提供一种可以在整个网络中转发 EBGP 路由通告的方法。理论上,要完成此任务,您可以将所有 EBGP 路由重新分发到内部网关协议 (IGP),例如 OSPF 或 IS-IS。但是,由于 Internet 中有大量 EBGP 路由以及 IGP 的运行方式,因此不建议在生产环境中这样做。简而言之,有了这么多路由,IGP 就会流失或崩溃。

通常,环路接口 (lo0) 用于在 IBGP 对等方之间建立连接。只要设备正在运行,环路接口就始终处于打开状态。如果存在到环路地址的路由,IBGP 对等会话将保持运行。如果改用物理接口地址,并且该接口上升和关闭,则 IBGP 对等会话也会上升和关闭。因此,如果设备具有链路冗余,环路接口可在物理接口或链路出现故障时提供容错能力。

虽然 IBGP 邻居不需要直接连接,但它们需要完全网状连接。在这种情况下,全网状意味着每个设备通过邻居对等关系在逻辑上连接到所有其他设备。该语句创建 网格。neighbor 由于 IBGP 的全网状要求,您必须在 AS 中的所有 IBGP 设备之间配置单独的对等会话。整个网格不一定是物理链路。相反,每个路由设备上的配置必须创建对等会话的完整网格(使用多个 语句)。neighbor

注:

如果配置联合体或路由反射,则无需全网状网络。

要了解全网状网络要求,请考虑 IBGP 获知的路由不能重新播发到另一个 IBGP 对等方。之所以阻止 IBGP 路由重新播发并要求全网状网络,是为了避免 AS 内的路由环路。AS 路径属性是 BGP 路由设备避免环路的方法。仅当从 EBGP 对等方接收路由时,才会检查本地 AS 编号的路径信息。由于属性只会跨 AS 边界修改,因此,此系统工作正常。但是,如果属性只会跨 AS 边界修改,则表示 AS 内存在问题。例如,假设路由设备 A、B 和 C 都在同一 AS 中。设备 A 从 EBGP 对等方接收路由,并将路由发送到设备 B,后者将其安装为活动路由。然后,路由会发送至设备 C,后者会在本地安装路由并将其发送回设备 A。如果设备 A 安装路由,则会在 AS 中形成环路。路由设备无法检测到环路,因为在播发期间未修改 AS 路径属性。因此,BGP 协议设计者决定,永远不会形成路由环路的唯一保证是防止 IBGP 对等方在 AS 中播发 IBGP 获知的路由。对于路由可达性,IBGP 对等方是完全网状的。

IBGP 支持多跃点连接,因此 IBGP 邻接方可位于 AS 内的任何位置,且通常不会共享链路。递归路由查找将环路对等地址解析为转发下一跃点的 IP。查找服务由静态路由或 IGP(如 OSPF 或 BGP 路由)提供。

示例:配置内部 BGP 对等会话

此示例说明如何配置内部 BGP 对等会话。

要求

在配置此示例之前,不需要除设备初始化之外的特殊配置。

概述

在此示例中,您将配置内部 BGP (IBGP) 对等会话。环路接口 (lo0) 用于在 IBGP 对等方之间建立连接。只要设备正在运行,环路接口就始终处于打开状态。如果存在到环路地址的路由,IBGP 对等会话将保持运行。如果改用物理接口地址,并且该接口上升和关闭,则 IBGP 对等会话也会上升和关闭。因此,如果设备具有链路冗余,则环路接口可在物理接口或其中一个链路出现故障时提供容错能力。

当设备与远程设备的环路接口地址对等时,本地设备期望 BGP 更新消息来自远程设备的环路接口地址(由远程设备的环路接口地址提供)。使用该 语句,可以在 BGP 更新消息中指定源信息。local-address 如果省略 该语句,则 BGP 更新消息的预期源基于设备的源地址选择规则,这通常会导致出口接口地址成为更新消息的预期源。local-address 发生这种情况时,不会建立对等会话,因为预期的源地址(对等方的出口接口)和实际源地址(对等方的环路接口)之间存在不匹配。要确保预期的源地址与实际源地址匹配,请在语句中 指定环路接口地址。local-address

由于 IBGP 支持多跃点连接,因此 IBGP 邻接方可以位于自治系统 (AS) 内的任何位置,并且通常不共享链路。递归路由查找将环路对等方地址解析为下一跃点转发的 IP 地址。在此示例中,此服务由 OSPF 提供。虽然内部网关协议 (IGP) 邻居不需要直接连接,但它们需要完全网状连接。在这种情况下,全网状意味着每个设备通过邻居对等关系在逻辑上连接到所有其他设备。该语句创建 网格。neighbor

注:

如果配置联合体或路由反射,则无需全网状网络。

建立 BGP 对等方后,BGP 对等方不会自动播发本地路由。在每个启用 BGP 的设备上,都需要进行策略配置,以将本地、静态或 IGP 获知的路由导出到 BGP 路由信息库 (RIB),然后将其作为 BGP 路由播发给其他对等方。默认情况下,BGP 的播发策略不会向对等方播发任何非 BGP 路由(例如本地路由)。

在示例网络中,AS 17 中的设备在组中 完全网状。internal-peers 这些设备的环路地址为 192.168.6.5、192.163.6.4 和 192.168.40.4。

图 5 显示了具有内部对等会话的典型网络。

图 5: 具有 IBGP 会话的典型网络具有 IBGP 会话的典型网络

配置

CLI 快速配置

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

设备 A

设备 B

设备 C

配置设备 A

分步过程

下面的示例要求您在各个配置层级中进行导航。有关导航 CLI 的信息,请参阅《Junos OS CLI 用户指南》中的在配置模式下使用 CLI 编辑器。在配置模式下使用 CLI 编辑器https://www.juniper.net/documentation/en_US/junos/information-products/pathway-pages/junos-cli/junos-cli.html

要在设备 A 上配置内部 BGP 对等会话,请执行以下操作:

  1. 配置接口。

  2. 配置 BGP。

    设备 B 和设备 C 都包含这些 语句,即使设备 A 未直接连接到设备 C。neighbor

  3. 配置 OSPF。

  4. 配置接受直接路由的策略。

    此方案的其他有用选项可能是接受通过 OSPF 或本地路由获知的路由。

  5. 配置路由器 ID 和 AS 编号。

成果

在配置模式下,输入 show interfacesshow policy-optionsshow protocolsshow routing-options 命令,以确认您的配置。如果输出未显示预期的配置,请重复此示例中的说明,以便进行更正。

如果完成设备配置,请从配置模式输入 commit

配置设备 B

分步过程

以下示例要求您在配置层次结构中导航各个级别。有关导航 CLI 的信息,请参阅 在配置模式下使用 CLI 编辑器。在配置模式下使用 CLI 编辑器

要在设备 B 上配置内部 BGP 对等会话,请执行以下操作:

  1. 配置接口。

  2. 配置 BGP。

    设备 B 和设备 C 都包含这些 语句,即使设备 A 未直接连接到设备 C。neighbor

  3. 配置 OSPF。

  4. 配置接受直接路由的策略。

    此方案的其他有用选项可能是接受通过 OSPF 或本地路由获知的路由。

  5. 配置路由器 ID 和 AS 编号。

成果

在配置模式下,输入 show interfacesshow policy-optionsshow protocolsshow routing-options 命令,以确认您的配置。如果输出未显示预期的配置,请重复此示例中的说明,以便进行更正。

如果完成设备配置,请从配置模式输入 commit

配置设备 C

分步过程

下面的示例要求您在各个配置层级中进行导航。有关导航 CLI 的信息,请参阅《Junos OS CLI 用户指南》中的在配置模式下使用 CLI 编辑器。在配置模式下使用 CLI 编辑器https://www.juniper.net/documentation/en_US/junos/information-products/pathway-pages/junos-cli/junos-cli.html

要在设备 C 上配置内部 BGP 对等会话,请执行以下操作:

  1. 配置接口。

  2. 配置 BGP。

    设备 B 和设备 C 都包含这些 语句,即使设备 A 未直接连接到设备 C。neighbor

  3. 配置 OSPF。

  4. 配置接受直接路由的策略。

    此方案的其他有用选项可能是接受通过 OSPF 或本地路由获知的路由。

  5. 配置路由器 ID 和 AS 编号。

成果

在配置模式下,输入 show interfacesshow policy-optionsshow protocolsshow routing-options 命令,以确认您的配置。如果输出未显示预期的配置,请重复此示例中的说明,以便进行更正。

如果完成设备配置,请从配置模式输入 commit

验证

确认配置工作正常。

验证 BGP 邻居

目的

验证 BGP 是否在配置的接口上运行,以及每个邻居地址的 BGP 会话是否处于活动状态。

操作

在操作模式下,输入 show bgp neighbor 命令。

验证 BGP 组

目的

验证是否正确配置了 BGP 组。

操作

在操作模式下,输入 show bgp group 命令。

验证 BGP 摘要信息

目的

验证 BGP 配置是否正确。

操作

在操作模式下,输入 show bgp summary 命令。

验证路由表中是否安装了 BGP 路由

目的

验证导出策略配置是否导致 BGP 路由安装在对等方的路由表中。

操作

在操作模式下,输入 show route protocol bgp 命令。

示例:在逻辑系统上配置内部 BGP 对等会话

此示例说明如何在逻辑系统上配置内部 BGP 对等会话。

要求

在此示例中,不需要除设备初始化之外的特殊配置。

概述

在此示例中,您将配置内部 BGP (IBGP) 对等会话。

在示例网络中,AS 17 中的设备在组中 完全网状。internal-peers 这些设备的环路地址为 192.168.6.5、192.163.6.4 和 192.168.40.4。

图 6 显示了具有内部对等会话的典型网络。

图 6: 具有 IBGP 会话的典型网络具有 IBGP 会话的典型网络

配置

CLI 快速配置

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

设备 A

分步过程

下面的示例要求您在各个配置层级中进行导航。有关导航 CLI 的信息,请参阅 CLI 用户指南中的在配置模式下使用 CLI 编辑器。在配置模式下使用 CLI 编辑器https://www.juniper.net/documentation/en_US/junos/information-products/pathway-pages/junos-cli/junos-cli.html

要在设备 A 上配置内部 BGP 对等会话,请执行以下操作:

  1. 配置接口。

  2. 配置 BGP。

    在逻辑系统 A 上,设备 B 和设备 C 都包含语句, 即使逻辑系统 A 未直接连接到设备 C。neighbor

  3. 配置 OSPF。

  4. 配置接受直接路由的策略。

    此方案的其他有用选项可能是接受通过 OSPF 或本地路由获知的路由。

  5. 配置路由器 ID 和自治系统 (AS) 编号。

成果

在配置模式下,输入 show logical-systems 命令以确认您的配置。如果输出未显示预期的配置,请重复此示例中的配置说明,以便进行更正。

如果完成设备配置,请从配置模式输入 commit

验证

确认配置工作正常。

验证 BGP 邻居

目的

验证 BGP 是否在配置的接口上运行,以及每个邻居地址的 BGP 会话是否处于活动状态。

操作

在操作模式下,输入 命令。show bgp neighbor

验证 BGP 组

目的

验证是否正确配置了 BGP 组。

操作

在操作模式下,输入 命令。show bgp group

验证 BGP 摘要信息

目的

验证 BGP 配置是否正确。

操作

在操作模式下,输入 命令。show bgp summary

验证路由表中是否安装了 BGP 路由

目的

验证导出策略配置是否正常工作。

操作

在操作模式下,输入 命令。show route protocol bgp