Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

通过组播隧道接口过滤单播数据包

配置单播隧道

要配置单播隧道,请配置 gr- 接口(使用 GRE 封装)或 ip- 接口(使用 IP-IP 封装),并包括 tunnelfamily 语句:

您可以在以下层级配置这些语句:

  • [edit interfaces]

  • [edit logical-systems logical-system-name interfaces]

您可以为每个 GRE 或 IP-IP 接口配置多个逻辑单元,并且每个单元只能配置一个隧道。

注意:

在 M 系列和 T 系列路由器上,可以在服务 PIC 或隧道 PIC 上配置接口。在 MX 系列路由器上,配置多服务 DPC 上的接口。

每个隧道接口都必须是一个点对点接口。点对点是默认的接口连接类型,因此无需在 point-to-point 逻辑接口配置中包含语句。

您必须指定隧道的目标和源地址。其余语句可选。

注意:

对于从隧道退出的传输数据包,在配置为隧道源的接口上不支持转发路径功能,例如反向路径转发 (RPF)、转发表过滤、源类使用、目标类使用和无状态防火墙过滤,但在隧道 pic 接口上受支持。

但是,从 GRE 或 IP-IP 报头获取的服务等级 (CoS) 信息会通过隧道传输,由重新输入的数据包使用。有关更多信息,请参阅 《Junos OS 路由设备服务等级用户指南》。

为防止配置无效,Junos OS 不允许将层级的 source or destination 语句[edit interfaces gr-fpc/pic/port unit logical-unit-number tunnel]指定的地址设置为与接口自己的子网地址相同(由 [edit interfaces gr-fpc/pic/port unit logical-unit-number family family-name] 层次结构级别上的address语句指定)。

要设置封装标头中包含的生存时间 (TTL) 字段,请包含语句 ttl 。如果为隧道显式配置 TTL 值,则必须将其配置为比隧道中的跃点数大一个。例如,如果隧道有 7 个跃点,则必须将 TTL 值配置为 8。

您必须在逻辑接口上至少配置一个系列。要通过 GRE 隧道接口启用 MPLS,必须在 GRE 接口配置中包含该 family mpls 语句。此外,您必须在 [edit protocols] 层次结构级别包括适当的语句,以便通过 GRE 隧道启用资源预留协议 (RSVP)、MPLS 和标签交换路径 (LSP)。单播隧道是双向的。

配置的隧道不能在到达目标的任何点通过网络地址转换 (NAT)。有关更多信息,请参阅 隧道服务概述MPLS 应用程序用户指南

对于 GRE 隧道,默认设置是将外部 IP 报头中的 ToS 位设置为所有零。要让路由引擎将 ToS 位从内部 IP 报头复制到外部,请添加语句 copy-tos-bits-to-outer-ip-header 。(这种从内到外部的 ToS 位复制已经是 IP-IP 隧道的默认行为。)

对于自适应服务或多服务接口上的 GRE 隧道接口,您可以配置其他隧道属性,如下部分所述:

在 GRE 隧道上配置密钥编号

对于 M 系列和 T 系列路由器上的自适应服务和多服务接口,您可以分配一个键值,以识别 GRE 隧道内的单个流量,如 RFC 2890《 GRE 的密钥和序列号扩展》中的定义。但是,每个隧道源对和目标对只允许一个密钥。

进入隧道的每个 IP 版本 4 (IPv4) 数据包都使用 GRE 隧道密钥值封装。退出隧道的每个 IPv4 数据包都经过 GRE 隧道密钥值验证并解封装。自适应服务或多服务 PIC 会丢弃与配置的键值不匹配的数据包。

要向 GRE 隧道接口分配密钥值,请添加语句 key

您可以在以下层级包含此语句:

  • [edit interfaces interface-name unit logical-unit-number tunnel]

  • [edit logical-systems logical-system-name interfaces interface-name unit logical-unit-number tunnel]

密钥编号可以是 0 到 4,294,967,295。您必须在隧道端点上配置相同的 GRE 隧道密钥值。

以下示例说明了在 GRE 隧道配置中使用密钥语句:

在 GRE 封装之前在 GRE 隧道上启用数据包分片

仅对于自适应服务和多服务接口上的 GRE 隧道接口,可以在 IPv4 数据包在 GRE 隧道中进行 GRE 封装之前,启用分片。

默认情况下,通过 GRE 隧道传输的 IPv4 流量不会分段。要启用 GRE 隧道中 IPv4 数据包分片,请包括以下 clear-dont-fragment-bit 语句:

您可以在以下层级包含此语句:

  • [edit interfaces interface-name unit logical-unit-number]

  • [edit logical-systems logical-system-name interfaces interface-name unit logical-unit-number]

在配置中包含语句 clear-dont-fragment-bit 时,所有数据包上都会清除不分片 (DF) 位,甚至是不超过隧道最大传输单元 (MTU) 的数据包。如果数据包的大小超过隧道的 MTU 值,则数据包在封装之前会分片。如果数据包大小未超过隧道的 MTU 值,则数据包不会分片。

您还可以清除通过 IP 安全 (IPsec) 隧道传输的数据包中的 DF 位。有关更多信息,请参阅 配置 IPsec 规则

为隧道指定 MTU 设置

要在 GRE 隧道上启用密钥编号和分片(如在 GRE 隧道上配置密钥编号在 GRE 封装之前在 GRE 隧道上启用数据包分片中所述),还必须为隧道指定 MTU 设置。

要为隧道指定 MTU 设置,请包括以下 mtu 语句:

您可以在以下层级包含此语句:

  • [edit interfaces gr-fpc/pic/port unit logical-unit-number family inet]

  • [edit logical-system logical-system-name interfaces gr-fpc/pic/port unit logical-unit-number family inet]

有关 MTU 设置的更多信息,请参阅 路由设备的 Junos OS 网络接口库

配置 GRE 隧道以将位复制到外部 IP 报头

与 IP-IP 隧道不同,GRE 隧道默认不会将 ToS 位复制到外部 IP 报头。要让路由引擎将内部 ToS 位复制到路由引擎发送的数据包的外部 IP 报头(这是某些隧道路由协议所必需的),请将该 copy-tos-to-outer-ip-header 语句包含在 GRE 接口的逻辑单元层次结构级别。此示例将内部 ToS 位复制到 GRE 隧道上的外部 IP 报头:

在 GRE 封装后对数据包启用分片和重组

在对数据包进行 GRE 封装后,您可以为 GRE 隧道启用数据包分片和重组。当 GRE 封装数据包的大小大于数据包通过的链路的 MTU 时,GRE 封装的数据包将分片。您可以在隧道端点处配置 GRE 接口,以重组分片的 GRE 封装数据包,然后再在网络上进一步处理这些数据包。

对于您在接口上配置的每个隧道,可以通过添加 allow-fragmentationdo-not-fragment 语句来启用或禁用 GRE 封装数据包分片:

您可以在以下层级配置这些语句:

  • [edit interfaces interface-name unit logical-unit-number tunnel]

  • [edit logical-systems logical-system-name interfaces interface-name unit logical-unit-number tunnel]

如果在隧道上配置 allow-fragmentation ,则 DF 位不会在 GRE 封装数据包的外部 IP 报头中设置,从而支持分片。默认情况下,超过链路 MTU 大小的 GRE 封装数据包不会分片,并且会丢弃。

要启用在隧道端点的 GRE 接口上重组分片 GRE 封装的数据包,请包括以下 reassemble-packets 语句:

您可以在以下层级配置此语句:

  • [edit interfaces interface-name unit logical-unit-number]

  • [edit logical-systems logical-system-name interfaces interface-name unit logical-unit-number]

从 Junos OS 17.3R1 版开始,您可以在具有 MPC7E、MPC8E 和 MPC9E 的 MX 系列路由器上的 GRE 隧道接口上配置 GRE 封装数据包的分片和重新分配。

从 Junos OS 17.1R1 版开始,您可以通过 MPC2E-NGs、MPC3E-NGs、MPC5E 和 MPC6E 的 MX 系列路由器上的 GRE 隧道接口上配置 GRE 封装数据包的分片和重新分配。

从 Junos OS 14.2 版开始,您可以通过 MPC1、MPC2、MPC3、MPC4 和 MPC-16X10GE 在 MX 系列路由器上的 GRE 隧道接口上配置 GRE 封装数据包的分片和重新处理。

在 Junos OS 14.1 及更早版本中,仅具有 MS-DPC 的 MX 系列路由器支持对 GRE 封装数据包进行分片和重新处理。

支持 IPv6 GRE 隧道

从 Junos OS 17.3R1 版开始,您可以在 MX 系列路由器上配置 IPv6 通用路由封装 (GRE) 隧道接口。这样,您可以通过 IPv6 网络运行 GRE 隧道。可封装在 IPv6 GRE 隧道中的数据包有效负载族包括 IPv4、IPv6、MPLS 和 ISO。不支持 IPv6 交付数据包分片和重组。

要配置 IPv6 GRE 隧道接口,请在层次结构级别指定 IPv6 地址source destination [interfaces gr-0/0/0 unit 0 tunnel],在[interfaces gr-0/0/0 unit 0]层次结构级别指定 family inet6 IPv6 地址,并在层次结构级别指定 IPv6 地址address[interfaces gr-0/0/0 unit 0 family inet6]

示例:配置单播隧道

配置两个未编号的 IP-IP 隧道:

通过在层次结构级别添加地址 [edit interfaces ip-0/3/0 unit (0 | 1) family inet] 来配置编号隧道接口:

通过在层次结构级别包含 family mpls 语句 [edit interfaces gr-1/2/0 unit 0] ,通过 GRE 隧道配置 MPLS:

将隧道限制为组播流量

对于承载 IPv4 或 IP 版本 6 (IPv6) 流量的接口,您可以将隧道接口配置为仅允许组播流量。要配置仅组播隧道,请添加 multicast-only 语句:

您可以在以下层级配置此语句:

  • [edit interfaces interface-name unit logical-unit-number family family]

  • [edit logical-systems logical-system-name interfaces interface-name unit logical-unit-number family family]

组播隧道过滤所有单播数据包;如果传入数据包不发往 224/8 或更高版本的前缀,则丢弃数据包并递增一个计数器。

只能在 GRE、IP-IP、PIM 和组播隧道 (mt) 接口上配置此属性。

注意:

如果路由器有隧道服务 PIC,则 Junos OS 会自动为您配置的每个虚拟专用网络 (VPN) 配置一个组播隧道接口 (mt)。无需配置组播隧道接口。