Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

多协议 BGP

了解多协议 BGP

多协议 BGP (MP BGP)是一种对 BGP 的扩展,支持 BGP 将路由信息传送到多种网络层和地址系列。MP BGP 可以将多播路由使用的单播路由与用于单播 IP 转发的路由分开传送。

要启用 MP BGP,请将 BGP 配置为为地址系列提供网络层可访问性信息(NLRI),而非单播 IPv4 family inet ,方法是包含以下语句:

要使 MP BGP 能够传输 IPv6 地址系列的 NLRI,请包含以下family inet6语句:

只有在路由器上,MP-BGP才能为 IPv4 地址系列承载 3 层虚拟专用网 (VPN) NLRI,包括 family inet-vpn 以下语句:

只有在路由器上,MP-BGP才能为 IPv6 地址系列承载 3 层 VPN NLRI,请 family inet6-vpn 添加以下语句:

仅在路由器上,要使 MP BGP 能够传输 IPv4 地址系列的多播 VPN NLRI 并启用 VPN 信号,请包括以下family inet-mvpn语句:

要启用 MP BGP 以承载 IPv6 地址系列的多播 VPN NLRI 并启用 VPN 信号,请包含以下family inet6-mvpn语句:

有关基于多协议和BGP组播 VPN 的信息,请参阅 Junos OS 组播协议用户指南

有关可在其中包含这些语句的层次结构级别列表,请参阅这些语句的语句摘要部分。

注:

如果您更改[edit protocols bgp family]层次结构级别中指定的地址族,路由设备上的所有当前 BGP 会话都将被丢弃,然后重新建立。

在 Junos OS 9.6 版和更高版本中,您可以为特定 BGP 地址族指定环路值。

默认情况下,BGP 对等方仅携带用于单播转发目的的单播路由。要将 BGP 对等方配置为仅传送多点multicast传送路由,请指定选项。要将 BGP 对等方配置为同时携带单播和多路any广播路由,请指定选项。

配置 MP BGP 时,BGP 会将 MP BGP 路由安装到不同的路由表中。每个路由表都由协议系列或地址族指示符(AFI)和后续地址族标识符(SAFI)标识。

以下列表显示了所有可能的 AFI 和 SAFI 组合:

  • AFI = 1,SAFI = 1,IPv4 单播

  • AFI = 1,SAFI = 2,IPv4 多播

  • AFI = 1,SAFI = 128,L3VPN IPv4 单播

  • AFI = 1,SAFI = 129,L3VPN IPv4 多播

  • AFI = 2,SAFI = 1,IPv6 单播

  • AFI = 2,SAFI = 2,IPv6 多播

  • AFI = 25,SAFI = 65,BGP-VPLS/BGP

  • AFI = 2,SAFI = 128,L3VPN IPv6 单播

  • AFI = 2,SAFI = 129,L3VPN IPv6 多播

  • AFI = 1,SAFI = 132,RT 约束

  • AFI = 1,SAFI = 133,流量规格

  • AFI = 1,SAFI = 134,流量规格

  • AFI = 3,SAFI = 128,CLNS VPN

  • AFI = 1,SAFI = 5,NG-MVPN IPv4

  • AFI = 2,SAFI = 5,NG-MVPN IPv6

  • AFI = 1,SAFI = 66,MDT-SAFI

  • AFI = 1,SAFI = 4,标记为 IPv4

  • AFI = 2,SAFI = 4,标记为 IPv6 (6PE)

Inet 路由表中安装的路由只能导出到 MP-BGP 对等方,因为它们使用 SAFI,将其标识为到多路广播源的路由。安装在 inet 路由表中的路由只能导出到标准 BGP 对等方。

Inet 路由表应该是您在 inet 中拥有的路由的子集。0,因为不太可能会有通向无法发送单播流量的多路广播源的路由。Inet 路由表存储用于多播反向路径转发检查的单播路由,以及通过 MP BGP 从 NLRI 多播更新中学到的附加可达信息。在配置 MP BGP 时,将自动创建 inet 2 路由表(通过将 NLRI 设置为any)。

启用 MP BGP 时,可以执行以下操作:

限制 BGP 对等方会话上收到的前缀数

当注入的前缀数超过设定的限制时,您可以限制 BGP 对等体会话收到的前缀数,以及记录速率有限的消息数量。当前缀数量超过限制时,也可以将对等互连。

要将限制配置为可在 BGP 会话上接收的前缀数,请包含以下prefix-limit语句:

有关可在其中包含此语句的层次结构级别列表,请参阅本声明的语句摘要部分。

对于 maximum number ,指定范围为 1 到 4,294,967,295 的值。当超过指定的最大前缀数时,将发送系统日志消息。

如果包括此teardown语句,当超过最大前缀数时,会话将被断开。如果指定百分比,则当前缀数量超过指定最大限制的百分比时,将记录消息。会话被切断后,将在短时间内重新建立(除非您包含该idle-timeout语句)。如果包括此idle-timeout语句,则会话可在指定的一段时间中保持不放,或者永远不停。如果指定forever,则仅在发出clear bgp neighbor命令后重新建立会话。如果包含 语句并指定百分比,则当前缀数超过该百分比时,将丢弃多余 drop-excess <percentage> 路由。如果包含 hide-excess <percentage> 语句并指定百分比,则当前缀数超过该百分比时,多余路由将隐藏。如果该百分比已修改,则会自动重新评估路由。

注:

在 Junos OS 9.2 及更高版本中,也可对可在一个会话上接受的前缀数量BGP 对等体限制。有关更多详细信息,请参阅限制 BGP 对等方会话上接受的前缀数

限制 BGP 对等方会话上接受的前缀数

在 Junos OS 9.2 及更高版本中,您可以限制可在一个安全会话中接受的BGP 对等体数量。超过指定限制时,将发送系统日志消息。如果超过指定前缀的数量限制,还可以指定重置 BGP 会话。

要将限制配置为可在 BGP 对等体会话上接受的前缀数量,请包含以下accepted-prefix-limit语句:

有关可在其中包含此语句的层次结构级别列表,请参阅本声明的语句摘要部分。

对于 maximum number ,指定范围为 1 到 4,294,967,295 的值。

当接受teardown的前缀数量超过配置的限制时,包含用于重置 BGP 对等体会话的语句。您还可以包含从 1 到 100 的百分比值,以在接受的前缀数超过最大限制的百分比时发送系统日志消息。默认情况下,重置的 BGP 会话将在短时间内重新建立。包含idle-timeout语句以防止 BGP 会话在指定时间段内重新建立。您可以配置 1 到 2400 分钟之间的超时值。包括 forever 选项,以防止在BGP之前重新建立该 clear bgp neighbor 会话。如果包含 语句并指定百分比,则当前缀数超过该百分比时,将丢弃多余 drop-excess <percentage> 路由。如果包含 hide-excess <percentage> 语句并指定百分比,则当前缀数超过该百分比时,多余路由将隐藏。如果该百分比已修改,则会自动重新评估路由。

注:

启用不间断活动路由(NSR)并切换到备份路由引擎时,关闭的 BGP 对等方将自动重新启动。即使idle-timeout forever语句已配置,也会重新启动对等方。

注:

或者,您可以将限制配置到 BGP 对等体会话上可接收(与接受时相对)的前缀数。有关更多详细信息,请参阅限制 BGP 对等方会话上收到的前缀数

配置 BGP 路由表组

当会话BGP单播或组播 NLRI 时,它将路由安装在相应的表中( 或单播或 inet.0inet6.0inet.2inet6.2 组播)。要将单播前缀同时添加到单播和多播表中,您可以配置 BGP 路由表组。如果您无法执行多路广播 NLRI 协商,这将很有帮助。

要配置 BGP 路由表组,请包含rib-group以下语句:

有关可在其中包含此语句的层次结构级别列表,请参阅本声明的语句摘要部分。

将路由解析为位于其他 As 的 PE 路由设备

您可以将标记为 的路由放置在路由 inet.3 表中以解析路由。这些路由随后将针对在远程 PE 位于另一个自治系统(AS)的提供商边缘(PE)路由设备连接进行解析。让 PE 路由设备在 VPN 路由和转发 (VRF) 路由实例中安装路由时,下一跃点必须解析到表中存储的 inet.3 路由。

要解析路由到 inet.3 路由表中,请包含 resolve-vpn 语句:

有关可在其中包含此语句的层次结构级别列表,请参阅本声明的语句摘要部分。

允许标记和未标记的路由

您可以允许在单个会话中交换标记和未标记的路由。标记的路由放在 inet 3 或 inet 6.3 路由表中,标记和未标记的单播路由都可由路由设备发送或接收。

要同时交换标记和未标记的路由,请包含以下rib语句:

有关可在其中包含此语句的层次结构级别列表,请参阅本声明的语句摘要部分。

示例:通过 IPv4 传输配置 IPv6 BGP 路由

此示例演示如何通过 IPv4 连接以及两端均配置了 IPv4 接口的方式来导出 IPv6 和 IPv4 前缀。

要求

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

概述

导出 IPv6 BGP 前缀时,请记住以下几点:

  • BGP 使用IPv4 映射的 IPv6 前缀派生下一跳前缀。例如,IPv4 下一跃点前缀10.19.1.1将转换为 IPv6 下一中继站前缀:: ffff:10.19.1.1。

    注:

    必须有到 IPv4 映射的 IPv6 下一跳跃的活动路由才能导出 IPv6 BGP 前缀。

  • 必须在链路上配置 IPv6 连接。连接必须是 IPv6 通道或双栈配置。此示例中使用的是双堆栈。

  • 配置 IPv4 映射 IPv6 前缀时,请使用超过 96 位的掩码。

  • 如果要使用正常 IPv6 前缀,请配置静态路由。此示例使用静态路由。

图 1显示了示例拓扑。

图 1: 通过 IPv4 传输配置 IPv6 BGP 路由的拓扑通过 IPv4 传输配置 IPv6 BGP 路由的拓扑

配置

CLI 快速配置

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

设备 R1

设备 R2

设备 R3

配置设备 R1

分步过程

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

要配置设备 R1:

  1. 配置接口,包括 IPv4 地址和 IPv6 地址。

  2. 配置 EBGP。

  3. 启用 BGP 以传输 IPv4 单播和 IPv6 单播路由。.

    IPv4 单播路由默认情况下处于启用状态。此处显示的配置仅用于完整性。

  4. 配置路由策略。

  5. 配置某些静态路由。

  6. 配置自治系统(AS)编号。

成果

从配置模式, show interfaces输入、 show policy-optionsshow protocols、和show routing-options命令以确认您的配置。如果输出未显示预期的配置,请重复此示例中的说明以更正配置。

如果您完成了设备配置,请从commit配置模式进入。在设备 R2 和设备 R3 上重复配置,根据需要更改接口名称和 IP 地址。

针对

确认配置是否正常工作。

检查邻居状态

用途

请确保已启用 BGP 以承载 IPv6 单播路由。

行动

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

含义

输出中出现 inet6-unicast 的各种情况显示,BGP可承载 IPv6 单播路由。

检查路由表

用途

请确保设备 R2 在其 inet 6.0 路由表中有 BGP 路由。

行动

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

通过 BGP IPv6 会话公布 IPv4 路由概述

在 IPv6 网络中,BGP 通常通过 BGP 对等方之间的 IPv6 会话通告 IPv6 网络层可达性信息。在早期版本中,Junos OS 支持 inet6 单播、inet6 多播或 inet6 标记的单址广播地址系列的交换。此功能允许交换所有 BGP 地址族。在其核心具有 IPv6 的双栈环境中。此功能使 BGP 能够通过 IPv6 BGP 会话向 ipv4 单播可访问性播发并获得下一个跃点。

此功能仅适用于仅在两个端点上配置 IPv4 的 BGP IPv6 会话。local-ipv4-address可为 IBGP 或多跳跃 EBGP 会话的回送地址或任何 ipv4 地址。对于不属于 BGP 联盟的单跳外部 BGP 扬声器,如果配置的本地 IPv4 地址未直接连接,BGP 会话将关闭并保持空闲,并会生成一个错误,显示在show bgp neighbor命令输出中.

要启用通过 IPv6 会话公布的 IPv4 路由, local-ipv4-address请按如下方式进行配置:

注:

您不能为 inet6 单播、inet6 多播或 inet6 标记的单播地址系列配置此功能,因为 BGP 已经能够通过 IPv6 BGP 会话公布这些地址系列。

仅当local-ipv4-address BGP 使用自下一跳跃通告路由时,才使用配置的。当 IBGP 通告从 EBGP 对等方获知的路由或路由反射器通告 BGP 路由到其客户端时,BGP 不会更改路由下一local-ipv4-address跳跃、忽略配置并使用原始 IPv4 下一跳跃。

示例:通过 IPv6 BGP 会话公布 IPv4 路由

此示例显示如何通过 IPv6 通告 IPv4 路由 BGP 会话。在其核心具有 IPv6 的双堆栈环境中,需要访问远程 IPv4 主机。因此,BGP 使用 IPv6 源和目标地址通过 IPv4 路由的下一跃点向 BGP 会话 BGP 对等方公布。此功能使 BGP 能够通过 IPv6 上的 IPv4 下一跃点将 IPv4 单播可访问性播发 BGP 会话。

要求

此示例使用以下硬件和软件组件:

  • 具有双堆栈功能的三个路由器

  • 在所有设备上运行 Junos OS Release 16.1 或更高版本

在通过 IPv6 BGP 会话启用 IPv4 通告之前,请务必:

  1. 配置设备接口。

  2. 配置所有设备上的双堆栈。

概述

从版本16.1 开始,Junos OS 允许 BGP 通过 IPv6 BGP 会话公布 IPv4 单播可访问性和 IPv4 下一跳跃。在之前的 Junos OS 版本中,BGP 只能通告基于 IPv6 BGP 会话的 inet6 单播、inet6 多播和 inet6 标记的单播地址族。此功能允许 BGP 通过 IPv6 会话交换所有 BGP 地址系列。您可以启用 BGP 以使用 IPv4 路由向 IPv6 会话 BGP 对等方通告 IPv4 路径。仅当local-ipv4-address BGP 使用自下一跳跃通告路由时,才使用配置的。

注:

您不能为 inet6 单播、inet6 多播或 inet6 标记的单播地址系列配置此功能,因为 BGP 已经能够通过 IPv6 BGP 会话公布这些地址系列。

拓扑

图 2 中,在路由器 R1 和 R2 BGP运行 IPv6 外部路由会话。在路由器 R2 和路由器 R3 之间建立 IPv6 IBGP 会话。将 IPv4 静态路由重新分配至 R1 上的 BGP。要通过 IPv6 BGP 会话重新分配 IPv4 路由,必须在[edit protocols bgp address family]层次结构级别的所有路由器上启用新功能。

图 2: 通过 IPv6 BGP 会话公布 IPv4 路由通过 IPv6 BGP 会话公布 IPv4 路由

配置

CLI 快速配置

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

路由器 R1

路由器 R2

路由器 R3

配置路由器 R1

分步过程

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

要配置路由器 R1:

注:

修改相应接口名称、地址和其他参数之后,对其他路由器重复此过程。

  1. 使用 IPv4 和 IPv6 地址配置接口。

  2. 配置环回地址。

  3. 配置需要通告的 IPv4 静态路由。

  4. 为 BGP 主机配置自治系统。

  5. 在外部边缘路由器上配置 EBGP。

  6. 启用此功能可通过 BGP IPv6 会话公布 IPv4 adddress 140.1.1.1。

  7. 定义策略 p1 以接受所有静态路由。

  8. 在 EBGP group EBGP-v6 上应用策略 p1。

成果

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

如果您完成了设备配置,请提交配置。

针对

确认配置是否正常工作。

验证 BGP 会话是否正在运行

用途

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

行动

在操作模式下,在路由器 show bgp summary R1 上运行 命令。

含义

BGP 会话已启动并正在运行,并已建立 BGP 对等关系。

验证 IPv4 地址是否已通告

用途

验证配置的 IPv4 地址是否正由路由器 R1 通告至已配置 BGP 邻居。

行动

在操作模式下,在路由器 show route advertising-protocol bgp ::150.1.1.2 R1 上运行 命令。

含义

IPv4 静态路由正通告到 BGP 邻居路由器 r 2。

验证 BGP 邻居路由器 R2 是否接收公布的 IPv4 地址

用途

验证路由器 R2 是否收到路由器 R1 向 IPv6 上 BGP 邻居通告的 IPv4 地址。

行动
含义

路由器 R2 的路由表中存在静态 IPv4 路由,表示它从路由器 R1 接收播发的 IPv4 路由。

了解使用 IPv6 下一跃点将 IPv4 路由的再分配到 BGP

在主要传输 IPv6 流量的网络中,需要在必要时路由 IPv4 路由。例如,具有仅 IPv6 网络的互联网服务提供商,但仍具有路由 IPv4 流量的客户。在这种情况下,必须满足此类客户的需要,并通过 IPv6 网络转发 IPv4 信息流。如 RFC 5549 中所述,使用 IPv6 下一跃点 IPv4 流量广告 IPv4 网络层 可达性信息从客户现场设备 (CPE) 设备到 IPv4-over-IPv6 网关建立隧道。这些网关通过任意广播地址公布到 CPE 设备。然后,网关设备将为远程 CPE 设备创建动态 IPv4 IPv6 隧道,并公布 IPv4 聚合路由以实现信息流。

注:

动态 IPv4 IPv6 隧道功能不支持 Junos OS Release 17.3 R1 中的统一 ISSU。

具有可编程接口的路由反射器(Rr)通过 IBGP 连接到网关路由器,并使用 IPv6 地址作为下一跃点的主机路由。这些 Rr 通告 IPv4/32 地址,将通道信息注入到网络中。网关路由器将动态 IPv4 IPv6 隧道创建至远程客户提供商边缘。网关路由器还通告 IPv4 聚合路由以实现信息流。然后,RR 通告到 ISP 的隧道源路由。当 RR 删除隧道路由时,BGP 也会提取路由,导致隧道断开,并且 CPE 无法到达。卸下所有聚合路由参与者路由时,网关路由器还将收回 IPv4 聚合路由和 IPv6 通道源路由。当锚点数据包转发引擎线卡关闭时,网关路由器将发送路由撤消,以便将信息流重定向至其他网关路由器。

引入以下扩展以使用 IPv6 下一跳跃支持 IPv4 路由:

BGP 下一跳跃编码

BGP 使用下一跳编码功能进行扩展,用于使用 IPv6 下一跃点发送 IPv4 路由。如果此功能在远程对等方上不可用,则 BGP 基于此编码功能对对等方进行分组,并从协商的网络层可访问性信息(NLRI)列表中删除不带编码功能的 BGP 系列。Junos OS 仅允许一个解析表,如 inet。要允许 IPv4 BGP 具有 IPv6 的路由下一跃点 BGP 创建新的解析树。此功能允许 Junos OS 路由表具有多个解析树。

除了 RFC 5549 之外,使用 IPv6 下一跳广告 IPv4 网络层 可达性信息 是 RFC 5512 中指定的新封装社区,还引入了 BGP 封装 后续地址族标识符 (SAFI) 和 BGP 隧道封装属性,以确定下一跃点地址的地址族。封装社区指示入口节点需要创建的隧道类型。当 BGP 通过 IPv6 下一跃点地址和 V4oV6 封装社区接收 IPv4 路由时,BGP 将创建 IPv4 IPv6 动态隧道。当 BGP 在没有封装社区的情况下收到路由时,BGP 路由在不创建 V4oV6 通道的情况下解决。

dynamic-tunnel-attributes dyan-attribute层次结构级别[edit policy-statement policy name term then]提供新的策略操作以支持新的扩展封装。

通道本地化

通过通道本地化增强动态通道基础架构,以支持大量隧道。在锚定失败时,需要通过通道本地化来提供处理信息流的弹性。一个或多个机箱相互备份,并让路由协议进程(rpd)将流量从故障点移至备份机箱。机箱仅将这些聚合前缀(而非单个回传地址)公布到网络中。

通道处理

IPv6 隧道上的 IPv4 使用动态隧道基础架构以及通道定位来支持所需的机箱大规模扩展。隧道状态已本地化为数据包转发引擎,其他数据包转发引擎可将流量定位到通道锚点。

通道入口

通道入口或通道封装向客户站点转发网络流量。当流量进入机箱的数据包转发引擎上有通道状态时,路由协议进程(rpd)将使用以下过程重新分配 IPv6 隧道上的 IPv4 路由:
图 3: 当通道状态在同一 PFE 上可用时的通道入口处理当通道状态在同一 PFE 上可用时的通道入口处理
图 4: 通道状态处于不同 PFE 时的通道入口处理通道状态处于不同 PFE 时的通道入口处理
  1. 封装 IPv6 标头内的 IPv4 流量。

    在封装之前执行最大传输单位(MTU)强制。如果封装的数据包大小超过隧道MTU未设置 IPv4 数据包,则数据包将分片并封装这些 DF-bit 分片。

  2. 在内部数据包标头上使用基于散列的流量负载平衡。

  3. 将信息流转发至目标 IPv6 地址。IPv6 地址取自 IPv6 标头。

通道出口

通道出口将信息流从客户本地设备转发至网络端。
图 5: 当通道状态在同一 PFE 上可用时通道出口处理当通道状态在同一 PFE 上可用时通道出口处理
图 6: 当远程 PFE 上的通道状态可用时通道出口处理当远程 PFE 上的通道状态可用时通道出口处理
  1. Decapsulates IPv6 数据包内存在的 IPv4 数据包。

  2. 执行反欺骗检查,确保 IPv6、IPv4 对与用于设置隧道的信息相匹配。

  3. 从解封数据包的 IPv4 标头中查找 IPv4 目标地址,将数据包转发至指定的 IPv4 地址。

通道负载平衡和锚定数据包转发引擎故障处理

故障数据包转发引擎处理,以避免对固定在路由上的隧道信息流进行空路由数据包转发引擎。通道本地化涉及使用 BGP 通告来在全球范围内修复故障。通道流量从故障点转向其他包含相同通道状态的备份机箱。对于流量负载平衡,机箱配置为为每个前缀集通告不同的多个退出鉴别器(MED-V)值,以便只有一个通道第四个通道的信息流经过每个机箱。CPE 信息流也以类似的方式处理,方法是在每个机箱上配置相同的一组任意广播地址,并仅控制每个机箱的一条流量。

定位数据包转发引擎是执行所有通道处理的单个实体。锚数据包转发引擎选择是静态调配,绑定到数据包转发引擎物理接口。当其中一个数据包转发引擎关闭时,守护进程会将所有数据包转发引擎都标记在线卡上,并将此信息传递给路由协议进程路由协议进程和其他守护程序。路由协议进程将为锚定在失败数据包转发引擎上的前缀和分配给关闭的数据包转发引擎的 IPv6 地址发出 BGP 撤销。这些通告会将信息流重新路由到其他备份机箱。当故障数据包转发引擎再次开机时,机箱会标记数据包转发引擎 as up并更新路由协议进程。路由协议进程触发对其对等方的 BGP 更新,通道定位到特定数据包转发引擎现在可用于路由流量。对于大规模通道配置,此过程可能需要几分钟时间。因此,该Ack机制内置于系统中,可在将信息流切换回原始机箱时确保流量损耗降至最低。

通道回传流统计数据

动态隧道基础架构使用数据包转发引擎中的回传流在封装之后循环数据包。由于此回传流的带宽受到限制,因此需要监控隧道回传流的性能。

要监控回传流的统计信息,请使用显示聚合回show pfe statistics traffic detail送流统计信息(包括转发速率、丢弃数据包速率和字节速率)的操作命令。

配置 BGP 以将 IPv4 路由与 IPv6 下一跳跃地址重新发布

从 17.3 R1 开始,Junos OS 设备可以通过仅 IPv6 网络转发 IPv4 流量,这通常无法转发 IPv4 流量。如 RFC 5549 中所述,IPv4 流量通过 CPE 设备隧道传输到 IPv4 IPv6 网关。这些网关通过任意广播地址公布到 CPE 设备。然后,网关设备将为远程客户端设备创建动态 IPv4 IPv6 隧道,并公布 IPv4 聚合路由以实现信息流。使用可编程接口的路由反射器将通道信息注入到网络中。路由反射器通过 IBGP 连接到网关路由器,将主机路由的 IPv4 地址以 IPv6 地址播发为下一跳跃。

注:

动态 IPv4 IPv6 隧道功能不支持 Junos OS Release 17.3 R1 中的统一 ISSU。

开始配置 BGP 以使用 IPv6 下一中继站地址分配 IPv4 路由之前,请执行以下操作:

  1. 配置设备接口。

  2. 配置 OSPF 或任何其他 IGP 协议。

  3. 配置 MPLS 和 LDP。

  4. 配置 BGP。

要将 BGP 配置为使用 IPv6 下一中继站地址分配 IPv4 路由:

  1. 为有 IPv6 对等方的 BGP 组配置下一跳扩展的编码选项,以便通过 IPv6 会话路由 IPv4 地址族。
  2. 配置动态 IPv4 IPv6 隧道并定义其属性,以便通过仅 IPv6 网络转发 IPv4 流量。IPv4 流量通过从 CPE 设备传送到 IPv4 IPv6 网关。
  3. 配置隧道属性。

    例如, first_tunnel使用以下属性配置动态隧道:

  4. 定义一个策略,将配置的动态隧道属性配置文件与一个前缀列表或一个路由过滤器相关联。

    例如,定义dynamic_tunnel_policy策略,以仅将动态隧道first_tunnel属性关联至特定路由 2.2.2.2/32 的信息流标题。

  5. 导出定义的策略。

    例如,导出配置的 dynamic_tunnel_policy 策略。

启用2层 VPN 和 VPLS 信号

您可以启用BGP 2 层 VPN 和 VPLS NLRI 消息。

要启用 VPN 和 VPLS 信号,请包含family以下语句:

有关可在其中包含此语句的层次结构级别列表,请参阅本声明的语句摘要部分。

要配置最大前缀数,请包含以下prefix-limit语句:

有关可在其中包含此语句的层次结构级别列表,请参阅本声明的语句摘要部分。

设置最大前缀数时,当达到该编号时将记录一条消息。如果包含此teardown语句,当达到最大前缀数时,会话将被断开。如果指定一个百分比,则当前缀数量达到该百分比时将记录消息。会话被切断后,将在短时间内重新建立。包括idle-timeout语句以将会话停机一段指定的时间,或者永远不停。如果指定forever,将仅在使用clear bgp neighbor命令后重新建立会话。如果包含 语句并指定百分比,则当前缀数超过该百分比时,将丢弃多余 drop-excess <percentage> 路由。如果包含 hide-excess <percentage> 语句并指定百分比,则当前缀数超过该百分比时,多余路由将隐藏。如果该百分比已修改,则会自动重新评估路由。

了解信息流过滤 BGP 信息流路由

流路由是 IP 数据包的匹配条件聚合。流路由使用流规范网络层可达性信息 (NLRI) 消息通过网络传播,并安装在流路由表中 instance-name.inetflow.0 。只有满足特定匹配条件时,数据包才能流经信息流路由。

流路由和防火墙过滤器类似于,它们根据其组件过滤数据包并对匹配的数据包执行操作。流路由提供流量过滤和速率限制功能,非常类似于防火墙过滤器。此外,您可以在不同的自治系统之间传播流路由。

流路由通过 BGP 通过流量规范 NLRI 消息传播。您必须启用 BGP 才能传播这些 NLRIs。

从 Junos OS 版本15.1 开始,将进行更改以扩展对现有 inet 流和 inetvpn 流系列的不间断活动路由(NSR)支持,并针对每个草稿-ietf-idr---01 的 BGP flowspec 扩展路由验证。这两个新语句作为此增强功能的一部分引入。请参阅实施-第一次 as非安装

注:

从 Junos OS 版本16.1 开始,IPv6 支持扩展为 BGP 流规范,允许传播 IPv6 和 VPN IPv6 数据包的信息流规范规则。BGP 流量规格可自动协调流量过滤规则,以便在不间断活动路由(NSR)期间缓解分布式拒绝服务攻击。

从 Junos OS Release 16.1 R1 开始,BGP 流量规范支持流量标记extended-community过滤操作。对于 IPv4 流量,Junos OS 将经过 IPv4 数据包的 DiffServ 代码点(DSCP)位修改为扩展社区的相应值。对于 IPv6 数据包,Junos OS 会将传输 IPv6 数据包traffic class字段的前六位修改为扩展社区的相应值。

从 cRPD 版20.3R1开始,通过 BGP 流规范传播的流路由和监管规则 NLRI 将下载至 Linux 内核,通过 Linux Netfilter 框架cRPD环境。

匹配的流路由条件

指定在对流路由执行then语句中的操作之前数据包必须匹配的条件。from语句中的所有条件都必须匹配才能执行该操作。您指定匹配条件的顺序并不重要,因为数据包必须与术语中的所有条件匹配才能发生匹配。

要配置匹配条件,请将match语句包含在[edit routing-options flow]层次结构级别。

表 1介绍了流路由匹配条件。

表 1: 流路由匹配条件

匹配条件

Description

destination prefix prefix-offset number

IP 目标地址字段。

您可以使用只有配置为模式配置的增强型 MPC 的 Junos 设备上才可用的可选字段,以指定 Junos OS 开始匹配 prefix-offset IPv6 前缀之前必须跳过的 enhanced-ip 位数。

destination-port number

TCP 或用户数据报协议(UDP)目标端口字段。不能在同一术语portdestination-port同时指定和匹配条件。

为了代替数值,您可以指定以下文本同义词之一(端口号也列出):afsbgpbiffbootpcbootps (1483)、(179)、(512)、(68)、(67)、(514)、(2401)、(67)、(53)、(2105)、(2106)、(512)、(79)、(21)、(20)、(80), cmdcvspserverdhcpdomainekloginekshellexecfingerftpftp-datahttphttps (443)、(113)、(143)、(88)、(543)、(761)、(754)、(760)、(544)、(389)、(513)、(434)、(435)、(639)、(138) identimapkerberos-seckloginkpasswdkrb-propkrbupdatekshellldaploginmobileip-agentmobilip-mnmsdpnetbios-dgmnetbios-ns (138) 137)、(139)、(2049)、(119)、(518)、(123)、(110)、(1723)、(515)、(1813)、(1812)、(520)、(2108)、(25)(161), netbios-ssnnfsdnntpntalkntppop3pptpprinterradacctradiusriprkinitsmtpsnmpsnmptrap (162)、(444)、(1080)、(22)、(111)、(514)、(65)、(517)、(23)、(69)、(525)、(513)、(177)、(2103)或 snppsockssshsunrpcsyslogtacacs-dstalktelnettftptimedwhoxdmcpzephyr-cltzephyr-hm (2104)。

dscp number

差异化服务代码点(DSCP)。DiffServ 协议在 IP 标头中使用服务类型 (ToS) 字节。此字节最重大的六位形成 DSCP。

您可以在十六进制或十进制形式中指定 DSCP。

flow-label numeric-expression

匹配流标签值。此字段的值范围为0到1048575。

只有配置为模式配置的增强Junos MPC 的设备才支持此匹配 enhanced-ip 条件。IPv4 不支持此匹配条件。

fragment type

片段类型字段。关键字按与其关联的片段类型分组:

  • dont-fragment

    注:

    IPv6 不支持此选项。

  • first-fragment

  • is-fragment

  • last-fragment

  • not-a-fragment

只有为模式配置的增强Junos OS MPC 的设备才支持此匹配 enhanced-ip 条件。 。

icmp-code numbericmp6-code icmp6-code-value;

ICMP 代码字段。此值或关键字提供的信息比icmp-type 由于值的含义取决于关联的值, icmp-type 因此您必须与 icmp-type 一起指定 icmp-code

为了代替数值,您可以指定以下文本同义词之一(也列出了这些字段值)。关键字按与其关联的 ICMP 类型分组:

  • 参数-问题:ip-header-bad required-option-missing(0),(1)

  • redirect-for-hostredirect-for-networkredirect-for-tos-and-host (1)、(0)、(3)、(2) redirect-for-tos-and-net

  • 已超过时间:ttl-eq-zero-during-reassemblyttl-eq-zero-during-transit(1)、(0)

  • 到达communication-prohibited-by-filteringdestination-host-prohibiteddestination-host-unknowndestination-network-prohibiteddestination-network-unknown (13)、(10)、(7)、(9)、(6)、(4)、(14)、(1)、(12)、(0)、(11)、(3)、(15)、(2)、(8)、5) fragmentation-neededhost-precedence-violationhost-unreachablehost-unreachable-for-TOSnetwork-unreachablenetwork-unreachable-for-TOSport-unreachableprecedence-cutoff-in-effectprotocol-unreachablesource-host-isolatedsource-route-failed

icmp-type number icmp6-type icmp6-type-value

ICMP 数据包类型字段。通常,应将此匹配与protocol match 语句一起指定,以确定端口上使用的协议。

为了代替数值,您可以指定以下文本同义词之一(也列出了这些字段值):echo-replyecho-requestinfo-replyinfo-requestmask-request (0)、(8)、(16)、(15)、(17)、(18)、(12)、(5)、(9)、(10)、(4)、(11)、(13)、(14) mask-replyparameter-problemredirectrouter-advertisementrouter-solicitsource-quenchtime-exceededtimestamptimestamp-replyunreachable (3)。

packet-length number

总 IP 数据包长度。

port number

TCP 或 UDP 源或目标端口字段。不能在同一术语port中同时指定匹配destination-portsource-port和 or 匹配条件。

为替代数值,您可以指定下面destination-port列出的其中一个文本同义词。

protocol number

IP 协议字段。为了代替数值,您可以指定以下文本同义词之一(也列出了这些字段值):ah, egpespgreicmpigmp (8)、(50)、(47)、(1)、(2)、(4)、(41)、(89)、(103)、(46)、(6) ipipipv6ospfpimrsvptcpudp  (17)。

只有配置为模式配置的增强型 MPC Junos IPv6 才支持此匹配 enhanced-ip 条件。

source prefixprefix-offset number

IP 源地址字段。

您可以使用只有配置为模式配置的增强型 MPC 的 Junos 设备上才可用的可选字段,以指定 Junos OS 开始匹配 prefix-offset IPv6 前缀之前必须跳过的 enhanced-ip 位数。

source-port number

TCP 或 UDP 源端口字段。不能在同一port术语source-port中指定和匹配条件。

在 "" 下destination-port列出的其中一个文本同义词就是 "数字" 字段。

tcp-flag type

TCP 标头格式。

流路由操作

如果数据包符合您在流路由中配置的条件,则可以指定要执行的操作。要配置操作,请将then语句包含在[edit routing-options flow]层次结构级别。

表 2介绍流路由操作。

表 2: 流路由操作修饰符

操作或操作修改器

说明

行动

accept

接受数据包。这是默认设置。

discard

无需发送互联网控制消息协议(ICMP)消息就能以静默方式丢弃数据包。

community

使用指定社区替换路由中的任何社区。

标记

为与此流量匹配的流量设置 DSCP 值。指定从0到63的一个值。只有为模式Junos增强型 MPC 的设备上才支持 enhanced-ip 此操作。

next term

继续评估的下一个匹配条件。

routing-instance extended-community

指定数据包转发到的路由实例。

rate-limit bits-per-second

限制流路由的带宽。以位/秒(bps)为单位表示限制。从 Junos OS Release 16.1 R 4 开始,速率限制范围为 [0 到 1000000000000]。

sample

在流路由上采样流量。

验证流路由

只有使用验证过程进行验证后,Junos OS 才会将流路由安装到流路由表中。路由引擎在将路由安装到流路由表之前进行验证。

使用 BGP 网络层可访问性信息(NLRI)消息接收的流路由在安装到流主实例路由表instance.inetflow.0之前先进行验证。验证过程在 draft-ietf-idr-flow-spec-09.txt 中 进行了介绍,即流规范规则传播 。您可以使用 BGP NLRI 消息跳过流路由的验证过程,并使用自己的特定导入策略。

要跟踪验证操作,请将validation语句包含在[edit routing-options flow]层次结构级别。

支持 BGP 流规范算法7版和更高版本

默认情况下,Junos OS 使用 BGP 流规范草稿版本6中定义的术语顺序算法。在 Junos OS 10.0 及更高版本中,您可以配置路由器,以符合在 BGP 流规范的第 7 版中首先定义的术语排序算法,并通过 RFC 5575"流规范路由传播 "支持。

最佳做法:

我们建议您将 Junos OS 配置为使用术语顺序算法(在 BGP 流规格草案的版本7中首次定义)。我们还建议您将 Junos OS 配置为在路由器上配置的所有路由实例上使用相同的术语顺序算法。

要将 BGP 配置为使用在 Internet 草稿版本7中首次定义的流规范算法,请将standard语句包含在[edit routing-options flow term-order]层次结构级别。

要恢复为使用版本6中定义的术语顺序算法,请将legacy语句包含在[edit routing-options flow term-order]层次结构级别。

注:

配置的条款顺序仅具有本地意义。也就是说,术语顺序不会与发送到远程 BGP 对等方的流路由进行传播,其条款顺序完全由自己的术语顺序配置确定。因此,当您不了解远程对等方的术语顺序next term配置时,在配置与订单相关的操作时应小心。本地next term可能与远程对等next term方上配置的不同。

注:

在 Junos OS 演变时next term ,不能显示为操作的最后一项。指定为操作但next term不支持任何未配置任何匹配条件的过滤器术语。

从 Junos OS 16.1 版开始,您可以选择对特定接口上收到的流量 flowspec 应用过滤器。在过滤器的开头添加一个新术语,可接受在这些特定接口上 flowspec 收到的任何数据包。新术语是一个变量,用于创建作为流规范过滤器一部分附加在转发表过滤器上的术语的排除列表。

要排除过滤器应用于特定接口上接收的信息流,必须先在此类接口上包括家族过滤器组语句,然后在 层次结构级别包含 语句,然后将过滤器与接口组连接。 flowspecgroup-idinetgroup-id[edit interfaces]flowspecflow interface-group group-id exclude[edit routing-options] 每个路由实例的group-idset routing-options flow interface-group group-id语句只能配置一个。

示例:支持 BGP 传输流量规范路由

此示例演示如何允许 BGP 传输流量规范网络层可达性信息(NLRI)消息。

要求

开始之前:

  • 配置设备接口。

  • 配置内部网关协议(IGP)。

  • 配置 BGP。

  • 将路由策略(例如直接路由或 IGP 路由)从路由表中配置为将路由导出到 BGP 中。

概述

将防火墙过滤器信息作为 BGP 的一部分传播使您能够在自治系统上动态传播防火墙过滤器,以抵御拒绝服务(DOS)攻击。流路由封装在流量说明 NLRI 中,通过网络或虚拟专用网络(Vpn)传播,共享类似过滤器的信息。流路由是匹配条件和数据包的结果操作的聚合。它们为您提供与防火墙过滤器非常类似的流量过滤和速率限制功能。默认实例、VPN 路由和转发(VRF)实例和虚拟路由器实例支持单播流路由。

导入和导出策略可应用于系列inet flow或家庭inet-vpn flow NLRI,从而影响接受或通告的流路由,类似于将导入和导出策略应用于其他 BGP 系列的方式。唯一的区别在于流策略配置必须包含 "从rib inetflow.0 " 语句。此语句会使策略应用于流路由。如果策略仅包含then rejectthen accept语句,也没有from语句,则会出现此规则的例外情况。然后,该策略将影响所有路由,包括 IP 单播和 IP 流。

流路由过滤器首先以静态方式在路由器上配置,并采用一组匹配标准,然后是要采取的措施。然后,除了family inet unicastfamily inet flow (或family inet-vpn flow)在此 BGP 启用的设备及其对等方之间配置。

默认情况下,静态配置的流路由(防火墙过滤器)通告给支持family inet flowfamily inet-vpn flow NLRI 的其他启用 BGP 的设备。

接收 BGP 的设备在将防火墙过滤器安装到流路由表instance-name.inetflow.0之前执行验证过程。RFC 5575" 流规范规则传播 "中 介绍了验证过程

如果接收 BGP 的设备通过了以下条件,则会接受流路由:

  • 流路由的发起方与嵌入路由中的目标地址的最佳匹配单播路由的发起方匹配。

  • 与流路由的目标地址(其活动路由已从不同的下一跳跃自主系统接收)相比,没有更多特定的单播路由。

第一个标准可确保过滤器由单播转发中用于流路由中嵌入的目标地址的下一中继站来通告。例如,如果流路由被指定为10.1.1.1,proto = 6,端口 = 80,则接收 BGP 的设备将选择单播路由表中与目标前缀 10.1.1.1/32 匹配的更具体的单播路由。在包含 10.1/16 和 10.1.1/24 的单播路由表上,后者被选择为要进行比较的单播路由。仅考虑活动单播路由条目。这遵循了在最佳单播路由的原始发件人公布的情况下流路由有效的概念。

第二个标准解决给定地址块分配给不同实体的情况。只有当路由到不同的下一中继站自治系统的更多特定路由时,才会接受解析为最佳匹配单播路由的流,而这是聚合路由。

您可以使用 BGP NLRI 消息跳过流路由的验证过程,并使用自己的特定导入策略。BGP 携带流量规格 NLRI 消息时, no-validate[edit protocols bgp group group-name family inet flow]层次结构级别的语句会在策略接受数据包后忽略信息流路由验证过程。您可以将导入策略配置为与目标地址和路径属性(如社区、下一中继站和 AS 路径)匹配。如果数据包符合您在流路由中配置的条件,则可以指定要执行的操作。要配置操作,请将语句包含在[edit routing-options flow]层次结构级别。流规范 NLRI 类型包括 RFC 5575 中定义的组件,如目标前缀、源前缀、协议和端口。导入策略可在流规范 NLRI 中使用路径属性和目标地址过滤入站路由。导入策略不能过滤 RFC 5575 中的任何其他组件。

流规范定义了处理 IPv4 单播和 VPN 单播筛选的最常见应用程序所需的协议扩展。可以重复使用相同的机制,并添加新的匹配标准,以满足其他 BGP 地址系列(例如,IPv6 单播)的类似筛选的要求。

inetflow.0表中安装流路由后,它也会添加到内核中的防火墙过滤器列表中。

Vpn 中仅支持在路由器、流量规格 NLRI 消息。VPN 将 NLRI 中的路由目标扩展社区与导入策略进行比较。如果存在匹配项,VPN 可以开始使用流路由来过滤和对数据包流量进行速率限制。收到的流路由安装在流路由表instance-name.inetflow.0中。流路由也可在整个 VPN 网络中传播并在 Vpn 之间共享。要启用多协议 BGP (MP BGP)以传送inet-vpn地址族的流量规格 NLRI,请将flow语句包含在[edit protocols bgp group group-name family inet-vpn]层次结构级别。仅支持默认实例的 VPN 流路由。为具有族inet-vpn的 vpn 配置的流路由不会自动验证, no-validate因此[edit protocols bgp group group-name family inet-vpn]层次结构级别不支持该语句。如果在单个 AS 中的设备之间本地配置流路由,则不需要验证。

导入和导出策略可应用于family inet flowfamily inet-vpn flow NLRI,影响接受或播发的流路由,类似于将导入和导出策略应用于其他 BGP 系列的方式。唯一的区别在于流策略配置必须包括from rib inetflow.0语句。此语句会使策略应用于流路由。如果策略仅包含then rejectthen accept语句,也没有from语句,则会出现此规则的例外情况。然后,该策略将影响所有路由,包括 IP 单播和 IP 流。

此示例说明如何配置以下导出策略:

  • 允许通告路由过滤器所指定的信息流路由的策略。仅通告 10.13/16 块覆盖的流路由。此策略不影响单播路由。

  • 允许通告到邻接方的所有单播和信息流路由的策略。

  • 一种策略,不允许通告到邻居的所有路由(单播或信息流)。

拓扑

配置

配置静态信息流路由

CLI 快速配置

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

分步过程

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

要配置 BGP 对等体会话:

  1. 配置匹配条件。

  2. 配置操作。

  3. 推荐对于流规范算法,配置基于标准的术语顺序。

    根据 flowspec RFC draft 版本6中指定的默认术语排序算法,具有较少特定匹配条件的术语将始终在具有更具体匹配条件的术语之前进行评估。这会导致具有更具体匹配条件的术语永远不会得到评估。RFC 5575 的版本7对算法进行了修订,以便在不太具体的匹配条件之前评估更具体的匹配条件。为了实现向后兼容,即使更新的算法更有意义,默认行为也不会在 Junos OS 中改变。要使用较新的算法,请term-order standard在配置中包含语句。此语句在 Junos OS 版本10.0 及更高版本中受支持。

成果

从配置模式,输入show routing-options命令以确认您的配置。如果输出未显示预期的配置,请重复此示例中的说明以更正配置。

如果您完成了设备配置,请从commit配置模式进入。

路由过滤器指定的广告流路由

CLI 快速配置

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

分步过程

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

要配置 BGP 对等体会话:

  1. 配置 BGP 组。

  2. 配置流策略。

  3. 配置本地自治系统(AS)编号。

成果

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

如果您完成了设备配置,请从commit配置模式进入。

公布所有单播和信息流路由

CLI 快速配置

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

分步过程

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

要配置 BGP 对等体会话:

  1. 配置 BGP 组。

  2. 配置流策略。

  3. 配置本地自治系统(AS)编号。

成果

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

如果您完成了设备配置,请从commit配置模式进入。

不公布单播或流路由

CLI 快速配置

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

分步过程

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

要配置 BGP 对等体会话:

  1. 配置 BGP 组。

  2. 配置流策略。

  3. 配置本地自治系统(AS)编号。

成果

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

如果您完成了设备配置,请从commit配置模式进入。

限制路由表中安装的流路由数量

CLI 快速配置

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

分步过程

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

注:

路由限制的应用可能会导致不可预测的动态路由协议行为。例如,达到限制后,路由将被拒绝,BGP 在路由数量低于限制时,不一定尝试重新安装被拒绝的路由。要解决此问题,可能需要清除 BGP 会话。

要限制流量路由:

  1. 为表中inetflow.0安装的前缀数设置上限。

  2. 将阈值设置为 50%,安装500路由时,系统日志中会记录警告。

成果

从配置模式,输入show routing-options命令以确认您的配置。如果输出未显示预期的配置,请重复此示例中的说明以更正配置。

如果您完成了设备配置,请从commit配置模式进入。

限制 BGP 对等会话上收到的前缀数

CLI 快速配置

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

注:

您可以一次包含 teardown <percentage> 一个 drop-excess <percentage> 、 或 hide-excess<percentage> 语句选项。

分步过程

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

为特定邻接方配置前缀限制可提供更具预测性的控制,使其可以对多个流路由进行通告。

要限制前缀数量:

  1. 设置10.12.99.2 来自相邻节点的 1000 BGP 路由限制。

  2. 将邻接方会话或前缀配置为在会话或前缀达到其限制时执行 、 或 teardown <percentage>drop-excess <percentage>hide-excess<percentage> 语句选项。

    如果指定 语句并指定百分比,则当前缀数达到该百分比时 teardown <percentage> 将记录消息。会话关闭后,会话将在短时间内重建,除非您将该idle-timeout语句包括在内。

    如果指定 语句并指定百分比,则当前缀数超过该百 drop-excess <percentage> 分比时,将丢弃多余路由

    如果指定 语句并指定百分比,则当前缀数超过该百分比时, hide-excess <percentage> 多余路由将隐藏。

成果

从配置模式,输入show protocols命令以确认您的配置。如果输出未显示预期的配置,请重复此示例中的说明以更正配置。

如果您完成了设备配置,请从commit配置模式进入。

针对

确认配置是否正常工作。

验证 NLRI

用途

查看为邻域启用的 NLRI。

行动

从操作模式运行show bgp neighbor 10.12.99.5命令。inet-flow在输出中查找。

验证路由

用途

查看流路由。示例输出显示从 BGP 和静态配置的信息流路由获知的流路由。

对于本地配置的流路由(在[edit routing-options flow]层次结构级别上配置),路由由流协议安装。因此,您可以通过指定表来显示流路由,如中或show route table inetflow.0show route table instance-name.inetflow.0instance-name是路由实例名称。或者,您可以通过运行show route protocol flow命令,在多个路由实例上显示所有本地配置的流路由。

如果流路由未本地配置,但是从路由器的 BGP 对等体接收,则此流路由在路由表中安装时BGP。您可通过指定表或运行show route protocol bgp来显示流路由,其中显示所有 BGP 路由(流和非信息流)。

行动

从操作模式运行show route table inetflow.0命令。

含义

流路由表示防火墙过滤器的术语。配置流路由时,将指定匹配条件和操作。在 match 属性中,您可以匹配源地址、目标地址和其他限定符,例如端口和协议。对于包含多个匹配条件的单个流路由,所有匹配条件都封装在路由的前缀字段中。在流路由上show route发出命令时,路由的前缀字段显示为所有匹配条件。10.12.44.1,*表示匹配条件为match destination 10.12.44.1/32。如果输出中的前缀为*,10.12.44.1,则表示匹配条件为。 match source 10.12.44.1/32 如果匹配条件同时包含源和目标,星号将被替换为地址。

术语顺序编号指示在防火墙过滤器中评估的术语(流路由)的顺序。该show route extensive命令显示每个术语的操作(路由)。

验证流量验证

用途

显示流路由信息。

行动

从操作模式运行show route flow validation detail命令。

验证防火墙过滤器

用途

显示安装在内核中的防火墙过滤器。

行动

从操作模式运行show firewall命令。

在超过允许的流量路由数量时验证系统日志

用途

如果对已安装的流路由数量进行限制,请参阅,如中限制路由表中安装的流路由数量所述,在达到阈值时查看系统日志消息。

行动

从操作模式运行show log <message>命令。

在超过 BGP 对等会话上收到的前缀数量时验证系统日志

用途

如果对已安装的流路由数量进行限制,请参阅,如中限制 BGP 对等会话上收到的前缀数所述,在达到阈值时查看系统日志消息。

行动

从操作模式运行show log message命令。

如果指定 语句 teradown <percentage> 选项:

如果指定 语句 drop-excess <percentage> 选项:

如果指定 语句 hide-excess <percentage> 选项:

示例:配置 BGP 以传送 IPv6 流规范路由

此示例显示如何为流量筛选配置 IPv6 流规范。BGP 流规范可用于实现流量过滤规则的域间和域间协调,以便缓解拒绝服务攻击。

要求

此示例使用以下硬件和软件组件:

  • 两个 MX 系列路由器

  • 16.1 或更高版本 Junos OS

在您启用 BGP 以传送 IPv6 流规范路由之前:

  1. 在设备接口上配置 IP 地址。

  2. 配置 BGP。

  3. 配置将路由表中的路由(例如静态路由、直接路由或 IGP 路由)导出到 BGP 的路由策略。

概述

流规范提供抵御拒绝服务攻击的保护,并限制消耗带宽并将其停止在源附近的坏流量。在早期的 Junos OS 版本中,流规范规则通过 BGP 作为网络层可访问性信息传播到了 IPv4。从 Junos OS 版本16.1 开始,IPv6 系列支持流规范功能,并允许传播 IPv6 和 IPv6 VPN 的信息流规范规则。

拓扑

图 7显示了示例拓扑。路由器 R1 和路由器 R2 属于不同的自治系统。路由器 R2 上配置了 IPv6 流规范。所有传入流量都根据流规范条件进行过滤,并且根据指定的操作以不同的方式处理流量。在此示例中,所有流量方向为 abcd::11:11:11: 10/128,匹配流规范条件,将被丢弃;然而,流量的目标为 abcd::11:11:11: 30/128 和匹配流规范条件被接受。

图 7: 配置 BGP 以携带 IPv6 流路由配置 BGP 以携带 IPv6 流路由

配置

CLI 快速配置

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

路由器 R1

路由器 R2

配置路由器 R2

分步过程

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

要配置路由器 R2:

注:

在修改了相应的接口名称、地址和其他参数之后,为路由器 R1 重复此过程。

  1. 使用 IPv6 地址配置接口。

  2. 配置 IPv6 回传地址。

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

  4. 在路由器 R1 和路由器 R2 之间配置 EBGP 对等会话。

  5. 配置静态路由和下一跳跃。这样,路由就会添加到路由表中,以验证此示例中的功能。

  6. 指定流规范条件。

  7. 配置 discard 操作以丢弃符合指定匹配条件的数据包。

  8. 指定流规范条件。

  9. 配置 accept 操作以接受符合指定匹配条件的数据包

  10. 定义允许 BGP 接受静态路由的策略。

成果

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

针对

确认配置是否正常工作。

验证 inet6flow 表中是否存在 IPv6 流规范路由

用途

在路由器 R1 和 r inet6flow 2 表中显示路由,并验证 BGP 已获知流路由。

行动

在操作模式下,在路由器 show route table inet6flow.0 extensive R1 上运行 命令。

在操作模式下,在路由器 show route table inet6flow.0 extensive R2 上运行 命令。

含义

路由 abcd::11:11:11: 10/128 和 abcd::11:11:11: 30/128 在inet6flow表中确认 BGP 已获知流路由。

验证 BGP 汇总信息

用途

验证 BGP 配置是否正确。

行动

在操作模式下,在路由器 show bgp summary R1 和 R2 上运行 命令。

含义

验证inet6.0表中是否包含 BGP 邻居地址,以及与其 BGP 邻居建立的对等会话。

验证流量验证

用途

显示流路由信息。

行动

在操作模式下,在路由器 show route flow validation R1 上运行 命令。

含义

输出将显示inet6.0表中的流路由。

验证 IPv6 路由的流规范

用途

显示根据指定流规范路由丢弃和接受的数据包数量。

行动

在操作模式下,在路由器 show firewall filter_flowspec_default_inet6_ R2 上运行 命令。

含义

输出表明,发往 abcd 的数据包::11:11:11: 10/128 被丢弃,路由 abcd 的88826数据包已被接受::11:11:11:11: 30/128。

配置 BGP 流量规范操作重定向至 IP 以过滤 DDoS 流量

从 Junos OS 18.4R1 版开始,BGP 流规范(如 BGP Flow-Spec Internet 草案 draft-ietf-idr-flowspec-redirect-ip-02.txt 中所述,支持重定向至 IP 操作。重定向至 IP 操作使用扩展 BGP 社区提供服务提供商网络 DDoS 缓解的流量过滤选项。传统流规范重定向至 IP 使用 BGP nexthop 属性。默认情况下,Junos OS 公布使用扩展社区的 IP 流量规范操作。此功能是支持虚拟服务控制网关(vSCG)中的服务链所必需的。重定向至 IP 操作允许将匹配的流规范流量转移至可连接到过滤设备的可以进行全局到达的地址,从而过滤 DDoS 流量并将清洁流量发送至出口设备。

开始将信息流重定向至 BGP 流量规范路由的 IP 之前,请执行以下操作:

  1. 配置设备接口。

  2. 配置 OSPF 或任何其他 IGP 协议。

  3. 配置 MPLS 和 LDP。

  4. 配置 BGP。

使用 BGP 扩展社区配置重定向到 IP 功能。

  1. 根据 BGP 流规格互联网草案 draft-ietf-idr-flowspec-redirect-ip-02.txt 中指定的静态 IPv4 流规范路由配置 IP 操作重定向至 IP 操作,重定向至 IP 操作

    Junos OS 通告使用默认情况下的扩展社区重定向至 ip 流规范操作。入口设备检测到并将 DDoS 信息流发送到指定的 IP 地址。

    例如,将 DDoS 流量重定向到 IPv4 地址10.1.1.1。

  2. 配置静态 IPv6 流规范路由的重定向至 IP 操作。

    例如,将 DDoS 流量重定向到 IPv6 地址1002: db8::

  3. 定义策略以过滤来自特定 BGP 社区的流量。

    例如,定义 policy p1 以过滤来自 BGP 社区 redirip 的流量。

  4. 定义策略以设置、添加或删除 BGP 社区并指定扩展的社区。

    例如,定义策略 p1 以设置、添加或删除社区 reidirip 和扩展社区,以便将信息流重定向至 IP 地址10.1.1.1。

  5. 将 BGP 配置为使用 VRF inet 表来解析 VRF 流规范路由包含层次结构级别的语句。

使用 nexthop 属性配置传统流规范重定向到 IP 功能。

注:

您不能将策略配置为使用 BGP 扩展社区将流量重定向到 IP 地址,并将旧重定向到下一跃点 IP 地址。

  1. 将传统流规范重定向至互联网草案 draft-ietf-idr-flowspec-redirect-ip-00.txt 中指定的 IP,BGP 流量规格扩展社区 用于流量重定向至 IP 下一跃点包括层次结构级别。

  2. 定义策略以匹配下一跳跃属性。

    例如,定义策略 p1 以将信息流重定向到下一跃点 IP 地址10.1.1.1。

  3. 定义策略以使用旧版流规范进行设置、添加或删除 BGP 社区下一跳跃属性重定向至 IP 操作。

    例如,定义策略 p1 并设置、添加或删除 BGP 社区 redirnh 将 DDoS 流量重定向到下一跃点 IP 地址10.1.1.1。

发布历史记录表
版本
说明
20.3R1
从 cRPD 版20.3R1开始,通过 BGP 流规范传播的流路由和监管规则 NLRI 将下载至 Linux 内核,通过 Linux Netfilter 框架cRPD环境。
16.1R4
从 Junos OS Release 16.1 R 4 开始,速率限制范围为 [0 到 1000000000000]。
16.1
从 Junos OS 版本16.1 开始,IPv6 支持扩展为 BGP 流规范,允许传播 IPv6 和 VPN IPv6 数据包的信息流规范规则。
16.1
从 Junos OS Release 16.1 R1 开始,BGP 流量规范支持流量标记extended-community过滤操作。
16.1
从 Junos OS 16.1 版开始,您可以选择对特定接口上收到的流量 flowspec 应用过滤器。
15.1
从 Junos OS 版本15.1 开始,将进行更改以扩展对现有 inet 流和 inetvpn 流系列的不间断活动路由(NSR)支持,并针对每个草稿-ietf-idr---01 的 BGP flowspec 扩展路由验证。