Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

BGP 的 TCP 接入限制

了解与 TCP BGP 的安全选项

在路由协议之间,BGP 在使用 TCP 作为其传输协议时是唯一的。BGP 对等方可通过在路由设备之间手动配置来在端口179上创建 TCP 会话来建立。已启用 BGP 的设备会定期发送激活消息以保持连接。

随着时间的推移,BGP 已成为互联网上的主要域间路由协议。但是,它具有有限的稳定性和安全性保证。配置 BGP 的安全选项必须平衡合适的安全措施和可接受的成本。没有一种方法与其他方法相优于。每个网络管理员都必须配置满足所用网络需求的安全措施。

有关与将 TCP 用作传输BGP相关的安全问题的详细信息,请参阅 RFC 4272, BGP安全漏洞分析

示例:配置过滤器以阻止对端口的 TCP 访问,但指定 BGP 对等方除外

此示例展示如何配置标准无状态防火墙过滤器,阻止所有请求方到端口 179 的所有 TCP 连接尝试,但指定的对等方BGP。

要求

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

概述

此示例将创建无状态防火墙过滤器,阻止所有请求方到端口 179 的所有 TCP 连接尝试,但指定的对等方BGP。

无状态防火墙过滤器将设备 A 和设备 B 上的直接连接接口上的所有数据包与目标 filter_bgp179 端口号 179 匹配。

拓扑

图 1显示了此示例中使用的拓扑。设备 C 尝试与设备 E 建立 TCP 连接。设备 E 阻止连接尝试。此示例显示设备 E 上的配置。

图 1: BGP 对等会话的典型网络BGP 对等会话的典型网络

配置

CLI 快速配置

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

设备 C

设备 E

配置设备 E

分步过程

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

要使用无状态防火墙过滤器配置设备 E,该过滤器会阻止所有请求方到端口 179 的所有 TCP 连接尝试,但指定的请求BGP操作:

  1. 配置接口。

  2. 配置 BGP。

  3. 配置自治系统编号。

  4. 定义接受 TCP 连接尝试从指定对等方到端口 179 的BGP术语。

  5. 定义其他过滤器术语以拒绝来自其他来源的数据包。

  6. 将防火墙过滤器应用于回传接口。

成果

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

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

针对

确认配置是否正常工作。

验证过滤器是否已配置

用途

请确保过滤器列在show firewall filter命令输出中。

行动

验证 TCP 连接

用途

验证 TCP 连接。

行动

在操作模式下,在 show system connections extensive 设备 C 和设备 E 上运行 命令。

设备 C 上的输出显示尝试建立 TCP 连接。设备 E 的输出显示仅使用设备 A 和设备 B 建立连接。

监控接口上的流量

用途

使用 命令比较建立 TCP 连接的接口上的流量与未建立 TCP 连接的接口 monitor traffic 上的流量。

行动

在操作模式下,在设备 E 接口到设备 B,在设备 E 接口到设备 monitor traffic C 运行 命令。以下示例输出验证是否第一个示例中接收确认 ( ack ) 消息。第二个示例 ack 未收到消息。

示例:配置过滤器以根据前缀列表限制对端口的 TCP 访问

此示例演示如何配置标准无状态防火墙过滤器,通过指定包含允许的 BGP 对等方的前缀来源列表,限制发往路由引擎的某些 TCP 和互联网控制消息协议(ICMP)流量。

要求

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

概述

此示例将创建无状态防火墙过滤器,以阻止所有请求方到端口 179 的所有 TCP 连接尝试,但具有指定前缀的所有BGP方除外。

拓扑

将创建一个源前缀列表,用于指定包含允许的对等方BGP plist_bgp179 前缀列表。

无状态防火墙过滤器将源前缀列表的所有数据包 filter_bgp179 匹配 plist_bgp179 至目标端口号 179。

配置

CLI 快速配置

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

配置过滤器

分步过程

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

要配置过滤器:

  1. 扩展前缀列表,以包含由 定义的 BGP 对等体 bgp179 组指向的所有前缀 protocols bgp group <*> neighbor <*>

  2. 定义过滤器术语,拒绝从所有请求方到端口 179 的 TCP 连接尝试,但指定的对等方BGP。

  3. 定义其他过滤器术语以接受所有数据包。

  4. 将防火墙过滤器应用于回传接口。

成果

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

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

针对

确认配置是否正常工作。

显示应用于回传接口的防火墙过滤器

用途

验证是否已在逻辑filter_bgp179接口lo0.0上将防火墙过滤器应用于 IPv4 输入流量。

行动

show interfaces statistics operational mode 逻辑接口使用 lo0.0 命令,并包括 detail 选项。在命令输出部分下,字段显示应用于输入方向逻辑接口的无状态 Protocol inetInput Filters 防火墙过滤器的名称。

示例:限制 BGP 的 TCP 段大小

此示例显示如何通过在使用最大传输单元(MTU)发现时限制 TCP 分段大小来避免 Internet 控制消息协议(ICMP)漏洞问题。对 TCP 路径使用 MTU 发现是避免 BGP 数据包分段的一种方法。

要求

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

概述

TCP 在两个对等方之间建立会话连接期间协商最大分段大小(MSS)值。MSS 值的协商主要基于与通信对等方直接连接的接口的最大传输单元(MTU)。但是,由于 TCP 数据包MTU链路大小存在差异,因此当数据包大小超过链路大小时,网络中属于 MSS 值中的某些数据包可能会分片MTU。

要配置 TCP MSS 值,请包括段tcp-mss大小为1到4096的语句。

如果路由器接收到带有 SYN 位和 MSS 选项集的 TCP 数据包,并且数据包中指定的 MSS 选项比该tcp-mss语句指定的 mss 值大,则路由器会将数据包中的 mss 值替换为 < c2 >语句。tcp-mss

配置的 MSS 值用作发件人的最大段大小。假设发件人用于与 BGP 邻居通信的 TCP MSS 值与该发件人可从 BGP 邻居中接受的 TCP MSS 值相同。如果来自 BGP 邻居的 MSS 值小于配置的 MSS 值,则将来自 BGP 邻居的 MSS 值用作发件人的最大段大小。

IPv4 上的 TCP 和 TCP over IPv6 支持此功能。

拓扑图

图 2显示了此示例中使用的拓扑。

图 2: BGP 的 TCP 最大段大小BGP 的 TCP 最大段大小

配置

CLI 快速配置

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

R0

操作

分步过程

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

要配置路由器 R0:

  1. 配置接口。

  2. 在此示例中配置内部网关协议(IGP),OSPF。

  3. 配置一个或多个 BGP 组。

  4. 配置 MTU 发现以防止数据包碎片。

  5. 将 BGP 邻接方、全局的 TCP MSS 设置或专用于各个邻接方的配置。

    注:

    "TCP MSS 邻居" 设置将覆盖该组设置。

  6. 配置本地自治系统。

成果

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

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

针对

要确认配置是否正常工作,请运行以下命令:

  • show system connections extensive | find <neighbor-address>,以检查协商的 TCP MSS 值。

  • monitor traffic interface,以监控 BGP 流量并确保将配置的 TCP MSS 值用作 TCP SYN 数据包中的 MSS 选项。

故障排除

使用 MTU 发现的 MSS 计算

假设两个路由设备(R1 和 r)具有内部 BGP (IBGP)连接的示例。在两个路由器上,连接接口的 IPv4 MTU 均为4034。

在设备 R1 上的以下数据包捕获中,协商的 MSS 为3994。在 MSS show system connections extensive的信息中,将其设置为2048。

解决方案

这是 Junos OS 的预期行为。MSS 值等于 MTU 值减去 IP 或 IPv6 和 TCP 标头。这意味着 MSS 值通常为40字节,小于 MTU (对于 IPv4),60字节小于 MTU (IPv6)。此值在对等方之间协商。在此示例中,为 4034-40 = 3994。Junos OS 然后将该值舍入为 2 KB 的倍数。其值为 3994/2048 * 2048 = 2048。因此,无需在show system connections输出中看到相同的 MSS 值。

3994 / 2048 = 1.95

1.95 舍入为1。

1 * 2048 = 2048