270 likes | 411 Views
QoS Testing between CNAF and Pisa. Test results Nov 29 2005. Outline. Objectives QoS scenarios Best-effort TCP performance results Test on differentiation of outgoing traffic from INFN-Pisa to CNAF Best-effort UDP performance results Future work. Objectives.
E N D
QoS Testing between CNAF and Pisa Test results Nov 29 2005
Outline • Objectives • QoS scenarios • Best-effort TCP performance results • Test on differentiation of outgoing traffic from INFN-Pisa to CNAF • Best-effort UDP performance results • Future work
Objectives • Test traffic differentiation techniques on the customer edge routers of the INFN local area networks, for allocation of a minimum guaranteed bandwidth to a number of traffic classes • Traffic classification and marking • Scheduling: Weighted Round Robin (WRR) • No policing (for the moment)
Testbed configuration • CNAF: • Juniper M10 (dedicated to testing) • GigaEthernet switch Extreme Summit 400 • Two end-nodes (64 bit PCI slot network interface, 1 GEthernet), connected to the Service Challenge GigaEthernet switch • Capacity to/from GARR: 2 Gbit (boundling of two GEthernet interfaces) • PISA • Juniper M7 (production router) • Two end-node (64 bit PCI-X slot network interface, 1 GEthernet; 1 Fast-Ethernet interface ) • Capacity to/from GARR: 1 Gbit
Traffic Classes • User traffic: • Bandwidth range: [300, 1000] Mb/s • Minimum 30% of link capacity guaranteed in case of congestion • TOS Preference codepoint: 000 (best-effort) • Service Challenge traffic: • Bandwidth range: [700, 1000] Mb/s • Minimum 70% of link capacity guaranteed in case of congestion • TOS Preference codepoit: 001 (assured-rate) • Purposes of traffic differentiation: • Allocation of minimum guaranteed bandwidth to input/output legacy and Service Challenge traffic classes in case of congestion • Fair distribution of link capacity in case of congestion • Possibility to get more bandwidth than the minimum guaranteed in case of spare link capacity
Scenario 1: differentiation of outgoing traffic (from Pisa) Juniper M10 Juniper M7 GARR Users 30% 1 Gb/s 2.0 Gb/s Service Challenge Service Challenge 70% bottleneck CNAF INFN Pisa
Scenario 2: differentiation of incoming traffic (to Pisa) Juniper M10 Juniper M7 GARR Users 30% 1 Gb/s 2.0 Gb/s Service Challenge Service Challenge 70% bottleneck CNAF INFN Pisa
Scenario 3: differentiation of outgoing traffic (from CNAF) Pisa Juniper M10 GARR 20% Torino 20% CNAF 20% 2.0 Gb/s Legnaro 20% 20% Milano bottleneck Bari
Scenario 4: differentiation of incoming traffic (to CNAF) Pisa Juniper M10 1Gb/s Torino GARR 1Gb/s CNAF 1Gb/s Legnaro 2.0 Gb/s 1Gb/s 100Mb/s Milano bottleneck Bari
Best-effort TCP performance • Initially asymmetric throughput to/from Pisa (probably due to misconfiguration in the PISA MAN), now solved • Performance (with network configuration fixed):
Differentiation of outgoing traffic (from Pisa) Juniper M10 Juniper M7 GARR SC2 Users BE1 BE2 1 Gb/s 30% 2.0 Gb/s Service Challenge BE1 BE2 SC1 AR 70% AR bottleneck CNAF INFN Pisa
Test Marker [datatag1test] /home/bencivenni > tcpdump -c 20 host 212.189.152.177 -i eth0 • tcpdump: listening on eth0 • 11:18:33.254874 192.135.23.200.20000 > qos1.pi.infn.it.33233: . ack 2468187583 win 18432 (DF) • 11:18:33.254878 qos1.pi.infn.it.33233 > 192.135.23.200.20000: . 1:1461(1460) ack 0 win 22 (DF) [tos 0x20]
Best-effort UDP performance (1/3) • Performance issues in the LAN CNAF, probably due to the NIC hardware used
Best-effort UDP performance 1/3:traffic profile • Purpose of test: verify the inpact of production traffic on the UDP constant bit rate traffic profile generated at the source (constant inter-packet gap) • Production traffic mixing with test traffic on most of the end-to-end path under test
PISA Operating System: Linux 2.4.21-32.0.1.ELsmp iperf version 1.7.0 MTU = 1500 Byte BUS PCI CNAF Operating System: Linux 2.4.21- 20.EL.cernsmp iperf version 2.0.1 MTU = 5000 Byte BUS PCI-X Differences between CNAF and INFN Pisa
datatag1test Athlon Xeon INFN Pisa 131.154.99.32 Eth2 192.168.1.11 192.135.23.200 Eth0 1gb/s 64 bit/133 Mhz 212.189.152.177 Eth1 1Gb/s 32 bit Eth0 1Gb/s 64 bit Switch Extreme Summit 400-48pt Jumbo frames 9216 test7200a 131.154.99.201 Xeon Router Juniper M7 Eth2 192.168.1.14 192.135.23.201 Eth1 1Gb/s 32 bit Eth0 1Gb/s 64 bit 1 Gb/s nettetst1 GARR Test 131.154.100.1 opteron SC Eth0 192.168.1.101 192.135.23.202 Eth2 10Gb/s 64 bit/133 Mhz Eth1 1Gb/s 64bit 2 Gb/s Balanced Boundling SC nettest2 Switch Extreme Summit 400-48pt Jumbo frames 9216 131.154.100.2 opteron Eth0 Router Juniper M10 192.168.1.102 Eth2 10Gb/s 64 bit/133 Mhz
Iperf: Command line option • -l (iperf_len): The length of buffers to read or write. Iperf works by writing an array of len bytes a number of times. Default is 8 KB for TCP, 1470 bytes for UDP. Note for UDP, this is the datagram size and needs to be lowered when using IPv6 addressing to 1450 or less to avoid fragmentation.
Router Configuration: Class of Service (1/2) class-of-service { classifiers { # Definisco traffico best-effort tutto ciò inet-precedence inet-precedence-service-challenge{ che entra con un TOS = 000 # forwarding-class best-effort { loss-priority high code-points 000; } } forwarding-classes { # Definisco le 2 code # queue 0 best-effort; queue 2 ip-premium; } interfaces { ge-y/y/y { scheduler-map service-challenge-ar-be; unit 0 { rewrite-rules { # All’interfaccia d’uscita marco i pacchetti del inet-precedence ar-mark; traffico assured-rate con il TOS opportuno } che verrà poi specificato nelle rewrite-rules # } ............ # Associo alle interfacce fastethrnet il traffico best-effort #
Router Configuration: Class of Service (2/2) rewrite-rules { inet-precedence ar-mark { forwarding-class assured-rate { loss-priority low code-point 001; # TOS = 001 → Assured forwarding # } } } scheduler-maps { service-challenge-ar-be { forwarding-class assured-rate scheduler sch-assured-rate; forwarding-class best-effort scheduler sch-best-effort; } } schedulers { # Servo per il 70% del tempo la coda del sch-assured-rate traffico assurde-srate e per il 30% quella transmit-rate percent 70; del traffico best-effort # buffer-size percent 70; priority high; } sch-best-effort { transmit-rate percent 30; buffer-size percent 30; priority low;
firewall { filter assured-rate-traffic { #Etichetto come assured-rate- term term-192.135.23.200{ traffic il traffico generato da from { 212.189.152.177e destinato source-address { a 192.135.23.200 # 212.189.152.177/32; } destination-address { 192.135.23.200/32; } protocol [ udp tcp ]; } then { accept; forwarding-class assured-rate; } } term term-192.135.23.201{ #Etichetto come best-effort- from { traffic il traffico generato da source-address { 212.189.152.177 e destinato 212.189.152.177/32; a 192.135.23.201 # } destination-address { 192.135.23.201/32; } protocol [ udp tcp ]; then { accept; forwarding-class best-effort; } } term default-action { # Tutto ciò che non è stato specificato then { precedentemente viene accettato e accept; classificato come traffico best forwarding-class best-effort; effort # } } } } Router Configuration: Firewall