Techinka: Konfiguracja systemu Vyatta w ćwiczeniach Autor: Łukasz Łaciak | Data: 09/06/11
|
|
12. QoS.
Quality of Service jest zbiorem usług pozwalających na zarządzanie jakością oraz przepływem dostarczanego ruchu, wedle zapotrzebowania i aktualnych wymagań. Dzięki QoS istnieje możliwość sprawiedliwego podziału pasma, priorytetyzacja pewnych usług, ograniczanie przepustowości, a także kolejkowanie ruchu oraz odrzucanie ruchu nadmiarowego.
Określanie priorytetów ruchu jest możliwe dzięki usługom zróżnicowanym (DiffServ, ang. Differentiated Services), które określają ważność danej klasy ruchu ustawiając sześć bitów w polu TOS (ang. Type Of Service) nagłówka IP. Tak oznaczone pakiety mogą być odpowiednio traktowane i przesyłane w zależności od nadanych im właściwości.
Domyślnie kształtowanie ruchu opiera się o politykę sprawiedliwej kolejki (ang. fair queue) wprowadzaną przez algorytm SFQ (ang. Stochastic Fairness Queuing), wraz z dzieleniem ruchu po równo na każdą maszynę zgodnie z algorytmem Token Bucket.
12.1. Topologia.
Obraz 12-1: Topologia sieci użytej w zadaniu
12.2. Cel oraz założenia.
Celem ćwiczenia jest ukazanie możliwości kształtowania ruchu w sieci Ethernet w oparciu o wbudowany system kolejkowania Token Bucket.
Do podglądu ruchu, a pośrednio do rozwiązywania problemów, może być przydatny program Iptraf, którego instalacja została przeprowadzona w ćwiczeniu "11. Load Balancing i Failover".
Do szerszego wykorzystania QoS niezbędna może okazać się wiedza o działaniu algorytmów takich jak: Token Bucket, SFQ, FIFO, Round-Robin, RED oraz WRED, a także dobra znajomość DiffServ.
12.3. Przygotowanie wirtualnych sieci.
R1:
eth0 - NAT (VMnet8)
eth1 - VMnet2
Host:
eth0 - VMnet2
Host WIN:
Karta Ethernet - VMnet2
12.4. Konfiguracja.
Po wczytaniu ostatniej zapisanej konfiguracji, należy wprowadzić kilka poprawek.
R1:
delete interfaces ethernet eth1 address
set interfaces ethernet eth1 address 192.168.0.1/24
commit
Host:
delete interfaces ethernet eth0 address
set interfaces ethernet eth0 address 192.168.0.2/24
set system gateway-address 192.168.0.1
commit
Analogicznie, na komputerze Host WIN, należy zmienić adres karty sieciowej na 192.168.0.3, a adres bramy na 192.168.0.1.
Ruch będzie kierowany zgodnie z następującym scenariuszem: komputer Host o adresie MAC 00:0c:29:ee:a3:fe będzie miał gwarantowane 65% szybkości łącza, a maszyna Host WIN o adresie MAC 00:0c:29:a9:90:7c będzie miała gwarantowane 25%. Każdy z nich będzie mógł wykorzystać do 95% łącza, a protokół SSL będzie posiadał priorytet "krytyczny", dzięki czemu nie będzie na nim opóźnień.
Składnia użytych poleceń:
- 'set traffic-policy shaper < nazwa> bandwidth < wartość>' - ustala szybkość łącza automatycznie, w kilobitach lub innej jednostce (wymagana jednostka).
- 'set traffic-policy shaper < nazwa> class < numer> match < nazwa> ip destination port < numer>' -definiuje port klasy ruchu.
- 'set traffic-policy shaper < nazwa> class < numer> set-dscp < wartość>' -określa priorytet dla klasy ruchu.
- 'set traffic-policy shaper < nazwa> class < numer> bandwidth < wartość>' -definiuje gwarantowaną przepływność ruchu dla klasy, wyrażoną w procentach, kilobitach lub innej jednostce.
- 'set traffic-policy shaper < nazwa> class < numer> ceiling < wartość>' -definiuje maksymalną przepływność ruchu dla klasy, wyrażoną w procentach, kilobitach lub innej jednostce.
- 'set traffic-policy shaper < nazwa> class < numer> match < nazwa> ip destination address < adres sieci>' -określa adres sieci lub hosta (maska 32) dla danej klasy ruchu.
- 'set traffic-policy shaper < nazwa> default bandwidth < wartość>' - definiuje gwarantowaną przepływność ruchu dla klasy domyślnej, wyrażoną w procentach, kilobitach lub innej jednostce.
- 'set traffic-policy shaper < nazwa> default ceiling < wartość>' - definiuje maksymalną przepływność ruchu dla klasy domyślnej, wyrażoną w procentach, kilobitach lub innej jednostce.
R1:
set traffic-policy shaper PODZIAL bandwidth 2048
set traffic-policy shaper PODZIAL class 5 match DOPASOWANIE ip destination port 443
set traffic-policy shaper PODZIAL class 5 set-dscp critical
set traffic-policy shaper PODZIAL class 10 bandwidth 65%
set traffic-policy shaper PODZIAL class 10 ceiling 95%
set traffic-policy shaper PODZIAL class 10 match DOPASOWANIE ip destination address 192.168.0.2/32
set traffic-policy shaper PODZIAL class 20 bandwidth 25%
set traffic-policy shaper PODZIAL class 20 ceiling 95%
set traffic-policy shaper PODZIAL class 20 match DOPASOWANIE ip destination address 192.168.0.3/32
set traffic-policy shaper PODZIAL default bandwidth 100%
set traffic-policy shaper PODZIAL default ceiling 100%
set interfaces ethernet eth1 traffic-policy out PODZIAL
commit
Aby sprawdzić czy klasyfikacja ruchu działa prawidłowo, wystarczy na komputerach Host i Host WIN w tym samym czasie włączyć pobieranie jakiegoś pliku. Prędkości na tych maszynach powinny oscylować wokół ustalonych, co widać na obrazach 12-2 oraz 12-3.
Obraz 12-2: Pobieranie pliku na komputerze Host
Obraz 12-3: Pobieranie pliku na komputerze Host WIN
Po chwili równoległego pobierania na obu maszynach, poleceniem 'show queueing ethernet' (w trybie operacyjnym na komputerze R1) można wyświetlić właściwości kolejek. Obraz 12-4 przedstawia te właściwości, a w nich m. in. ilość przesłanych oraz zakolejkowanych pakietów dla każdej z klas. Klasa "root" jest główną klasą danej polityki, a klasa "21" jest klasą domyślną.
Obraz 12-4: Właściwości kolejki na maszynie R1
Oczywiście po wyłączeniu pobierania na jednym z komputerów, drugi będzie osiągał do 95% ustalonej prędkości łącza.
Zarządzanie ruchem może bardzo ułatwić życie, szczególnie w dużych sieciach, w sieciach, gdzie jakiś ruch musi być priorytetowany, a także w sieciach domowych, gdzie korzysta się intensywnie z Internetu oraz programów P2P, które potrafią całkowicie zapchać łącze.
|