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 封装),并包含 tunnel and family 语句:

您可以在以下层次结构级别配置这些语句:

  • [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 不允许将 or source destination 语句在层次结构级别指定的 [edit interfaces gr-fpc/pic/port unit logical-unit-number tunnel] 地址设置为与接口自己的子网地址相同(由语句在 address [edit interfaces gr-fpc/pic/port unit logical-unit-number family family-name] 层次结构级别指定)。

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

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

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

对于 GRE 隧道,默认设置是将外部 IP 报头中的 ToS 位设置为全零。要让路由引擎将 ToS 位从内部 IP 报头复制到外部 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 隧道配置中如何使用 key 语句:

在 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 隧道以将 ToS 位复制到外部 IP 报头

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

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

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

对于在接口上配置的每个隧道,您可以通过包含 allow-fragmentation or do-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 ,则不会在 GRE 封装数据包的外部 IP 报头中设置 DF 位,从而启用分段。默认情况下,超过 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-NG、MPC3E-NG、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 [interfaces gr-0/0/0 unit 0 tunnel] destinationfamily inet6[interfaces gr-0/0/0 unit 0]在层次结构级别指定,并在层次结构级别指定 [interfaces gr-0/0/0 unit 0 family inet6] IPv6 地址address

示例:配置单播隧道

配置两个未编号的 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)。您无需配置组播隧道接口。