了解 CoS 流控制(以太网、PAUSE 和 PFC)
流量控制通过调节流量来防止在拥塞期间丢帧,从而支持无损传输。流控制停止和恢复全双工以太网物理链路上两个连接的对等节点之间的网络流量传输。通过暂停和重新启动来控制流量,可防止节点上的缓冲区溢出和丢帧。您可以按每个接口配置流控制。
Junos 支持两种对等流量控制方法:
-
IEEE 802.3X 以太网暂停
-
IEEE 802.1Qbb 基于优先级的流控制 (PFC)
有关以太网 PAUSE 和 PFC 以及何时使用它们的常规信息
以太网 PAUSE 和 PFC 是链路级流量控制机制。
有关尽力而为流量的端到端拥塞控制,请参阅 了解 CoS 显式拥塞通知。
以太网暂停可暂停物理以太网链路上所有流量的传输。
PFC 将暂停功能与物理以太网链路分离,并允许您将一条链路上的流量分为多达八个优先级。您可以将这八个优先级视为映射到转发类和输出队列的八个流量“通道”。每个优先级都映射到 VLAN 报头中的 3 位 IEEE 802.1p CoS 代码点值。您可以对链路上的一个或多个优先级(IEEE 802.1p 代码点)启用 PFC。当链路上暂停启用了 PFC 的流量时,未启用 PFC 的流量将继续流动(如果拥塞足够严重,则会被丢弃)。
如果要防止链路上 所有 流量的数据包丢失,请使用以太网 PAUSE。仅在需要无损处理的特定类型的流量(例如 FCoE 流量)上使用 PFC 防止数据包丢失。
根据链路上的流量或分配给优先级的流量,暂停流量可能会导致入口端口拥塞,并在整个网络中蔓延拥塞。
以太网 PAUSE 和 PFC 是接口上互斥的配置。尝试在链路上同时配置以太网 PAUSE 和 PFC 将导致提交错误。
默认情况下,禁用所有形式的流控制。必须在接口上显式启用流控制才能暂停流量。
以太网暂停
以太网 PAUSE 是一种拥塞缓解功能,其工作原理是为全双工以太网链路上的所有流量提供链路级流量控制。以太网 PAUSE 在链路上双向工作。在一个方向上,接口会生成并发送以太网 PAUSE 消息,以阻止连接的对等方发送更多流量。在另一个方向上,接口响应从连接的对等方接收的以太网 PAUSE 消息,以停止发送流量。
以太网 PAUSE 也适用于聚合以太网接口。例如,如果连接的对等接口称为节点 A 和节点 B:
-
当接口节点 A 上的接收缓冲区达到一定的充满级别时,接口会生成以太网 PAUSE 消息,并向连接的对等方(接口节点 B)发送,以告知对等方停止发送帧。节点 B 缓冲区存储帧,直到以太网 PAUSE 帧中指定的时间段过去;然后节点 B 继续向节点 A 发送帧。
-
当接口节点 A 收到来自接口节点 B 的以太网 PAUSE 消息时,接口节点 A 停止传输帧,直到以太网 PAUSE 帧中指定的时间段过去;然后节点 A 恢复传输。(节点 A 传输缓冲区存储帧,直到节点 A 恢复向节点 B 发送帧。
在此场景中,如果节点 B 向节点 A 发送时间值为 0 的以太网 PAUSE 帧,则 0 时间值向节点 A 指示可以恢复传输。当节点 B 缓冲区清空到低于特定阈值且缓冲区可以再次接受流量时,就会发生这种情况。
对称流控制意味着接口在两个方向上具有相同的以太网 PAUSE 配置。以太网 PAUSE 生成和以太网 PAUSE 响应功能均配置为启用或禁用。可以通过在层次结构级别包含flow-control[edit interfaces interface-name ether-options]语句来配置对称流控制。
非对称流控制允许您在接口上独立配置每个方向的以太网 PAUSE 功能。用于生成以太网 PAUSE 消息和用于响应以太网 PAUSE 消息的配置不必相同。以太网 PAUSE 可以在两个方向上启用,在两个方向上禁用,或者在一个方向上启用但在另一个方向上禁用。可以通过在层次结构级别包含configured-flow-control[edit interfaces interface-name ether-options]该语句来配置非对称流控制。
在任何特定接口上,对称和非对称流控制都是互斥的。非对称流控制覆盖并禁用对称流控制。支持对称和非对称流控制。
如果在接口上配置了 PFC,则不能在接口上提交以太网 PAUSE 配置。尝试在一个或多个队列上启用了 PFC 的接口上提交以太网 PAUSE 配置将导致提交错误。要提交 PAUSE 配置,必须先删除 PFC 配置。
对称流控制
对称流控制会将接收缓冲区和发送缓冲区配置在同一状态。接口可以发送以太网 PAUSE 消息并响应这些消息(启用流控制),也可以接口不能发送或响应以太网 PAUSE 消息(禁用流控制)。
在接口上启用对称流控制时,以太网暂停行为取决于所连接对等方的配置。启用对称流控制后,接口可以执行连接对等方可以执行的任何以太网 PAUSE 功能。禁用对称流控制时,接口不会发送或响应以太网 PAUSE 消息。
非对称流控制
通过非对称流控制,您可以独立指定接口接收缓冲区是否生成和发送以太网 PAUSE 消息以阻止连接的对等方传输流量,以及接口传输缓冲区是否响应从连接的对等方接收的以太网 PAUSE 消息并停止传输流量。接收缓冲区配置确定接口是否传输以太网 PAUSE 消息,传输缓冲区配置确定接口是否接收和响应以太网 PAUSE 消息:
-
接收缓冲区开启 — 启用以太网 PAUSE 传输(生成并发送以太网 PAUSE 帧)
-
传输缓冲区开启 — 启用以太网暂停接收(响应接收到的以太网暂停帧)
您必须为接收缓冲区和传输缓冲区(onoff或 )显式设置流控制,以配置非对称以太网暂停。表 1 介绍了在接口上设置接收 (Rx) 和传输 (Tx) 缓冲区时配置的流控制状态:
| 接收 (Rx) 缓冲区 |
发射 (Tx) 缓冲区 |
配置的流控制状态 |
|---|---|---|
|
|
|
接口生成并发送以太网 PAUSE 消息。接口不响应以太网 PAUSE 消息(即使对等方请求接口停止发送流量,接口也会继续传输)。 |
|
|
|
接口响应从连接的对等方收到的以太网 PAUSE 消息,但不生成或发送以太网 PAUSE 消息。(接口不会请求连接的对等方停止发送流量。) |
|
|
|
功能与对称以太网 PAUSE 相同。接口生成和发送以太网 PAUSE 消息,并响应收到的以太网 PAUSE 消息。 |
|
|
|
以太网 PAUSE 流控制已禁用。 |
配置的流控制是在接口上配置的以太网暂停状态。
在 1 千兆以太网接口上,支持与连接的对等方自动协商以太网 PAUSE。(不支持 10 千兆以太网接口上的自动协商。)自动协商使接口能够与连接的对等方交换状态通告,以便两台设备就以太网 PAUSE 配置达成一致。每个接口都会使用以太网 PAUSE 和 ASM_DIR 位的组合向连接的对等方通告其流控制状态,如 表 2 中所述:
| Rx 缓冲区状态 |
Tx 缓冲区状态 |
暂停位 |
ASM_DIR位 |
描述 |
|---|---|---|---|---|
|
|
|
|
|
该接口不播发以太网暂停功能。这相当于禁用某个接口上的流控制。 |
|
|
|
|
|
接口播发对称流量控制(以太网 PAUSE 消息的传输以及接收和响应以太网 PAUSE 消息的能力)。 |
|
|
|
|
|
该接口播发非对称流控制(以太网 PAUSE 消息的传输,但不支持接收和响应以太网 PAUSE 消息的能力)。 |
|
|
|
|
|
该接口同时播发对称和非对称流控制。虽然接口不会生成以太网 PAUSE 请求并将其发送到对等方,但该接口支持对等方上的对称和非对称以太网 PAUSE 配置,因为如果对等方未收到以太网 PAUSE 请求,对等方不会受到影响。(如果接口响应对等方的以太网 PAUSE 请求,则足以支持对等方上的对称或非对称流量控制。) |
每个交换机接口上的流控制配置与所连接对等方的流控制配置交互。每个对等方都会向另一个对等方通告其状态。对等方的流控制配置的交互决定了它们之间的流控制行为(解析),如 表 3 所示。前四列显示本地设备和连接的对等方(也称为 链路伙伴)上的以太网 PAUSE 配置。最后两列显示了每个接口上的本地配置和对等配置所产生的以太网 PAUSE 解析。这说明了每个接口的以太网 PAUSE 配置如何影响另一个接口上的以太网 PAUSE 行为。
在表的 Resolution 列中,禁用以太网 PAUSE 传输意味着接口接收缓冲区不会生成以太网 PAUSE 消息,也不会向对等方发送以太网 PAUSE 消息。禁用以太网 PAUSE 接收意味着接口传输缓冲区不响应从对等方接收的以太网 PAUSE 消息。
| 本地接口 |
对等接口 |
本地解析 |
对等解析 |
||
|---|---|---|---|---|---|
| 暂停位 |
ASM_DIR位 |
暂停位 |
ASM_DIR位 |
||
| 0 |
0 |
不在乎 |
不在乎 |
禁用以太网暂停传输和接收 |
禁用以太网暂停传输和接收 |
| 0 |
1 |
0 |
不在乎 |
禁用以太网暂停传输和接收 |
禁用以太网暂停传输和接收 |
| 0 |
1 |
1 |
0 |
禁用以太网暂停传输和接收 |
禁用以太网暂停传输和接收 |
| 0 |
1 |
1 |
1 |
启用以太网暂停传输并禁用以太网暂停接收 |
禁用以太网暂停传输并启用以太网暂停接收 |
| 1 |
0 |
0 |
不在乎 |
禁用以太网暂停传输和接收 |
禁用以太网暂停传输和接收 |
| 1 |
0 |
1 |
不在乎 |
启用以太网暂停传输和接收 |
启用以太网暂停传输和接收 |
| 1 |
1 |
0 |
0 |
禁用以太网暂停传输和接收 |
禁用以太网暂停传输和接收 |
| 1 |
1 |
0 |
1 |
启用以太网 PAUSE 接收和禁用以太网 PAUSE 传输 |
启用以太网暂停传输并禁用以太网暂停接收 |
| 1 |
1 |
不在乎 |
不在乎 |
启用以太网暂停传输和接收 |
启用以太网暂停传输和接收 |
为方便起见, 表 3 复制了 IEEE 802.X 规范第 2 节的表 28B-3。
PFC
PFC 是一种无损传输和拥塞缓解功能,其工作原理是为全双工以太网链路上的每个 IEEE 802.1p 代码点(优先级)提供精细的链路级流量控制。当交换机接口上的接收缓冲区充满到阈值时,交换机会向发送方(连接的对等方)传输暂停帧,以暂时阻止发送方传输更多帧。缓冲区阈值必须足够低,以便发送方有时间停止传输帧,并且接收方可以在缓冲区溢出之前接受线路上已有的帧。交换机会自动设置队列缓冲区阈值以防止帧丢失。
当拥塞强制链路上的一个优先级暂停时,链路上的所有其他优先级将继续发送帧。仅不传输暂停优先级的帧。当接收缓冲区清空到低于另一个阈值时,交换机会发送一条消息,用于重新启动流量。
您可以使用拥塞通知配置文件 (CNP) 配置 PFC。CNP 由两部分组成:
-
输入 — 指定要在其上启用 PFC 的代码点,并可选择指定接口与连接的对等接口之间的最大接收单元 (MRU) 和电缆长度。
-
输出 — 指定响应来自连接对等方的暂停消息的输出队列或输出队列。
您可以通过在一个或多个接口上配置 CNP 来应用 PFC 配置。使用特定 CNP 的每个接口都可以暂停由该 CNP 中指定的优先级(代码点)标识的流量。您可以在一个接口上配置一个 CNP,也可以在不同的接口上配置不同的 CNP。在接口上配置 CNP 时,每当队列缓冲区填满暂停阈值时,映射到 CNP 为 PFC 启用的优先级的入口流量就会暂停。(暂停阈值不可由用户配置。)
沿整个数据路径配置优先级端到端的 PFC,从而在网络上创建无损流量通道。您可以选择性地暂停任何队列中的流量,而不暂停同一链路上其他队列的流量。您可以为 FCoE、LAN 备份或管理等流量创建无损通道,同时对同一链路上的 IP 流量使用标准丢帧拥塞管理。
流量控制的潜在后果是:
-
入口端口拥塞(配置过多的无损流可能会导致入口端口拥塞)
-
暂停的优先级,会导致上游设备暂停相同的优先级,从而通过网络将拥塞扩散回来
根据定义,PFC 仅支持对称暂停(与以太网 PAUSE 相反,后者支持对称和非对称暂停)。借助对称暂停,设备可以:
-
传输暂停帧以暂停传入流量。(您可以使用拥塞通知配置文件的输入部分进行配置。
-
接收暂停帧并停止向缓冲区已满而无法接受更多帧的设备发送流量。(您可以使用拥塞通知配置文件的输出部分进行配置。
从连接的对等方接收 PFC 帧会根据 PFC 暂停帧识别的 IEEE 802.1p 优先级暂停出口队列上的流量。优先级为 0 到 7。默认情况下,优先级分别映射到队列编号 0 到 7 以及特定的转发类,如 表 4 所示:
| IEEE 802.1p 优先级(代码点) |
队列 |
转发类 |
|---|---|---|
| 0 (000) |
0 |
尽力服务 |
| 1 (001) |
1 |
尽力服务 |
| 2 (010) |
2 |
尽力服务 |
| 3 (011) |
3 |
FCoE |
| 4 (100) |
4 |
无损耗 |
| 5 (101) |
5 |
尽力服务 |
| 6 (110) |
6 |
网络控制 |
| 7 (111) |
7 |
网络控制 |
例如,如果接收到的 PFC 暂停帧暂停优先级 3,则输出队列 3 暂停。如果您不想使用默认配置,可以配置优先级到队列和转发类的自定义映射。
按照惯例,具有融合服务器访问的部署通常对 FCoE 流量使用 IEEE 802.1p 优先级 3。默认配置将 fcoe 转发类设置为映射到队列 3 的无损转发类。默认分类器将传入优先级 3 流量映射到 fcoe 转发类。 但是,您必须将 PFC 应用于整个 FCoE 数据路径,以配置 FCoE 流量所需的端到端无损行为。
如果您的网络对 FCoE 流量使用优先级 3,我们建议您使用默认配置。如果您的网络对 FCoE 流量使用除 3 以外的优先级,则可以在任何 IEEE 80.21p 优先级上配置无损 FCoE 传输,如 了解无损流量流的 CoS IEEE 802.1p 优先级 和 了解 FCoE-光纤通道上的 CoS IEEE 802.1p 优先级重新映射中所述。
要在优先级上启用 PFC:
指定要在 CNP 的输入节中暂停的 IEEE 802.1p 代码点。
如果未使用缺省无损转发类,请在 CNP 的输出节中指定要暂停的 IEEE 802.1p 代码点和相应的输出队列。
将 CNP 应用于要暂停流量的入口接口。
如果您未使用默认的无损转发类,请将 CNP 应用于要暂停流量的入口接口。
对端口上的 PFC 配置所做的任何更改都会暂时阻止整个端口(而不仅仅是受 PFC 更改影响的优先级),以便端口可以实施更改,然后取消阻塞端口。阻止端口将停止入口和出口流量,并导致端口上所有队列上的数据包丢失,直到端口解除阻塞。
对 PFC 配置的更改意味着对 CNP 的任何更改,包括更改 CNP 的输入部分(在优先级上启用或禁用 PFC,或更改 MRU 或电缆长度值)或更改启用或禁用队列上输出流控制的 CNP 输出部分。PFC 配置更改仅影响使用更改后的 CNP 的端口。
以下操作会更改 PFC 配置:
-
删除或禁用一个或多个接口上正在使用的 CNP 中的 PFC 配置(输入或输出)。例如:
在接口 xe-0/0/20 和 xe-0/0/21 上配置了具有在优先级 3、5 和 6 上启用 PFC 的输入节的现有 CNP。
我们在输入 CNP 中禁用优先级 6 的 PFC 配置,然后提交配置。
PFC 配置更改将导致接口 xe-0/0/20 和 xe-0/0/21 上的所有流量停止,直到实施 PFC 更改为止。实施 PFC 更改后,流量将恢复。
-
在接口上配置 CNP。(这会通过在一个或多个优先级上启用 PFC 来更改 PFC 状态。)
-
从接口中删除 CNP。(这会通过在一个或多个优先级上禁用 PFC 来更改 PFC 状态。)
将 CNP 与接口关联时,当无损流量的输出队列缓冲区充满暂停阈值时,接口将使用 PFC 发送暂停请求。
在对单播和多目的地流量使用不同分类器的交换机上,您可以将单播队列(队列 0 到 7)和多目的地队列(队列 8、9、10 或 11)映射到同一个 IEEE 802.1p 代码点(优先级),以便单播和组播流量都使用该优先级。但是,不要将多目的地流量映射到无损输出队列。您可以将一个优先级映射到多个输出队列。
您最多可以将一个 CNP 连接到接口,但您可以创建无限数量的 CNP,这些 CNP 仅显式配置输入节并使用默认输出节。
CNP 的输出部分映射到接口用于响应从连接对等方接收的暂停消息的配置文件。在独立交换机上,您可以创建两个具有显式配置输出节的 CNP。
无损传输支持摘要
对于无损传输,必须在映射到无损转发类的 IEEE 802.1p 优先级(代码点)上启用 PFC。
对端口上的 PFC 配置所做的任何更改都会暂时阻止整个端口(而不仅仅是受 PFC 更改影响的优先级),以便端口可以实施更改,然后取消阻塞端口。阻止端口将停止入口和出口流量,并导致端口上所有队列上的数据包丢失,直到端口解除阻塞。
默认的 CoS 配置提供两个无损转发类, fcoe 和 无损转发类。如果显式配置无损转发类,则必须包含 no-loss 数据包丢弃属性以启用无损行为,否则流量将不是无损的。对于默认和显式无损转发类配置,您必须配置 CNP 输入节,以对无损流量的优先级启用 PFC,并将 CNP 应用于入口接口。
了解无损流量流的 CoS IEEE 802.1p 优先级 提供了有关无损优先级的显式配置和无损优先级的默认配置的详细信息,包括 CNP 的输入和输出节。
特定于平台的链路级流控制行为
使用 功能资源管理器 确认平台和版本对特定功能的支持。
使用下表查看平台的特定于平台的行为:
| 平台 |
差异 |
|---|---|
| EX4400 |
|
| PTX 系列 |
|
| QFX10000 系列 |
|
| 平台 |
差异 |
|---|---|
| PTX10000 系列 |
|
| QFX 系列 |
|
| QFX10000 系列 |
|