Vous êtes sur la page 1sur 6

Markowanie ruchu

W sieciach komputerowych bardzo wanym elementem zapewniajcym komfort pracy jest bandwidth-manager. Urzdzenie to ogranicza ruch jednego typu, najczsciej by zrobi miejsce dla ruchu innego typu. Jeeli nie zastosujemy kontroli pasma w najlepszym przypadku dojdzie do sytuacji, kiedy to jeden rodzaj ruchu bdzie musia na sie wymusi swj przydzia pasma z gwnego cza. W systemie MikroTik jest moliwo atwego ograniczania przepustowoci z uyciem kolejek prostych (simple queues). Niekiedy jednak istnieje konieczno zrobienia bardziej zaawansowanego podziau przepustowoci - ksztaotwania ruchu z wykoystaniem drzewa kolejek (queue tree). Potrzeba ta, wystepuje przedewszystkim wtedy, kiedy chcemy mie wiksz kontrole nad ruchem, chcemy rnie podchodzi do rnego rodzaju ruchu lub te dawa priorytety i gwarantowac pasmo w/g naszych wasnych zaoe.

Pierwsz czynnoci jak musimy wykona jest markowanie ruchu. Markowanie jest to proces polegajcy na wirtualnym "oznaczeniu" (z ang. mark) danych ktre maj jakie cechy charakterystyczny (np. adres ip rda lub port docelowy) Chcc ksztaotwa ruch dynamicznie dla grupy userw moemy to zrobi: Po adresie IP - skuteczne w wypadku routingu i NAT'a Po adresie MAC - skuteczne w wypadku przezroczystego bridge'a Dzisiaj zajmiemy si tym pierwszym - a mianowicie markowaniem po adresie IP uytkownika. Dla wygody w generowaniu duej iloci wpisw polecam stosowanie do tego skryptw. Aby korzysta ze skryptw naley (winbox) wybra z lewego menu: System -> Scrtipts W dalszej czci raportu skrypty wykonwane przez wew. interpretator skryptw w systemie bdziemy oznacza "(skrypt)"

Pniej w nowym oknie klikn na symbol +

I zawarto skryptu wpisa do pola Source

Po zatwierdzeniu, zaznaczamy wybrany skrypt i klikamy na przycisk Run Script

Pierwszym skryptem ktry musimy wykona jest : (skrypt)

:for x from 2 to 254 do={ /ip firewall mangle add chain=prerouting src-address=(192.168.0. . $x ) action=mark-packet new-packet-mark=( $x . upload ) passthrough=no }
to jest ruch, ktry wychodzi od usera (jego upload). Jak nie trudno si domyle eby zmieni klase adresow ze 192.168.0 naley edytowa wpis "src-address=(192.168.0. " wane jest zachowanie umiejscowienia kropek jak w przykadzie powyej. Podobnie rzecz si ma z zakresem od 2 do 254 - moemy to atwo edytowa wpisujc satysfakcjonujce nas wartoci (skrypt)

:for x from 2 to 254 do={ /ip firewall mangle add chain=postrouting dst-address=(192.168.0. . $x ) action=mark-packet new-packet-mark=( $x . download ) passthrough=no }
a to z kolei mark w kierunku internet -> user czyli jego download Przygotowania do ograniczania pasma 2. Utworzenie nowego typu kolejki (do stochastycznego podziau): wpisy poprzedzone (terminal) z kolei wykonujemy wprowadzajc je z terminala:

(terminal)

/queue type add name="sfq" kind=sfq sfq-perturb=5 sfq-allot=1514


To ten element decyduje o algorytmie, dziki ktremu, bd si odbyway procesy wspdzielenia pasma w obrbie jednej grupy/hierarchii

3. Utworzenie kolejki gownej W kolejce gwnej dziej si procesy czystego ksztatowania ruchu zgodne z htb na zasadzie algorytmu okrelonego poprzez typ kolejki. Naszym celem jest ograniczanie pasma w systemie Wejscie <-> Wyjcie zatem musimy utworzy Kolejke gwn (parent), ktra zajmie si oprcz kontroli swoich dzieci (children) odpowiednio na: Interfejsie Zewntrznym (Internet) Kolejka ksztatujca UPLOAD Interfejsie Lokalnym (Lan) Kolejka ksztatujca DOWNLOAD Przy okazji skorzystamy z moliwoci kontroli maksymalnego pasma dostpnego dla danego kierunku transmisji w celu kontroli ew. naduy globalnych.

(terminal)

/queue tree add name="Download" parent=Lan queue=sfq max-limit=1730k


Powstanie nowa kolejka, przyczepiona do interfejsu wewntrznego Lan (terminal)

/queue tree add name="Upload" parent=Internet queue=sfq max-limit=1730k


Powstanie kolejka, przyczepiona do interfejsu zewntrznego Internet Przykad zakada uycie cza symetrycznego POLPAK 2Mbps, jak widzimy warto 2048Kbps zostaa pomniejszona o okoo 10% - eby zapewni poziom usug przy maksymalnym wysyceniu kolejki. Dla czy DSL wane jest dodatkowe chronienie cennego uploadu sugeruje zmniejszenie wartoci maksymalnej (realnej) nawet o 30% Kolejki Majc kolejki gwne (parent) jedyne co wystarczy zrobi to przyklei do nich poszczeglnych abonentw by ci w ramach odpowiednich priorytetw dzielili swoje pasmo. Odpowiednie skrypciki zaatwiaj spraw szybko i skutecznie dla caego zakresu od 2 do 254.

(skrypt)

:for z from 2 to 254 do={ /queue tree add parent=Download packet-mark=( $z . download ) limit-at=32000 queue=sfq priority=7 max-limit=256000 }
Skrypt wygeneruje 254 kolejki, kada z nich ograniczy download dla pojedynczego marka (czyli de-fakto adresu IP) gwarantujc mu pasmo 32Kbps i ograniczajc do 256Kbps, gwarancja bdzie w tym ukadzie polegaa na zliczeniu dwch wirtualnych kolejek jedna liczca limit-at (prdko gwarantowana), druga liczca max-limit (prdko maksymalna), z zaoeniem e kolejka limit-at bdzie sza osobnym wyej priorytetyzowanym torem do momentu przekroczenia wartoci limit-at. Po przekroczeniu limit-at warto priorytetu jest ignorowana (rwna najniszej, czyli 8) zatem uytkownicy zapychajcy cze w momencie bd niemale ignorowani jeeli nowy uytkownik bdzie mia ochot wykorzysta do 32Kbps pasma zapewniajc w miar rwne rozoenie cza i przede wszystkim odpowiedni poziom dostpu do usug. Warto limit-at powinna odpowiada wartoci rzeczywistej cza podzielonej przez liczb uytkownikw razy wspczynnik jednoczesnoci (ok. 3) (skrypt)

:for b from 2 to 254 do={ /queue tree add parent=Upload packet-mark=( $b . upload ) limit-at=32000 queue=sfq priority=7 max-limit=220000 }
Jeszcze tylko Upload, zalecam oszczdzanie uploadu, nawet dla czy symetrycznych nowe programy p2p potrafi korzystajc z wad algorytmw htb i innych, impulsowo wymusza wiksz ilo ruchu anieli pozwala na to kolejka takie zjawisko atwo opanowac zmniejszajc maksymaln warto uploadu. Po zakoczeniu nasze kolejki powinny wyglda mniejwicej tak: (jest to przykad z dziaajcego routera, skonfigurowanego analogicznie z niewielkimi rnica mi)

Modyfikacje, ulepszanie, usprawnianie

Moemy wyrzuci z marku ruch ICMP przydatne jeeli chcemy zapewni dobre pingi niezalenie od wysycenia cza i indywidualnych kolejek userw. W tym celu musimy doda na samym pocztku (przed innymi regukami w /ip firewall mangle) (terminal)

/ip firewall mangle add chain=prerouting protocol=icmp action=accept


Reguka ta wybije ruch ICMP z reszty zamanglowanych reguek Moemy te stosujc kilka rnych markw dla kadego usera, ustawi indywidualnie ilo ruchu danego typu jak uytkownik moe operowa. Niemniej jednak naley pamita, e dua liczba wpisw niekoniecznie jest dobra. Wszystko zaley od generowanego ruchu i mocy obliczeniowej maszyny. Testowa maszyna oparta o procesor Pentium III 1000MHz bezproblemu radzia sobie z ruchem 1000 uytkownikw, aczkolwiek zrezygnowalismy wtedy z wielu dodatkowych funkcji takich jak connection tracking i rozbudowany firewall - tworzc praktycznie przezroczysty bandwidtch-manager. Poniewa w wersji systemu RouterOS 3.0 jest moliwoc koystania z wielowtkowoci, teoretycznie dodatkowy procesor powinien zwikszy wydajno dwukrotnie - ale nie liczy bym na to tak bardzo. Do ksztatowania ruchu za pomoc Mikrotika najlepiej sprawuj si mocne maszyny jednojdrowe ze stajni Intel'a.