Sterowanie przepływem danych w Linuxie - P. Krawczyk.pdf

(273 KB) Pobierz
124527675 UNPDF
Sterowanie przepªywem danych w Linuxie 2.2
Paweª Krawczyk
kravietz@ceti.pl
30 maja 2000
Spis tre±ci
1 Wprowadzenie
3
2 Droga pakietu przez ruter
4
3 Algorytmy kolejkowania
5
3.1 Prosta kolejka . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
3.2 Kolejka zªo»ona . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
4 Filtry
7
4.1 route . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
4.2 fw . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
4.3 u32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
5 Elementarne algorytmy kolejkowania. 8
5.1 FIFO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
5.2 TBF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
5.3 PRIO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
5.4 SFQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
5.5 RED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
5.6 CBQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
6 Rozdzielczo±¢ zegara
13
7 Proste przykªady zastosowania kolejek 14
7.1 Domy±lne ustawienia . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
7.2 Ograniczenie pasma (TBF) . . . . . . . . . . . . . . . . . . . . . . . . 14
7.3 Automatyczne wspóªdzielenie ª¡cza (SFQ) . . . . . . . . . . . . . . . 15
1
124527675.001.png
8 Podziaª ª¡cza na klasy za pomoc¡ CBQ 16
8.1 Klasykacja ltrem fw . . . . . . . . . . . . . . . . . . . . . . . . . . 18
8.2 Klasykacja ltrem route . . . . . . . . . . . . . . . . . . . . . . . . 19
8.3 Klasykacja ltrem u32 . . . . . . . . . . . . . . . . . . . . . . . . . . 19
9 Dodatki 20
9.1 Jednostki przepustowo±ci ª¡cz . . . . . . . . . . . . . . . . . . . . . . 20
10 Filtr u32 21
10.1 Selektor u32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
10.2 Parametry ogólne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
10.3 Parametry szczegóªowe . . . . . . . . . . . . . . . . . . . . . . . . . . 23
11 Inne implementacje
25
2
124527675.002.png
1 Wprowadzenie
Sterowanie przepªywem danych (trac control) jest kolejn¡ nowo±ci¡ w Linuxie 2.2.
Wªa±ciwie ju» w kernelach 2.1 zaimplementowano prosty trac shaper, ale posiadaª
on do±¢ powa»ne ograniczenia i sªu»yª wyª¡cznie do ograczania ruchu (st¡d nazwa sha-
ping). Od tej pory Linux zyskaª bardzo bogaty zespóª procedur sªu»¡cych nie tylko
do ograniczania ruchu, ale { ogólniej { do sterowania przepªywem danych. Ich za-
stosowanie to przede wszystkim optymalizacja wykorzystania ª¡cz, oraz zapewnianie
okre±lonych parametrów ª¡cza dla wybranych transmisji.
Wszystko to wi¡»e si¦ z bardzo obszernymi i szeroko obecnie dyskutowanymi za-
gadnieniami usªug o gwarantowanej jako±ci (quality of service), o które b¦dziemy
si¦ nieustannie ociera¢ podczas omawiania tego co Linux ma do zaoferowania w tej
dziedzinie.
Na pocz¡tek musimy poczyni¢ kilka zaªo»e«. Po pierwsze, ª¡cza maj¡ ograniczon¡
przepustowo±¢. Po drugie, przepustowo±ci ª¡cz w Internecie s¡ bardzo zró»nicowane.
Router mo»e przyjmowa¢ dane z Ethernetu z pr¦dko±ciami rz¦du megabitów na se-
kund¦ i wysyªa¢ je ª¡czem szeregowym o przepustowo±ci o dwa rz¦dy wielko±ci mniej-
szej. Wi¦kszo±¢ omawianych poni»ej procesów zachodzi na styku takiego szybkiego i
wolnego ª¡cza, co siª¡ rzeczy prowadzi do sytuacji, gdy cz¦±¢ pakietów nie mo»e zosta¢
ÿwepchni¦ta" w w¡skie gardªo i jest gubiona.
Zastosowanie w tym miejscu sterowanie przepªywem danych pozwala ograniczy¢
straty do minimum, poprawi¢ wykorzystanie ª¡cza, a tak»e { w razie potrzeby {
zapewni¢ okre±lonym rodzajom danych pierwsze«stwo.
I jeszcze uwaga na temat samego dokumentu. Stanowi on drugi z cyklu artykuªów
na temat nowo±ci w zakresie obsªugi protokoªu IP, jakie pojawiªy si¦ w Linuxie 2.2.
Jest przeznaczony dla ±rednio zaawansowanych administratorów sieci, chc¡cych lepiej
wykorzysta¢ dost¦pne im zasoby. Funkcjonalnie skªada si¦ z dwóch cz¦±ci { teoretycz-
nej (rozdziaªy 2{6) i praktycznej (rozdziaª 7). W pierwszej staraªem si¦ przybli»y¢
podstawy sterowania przepªywem danych w sieciach IP, ukierunkowane na imple-
mentacj¦ linuxow¡. Druga cz¦±¢ sªu»y jako podr¦czne kompendium do konguracji
QoS w dziaªaj¡cych sieciach.
3
2 Droga pakietu przez ruter
Poni»szy schemat przedstawia dziaªanie interesuj¡cego nas fragmentu funkcjonalnego
rutera. Dane przychodz¡ z kilku interfejsów i s¡ przez ruter demultipleksowane. De-
multipleksacja obejmuje usuni¦cie nagªówków warstwy ª¡cza oraz przyporz¡dkowa-
nie pakietu do danego protokoªu warstwy sieciowej, a nast¦pnie transportowej { je±li
jest on skierowany do tego hosta.
4
5
124527675.003.png
Zgłoś jeśli naruszono regulamin