Слайд 3Overview
What is QoS?
Label-Based Routing
IPQoS
ATM QoS
CLI
Слайд 5Definition
QoS = ability of network element to have some level of
assurance that data traffic and service requirements can be satisfied
Слайд 6QoS Approaches
Relative QoS
Example: Differentiated Services, VLAN user priority
Guaranteed QoS
Example: Integrated Services,
ATM QoS
Слайд 8Overview
History and Now
Classification and Routing
Configuration
Example
Слайд 9Label-Based Routing: History
= Evolution of source-based routing
Source-based routing:
Present in all SpeedTouch
router products up to R4.1
Allows to route traffic source and destination-based to certain gateways or ports (= atm pvcs)
= Fixed label with only source address parameter
Слайд 10Label-Based Routing: Now
Available from R4.2 onwards
Classification of traffic on many criteria
Reuses
firewall engine → all firewall criteria available
Traffic routing through different ATM PVCs with different QoS classes
Can be combined with IPQoS in future
Слайд 11Classification and Routing
Classification: before routing packet enters router and is classified
Labels
attached to routes
Routes with labels have highest priority
Routes with labels only route packets with correct labels
Слайд 12Classification and Routing – Continued
First match is chosen
Use of traffic stream
cache
First time: slow path
Next time: fast path
Слайд 13Classification and Routing – Illustrated
intf
intf
label
fwd
Fast-path
classifier
Slow-path
Слайд 14Configuration
CLI only
Label menu
Creation / deletion of labels
TOS marking possible
Слайд 15Configuration – Continued
Label / rule menu
Creation / deletion of rules
Default chain
= _auto_labels
Used for backward compatibility or when configuring source-based routes
Default chain linked to user_labels
User_labels chain to be used only
Every new rule must be attached to user_labels with certain index
Statistics possible: rule stats
Слайд 17Rules
Source Interface (preferably NOT used)
[srcintf [!]= ]
Source Interface Group (preferably
used)
[srcintfgrp [!]= <{wan|local|lan} or number>]
IP
src [!]= (IP/mask notation)
dst [!]= (IP/mask notation)
Слайд 18Rules – Continued
ToS (tagging)
tos [!]=
precedence [!]=
dscp [!]=
Protocol
prot [!]
= <{icmp|igmp|ipinip|tcp|udp|ah|esp|ipcomp} or number>
Port
srcport [!] & srcportend
dstport [!] & dstportend
Слайд 19Rules – Continued
Known ports = {echo|discard|systat|daytime|qotd|chargen|ftp-data|ftp|telnet|smtp|time|nicname|dns|domain
|sql*net|bootps|bootpctftp|gopher|finger|www-http|kerberos|rtelnet|pop2|pop3|sunrpc|auth|sqlserv|nntp|sntp|ntp
|ingres-net|netbios-ns|netbios-dgm|netbios-ssn|imap2|sql-net|pcmail-srv|snmp|snmptrap|bgp|irc-o|at-rtmp
|at-nbp|at-echo|at-zis|ipx|imap3|clearcase|ulistserv|ldap|netware-ip|snpp|ike|exec|biff|login|who|syslog
|printer|talk|ntalk|utime|rip|timed|netwall|uucp|uucp-rlogin|new-rwho|rtsp|...} or number>
Слайд 20Example
Scenario:
2 PPPoA sessions with traffic separation
Session 1: PPPoA1: only icmp traffic
Session
2: PPPoA2: only UDP and TCP traffic
4 labels required
Label ICMP rule 0: from LAN and protocol ICMP through PPPoA1
Label TCP rule 1: from LAN and protocol TCP through PPPoA2
Label UDP rule 2: from LAN and protocol UDP through PPPoA2
Label DNSLOCAL rule 3: from local and protocol UDP port 53
Слайд 21Example: Network Setup
SpeedTouch 610
Eth0 : 10.0.0.138
BRAS
Internet
PC A : 10.0.0.201
DG : 10.0.0.138
TCP
traffic, through pppoa2
ICMP traffic, through pppoa1
PPPoA1
192.168.2.19
PPPoA2
192.168.2.21
Слайд 22Configuration: Example
Start from configuration with 2 PPPoA sessions
Create labels
:label add name=dnslocal
:label
add name=icmp
:label add name=tcp
:label add name=udp
Create label rules
:label rule create chain=user_labels index=0 srcintfgrp=lan prot=icmp
label=icmp
:label rule create chain=user_labels index=1 srcintfgrp=lan prot=tcp label=tcp
:label rule create chain=user_labels index=2 srcintfgrp=lan prot=udp label=udp
:label rule create chain=user_labels index=3 srcintfgrp=local prot=udp dstport=dns label=dnslocal
Слайд 23Configuration: Example – Continued
Create routes to PPPoA1 and PPPoA2
:ip rtadd dst=0.0.0.0/0
label=dnslocal intf=pppoa2
:ip rtadd dst=0.0.0.0/0 label=icmp intf=pppoa1
:ip rtadd dst=0.0.0.0/0 label=tcp intf=pppoa2
:ip rtadd dst=0.0.0.0/0 label=udp intf=pppoa2
Remark: PPP routes can be added
Through PPP session directly
Through IP menu → used in this example because multiple routes had to be added
Слайд 25Overview
Features
Implementation
Configuration
Example
Scenario
Слайд 26New Features: Problem Solving
WAN
Gateway
Packet Loss
→ TCP slowdown
→ Voice degradation
→ Game hiccups
→
Video “noise”
Delay
→ TCP choke (BW=Window/Delay)
→ Slow response time for web browsing
Delay Variation (jitter)
→ Extra buffering delay on voice
Слайд 27New Features: How It Works – 600 Series
WAN
Gateway
Best Effort
Highest Priority
Upstream IP
traffic identified based on:
“labels”: IP header-based : configured on CPE
Diffserv Codepoints: set by applications
VLAN tags (802.1p): Set by endpoints?
TCP Ack => Ack filtering
Traffic assigned to 1 of 6 queues:
1: Expedited Forwarding: Absolute top
priority traffic (rate limited)
2-5: Assured Forwarding : each queue given
fair share of available bandwidth
6: Best Effort: take what is left
Слайд 28New Features: How It Works – 500 Series
LAN
WAN
Gateway
Best Effort
Highest Priority
Residential QoS
focused on:
Plug and play operation: VLAN, DiffServ
Priority:
EF: VoIP, Gaming
AF: interactive sessions
BE: rest
Implementation :
EF queues collapsed to 2 queues
WFQ between 2 Queues
Diffserv compliant
NOT AF compliant
Слайд 29New Features: How It Works – For Dummies
Through well-chosen defaults in
templates
Слайд 30New Features: What Is Kept for R5.3
Per flow rate limiting
ALG-based labelling
Head-of-Line
blocking
Слайд 31Implementation in 4.2.7
Classification and labelling
IPQoS queues per VP/VC
Hierarchical Fixed Priority and
Weighted Fair Queuing Scheduling
Tail Drop and Propagation discard strategies
Слайд 32Implementation in 4.2.7 – Continued
Classification of data and configuration of corresponding
internal Class (0..15)
Defclass: Default class of assigned connection
Ackclass: Class of ACK segments of TCP connection
Default set of labels with corresponding Class
Rate limiting for real-time queue
TCP-ACK filtering and prioritization
Слайд 33High-Level Module Overview
Automatic class mapping:
VLAN User Priority
ATM QoS
Слайд 34High-Level Module Overview – Example
DSCP – AF/EF
Слайд 36Configuration
intf
IPQoS configuration
Queuing mechanism
Queuing rules
Label configuration
Queuing order / Classification
Label rules
Data matching
Слайд 37IPQoS Configuration – CLI
dest = destination of interface (phonebook entry)
[state =
<{disabled|enabled}>] Enable, disable IP QoS for interface
[discard = <{tail|early}>] Packet discard strategy (congestion)
[priority = <{wfq|strict}>] Subqueue priority algorithm
[realtimerate =
] Percentage of bandwidth
[burstsize = ] Burst size in kilo bytes
[weight1 = ] Weight of queue 1 used for WFQ
[weight2 = ]
[weight3 = ]
[weight4 = ]
[maxpackets = ] Maximum number of packets in all queues
[maxbytes = ] Maximum size in kilo bytes in all queues
default
Слайд 38IPQoS Queue Configuration – CLI
Propagation from queue to next lower priority
queue
IPQoS queue configuration
dest =<> destination of interface (phonebook entry)
queue = Number of subqueue
[propagate = <{disabled|enabled}>] Propagate packets in low priority queue (instead of dropping)
[maxpackets = ] Maximum number of packets in subqueue
[maxbytes = ] Maximum subqueue size in kilo bytes
Слайд 39Default Set of Labels WFQ per VP / VC
Слайд 40Labels – CLI
Label add name
Label configuration
name =
<{voip}> Name of label to config
[classification = <{ignore|overwrite|increase}>] Methods of classification
[defclass = ] Default class of assigned connection
[ackclass = ] Class of ACK segments of TCP connection
[ttloverwrite = <{disabled|enabled}>] Enable / disable ttl overwrite
[ttl = ] Time To Live in IP packet (ttl- overwrite)
[tosmarking = <{disabled|enabled}>] Enable/disable tos marking
[tos = ] Type of Service specification in IP packet (tos-marking)
[trace = <{disabled|enabled}>] Enable/disable tracing for this label
Слайд 42Labels / Rules
Rules = Label-based routing
Multiple PVCs
Same labels / rules possible
Other
destination of routing = other PVC = other queues
Example configurations
Default queues RT and BE
WFQ with different weights
ACK prioritization for maximal downstream
Слайд 43IPQoS: Example 1
SpeedTouch 610
Eth0 : 10.0.0.138
BRAS
Internet
PC A : 10.0.0.10
DG : 10.0.0.138
IPoA
192.168.150.1
PC
A : 10.0.0.2
DG : 10.0.0.138
Слайд 44Example 1
=>:ip ifconfig intf=ipoa dest=ipoa-qos
=>:ip ipadd ...
Outdated CLI commands
=>:ipqos config dest=ipoa-qos state=enabled
=>:label rule create chain=user_labels index=0 src=10.0.0.2 label=RealTime
=>:label rule create chain=user_labels index=1 src=!10.0.0.2 label=BestEffort
Слайд 45Statistics
UDP flood from PC
VoIP call
Label rule stats
Ipqos queue stats
Слайд 46Example 2: WFQ
SpeedTouch 610
Eth0 : 10.0.0.138
IPoA 192.168.150.2
PC A : 10.0.0.1
DG :
10.0.0.138
WFQ2 5%
BRAS
Internet
PC C : 10.0.0.3
DG : 10.0.0.138
WFQ4 75%
FTP server
PC B : 10.0.0.2
DG : 10.0.0.138
WFQ3 15%
Слайд 47Example 2: WFQ – Continued
:ipqos config dest=ipoa2 state=enabled priority=wfq weight1=5 weight2=5
weight3=15 weight4=75
Default labels:
Rules:
:label rule create chain=user_labels src=10.0.0.1 label=WFQ2
:label rule create chain=user_labels src=10.0.0.2 label=WFQ3
:label rule create chain=user_labels src=10.0.0.3 label=WFQ4
Слайд 48Example 3 ACK
SpeedTouch 610
Eth0 : 10.0.0.138
BRAS
Internet
PC A : 10.0.0.10
DG : 10.0.0.138
IPoA
192.168.150.1
:label
config name=ack-prio classification=increase defclass=4 ackclass=14
:label rule create chain=user_labels src=10.0.0.0/24 label=ack-prio
MAXIMAL downstream bandwidth use!
Слайд 50IPQoS Scenario – WFQ
ATM 512kb uplink (100%)
128kb Real Time and overload
= drop (=25%)
256kb Gold and overload = propagate to Silver (=50% guaranteed)
Silver = Best Effort (rest)
RT queue 5 / 25%
WFQ
BE queue 0 /
no label match
PQ
Silver weight=30
Gold weight=66
0-5
6-7
8-9
10-11
12-13
14-15
WFQ 3 weight=2
WFQ 4 weight=2
WAN
LAN
Слайд 51IPQoS Scenario – BW
RealTime traffic has 25% from 512kb = 128kb
Remaining
512kb –128kb = 384kb for WFQ
66% of 384kb = 253kb → Gold
30% of 384kb = 115kb → Silver
Слайд 52IPQoS Scenario – BW – Continued
All available BW used
In case of
no RT traffic, minimum guaranteed BW:
→ Gold = 66% of 512kb = 338kb
Guaranteed:
128kb RT
256kb Gold + propagation to Silver
Слайд 53Upstream BW
Theoretical subdivide = max RT + Max Gold + max
Silver
RT 128kb
Gold 256kb
Silver 128kb
WFQ
Less RT + max Gold + max Silver traffic
RT
Gold
Silver
WFQ
BW 512kb
Less RT + less Silver + max Gold traffic
RT
Gold
Silver
WFQ
Less RT + less Gold + max Silver traffic
RT
Gold
Silver
WFQ
Слайд 56Scenario Overview
SpeedTouch 610
Eth0 : 10.0.0.138
BRAS
Internet
PC A : 10.0.1.3
DG : 10.0.1.138
IPoA
192.168.150.1
Phone :
10.0.1.2
DG : 10.0.1.138
PC B : 10.0.1.6
DG : 10.0.1.138
FTP-server
FTP-upload
RT-traffic
UDP-flood
Gold traffic
Слайд 57Label Rule Stats
Are labels matching?
Слайд 58IPQoS Queue Stats
Clear stats: => ipqos queue stats clear enable
Слайд 59user.ini
[ phone.ini ]
add name=dsl addr=0*38 type=ipoa
[ ipoa.ini ]
ifadd intf=ipoa dest=dsl
ifconfig intf=ipoa
ifattach
intf=ipoa
[ ipqos.ini ]
config dest=dsl state=enabled realtimerate=25 burstsize=2 weight1=30 weight2=66 weight3=2 weight4=2
queue config dest=dsl queue=0
queue config dest=dsl queue=1
queue config dest=dsl queue=2 propagate=enabled
queue config dest=dsl queue=3
queue config dest=dsl queue=4
queue config dest=dsl queue=5
Слайд 60user.ini – Continued
[ label.ini ]
add name=BestEffort
add name=Gold
add name=RealTime
add name=Silver
add name=WFQ1
add name=WFQ2
add
name=WFQ3
add name=WFQ4
config name=BestEffort classification=increase defclass=4 ackclass=4
config name=Gold classification=increase defclass=8 ackclass=8
config name=RealTime classification=increase defclass=14 ackclass=14
config name=Silver classification=increase defclass=6 ackclass=6
config name=WFQ1 classification=increase defclass=6 ackclass=6
config name=WFQ2 classification=increase defclass=8 ackclass=8
config name=WFQ3 classification=increase defclass=10 ackclass=10
config name=WFQ4 classification=increase defclass=12 ackclass=12
chain create chain=user_labels
rule create chain=user_labels index=0 src=10.0.1.2 label=RealTime
rule create chain=user_labels index=1 src=10.0.1.3 label=RealTime
rule create chain=user_labels index=2 src=10.0.1.1 label=Gold
rule create chain=user_labels index=3 src=10.0.1.4 label=Gold
rule create chain=user_labels index=4 src=10.0.1.5 label=Gold
rule create chain=user_labels index=5 src=10.0.1.6 label=Gold
Слайд 62Overview
QoS Profiles
Connection Admission Control
Shaping
Scheduling
ATM Bundling
Слайд 64Terminology
Peak Cell Rate (PCR):
Max. number of ATM cells per second that
may be sent on connection
Sustainable Cell Rate (SCR):
Average number of ATM cells per second that may be sent on connection
Maximum Burst Size (MBS):
Max. number of ATM cells per second that may be sent in burst (exceeding SCR for short period of time)
Слайд 65CBR
Constant Bit Rate
Static amount of guaranteed bandwidth
Typically used for video
GUARANTEED
PCR
NON COMPLIANT
linerate
cps
time
maxCTD
Слайд 66VBR
Variable Bit Rate
Variable amount of guaranteed bandwidth
Typically used for bursty traffic
PCR
NON
COMPLIANT
linerate
cps
time
SCR
GUARANTEED
GUARANTEED
MBS
maxCTD
Слайд 67VBR: Real-Time / Non Real-Time
Real-Time
Intended for real-time traffic with constrained delay
and delay variation values
Extra parameter: maxCTD (max. cell transfer delay,
also applicable to CBR)
Non-Real-Time
Intended for non-real-time traffic with bursty characteristic, but without transfer delay limitations
Слайд 68UBR
Unspecified Bit Rate
All traffic non-guaranteed
Variable delay, best effort
NON-GUARANTEED
PCR
NON COMPLIANT
linerate
cps
time
Слайд 69ATM QoS
Connection Admission Control
Слайд 70CAC
Connection Admission Control (CAC)
Verification if connection that is requested to be
established can be accepted
Parameters
Guaranteed bandwidths of each connection
Available line-rate
Main principle
Σ guaranteed bandwidths ≤ available line-rate
Non-guaranteed bandwidth always accepted, even when exceeding available line-rate
Слайд 71CAC – Continued
Calculation effective bandwidth:
CBR
Parameters: PCR, SCR=PCR, MBS=1 cell
Available bandwidth: DSL
line-rate
Recalculation: re-synchronization DSL-line
Rule of thumb: effective bandwidth = PCR
VBR-rt
Parameters: PCR, SCR, MBS
Available bandwidth: DSL line-rate
Recalculation: re-synchronization DSL-line
Слайд 72CAC – Continued
Calculation effective bandwidth
VBR-nrt:
Parameters: PCR, SCR, MBS
Available bandwidth: DSL line-rate
- Σ eff. real-time bandwidth
recalculation:
CAC of new real-time connection (CBR or VBR-rt)
Re-synchronization DSL-line
Useful tool: CAC excel-sheet
Слайд 74Definition
Shaping = altering traffic characteristics to ensure that cells are conform
to traffic contract
Слайд 75Mechanisms
Buffering / queuing
PCR limitation → Leaky Bucket shaping
Burst length limitation →
Token Bucket shaping
Слайд 76Connection Types
CBR, UBR: PCR shaping
VBR-rt / -nrt: PCR, SCR, MBS shaping
Слайд 78Definition
Scheduling = selecting among all queues containing at least one cell
that will be transmitted on output link
Слайд 79Selecting Order
Order of selecting:
CBR
VBR-rt
VBR-nrt
UBR
Round Robin scheduling between connections of same class
Слайд 81Concept
“Bundle” concept allows multiple virtual circuits between CPE and BRAS to
be grouped or “bundled” so that each end is treated as single IP interface. Allows ATM devices between BRAS and CPE to treat individual VCs in bundle with different QoS
Слайд 82Use Cases
VLAN user priority mapping
IP Precedence / DSCP mapping
Connection mapping
Слайд 83Priority Mapping
VLAN priority
TPID = 0x8100, TCI = priority (3bit) + CFI
(1bit) + VID (12bit)
TOS byte in IP header
IP Precedence:
DSCP:
Слайд 84ATM Bundling
Priority mapping: VLAN priority - IP Precedence / DSCP
Configuration
No need
of VLAN to use IP precedence / DSCP mapping
Слайд 86ATM Bundling
Connection mapping:
Load balancing of multiple IP-streams
Every IP-stream => stream-ID (ever
increasing)
Stream-ID modulo 16 used to match against selector values
Слайд 88CLI
Creating Connection Traffic Descriptor (CTD)
:atm qosbook ctdadd name=cbr_ctd_400 conformance=CBR
peakrate=400
:atm qosbook add
name cbr_400 txctd cbr_ctd_400
rxctd cbr_ctd_400
:atm qosbook ctdadd name=vbrrt_ctd_100 conformance=VBR
peakrate=300 sustrate=100 maxburst=1200 realtime=enabled
:atm qosbook add name vbrrt_100 txctd vbrrt_ctd_100
rxctd vbrrt_ctd_100
:atm qosbook ctdadd name=ubr_ctd_300 conformance=UBR
peakrate=300
:atm qosbook add name ubr_300 txctd ubr_ctd_300
rxctd ubr_ctd_300
Слайд 89CLI – Continued
Creating ATM interface with QoS profile
:atm phonebook add name=ph1_36
addr=1*36
:atm phonebook add name=ph2_36 addr=2*36
:atm phonebook add name=ph3_36 addr=3*36
:atm ifadd intf atm1_36
:atm ifconfig intf=atm1_36 dest=ph1_36 qos=cbr_400 ulp=mac
:atm ifattach intf=atm1_36
:atm ifadd intf atm2_36
:atm ifconfig intf=atm2_36 dest=ph2_36 qos=vbrrt_100 ulp=mac
:atm ifattach intf=atm2_36
:atm ifadd intf atm3_36
:atm ifconfig intf=atm3_36 dest=ph3_36 qos=ubr_300 ulp=mac
:atm ifattach intf=atm3_36
Слайд 90CLI – Continued
Creating ATM bundle + defining selector range
:atm bundle add
name atm_bundle
:atm bundle config name= atm_bundle policy=priority
propagate=disabled
:atm bundle ifadd name atm_bundle intf atm1_36
:atm bundle ifadd name atm_bundle intf atm2_36
:atm bundle ifadd name atm_bundle intf atm3_36
:atm bundle ifconfig name= atm_bundle intf=atm1_36
state=enabled low=0 high=5
:atm bundle ifconfig name= atm_bundle intf=atm2_36
state=enabled low=6 high=9
:atm bundle ifconfig name= atm_bundle intf=atm3_36
state=enabled low=10 high=15
:atm bundle attach name atm_bundle
Слайд 91CLI – Continued
Priority mapping: enable on incoming bridge interface
VLAN priority
:eth bridge
ifconfig intf=ethport1 prioconfig=overwrite
:eth bridge ifconfig intf=ethport1 prioconfig=increase
IP precedence
:eth bridge ifconfig intf=ethport1 prioconfig=overwrite
ipprec=precedence
DSCP
:eth bridge ifconfig intf=ethport1 prioconfig=overwrite
ipprec=dscp