BA和PHB详解
BA和PHB动作
- 这2个内部优先级初始化为<BE, Green>。
- 报文一进入设备,如果入接口配置了trust upstream命令,则设备上行单板(接口入方向)会根据报文优先级,对照入映射表来重新设置<Service-class, color>,这一过程称为“上行映射(BA)”。
- 如果对报文配置remark,或者car后remark动作,则设备上行单板会直接去修改报文的<Service-class, color>。
- 之后,设备根据<Service-class, color>来对报文进行队列调度等一系列QoS动作。
- 这些QoS动作做完之后,设备下行单板(接口出方向)还要做出一个决定:是否根据内部优先级修改报文优先级,因为有些场景是不希望改变报文优先级的。根据内部优先级修改报文优先级的过程称为“下行反映射(PHB)”。
BA和PHB开关
设备给每个接口设置了两个“开关”来控制对该接口出方向的报文做“反映射”:
- 开关1:BA。这个开关是在流量的入口配置的,通过内部添加的信息头,会从入口经过交换网传递到出口。
- 开关2:PHB。这个开关是在流量的出口配置的。
只有两个开关同时打开,才会做反映射动作。
默认情况下,BA开关为关闭状态,PHB开关为关闭状态。
可通过表6-22所示命令行设置这两个开关的状态。
命令行 | 上、下行单板行为 | 开关状态 |
---|---|---|
trust upstream | 上行单板会执行BA,下行单板会执行PHB。 | 执行此命令,会将两个开关都打开。 |
diffserv-mode { pipe | short-pipe } | 上行单板会执行BA。 |
|
diffserv-mode uniform | 此命令为默认配置,其不改变上、下行单板行为。 | 不影响两个开关的状态。 |
service-class |
|
|
remark(上行) | 上行做BA,且直接修改报文优先级,不受两个开关的影响。 |
|
remark(下行) | 直接修改报文优先级,不受两个开关的影响。 例如,假设下行配置remark dscp 11,报文内部标记<Service-class, color>是<ef,green>,则输出报文的dscp是11,而不是根据<ef,green>查下行PHB表得到的值。如果输出报文含VLAN,则VLAN的802.1p值还是根据<ef,green>查表得到的值。如果同时配置remark dscp 11和remark 8021p,则VLAN的802.1p值也直接被修改,而不是查表所得。 |
|
qos phb enable | - | 将PHB开关打开。 |
qos phb disable | - | 将PHB开关关闭。 |
qos car { green | yellow | red } pass service-class color | 直接改<Service-class, color>。 | 不影响BA和PHB开关状态。 |
PHB动作的控制
- 打开"BA"开关的方法:接口入方向配置"trust upstream"、"remark"、"service-class"命令。
- 关闭"BA"开关的方法:接口入方向配置service-class class-value color color-value no-remark命令,或者移除上述3条命令的配置。
- 打开"PHB"开关的方法:接口出方向配置"trust upstream"或者"qos phb enable"命令。
- 关闭"PHB"开关的方法:接口出方向配置"qos phb disable"命令或者删除"trust upstream"命令。
"BA"开关 | "PHB"开关 | 是否执行QoS优先级反映射动作 |
---|---|---|
关闭 | 关闭 | 否 |
打开 | 关闭 | 否 |
打开 | 打开 | 是 |
如果报文同时携带了DSCP、802.1p和MPLS EXP,用于做优先级映射的QoS优先级字段是哪个
取决于报文入接口的配置,详细请参见表6-24。
入接口配置 | 报文类型 | 被信任的优先级标记 | |
---|---|---|---|
是否配置trust upstream命令 | 是否配置trust 802.1p命令 | ||
× | × | 任意类型 | 不信任任何字段,报文被映射到<BE,Green>。 |
× | √ | ||
√ | × | IPoE、IPoVLAN、IPoQinQ | DSCP |
IPoPPP、IPoHDLC、IPoFR | DSCP | ||
MPLS | 外层标签的EXP | ||
其他类型报文 | 不信任任何字段。
|
||
√ | √ | VLAN | 802.1p |
QinQ | 外层TAG的802.1p | ||
非VLAN也非QinQ | 不信任任何字段。报文被映射到<BE,Green>。 | ||
说明:
上述“其他类型报文”表示L2层的负荷既非IP也非MPLS报文。 |
报文哪些优先级字段会在反映射动作中被修改
出接口配置 | 反映射动作中修改的优先级 | |
---|---|---|
trust upstream命令 | trust 8021p命令 | |
不配置 | 不配置 | 不修改报文优先级 |
不配置 | 配置 | 不修改报文优先级 |
配置 | 不配置 |
|
配置 | 配置 | 仅修改外层802.1p |
新增VLAN的802.1p值设置
当报文通过设备后新增了VLAN头,其802.1p值的设置,取决于PHB开关状态。
PHB开关状态 | 新增VLAN中的802.1p取值 |
---|---|
打开 | 根据<Service-Class, color>和下行的优先级反映射表进行设置。 |
关闭 | 设置为0。 |
新增MPLS头的EXP值设置
当报文通过设备后新增了MPLS头,其802.1p值的设置,取决于PHB开关状态。
PHB开关状态 | 新增MPLS头中的EXP取值依据 |
---|---|
打开 | 内层MPLS和外层MPLS的EXP值都是根据报文的<service-class, color>值,以及下行出接口配置的PHB映射表。 |
关闭 |
|