MikroTik Ruter


Markowanie ruchu
W sieciach komputerowych bardzo wa\nym elementem zapewniającym komfort pracy jest
bandwidth-manager. Urządzenie to ogranicza ruch jednego typu, najczęsciej by zrobić
miejsce dla ruchu innego typu. Je\eli nie zastosujemy kontroli pasma w najlepszym
przypadku dojdzie do sytuacji, kiedy to jeden rodzaj ruchu będzie musiał na siłe wymusić
swój przydział pasma z głównego łącza.
W systemie MikroTik jest mo\liwość łatwego ograniczania przepustowości z u\yciem
kolejek prostych (simple queues).
Niekiedy jednak istnieje konieczność zrobienia bardziej zaawansowanego
podziału przepustowości - kształotwania ruchu z wyko\ystaniem drzewa kolejek (queue tree).
Potrzeba ta, wystepuje przedewszystkim wtedy, kiedy chcemy mieć większą kontrole nad
ruchem, chcemy ró\nie podchodzić do ró\nego rodzaju ruchu lub te\ dawać priorytety i
gwarantowac pasmo w/g naszych własnych zało\eń.
Pierwszą czynnością jaką musimy wykonać jest markowanie ruchu.
Markowanie jest to proces polegający na wirtualnym "oznaczeniu" (z ang. mark) danych
które mają jakieś cechy charakterystyczny (np. adres ip zródła lub port docelowy)
Chcąc kształotwać ruch dynamicznie dla grupy userów mo\emy 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
u\ytkownika.
Dla wygody w generowaniu du\ej ilości wpisów polecam stosowanie do tego skryptów.
Aby korzystać ze skryptów nale\y (winbox) wybrać z lewego menu: System -> Scrtipts
W dalszej części raportu skrypty wykonwane przez wew. interpretator skryptów w systemie
będziemy oznaczać "(skrypt)"
Pózniej 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 który 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, który wychodzi od usera (jego upload).
Jak nie trudno się domyśleć \eby zmienić klase adresową ze 192.168.0 nale\y edytować wpis
"src-address=(192.168.0. " wa\ne jest zachowanie umiejscowienia kropek jak w przykładzie
powy\ej.
Podobnie rzecz się ma z zakresem od 2 do 254 - mo\emy to łatwo edytować wpisując
satysfakcjonujące nas wartości
(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 podziału):
wpisy poprzedzone (terminal) z kolei wykonujemy wprowadzając je z terminala:
(terminal)
/queue type add name="sfq" kind=sfq sfq-perturb=5 sfq-allot=1514
To ten element decyduje o algorytmie, dzięki któremu, będą się odbywały procesy
 współdzielenia pasma w obrębie jednej grupy/hierarchii
3. Utworzenie kolejki głownej
W kolejce głównej dzieją się procesy czystego kształtowania ruchu zgodne z htb na zasadzie
algorytmu określonego poprzez  typ kolejki .
Naszym celem jest ograniczanie pasma w systemie  Wejscie <->  Wyjście zatem musimy
utworzyć Kolejke główną (parent), która zajmie się oprócz kontroli swoich  dzieci (children)
odpowiednio na:
" Interfejsie Zewnętrznym (Internet)  Kolejka kształtująca UPLOAD
" Interfejsie Lokalnym (Lan)  Kolejka kształtująca DOWNLOAD
Przy okazji skorzystamy z mo\liwości kontroli maksymalnego pasma dostępnego dla danego
kierunku transmisji  w celu kontroli ew. nadu\yć globalnych.
(terminal)
/queue tree add name="Download" parent=Lan queue=sfq max-limit=1730k
Powstanie nowa kolejka, przyczepiona do interfejsu wewnętrznego Lan
(terminal)
/queue tree add name="Upload" parent=Internet queue=sfq max-limit=1730k
Powstanie kolejka, przyczepiona do interfejsu zewnętrznego Internet
Przykład zakłada u\ycie łącza symetrycznego POLPAK 2Mbps, jak widzimy wartość
2048Kbps została pomniejszona o około 10% - \eby zapewnić poziom usług przy
maksymalnym wysyceniu kolejki. Dla łączy DSL wa\ne jest dodatkowe chronienie cennego
uploadu  sugeruje zmniejszenie wartości maksymalnej (realnej) nawet o 30%
Kolejki
Mając kolejki główne (parent) jedyne co wystarczy zrobić to przykleić do nich
poszczególnych abonentów  by ci w ramach odpowiednich priorytetów dzielili swoje pasmo.
Odpowiednie skrypciki załatwiają sprawę szybko i skutecznie dla całego 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, ka\da z nich ograniczy download dla pojedynczego marka
(czyli de-fakto adresu IP) gwarantując mu pasmo 32Kbps i ograniczając do 256Kbps,
gwarancja będzie w tym układzie polegała na zliczeniu dwóch wirtualnych kolejek  jedna
licząca limit-at (prędkość gwarantowana), druga licząca max-limit (prędkość maksymalna), z
zało\eniem \e kolejka limit-at będzie szła osobnym wy\ej priorytetyzowanym torem  do
momentu przekroczenia wartości limit-at. Po przekroczeniu limit-at wartość priorytetu jest
ignorowana (równa najni\szej, czyli 8) zatem u\ytkownicy zapychający łącze w momencie
będą niemal\e ignorowani je\eli nowy u\ytkownik będzie miał ochotę wykorzystać do
32Kbps pasma  zapewniając w miarę równe rozło\enie łącza i przede wszystkim odpowiedni
poziom dostępu do usług. Wartość limit-at powinna odpowiadać wartości rzeczywistej łącza
podzielonej przez liczbę u\ytkowników razy współczynnik jednoczesności (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 oszczędzanie uploadu, nawet dla łączy symetrycznych  nowe
programy p2p potrafią korzystając z wad algorytmów htb i innych, impulsowo wymuszać
większą ilość ruchu ani\eli pozwala na to kolejka  takie zjawisko łatwo opanowac
zmniejszając maksymalną wartość uploadu.
Po zakończeniu nasze kolejki powinny wyglądać mniejwięcej tak:
(jest to przykład z działającego routera, skonfigurowanego analogicznie z niewielkimi ró\nica
mi)
Modyfikacje, ulepszanie, usprawnianie
Mo\emy wyrzucić z marku ruch ICMP  przydatne je\eli chcemy zapewnić dobre  pingi
niezale\nie od wysycenia łącza i indywidualnych kolejek userów.
W tym celu musimy dodać na samym początku (przed innymi regułkami w /ip firewall
mangle)
(terminal)
/ip firewall mangle add chain=prerouting protocol=icmp action=accept
Regułka ta  wybije ruch ICMP z reszty zamanglowanych regułek
Mo\emy te\ stosując kilka ró\nych marków dla ka\dego usera, ustawić indywidualnie ilość
ruchu danego typu jaką u\ytkownik mo\e operować.
Niemniej jednak nale\y pamiętać, \e du\a liczba wpisów niekoniecznie jest dobra.
Wszystko zale\y od generowanego ruchu i mocy obliczeniowej maszyny.
Testowa maszyna oparta o procesor Pentium III 1000MHz bezproblemu radziła sobie z
ruchem 1000 u\ytkowników, aczkolwiek zrezygnowalismy wtedy z wielu dodatkowych
funkcji takich jak connection tracking i rozbudowany firewall - tworząc praktycznie
przezroczysty bandwidtch-manager.
Poniewa\ w wersji systemu RouterOS 3.0 jest mo\liwośc ko\ystania z wielowątkowości,
teoretycznie dodatkowy procesor powinien zwiększyć wydajność dwukrotnie - ale nie liczył
bym na to tak bardzo. Do kształtowania ruchu za pomocą Mikrotika najlepiej sprawują się
mocne maszyny jednojądrowe ze stajni Intel'a.


Wyszukiwarka

Podobne podstrony:
mikrotik bandwidth control
mikrotel 2 6 instrukcja
MikroTik jako Most WDS dynamic
MikroTik filtr rodzinny
MikroTik czasowe przekierowanie dla niepłacących v2
MikroTik jako router?zprzewodowy
MikroTik jako zarządzany switch
MikroTik przekierowanie dla niepłacących
MikroTik DynDNS
MikroTik cache proxy
MikroTik Nadawanie adresu IP
MikroTik konfiguracja szyfrowania WEP WPA
MikroTik AP Setup
mikrotik?zt pracitice
MikroTik export to email
MikroTik i Layer7

więcej podobnych podstron