07-03-2009 04:09 AM - edited 03-06-2019 06:34 AM
Hi,
The goal of my lab is to test and prove the effect of QoS between a central site and a remote site. It simulates the case of a customer where I have to configure QoS. The link between the central site and the remote site is normaly a SDSL 2 Mb/s, but in my lab it is a simple 100Mb ethernet link. However the 2 Mb/s bitrate is between the operator's routers and not between the custmer's equipments. That's why I want to create the bottleneck on the customer's routers and to adjust the bitrate to 2 Mb/s, in order to be able to do QoS prioritization.
The customer uses GRE tunnels between central and remote sites to do dynamic routing.
On GRE tunnel, you can only use Traffic shaping to use CBWFQ (hierarchical service policy).
For the lab, the speed of the routers (Cisco 1721) is set to 100 Mb/s.
The soft Wan killer is used to saturate the link : always UDP discard
First of all, I would like to show how the voice is altered without QoS.
Wan killer is used with a bandwidth of 100000 kb/s, a size of packet of 1440 bytes.
Until 17 % of flooding (17 Mb/s) the phone call quality is OK (in the same direction than the flooding). The note given by the cisco 7960 is 4.500 which is excellent, despite the 2 Mb/s shapping.
Here is a show of the Fa 0 interface on R2 :
R2#sh int fa 0
FastEthernet0 is up, line protocol is up
Hardware is PQUICC_FEC, address is 0013.199e.2d0d (bia 0013.199e.2d0d)
MTU 1500 bytes, BW 100000 Kbit, DLY 1000 usec,
reliability 255/255, txload 6/255, rxload 44/255
Encapsulation 802.1Q Virtual LAN, Vlan ID 1., loopback not set
Full-duplex, 100Mb/s, 100BaseTX/FX
Input queue: 23/75/4/0 (size/max/drops/flushes); Total output drops: 0
Queueing strategy: fifo
Output queue: 0/40 (size/max)
30 second input rate 17575000 bits/sec, 1747 packets/sec
30 second output rate 2374000 bits/sec, 429 packets/sec
Here is a show of the Tunnel GRE interface :
R2#sh int tu 1
Tunnel1 is up, line protocol is up
Hardware is Tunnel
Internet address is 172.16.0.2/24
MTU 1514 bytes, BW 2000 Kbit, DLY 500000 usec,
reliability 255/255, txload 255/255, rxload 44/255
Encapsulation TUNNEL, loopback not set
Tunnel source 192.168.0.2 (FastEthernet0.1), destination 192.168.0.1
Tunnel protocol/transport GRE/IP, key disabled, sequencing disabled
Tunnel TTL 255
Checksumming of packets disabled, fast tunneling enabled
Tunnel transmit bandwidth 8000 (kbps)
Tunnel receive bandwidth 8000 (kbps)
Input queue: 3/75/0/0 (size/max/drops/flushes); Total output drops: 49074
Queueing strategy: fifo
Output queue: 0/0 (size/max)
30 second input rate 352000 bits/sec, 214 packets/sec
30 second output rate 2000000 bits/sec, 214 packets/sec
Here are the shapper statistics :
R2#sh policy-map interface
Tunnel1
Service-policy output: shape
Class-map: class-default (match-any)
76719 packets, 106314226 bytes
30 second offered rate 17024000 bps, drop rate 14388000 bps
Match: any
Traffic Shaping
Target/Average Byte Sustain Excess Interval Increment
Rate Limit bits/int bits/int (ms) (bytes)
2000000/2000000 12500 50000 50000 25 6250
Adapt Queue Packets Bytes Packets Bytes Shaping
Active Depth Delayed Delayed Active
- 64 10816 12335322 10816 12335322 yes
Traffic shaping is active and a lot of packet are drop. Why is the phone call quality not affected ???
At this step, no queuing tool is used by the shapper, it is in Fifo mode I guess. Fair-queuing is not activated on the class-default where the shapping is configured.
I don't understand why the voice, which has a bitrate of 80ko/s approximatively and is in competition with an 17 Mb/s UDP flooding stream, can be unaffected ???
Is there something I forgot ?
I would appreciate your help on this, thank you.
Thomas
07-03-2009 04:10 AM
Just another precision :
If I decrease the size of packet or increase the flood bitrate, the voice quality degrades, but it seems to be due to input drops, the queue is full, look a the "show int fa 0" in this case :
R2#sh int fa0
FastEthernet0 is up, line protocol is up
Hardware is PQUICC_FEC, address is 0013.199e.2d0d (bia 0013.199e.2d0d)
MTU 1500 bytes, BW 100000 Kbit, DLY 1000 usec,
reliability 255/255, txload 4/255, rxload 29/255
Encapsulation 802.1Q Virtual LAN, Vlan ID 1., loopback not set
Full-duplex, 100Mb/s, 100BaseTX/FX
ARP type: ARPA, ARP Timeout 04:00:00
Input queue: 76/75/9251/0 (size/max/drops/flushes); Total output drops: 0
Queueing strategy: fifo
Output queue: 0/40 (size/max)
30 second input rate 11622000 bits/sec, 1285 packets/sec
30 second output rate 1677000 bits/sec, 293 packets/sec
07-03-2009 08:59 AM
Good results are likely due to shaper (itself) actually queuing using (W)FQ, not FIFO.
07-04-2009 10:42 AM
Thank you for your answer.
I thought about that too, but I configured the class-default of the policy-map "shape" with "no fair-queue". This is the default comand, that's why you can't see it int the running config. If fair-queuing were used, you would see "fair-queue" under the class-default for policy-map shape.
07-04-2009 05:43 PM
No, I'm not referring to FQ as defined within CBWFQ's class-default, whether implicit or explicit. I'm referring to the shaper itself (at least before 12.4[20]T).
I.e.
policy-map x
class class-default
no fair-queue
shape average | peak #
07-05-2009 11:45 PM
Hi joseph,
Yes that's what I said too. I meant the shaper default class.
My configuration is :
policy-map shape
class class-default
shape average 2000000
no fair-queue
but the no fair-queue line is not visible as it is the default behaviour. You only see the line if you configure FQ.
07-06-2009 03:16 AM
No, again, not CBWFQ's class-default FQ, the shaper's FQ. I.e., CBWFQ queues for the defined class, for class-default, either FIFO or WFQ, and/or queues for shaped traffic. They're two different queuing points. I realize, the expectation is that shaped traffic is directly pushed into the CBWFQ class queue, but that doesn't seem to often be the way it works.
07-06-2009 06:23 AM
Ok I see what you mean. So do you know how to know if the shaper uses Fifo ou WFQ ?
I tried to use a child policy in the default class where the shape is used, in order to force the queueing mechanism of the shaper. It seems to work better, as As soon as the shaper becomes active, the voice quality level reported by the cisco-phones begin to decrease.
The child policy is configured as following :
policy-map llq
class dscp46
priority 90
class class-default
bandwidth 75
policy-map shape
class class-default
shape average 2000000
service-policy llq
With class dscp46, voice is OK, without it is not as good.
Thanks
07-06-2009 09:01 AM
"So do you know how to know if the shaper uses Fifo ou WFQ ? "
My understanding, shaper within CBWFQ, before 12.4(20)T, WFQ; later IOS depends on CBWFQ class configuration.
"I tried to use a child policy in the default class where the shape is used, in order to force the queueing mechanism of the shaper."
I had thought to mention a hierarchal policy, but didn't want to confuse the issue.
BTW, I sometimes wonder whether the shaper pushes ALL shaped packets to the child policy. From watching policies like your recent example, I suspect, at least on some IOSs, the shaper still maintains its own (minimal?) queue(s), and pushes its queue(s) overflow into the child policy.
Discover and save your favorite ideas. Come back to expert answers, step-by-step guides, recent topics, and more.
New here? Get started with these tips. How to use Community New member guide