扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
QoS针对不同的服务需求提供有差别的策略服务,而且在不同的链路上QoS实现及配置方式会有不同,本文主要介绍PPPoE_xDSL链路上QoS的应用及其典型配置。
缩略语:
缩略语 |
英文全名 |
中文解释 |
PPPoE |
Point-to-Point Protocol over Ethernet |
以太网承载PPP |
PPPoEoA |
PPPoE on AAL5 |
AAL5承载PPPoE |
QoS |
Quality of Service |
服务质量 |
VoIP |
Voice over IP |
IP语音 |
1 特性介绍
PPPoE是Point-to-Point Protocol over Ethernet的简称,可以使以太网的主机通过一个简单的桥接设备连到一个远端的接入集中器上。通过PPPoE协议,远端接入设备能够实现对每个接入用户的控制和计费。与传统的接入方式相比,PPPoE具有较高的性能价格比,它在包括小区组网建设等一系列应用中被广泛采用,目前流行的宽带接入方式ADSL就使用了PPPoE协议。
PPPoE协议采用Client / Server方式,它将PPP报文封装在以太网帧之内,在以太网上提供点对点的连接。
PPPoE有两个明显的阶段:Discovery阶段和PPP Session阶段,具体如下:
当一个主机想开始PPPoE进程的时候,它必须先识别接入端的以太网MAC地址,建立PPPoE的SESSION ID。这就是Discovery阶段的目的。
当PPPoE进入Session阶段后PPP报文就可以作为PPPoE帧的净荷封装在以太网帧发到对侧,SESSION ID必须是Discovery阶段确定的ID,MAC地址必须是对侧的MAC地址,PPP报文从Protocol ID开始。在Session阶段,主机或服务器任何一方都可发PADT报文通知对方结束本Session。
关于PPPoE的详细介绍,可以参考RFC2516。
xDSL采用帧结构承载ATM信元,不管线路上是否有数据,帧的传送速率是固定的。在xDSL链路上将ATM的信元放置在xDSL的数据帧上进行传输,从这个角度看,中低端路由器上的xDSL接口本质上是一种ATM接口,只是这种接口对应的传输介质是xDSL链路。xDSL链路上承载PPPoE服务实际就是在ATM上承载PPPoE(PPP over Ethernet)协议报文的协议,即PPPoEoA。PPPoEoA实质是用ATM信元承载以太网报文。在这种模式下,可以用一个PVC来模拟以太网的全部功能。为了实现在ATM上承载以太网报文,接口管理模块提供了一种新的虚拟以太网(Virtual Ethernet,VE)接口。这种接口具有以太网的特性,由用户通过配置命令动态创建。它的物理层为ATM的PVC,通过PVC收发报文;链路层为以太网协议;网络层及以上与普通以太网相同。
QoS(Quality of Service),即服务质量,可以针对各种不同需求,提供不同服务质量的网络服务。我们的QoS是基于差别服务模型(Differentiated Service)实现的,几乎所有的链路接口上都可以应用QoS来做各种流量的差别服务,但在不同的链路接口上其实现和配置的方法不尽相同,本文将介绍在PPPoE_xDSL链路上如何配置CBQ来保证语音报文带宽延时以及重要数据的带宽。
CBQ提供三种队列:EF队列(也即LLQ低延时队列),AF队列(最小保证带宽队列),Default队列。
EF队列的优先级最高,进入EF队列的报文最优先得到发送(很类似PQ)。但是它与PQ不同的在于可以对EF配置最大可用带宽,也就是说对EF队列的带宽进行限制,防止它抢占掉所有的带宽资源,以使得较低优先级队列的报文也能得到发送。
AF队列的优先级较EF队列低,在EF队列空后才能得到发送。它保证发送报文的最小带宽,也就是在接口拥塞时,保证该队列的一个最小发送带宽。在CBQ的一个policy里,可以配置多个AF队列,这多个AF队列在拥塞时各自保证各自的最小发送带宽,在不拥塞时,则按照所配置的最小带宽的数值比来分配剩余的带宽。
Default队列的优先级最低,要等待前两个队列空后才能得到发送。默认的队列规则是WFQ。
2 使用指南2.1 使用场合
当PPPoEoA链路上的数据流量需要区分服务时,比如要对某些流量进行限速或对某类报文优先保证处理时,需要配置QoS策略实现。
本文主要针对G.SHDSL链路PPPoEoA的应用中使用CBQ来保证VoIP语音质量和相对重要数据带宽为例来做典型配置。
2.2 配置步骤
该配置步骤简单说明配置的顺序,具体配置命令请阅2.4.3章节。
2.2.1 配置PPPoEoA链路。
配置PPPoEoA Server端PPPoEoA Client端,建立PPPoEoA链路。
1. 配置PPPoEoA Server端
操作 |
命令 |
创建一个虚拟模板(VT)接口(系统视图下) |
interface virtual-template vt-number |
创建一个虚拟以太网(VE)接口(系统视图下) |
interface virtual-ethernet interface-num |
在VE接口上封装PPP协议(虚拟以太网接口视图下) |
pppoe-server bind virtual-template vt-number |
为PVC配置PPPoEoA映射(PVC视图下) |
map bridge virtual-ethernet interface-num |
设置虚拟以太网接口MAC地址 |
mac-address H-H-H |
2. PPPoEoA Client端
操作 |
命令 |
创建一个拨号(Dialer)接口(系统视图下) |
Interface dialer dialer-number |
进行拨号配置(Dialer口是同) |
dialer user user-name dialer bundle number |
创建一个虚拟以太网(VE)接口(系统视图下) |
interface virtual-ethernet interface-num |
在VE接口上封装PPP协议(虚拟以太网接口视图下) |
pppoe-client dial-bundle-number number |
为PVC配置PPPoEoA映射(PVC视图下) |
map bridge virtual-ethernet interface-num |
设置虚拟以太网接口MAC地址 |
mac-address H-H-H |
2.2.2 配置QoS1. 配置报文分类规则。
分类规则可以配置acl实现,也可以跳过此步直接进入classifer视图匹配相应规则,根据具体 应用而定。
操作 |
命令 |
创建一个acl规则(系统视图下) |
acl number number |
配置匹配规则(acl 视图下) |
rule permit [ deny ] xxx |
2. 配置classifer匹配规则。
一般情况下,数据报文分几类就定义几个classifer。进入default队列的数据报文可以不用再单独定义类,因为不匹配用户定义的classifer的报文都会进入系统default队列。
操作 |
命令 |
定义类并进入类映射视图 |
traffic classifier tcl-name [ operator { and | or } ] |
定义ACL匹配规则 |
if-match [ not ] acl access-list-number |
定义DSCP匹配规则 |
if-match [ not ] dscp { dscp-value } |
3. 定义behavior并配置其特性。
确定EF及AF队列带宽分配或配置其他流行为。
操作 |
命令 |
定义一个流行为并进入流行为视图 |
traffic behavior behavior–name |
配置确保转发(AF),并配置最小可保证带宽 |
queue af bandwidth { bandwidth | pct percentage } |
配置加速转发(EF),并配置最大带宽 |
queue ef bandwidth { bandwidth [ cbs committed-burst-size ] | pct percentage [ cbs_ratio ratio] } |
4. 配置policy,将对应的classifier和behavior关联。
即给不同的类指定相应的流行为。如:语音报文进入EF队列优先发送,匹配DSCP值AF11报文进入AF队列。
操作 |
命令 |
定义策略并进入策略视图 |
qos policy policy-name |
在策略中为类指定采用的流行为 |
classifier tcl-name behavior behavior-name |
2.2.3 应用QoS
将policy应用在ATM pvc的出方向。
操作 |
命令 |
在接口上应用关联的策略 |
qos apply policy policy-name { inbound | outbound [dynamic] } |
2.3 注意事项
1) 正确配置分类规则,将实施QoS策略的流量准确区分开来。不要出现使用两条流的共同特征来分类,比如发送的两条流是优先级不同TCP报文,如果classifier 1配置匹配规则是rule permit tcp,classifier 2配置匹配特征是rule permit tcp precedence 3的,且在策略中classifier 1在classifier 2之前配置,那么classifier 2就不会匹配到任何报文,因为匹配规则是顺序优先而非深度优先。
2) QoS不能保证端到端的服务,所以需要在链路上的各个相关接口分别做QoS保证。
3) 承载PPPoEoA业务时,CAR、GTS、Remark这些操作要配在Dialer口或VT口,而RTPQ、CBQ等队列要配在出方向PVC下才可以生效。2.4 举例
以下面组网为例,介绍PPPoEoA链路上传输VoIP的QoS策略配置。
2.4.1 组网需求
本文简化组网需求为两台AR系列路由器DSL直连,一台作为PPPoEoA Server端,一台做为PPPoEoA Client端。因为QoS配置应用在端口保证,所以实际组网中的QoS配置完全可以参考下面的配置实现。通过两台PC使用NetIQ软件来构造VoIP报文和DSCP优先级为AF11的数据报文以及其他数据报文。
& 说明:
可以用其他测试仪(如smart bits)来代替PC的位置;IP电话可选,因为可使用模拟语音包代替真正语音包。
2.4.2 组网图
图 1 PPPoE_DSL组网
2.4.3 配置1. 使用的版本
display version
Copyright Notice:
All rights reserved (Jul 12 2005).
Without the owner's prior written consent, no decompiling
nor reverse-engineering shall be allowed.
Huawei-3Com Versatile Routing Platform Software
VRP(R) software, Version 3.40, Release RT-0012
Copyright (c) 2003-2005 Hangzhou Huawei-3Com Tech. Co.,Ltd. All rights reserved
.
Copyright (c) 2000-2003 Huawei Tech. Co.,Ltd. All rights reserved.
Quidway AR46-40 uptime is 0 week, 0 day, 2 hours, 22 minutes
vrbd
Routing Platform Software
Version AR46-40 8040V300R003B02D014 (COMWAREV300R002B13D004),RELEASE SOFTWARE
Compiled Jul 12 2005 19:01:59 by Houming
2. 配置路由器PPPoEoA Server端
当前视图 |
配置命令 |
简单说明 |
[Quidway] |
interface Virtual-Template 1 |
创建VT口 |
[Quidway-Virtual-Template1] |
ip address 22.1.1.1 255.255.255.0 |
配置VT口IP地址 |
[Quidway-Virtual-Template1] |
quit |
|
[Quidway] |
interface Virtual-Ethernet 1 |
创建VE口 |
[Quidway-Virtual-Ethernet1] |
pppoe-server bind Virtual-Template 1 |
做PPPoE Server绑定到VT1 |
[Quidway-Virtual-Ethernet1 |
quit |
|
[Quidway] |
interface Atm 4/0/0 |
进入SHDSL接口 |
[Quidway-Atm4/0/0] |
shdsl mode co |
指定SHDSL模式 |
[Quidway-Atm4/0/0] |
pvc 1/61 |
创建PVC |
[Quidway-atm-pvc-Atm4/0/0-1/61] |
map bridge Virtual-Ethernet1 |
配置PPPoEoA应用 |
[Quidway] |
acl number 3500 |
创建acl |
[Quidway-acl-adv-3500] |
rule 0 permit udp destination-port range 16384 32767 |
配置规则匹配语音数据报文 |
[Quidway] |
traffic classifier voip |
创建voip类 |
[Quidway-classifier-voip] |
if-match acl 3500 |
配置该类的匹配规则 |
[Quidway] |
traffic behavior voip |
创建voip行为 |
[Quidway-behavior-voip] |
queue ef bandwidth pct 30 cbs_ratio 100 |
配置EF队列并分配最大带宽(根据实际需要调整) |
[Quidway] |
traffic classifier data |
创建data类 |
[Quidway-classifier-data] |
if-match dscp af11 |
配置匹配数据报文规则 |
[Quidway] |
traffic behavior data |
创建data行为 |
[Quidway-behavior-data] |
queue af bandwidth pct 40 |
配置AF队列及所占最小带宽 |
[Quidway] |
qos policy test |
创建test策略 |
[Quidway-qospolicy-test] |
classifier voip behavior voip |
使得满足voip类的报文进入voip行为的EF队列 |
[Quidway-qospolicy-test] |
classifier data behavior data |
使得满足data类的报文进入data的AF队列 |
[Quidway] |
interface Atm 4/0/0 |
|
[Quidway-Atm4/0/0] |
pvc 1/61 |
|
[Quidway-atm-pvc-Atm4/0/0-1/61] |
service vbr-rt 2048 2048 1 |
配置服务类型 |
[Quidway-atm-pvc-Atm4/0/0-1/61] |
qos apply policy test outbound |
在PVC上应用test策略 |
[Quidway-atm-pvc-Atm4/0/0-1/61] |
tx-bd-limit 1 |
配置bd数1,在与大报文同传时更好的保证语音延时 |
[Quidway] |
ip route-static 0.0.0.0 0 22.1.1.2 |
配置静态路由 |
3. 配置路由器PPPoEoA Client端
当前视图 |
配置命令 |
简单说明 | |
[Quidway] |
interface Dialer 1 |
创建Dialer口 | |
[Quidway-Dialer1] |
ip address 22.1.1.2 255.255.255.0 |
配置Dialer口IP地址 | |
[Quidway-Dialer1] |
dialer user test |
使能DCC | |
[Quidway-Dialer1] |
dialer bundle 1 |
定义bundle number | |
[Quidway-Dialer1] |
quit |
| |
[Quidway] |
interface Virtual-Ethernet 1 |
创建VE口 | |
[Quidway-Virtual-Ethernet1] |
pppoe-client dial-bundle-number 1 |
做PPPoE Client绑定到Dialer1 | |
[Quidway-Virtual-Ethernet1 |
quit |
| |
[Quidway] |
interface Atm 2/0 |
进入SHDSL接口 | |
[Quidway-Atm2/0] |
pvc 1/61 |
创建PVC | |
[Quidway-atm-pvc-Atm2/0-1/61] |
map bridge Virtual-Ethernet1 |
配置PPPoEoA应用 | |
[Quidway] |
acl number 3500 |
创建acl | |
[Quidway-acl-adv-3500] |
rule 0 permit udp destination-port range 16384 32767 |
配置规则匹配语音数据报文 | |
[Quidway] |
traffic classifier voip |
创建voip类 | |
[Quidway-classifier-voip] |
if-match acl 3500 |
配置该类的匹配规则 | |
[Quidway] |
traffic behavior voip |
创建voip行为 | |
[Quidway-behavior-voip] |
queue ef bandwidth pct 30 cbs_ratio 100 |
配置EF队列并分配最大带宽(根据实际需要调整) | |
[Quidway] |
traffic classifier data |
创建data类 | |
[Quidway-classifier-data] |
if-match dscp af11 |
配置匹配数据报文规则 | |
[Quidway] |
traffic behavior data |
创建data行为 | |
[Quidway-behavior-data] |
queue af bandwidth pct 40 |
配置AF队列及所占最小带宽 | |
[Quidway] |
qos policy test |
创建test策略 | |
[Quidway-qospolicy-test] |
classifier voip behavior voip |
使得满足voip类的报文进入voip行为的EF队列 | |
[Quidway-qospolicy-test] |
classifier data behavior data |
使得满足data类的报文进入data的AF队列 | |
[Quidway] |
interface Atm 2/0 |
| |
[Quidway-Atm2/0] |
pvc 1/61 |
| |
[Quidway-atm-pvc-Atm2/0-1/61] |
service vbr-rt 2048 2048 1 |
配置服务类型 | |
[Quidway-atm-pvc-Atm2/0-1/61] |
qos apply policy test outbound |
在PVC上应用test策略 | |
[Quidway-atm-pvc-Atm2/0-1/61] |
tx-bd-limit 1 |
配置bd数1,在与大报文同传时更好的保证语音延时 | |
[Quidway] |
ip route-static 0.0.0.0 0 22.1.1.1 |
配置静态路由 | |
2.4.4 验证结果
在链路有拥塞时,配置在PVC下的CBQ起作用,可以优先保证语音带宽和延时,同时保证进入AF队列的报文带宽。其余报文进入default队列,优先级最低。
根据如上配置,构造三种数据流经过PPPoEoA链路,一种端口号范围在16384和32767范围内的UDP流(匹配进入EF队列),一种DSCP优先级为AF11的数据流(匹配进入AF队列),一种上述两种规则都不符合的数据流(进入default队列),发送的总流量足够大到使链路拥塞(如果接口队列显示有丢包,则表明链路已经拥塞),此时配置的QoS生效:当发送的语音报文和DSCP优先级为AF11的报文在所配置带宽范围内时,通过display qos policy interface命令可以看到,这两种数据流没有丢包,而default队列有报文丢弃:
display qos policy interface
Atm4/0/0, pvc 1/61
Direction: Outbound
Policy: test
Classifier: default-class
Matched : 3163/2256939 (Packets/Bytes)
Rule(s) : if-match any
Behavior:
Default Queue:
Flow Based Weighted Fair Queuing
Max number of hashed queues: 256
Matched : 2739/2203903 (Packets/Bytes)
Enqueued : 2033/1232063 (Packets/Bytes)
Discarded: 706/971840 (Packets/Bytes)
Discard Method: Tail
Classifier: voip
Matched : 5945/1319635 (Packets/Bytes)
Operator: AND
Rule(s) : if-match acl 3500
Behavior:
Expedited Forwarding:
Bandwidth 491 (Kbps), CBS 49100 (Bytes)
Matched : 2972/689349 (Packets/Bytes)
Enqueued : 2972/689349 (Packets/Bytes)
Discarded: 0/0 (Packets/Bytes)
Classifier: data
Matched : 12335/9626751 (Packets/Bytes)
Operator: AND
Rule(s) : if-match dscp af11
Behavior:
Assured Forwarding:
Bandwidth 655 (Kbps)
Matched : 8520/4120563 (Packets/Bytes)
Enqueued : 8520/4120563 (Packets/Bytes)
Discarded: 0/0 (Packets/Bytes)
以上display qos policy interface命令能看到EF和AF在带宽保证范围内不丢包。
EF队列比AF队列内报文优先得到发送,即EF的延时要明显小于AF延时。如果要测试进入EF队列的voip报文延时,还需要借助其它测试工具,如配置语音,实际打电话测试有无延时;利用smb测试ef队列延时明显小于背景流的延时;利用NetIQ软件测试VoIP的MOS值应该在4.0以上。
2.4.5 故障排除1. DSL链路故障
通过display current-configuration interface atm检查是否有一端配置了SHDSL MODE CO。或请参考《VRP 3.4 操作手册》接口部分及链路层相关资料。
2. 语音报文没有得到及时发送或重要数据没有得到带宽保证
首先,请确认报文分类是否准确,是不是匹配范围太宽导致其他报文进入EF或AF队列。比如想作为背景流的报文也符合EF或AF队列报文特征,或应该进入AF队列的报文也匹配进入了EF队列,此时可以将发送的所有流量分别单独发送,通过display qos policy interface查看matched类是否按预想匹配。
其次,确认实际发送流量是不是比分给它的带宽要大。
第三,如果背景流量自身有流控机制,如ftp流,则检查在PVC下是否配置了tx-bd-limit 1。
3 相关资料
VRP3.4 操作手册(V3.42)中以下几个章节:
《03-操作手册-接口》
《04-操作手册-链路层协议》
《11-操作手册-QoS》
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者