了解 PPP 用户的 MTU 和 MRU 配置
默认 PPP 最大接收单元 (MRU),因此最大传输单元 (MTU) 为 1500 个字节。对于 PPPoE 接口,PPPoE 报头使用 6 个字节,PPP 协议 ID 使用 2 个字节。这会将 PPPoE 接口上的 MRU 大小限制为 1492 个字节,这可能会导致通过 PPPoE 接口接收的较大 PPP 数据包频繁分段和重组。要覆盖默认值,可以为 PPP 用户配置 MTU 和 MRU 大小。
对于 PPPoE 用户,如果在 PPPoE 主动发现请求 (PADR) 数据包中接收到 PPP-Max-有效负载标记,或者在 PPP LDP 配置请求中接收的对等 MRU 大于 1492 字节,则 PPP MRU 或 PPP MTU 大小可以大于 1492 字节。默认情况下,如果未显式配置 MTU 或 MRU 或两者,则在 LNS 上使用 PPPoE MTU 和 MRU。
以下 PPP 连接的用户支持 MRU 和 MTU 配置:
-
以太网 PPP (PPPoE) 用户
-
基于 ATM 的以太网 PPP (PPPoE over ATM) 订阅者
-
基于 ATM 的 PPP (PPPoA) 用户
-
隧道式 PPP LAC 用户
-
隧道式 PPP LNS 用户
PPP 本质上是在两个独立的半双工链路之间进行协商。建立 PPP 连接时,PPP 端点会协商 MRU,以确定协商的 PPP 连接上的 PPP 有效负载 MTU。本节中使用的术语如下所述:
| Peer MRU | 由对等方提议的 MRU,用于指示它可以接受的 PPP 有效负载大小。 |
| PPP MRU | 由路由器提议的 MRU,用于指示它可以接受的 PPP 有效负载大小 |
| PPP MTU | PPP 有效负载 MTU(IP 报头 + 数据),不包括任何第 2 层开销。 |
默认情况下,如果 PPP MTU 值低于 1492 字节,则作 PPP MRU 值也会设置为 PPP MTU 值。但是,如果 PPP MTU 值大于 1492 字节,则 Junos OS 将根据 PPPoE 主动发现请求 (PADR) 数据包中接收的 PPP-Max-有效负载标记的存在情况和值来计算 PPP MRU 值。可以通过在以下层次结构级别配置 and mru size 语句来mtu (size| use-lower-layer) 更改此默认行为:
[edit access group-profile group-profile-name ppp ppp-options] [edit dynamic-profiles profile-name interfaces pp0 unit “$junos-interface-unit” ppp-options], [edit dynamic-profiles profile-name interfaces "$junos-interface-ifd-name" unit “$junos-interface-unit” ppp-options], [edit interfaces pp0 unit unit-number ppp-options] [edit interfaces si interface-id unit unit-number ppp-options]
面向 PPPoE 用户的 PPP MTU 和 MRU
对于 PPPoE 数据包:
配置的 MTU 是使用
mtu size语句配置的 MTU 值。PPP 较低层 MTU 的计算公式为:接口 MTU – [(以太网标头有效负载) –(单标记 VLAN) –(双标记 VLAN) –(PPPoE 标头有效负载) –(PPP 标头)]
Junos OS根据配置的MTU、PPP 下层MTU以及 PADR 数据包和对等方 MRU 中 PPP-Max-有效负载 标记的存在和值,确定已终止 PPPoE 接口的 PPP MTU值。
如果 PPP 下层 MTU 低于 1492 字节,则 PPP MTU 值是 PPP 下层 MTU 和配置的 MTU 值中较小者。即使 PPP-Max-有效负载标记存在于 PADR 数据包中,也会被忽略。
如果 PPP 较低层 MTU 大于 1492 字节:
-
如果 PADR 数据包中不存在 PPP-Max-有效负载标记,则 PPP MTU 值是配置的 MTU 和 PPP 下层 MTU 值和对等方的 MRU 中的较小者。
如果存在 PPP-Max-有效负载标记,并且其值小于 1492 字节,则 PPP MTU 是配置的 MTU 和 PPP 下层 MTU 值中较小者。Junos OS 不会在 PPPoE 主动发现会话 (PADS) 数据包中发送 PPP-Max-有效负载标记,以指示路由器无法支持大于 1492 字节的 MRU 大小。
如果存在 PPP-Max-有效负载标记,并且其值大于 1492 字节但小于配置的 MTU,则 PPP MTU 是 PPP-Max-有效负载标记中接收的值。
-
如果存在 PPP-Max-有效负载标记,并且其值大于 1492 字节且大于配置的 MTU,则 PPP MTU 是配置的 MTU、PPP 较低层 MTU 值和对等方的 MRU 中的较小者。Junos OS 还会在 PADS 数据包中返回 PPP-Max-有效负载标记,以指示路由器能够支持大于 1492 字节的 MRU。
-
默认情况下,在对点连接进行链路控制协议 (LCP) 协商期间,路由器会将 PPP MTU 值用作 PPP MRU 值。使用语 mru size 句为 PPPoE 的 PPP 用户配置 MRU 时,Junos OS 将根据以下内容确定 PPP MRU 值:
如果使用该
ppp-options选项配置 MRU,则 PPP MRU 是配置的 MRU 值和该用户的 PPP MTU 值(根据配置的 MTU、PPP 下层 MTU 和 PADR 数据包中的 PPP-Max-有效负载值派生的 PPP MTU 值)中的较小者。如果未配置 MRU,则 PPP MRU 与 PPP MTU 相同,并在 LCP 协商期间发送。在 LCP 协商期间,服务器接收对等 MRU 值,并提供从配置和 PPP MTU 派生的 PPP MTU。
对于协商的 PPP 连接,PPP 有效负载 MTU(IP 报头 + 数据)(不包括任何第 2 层开销)设置为 PPP MTU 和收到的对等 MRU 值中较小者。
LNS 上隧道式用户的 PPP MTU 和 MRU
对于 L2TP 网络服务器 (LNS) 上的 PPP 用户,您可以在内联服务 (si) 接口上显式配置 MTU 和 MRU,以覆盖默认值。显式配置时,有效 MTU 可以是使用 mtu size 语句指定的显式 MTU 大小,也可以是使用 mtu use-lower-layer 语句派生的 MTU。
-
如果内联服务 (si) 接口上的 PPP MTU 配置为
use-lower-layer,则 PPP MTU 确定为:接口 MTU – 58 字节。58 字节是 PPP 开销有效负载,计算方式为 IP、UDP、L2TP、HDLC 和 PPP 报头有效负载的总和。
如果使用语句配置
mtu size了内联服务 (si) 接口上的 PPP MTU,则 PPP MTU 是配置的 MTU、(接口 MTU – 58 字节)值和通过 L2TP 会话协商或与远程对等方重新协商 LCP 时获知的对等 MRU 中的较小者。
使用该 mru size 语句配置显式 MRU 值时,Junos OS 将根据以下场景确定 LNS 接口上 PPP 订阅者的 PPP MRU 值:
如果未为 LNS 上的 PPP 用户配置 MRU 值,并且从 L2TP 接入集中器 (LAC) 接收代理 LCP 选项,则 LCP 协商中提供的 PPP MRU 值是 PPP MTU 和代理 MRU 值中较小者。如果未收到 LCP 选项,则在 LCP 协商期间将 PPP MTU 作为 MRU 提供。
但是,如果为 LNS 上的 PPP 用户配置了 MRU 值,则 PPP MRU 是配置的 MRU 和 PPP MTU 值中较小者。此外,如果从 LAC 接收代理 LCP 选项,则 LCP 协商期间发送的 PPP MRU 值是配置的 MRU 或 PPP MTU 与代理 MRU 值中较小者。
对于协商的 PPP 有效负载 MTU(IP 报头 + 数据),不包括任何第 2 层开销,PPP MTU 设置为 PPP MTU 和收到的对等 MRU 值中的较小者。