05-QCN配置
本章节下载: 05-QCN配置 (293.56 KB)
目 录
QCN(Quantized Congestion Notification,量化拥塞通知)是一套应用于二层的端到端拥塞通知机制,通过主动反向通知,降低网络中的丢包率和延时,从而提高网络性能。QCN作为数据中心标准的一部分,主要应用于数据中心场景。
· RP(Reaction Point):数据流的源端,支持QCN协议。
· CP(Congestion Point):使能了QCN功能的拥塞检测设备。
· CNM(Congestion Notification Message):CP端接口上的队列发生拥塞时,CP端产生的反向通知RP端的拥塞通知消息。
· CCF(Congestion Controlled Flow):拥塞控制流,RP端为区分不同的流量,发送报文时会将携带不同优先级的报文划入不同的拥塞控制流中,同一个拥塞控制流中报文携带的dot1p优先级相同,进入CP端转发时会入相同的队列。
· CN-TAG(Congestion Notification Tag):量化拥塞标签。
· CNP(Congestion Notification Priority):拥塞通知优先级,可以根据VLAN标签中的dot1p优先级使能指定dot1p优先级流量的QCN功能,该优先级就称为拥塞通知优先级(CNP)。该优先级对应的值为CNPV(Congestion Notification Priority Value)。
· CND(Congestion Notification Domain):拥塞通知域,指RP和使能了指定CNP的QCN功能的CP的集合。
· CPID(Congestion Point Identifier):CP在网络中的唯一编号,长度固定为8个字节。
· QntzFb(Quantized Feedback):表明拥塞程度的量化的反馈值,长度固定为6个比特。
RP端发送流量时为区分不同的流,在以太网报文中新添加了一个CN-TAG标记。不同CN-TAG标记,用来标识不同的拥塞控制流(CCF)。
图1-1 QCN数据报文格式
如错误!未找到引用源。所示,CN-TAG包括如下字段:
· EtherType:2bytes,表示QCN数据报文的以太网类型,取值为0x22E9。
· RPID:2bytes,由RP自己分配。RP收到CNM报文时可以解析知道是哪条流发生了拥塞,以便对其进行限速。
CN-TAG是由RP添加在报文中,CN-TAG只在拥塞通知域(CND)内存在,在CND内的设备要能够解析带有CN-TAG的报文。当报文离开CND时,CN-TAG需要被剥离。
RP端发送报文时,可以携带也可以不携带CN-TAG。当不携带CN-TAG,说明RP端对于当前优先级仅有一类流,不需要用RPID区分多类流。当不带CN-TAG的报文触发CNM报文,CNM报文中携带CN-TAG,但RPID为0,RP端收到此CNM报文,对总体流量进行限速。
CP端根据采样周期检测到拥塞时,产生拥塞通知消息(CNM)报文通知RP端。CNM报文的目的MAC为当前采样报文的源MAC,源MAC为当前采样报文的目的MAC,保证CNM报文能发送回RP端,并将采样报文中的VLAN tag、CN-TAG填入CNM报文,后面再携带CNM PDU内容,如图1-2所示。
CNM报文由如下两部分组成:
· PDU EtherType:2bytes,表示PDU的以太网类型,取值为0x22E7。
· CNM PDU:24~88bytes,表示PDU的具体数据内容,如图1-3所示:
CNM PDU包括如下字段:
· Version:4bits,取值固定为0。
· ReserverV:6bits,保留字段,取值固定为0。
· Quantized Feedback:6bits,量化后的Fb值,CP根据得到的拥塞状态Fb转换成的量化值。
· CPID:8bytes,表明发生拥塞的CP端,用于诊断。
· cnmQoffset:2bytes,采样时刻的瞬间队列大小减去期望队列的大小。
· cnmQdelta:2bytes,采样时刻的瞬间队列大小减去上次采样时刻的瞬时队列大小。
· Encapsulated priority:2bytes,触发产生CNM报文的采样报文的优先级。
· Encapsulated destination MAC address:6bytes,触发产生CNM报文的采样报文的目的MAC地址。
· Encapsulated MSDU length:2bytes,触发产生CNM报文的采样报文的字段的长度。
· Encapsulated MSDU:0~64bytes,触发产生CNM报文的采样报文的长度。
(1) CP定期采样使能了QCN的队列,当队列发生拥塞时,产生CNM拥塞通知消息,通知RP。
(2) 源端RP收到此消息后降低流量发送速率,进行流量限速。同时RP端也周期性地探测带宽,在一定时间没有收到CNM报文时再提高流量发送速率。
图1-4 QCN基本原理图
CP周期性地对队列大小进行采样,根据采样结果计算当前的拥塞状态。拥塞检测算法包括如下参数:
· Q:表示采样时刻的瞬间队列大小
· Qeq:表示期望队列大小
· Qold:为上次采样的队列大小
· Fb:反映CP端拥塞状态的一个量化的值,在CNM消息中填充来通知RP端拥塞的程度。
图1-5 CP拥塞检测原理图
其中,w是一个权重参数,控制Qδ在Fb值中的比重。
CP端根据Fb的值来决定是否产生CNM报文。当Fb ≥ 0时,说明队列没有拥塞;当Fb < 0时,说明队列已经拥塞,产生CNM报文反向通知产生该拥塞数据的数据源RP。同时,需要将|Fb|量化成QntzFb值,填充到CNM报文中。量化算法为:
· 如果Fb < - Qeq × (2 × w + 1)),则QntzFb取最大值63;
· 否则,QntzFb = - Fb × 63 / (Qeq × (2 × w + 1))。
RP端的基本算法是:
· 收到CNM消息后,根据消息中Fb来调节发送速率,|Fb|越大发送速率降得越低;
· 当速率降下来之后再逐步提升限速的目标上限,将发送速率恢复到原来的值。
拥塞通知可以根据VLAN标签中dot1p优先级进行使能,对指定dot1p优先级的流量使能QCN功能,该优先级就称为拥塞通知优先级(CNP)。该优先级对应的值为CNPV。
不同的CNP流量相互间不受影响。
(1) CND概念
拥塞通知域是指那些使能指定CNP的QCN的交换机(CP)、数据源终端设备(RP)的集合。CND按CNPV优先级分,使能了指定CNPV的设备即加入指定的CND。
按照CNPV优先级划定CND,表明在指定的优先级启用拥塞通知功能,并防止来自CND以外的流量进入CND。
对于指定CNPV的CND,需要指定隔离优先级(alternate priority)。从CND以外进入的报文,如果携带的dot1p等于CNPV,则需要改写成隔离优先级。
通过配置将设备加入CND后,设备上每个端口都要选择其在CND中的保护模式,可静态配置或通过LLDP协商。
· disabled:配置后,接口的优先级映射按优先级映射表起作用,不受任何QCN配置影响。
· interior:优先级保持不变,不按优先级映射表映射。出方向时需要删除CN-TAG。
· interiorReady:优先级保持不变,不按优先级映射表映射。出方向时保留CN-TAG。
· edge:CNPV优先级的报文需要被改写成隔离优先级。在出方向时需要删除CN-TAG。
· 修改优先级映射表后,可能导致原来设置的CP端不能对指定CNPV的流量进行检测。
· 配置多个dot1p优先级映射入同一个队列时,由于拥塞检测是对队列进行检测,因此多个dot1p的流量会相互影响。配置时,需要用户保证不将非QCN的dot1p优先级流量映射到使能了拥塞检测的队列。
· MQC配置中的remark动作也会影响映射关系。有关remark动作的详细介绍请参见“ACL和QoS配置指导”中的“QoS”。
· 配置的信任模式必须信任dot1p优先级。有关信任模式的详细介绍请参见“ACL和QoS配置指导”中的“QoS”。
· 接口缺省优先级不能与CNPV配置相同。有关缺省优先级的详细介绍请参见“ACL和QoS配置指导”中的“QoS”。
当指定CNPV的报文进入设备后,出方向时会进入指定队列,使能拥塞检测功能的队列只对指定CNPV优先级的流量生效,其他优先级的流量不能进入此队列。队列通过QoS优先级映射表确定,具体情况请参见“ACL和QoS配置指导”中的“QoS”。
· IEEE802.1Qau:Congestion notification
表1-1 QCN配置任务简介
使能QCN功能 |
|||
在QCN的各项配置任务中,必须先使能QCN功能,其它功能的配置才能生效。
配置本任务之前,请先使能LLDP功能。关于LLDP的介绍和基本功能配置,请参见“二层技术-以太网交换配置指导”中的“LLDP”。
使能QCN后,本设备的QCN功能才会生效。
关闭QCN功能后,所有QCN功能失效,但配置仍然存在且LLDP协商停止,不处理LLDP报文中的CN TLV,也不发送CN TLV。
使能QCN功能 |
缺省情况下,QCN功能处于关闭状态 |
接口保护模式分全局和接口下两种配置方式,全局配置对所有接口生效,如果全局和接口下同时配置时,以接口下配置为准。
网络管理员将设备划入对应的CND后,设备就能够对来自该CND内的报文进行拥塞检测。
将指定dot1p优先级配置整个设备的CNPV,则表明设备加入CND。一台设备可以指定多个CNPV,因此可以属于多个CND。例如,当设备加入CND 1、2、3,同时隔离优先级都配置为0,则优先级关系如下:
表1-3 CND和优先级对应关系
网络管理员将整个设备划分到对应的CND后,可以根据组网需要进一步在接口下配置CND,从而达到更细粒度的需求。
在配置接口CND之前,需先将设备加入对应的CND。
网络管理员可以根据需要通过一套拥塞检测参数对CND内的报文进行拥塞检测功能。QCN通过一个profile对应一套参数,每套参数包含期望队列长度和权重。
qcn profile profile-id set-point length-value weight weight-value |
系统自动创建缺省profile,ID为0,期望队列长度为26000bytes,权重为1,缺省profile的参数不能修改 |
|
为指定CND绑定profile |
qcn priority priority-value profile profile-id |
缺省情况下, CND绑定缺省profile |
在完成上述配置后,在任意视图下执行display命令可以显示配置后QCN的运行情况,通过查看显示信息验证配置的效果。
在用户视图下执行reset命令可以清除CP的统计信息。
表1-7 QCN显示和维护
RP1和RP2发出的数据流同属于一个VLAN,并且数据的传输能够沿着组网图的通路。数据流的源端RP1、RP2都支持QCN协议,拥塞检测端Switch A、SwitchB和SwitchC上使能QCN功能,且RP1、RP2、Switch A、SwitchB和SwitchC共同组成了一个CNPV为1的CND。从而,实现Switch A、SwitchB和SwitchC能够对域内的发送的携带dot1p优先级为1的数据流进行拥塞检测,当队列发生拥塞时,产生CNM拥塞通知消息,对于外网发来的所有数据流都不进行拥塞检测。
图1-6 QCN基本功能配置组网图
# 创建VLAN,并将FortyGigE1/0/1加入VLAN 100。
[SwitchA] vlan 100
[SwitchA-vlan100] port fortygige 1/0/1
[SwitchA-vlan100] quit
# 为了使Switch A上VLAN 100的报文能发送给Switch B,将FortyGigE1/0/2的链路类型配置为Trunk,并允许VLAN 100的报文通过。
[SwitchA] interface fortygige 1/0/2
[SwitchA-FortyGigE1/0/2] port link-type trunk
[SwitchA-FortyGigE1/0/2] port trunk permit vlan 100
[SwitchA-FortyGigE1/0/2] quit
# 使能LLDP功能,在接口FortyGigE1/0/1和FortyGigE1/0/2上配置允许发布CN-TLV。
[SwitchA] interface fortygige 1/0/1
[SwitchA-FortyGigE1/0/1] lldp tlv-enable dot1-tlv congestion-notification
[SwitchA-FortyGigE1/0/1] quit
[SwitchA] interface fortygige 1/0/2
[SwitchA-FortyGigE1/0/2] lldp tlv-enable dot1-tlv congestion-notification
[SwitchA-FortyGigE1/0/2] quit
# 配置QCN功能,将Switch A加入CNPV为1的CND。且配置采用LLDP协商接口的保护模式和隔离优先级
[SwitchA] qcn priority 1 auto
# 创建VLAN 100。
[SwitchB] vlan 100
[SwitchB-vlan100] quit
# 为了使Switch B上能通过VLAN 100的报文,将所有接口的链路类型配置为Trunk,并允许VLAN 100的报文通过。
[SwitchB] interface fortygige 1/0/1
[SwitchB-FortyGigE1/0/1] port link-type trunk
[SwitchB-FortyGigE1/0/1] port trunk permit vlan 100
[SwitchB-FortyGigE1/0/1] quit
[SwitchB] interface fortygige 1/0/2
[SwitchB-FortyGigE1/0/2] port link-type trunk
[SwitchB-FortyGigE1/0/2] port trunk permit vlan 100
[SwitchB-FortyGigE1/0/2] quit
[SwitchB] interface fortygige 1/0/3
[SwitchB-FortyGigE1/0/3] port link-type trunk
[SwitchB-FortyGigE1/0/3] port trunk permit vlan 100
[SwitchB-FortyGigE1/0/3] quit
# 使能LLDP功能,在接口FortyGigE1/0/1和FortyGigE1/0/3上配置允许发布CN-TLV。
[SwitchB] interface fortygige 1/0/1
[SwitchB-FortyGigE1/0/1] lldp tlv-enable dot1-tlv congestion-notification
[SwitchB-FortyGigE1/0/1] quit
[SwitchB] interface fortygige 1/0/3
[SwitchB-FortyGigE1/0/3] lldp tlv-enable dot1-tlv congestion-notification
[SwitchB-FortyGigE1/0/3] quit
#开启QCN功能,将Switch B加入CNPV为1的CND,静态配置FortyGigE1/0/2在该CND中的保护模式为edge、隔离优先级为0,其他接口通过LLDP自动协商保护模式和隔离优先级。
[SwitchB] qcn priority 1 auto
[SwitchB] interface fortygige 1/0/2
[SwitchB-FortyGigE1/0/2] qcn port priority 1 admin defense-mode edge alternate 0
[SwitchB-FortyGigE1/0/2] quit
(3) Switch C上的配置与SwitchA上的配置相同,不再赘述。
# 查看Switch A的接口下的运行信息。
[SwitchA] display qcn interface
Interface: FortyGigE1/0/1
CNPV Mode Defense-mode Alternate
---------------------------------------------------
1 comp interior 0
Interface: FortyGigE1/0/2
CNPV Mode Defense-mode Alternate
---------------------------------------------------
1 comp interior 0
# 查看SwitchB的接口下的运行信息。
[SwitchB] display qcn interface
Interface: FortyGigE1/0/1
CNPV Mode Defense-mode Alternate
---------------------------------------------------
1 comp interior 0
Interface: FortyGigE1/0/2
CNPV Mode Defense-mode Alternate
---------------------------------------------------
1 admin edge 0
Interface: FortyGigE1/0/3
CNPV Mode Defense-mode Alternate
---------------------------------------------------
1 comp interior 0
# 查看Switch C的接口下的运行信息。
[SwitchC] display qcn interface
Interface: FortyGigE1/0/1
CNPV Mode Defense-mode Alternate
---------------------------------------------------
1 comp interior 0
Interface: FortyGigE1/0/2
CNPV Mode Defense-mode Alternate
---------------------------------------------------
1 comp interior 0
· RP1和RP2发出的数据流同属于VLAN 100,RP3和RP4发出的数据流同属于VLAN 200,并且数据的传输能够沿着组网图的通路。
· RP1、RP2、Switch A、Switch B、Switch C共同组成了CNPV为1的CND。
· RP3、RP4、Switch C、Switch D、Switch E共同组成了CNPV为5的CND。
· Switch A、Switch B、Switch C能够对CNPV为1的CND内的携带的dot1p值为1的报文进行拥塞检测,当队列发生拥塞时,产生CNM拥塞通知消息,其中Switch A、Switch B不对CNPV为5的CND内发送报文进行拥塞检测。
· Switch C、SwitchD、Switch E能够对CNPV为5的CND内的携带的dot1p值为5的报文进行拥塞检测,当队列发生拥塞时,产生CNM拥塞通知消息,其中Switch D、Switch E不对CNPV为1的CND内的发送报文进行拥塞检测。
图1-7 多CND配置组网图
(1) 配置Switch A和Switch B
# 创建VLAN,并将FortyGigE1/0/1加入VLAN 100。
[SwitchA] vlan 100
[SwitchA-vlan100] port fortygige 1/0/1
[SwitchA-vlan100] quit
# 为了使Switch A上VLAN 100的报文能发送给Switch C,将FortyGigE1/0/2的链路类型配置为Trunk,并允许VLAN 100的报文通过。
[SwitchA] interface eigabitethernet 1/0/2
[SwitchA-FortyGigE1/0/2] port link-type trunk
[SwitchA-FortyGigE1/0/2] port trunk permit vlan 100
[SwitchA-FortyGigE1/0/2] quit
# 使能LLDP功能,在接口FortyGigE1/0/1和FortyGigE1/0/2上配置允许发布CN-TLV。
[SwitchA] interface fortygige 1/0/1
[SwitchA-FortyGigE1/0/1] lldp tlv-enable dot1-tlv congestion-notification
[SwitchA-FortyGigE1/0/1] quit
[SwitchA] interface fortygige 1/0/2
[SwitchA-FortyGigE1/0/2] lldp tlv-enable dot1-tlv congestion-notification
[SwitchA-FortyGigE1/0/2] quit
# 配置QCN功能,加入CNPV为1的CND。
[SwitchA] qcn priority 1 auto
Switch B上的配置与SwitchA上的配置相同,不再赘述。
# 创建VLAN 100和VLAN 200。
[SwitchC] vlan 100
[SwitchC-vlan100] quit
[SwitchC] vlan 200
[SwitchC-vlan200] quit
# 为了使Switch C上能通过VLAN 100和VLAN 200的报文,将所有接口的链路类型配置为Trunk,并允许VLAN 100和VLAN 200的报文通过。
[SwitchC] interface fortygige 1/0/1
[SwitchC-FortyGigE1/0/1] port link-type trunk
[SwitchC-FortyGigE1/0/1] port trunk permit vlan 100 200
[SwitchC-FortyGigE1/0/1] quit
[SwitchC] interface fortygige 1/0/2
[SwitchC-FortyGigE1/0/2] port link-type trunk
[SwitchC-FortyGigE1/0/2] port trunk permit vlan 100 200
[SwitchC-FortyGigE1/0/2] quit
[SwitchC] interface fortygige 1/0/3
[SwitchC-FortyGigE1/0/3] port link-type trunk
[SwitchC-FortyGigE1/0/3] port trunk permit vlan 100 200
[SwitchC-FortyGigE1/0/3] quit
[SwitchC] interface fortygige 1/0/4
[SwitchC-FortyGigE1/0/4] port link-type trunk
[SwitchC-FortyGigE1/0/4] port trunk permit vlan 100 200
[SwitchC-FortyGigE1/0/4] quit
# 使能LLDP功能,在所有接口上配置允许发布CN-TLV。
[SwitchC] interface fortygige 1/0/1
[SwitchC-FortyGigE1/0/1] lldp tlv-enable dot1-tlv congestion-notification
[SwitchC-FortyGigE1/0/1] quit
[SwitchC] interface fortygige 1/0/2
[SwitchC-FortyGigE1/0/2] lldp tlv-enable dot1-tlv congestion-notification
[SwitchC-FortyGigE1/0/2] quit
[SwitchC] interface fortygige 1/0/3
[SwitchC-FortyGigE1/0/3] lldp tlv-enable dot1-tlv congestion-notification
[SwitchC-FortyGigE1/0/3] quit
[SwitchC] interface fortygige 1/0/4
[SwitchC-FortyGigE1/0/4] lldp tlv-enable dot1-tlv congestion-notification
[SwitchC-FortyGigE1/0/4] quit
# 配置QCN功能,加入CNPV为1和5的CND,在接口FortyGigE1/0/1和FortyGigE 1/0/2上配置CNPV为5的域的保护模式为edge,隔离优先级为4。
[SwitchC] qcn priority 1 auto
[SwitchC] qcn priority 5 admin defense-mode interior-ready alternate 4
[SwitchC] interface fortygige 1/0/1
[SwitchC-FortyGigE1/0/1] qcn port priority 5 admin defense-mode edge alternate 4
[SwitchC-FortyGigE1/0/1] quit
[SwitchC] interface fortygige 1/0/2
[SwitchC-FortyGigE1/0/2] qcn port priority 5 admin defense-mode edge alternate 4
[SwitchC-FortyGigE1/0/2] quit
(3) 配置Switch D和Switch E
# 创建VLAN,并将FortyGigE1/0/1加入VLAN 200。
[SwitchD] vlan 200
[SwitchD-vlan200] port fortygige 1/0/1
[SwitchD-vlan200] quit
# 为了使Switch D上VLAN 100的报文能发送给Switch C,将FortyGigE1/0/2的链路类型配置为Trunk,并允许VLAN 100的报文通过。
[SwitchD] interface fortygige 1/0/2
[SwitchD-FortyGigE1/0/2] port link-type trunk
[SwitchD-FortyGigE1/0/2] port trunk permit vlan 200
[SwitchD-FortyGigE1/0/2] quit
# 配置QCN功能,加入CNPV为5的CND。
[SwitchD] qcn priority 5 admin defense-mode interior-ready alternate 4
Switch E上的配置与SwitchD上的配置相同,不再赘述。
# 查看Switch A的接口下的运行信息。
[SwitchA] display qcn interface
Interface: FortyGigE1/0/1
CNPV Mode Defense-mode Alternate
---------------------------------------------------
1 comp interior 0
Interface: FortyGigE1/0/2
CNPV Mode Defense-mode Alternate
---------------------------------------------------
1 comp interior 0
# 查看Switch B的接口下的运行信息。
[SwitchB] display qcn interface
Interface: FortyGigE1/0/1
CNPV Mode Defense-mode Alternate
---------------------------------------------------
1 comp interior 0
Interface: FortyGigE1/0/2
CNPV Mode Defense-mode Alternate
---------------------------------------------------
1 comp interior 0
# 查看Switch C的接口下的运行信息。
[SwitchC] display qcn interface
Interface: FortyGigE1/0/1
CNPV Mode Defense-mode Alternate
---------------------------------------------------
1 comp interior-ready 0
5 admin edge 4
Interface: FortyGigE1/0/2
CNPV Mode Defense-mode Alternate
---------------------------------------------------
1 comp interior-ready 0
5 admin edge 4
Interface: FortyGigE1/0/3
CNPV Mode Defense-mode Alternate
---------------------------------------------------
1 comp edge 0
5 comp interior-ready 4
Interface: FortyGigE1/0/4
CNPV Mode Defense-mode Alternate
---------------------------------------------------
1 comp edge 0
5 comp interior-ready 4
# 查看Switch D的接口下的运行信息。
[SwitchD] display qcn interface
Interface: FortyGigE1/0/1
CNPV Mode Defense-mode Alternate
---------------------------------------------------
5 comp interior-ready 4
Interface: FortyGigE1/0/2
CNPV Mode Defense-mode Alternate
---------------------------------------------------
5 comp interior-ready 4
# 查看Switch E的接口下的运行信息。
[SwitchE] display qcn interface
Interface: FortyGigE1/0/1
CNPV Mode Defense-mode Alternate
---------------------------------------------------
5 comp interior-ready 4
Interface: FortyGigE1/0/2
CNPV Mode Defense-mode Alternate
---------------------------------------------------
5 comp interior-ready 4
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!