Różne Pasma w Ciągu Dnia i w Nocy dla Różnych Kategorii Użytkowników
Z MikroTik Wiki
Spis treści |
Wprowadzenie
Być może masz wielu użytkowników, firm, itp., którzy używają internet w ciągu dnia. A może masz "super użytkowników", którzy mają dwie prace, przychodzą o 19.00 do domu i chcą zrobić wszystko naraz, przeczytać pocztę, poczatować, ściągać pliki przez p2p, etc.
Załóżmy, że masz użytkowników korporacyjnych / instytucyjnych / rządowych. Ludzie którzy przychodzą do pracy o 07.00 i wychodzą z biura przeważnie o 18.00. Udostępniasz im przez cały czas 1mbit/s. Większość twoich użytkowników używa całe pasmo po 15.00 i tuż po północy. Zdecydowałeś aby dać im całe pasmo po tym, jak "duzi" klienci odłączają się od internetu (intytucjonalni, etc., którzy płacą duże pieniądze za jakość usługi).
Więc może podejmij decyzję aby "pożyczyć" trochę pasma od użytkowników, którzy nie pracują...
Jak?
Oczywiście możesz dodać dwie kolejki dla każdego ograniczenia jakie chcesz zaimplementować, ale możesz również umieścić pojedynczą kolejkę i zmodyfikować jej ograniczenia z poziomu skryptu.
W ten właśnie sposób to zrobimy. Może to być nawet prostsze. Dlaczego? Utrzymujesz ograniczenia dla różnych typów użytkowników w jednym miejscu (skrypt). Możesz również stworzyć wykres pojedynczej kolejki, która może być bardziej akceptowalna dla ciebie i niektórych użytkowników, jeśli pozwolisz im na oglądanie ich wykresów ruchu.
Teren:
Używasz prostych kolejek aby ograniczyć ruch.
(Można to łatwo dostosować do drzewa kolejkowania poprzez modyfikację ograniczeń w drzewie... ale to inna historia. Popracuj nad tym sam.)
Istnieją trzy rodzaje użytkowników:
- 256k/256k w dzień, 1M/1M w nocy
- 512k/512k w dzień, 2M/2M w nocy
- 1M/1M w dzień, 4M/4M w nocy
Ograniczasz swoich użytkowników poprzez proste kolejki, a rozróżnienie między kategoriami jest realizowane poprzez komentarze.
(Umieszczam to również w nazwie kolejki, żeby było to łatwiej zauważalne. Wg mnie winbox nie wyświetla komentarzy dla prostych kolejek w wersji 3.6, a przynajmniej na RB na którym teraz pracuję:(, ale konsola obsługuje je prawidłowo i skrypt działa poprawnie).
Jak to zrobić?
- Utwórz proste kolejki z ustalonymi ograniczeniami i wyróżniającą kolejkę _comment_ dla każdej kategorii użytkowników. (np. ""Vasile_CAT1"", ""Vasile2_CAT2"", itp.) jako nazwy kolejek, oraz [CAT1, CAT2 będą identyfikatorami kategorii umieszczonymi w komentarzach]
- Ustal ograniczenia dla każdej kategorii: CAT1, CAT2, etc., zmodyfikujemy to z drugiego skryptu, który zajmie się wszystkim.
- Ustaw skrypt tak, aby uruchamiał się co 24 godziny i zmień ograniczenia dla dnia/nocy, np. dla każdej kategorii użytkowników. Skrypt dla "dnia" zaczyna sie o 06.00, a kończy o 18.00, kiedy to zaczyna działanie skrypt "nocny", uruchamiający modyfikacje night.
Ustawienia Klienta NTP
Ok. Żeby wszystko odpowiednio działało ustaw swój zegar. W przeciwnym wypadku możesz uzyskać dziwne rezultaty i zażalenia:)
/system ntp client set enabled=yes mode=unicast primary-ntp=213.239.154.12 secondary-ntp=213.249.66.35
(Możesz umieścić primary-ntp i secondary-ntp by były rozwiązywane przez 0.europe.pool.ntp.org lub 1.europe.pool.ntp.org. Zamień "europe" na swój kontynent, dla dalszych ulepszeń czasów odpowiedzi. Sprawdz ntp.org dla dalszych informacji)
Ustawienia kolejek
(W tym przykładzie użyję 4, jednak można ich użyć ile się chce; to nie ma znaczenia)
/queue simple
add comment="CAT1" direction=both disabled=no dst-address=192.168.4.15/32 \
max-limit=256000/256000 name="George_CAT1" parent=none priority=8 \
queue=default-small/default-small
add comment="CAT1" direction=both disabled=no dst-address=192.168.4.16/32 \
max-limit=256000/256000 name="Robinson_CAT1" parent=none priority=8 \
queue=default-small/default-small
add comment="CAT2" direction=both disabled=no dst-address=192.168.4.17/32 \
max-limit=512000/512000 name="Crusoe_CAT2" parent=none priority=8 \
queue=default-small/default-small
add comment="CAT3" direction=both disabled=no dst-address=192.168.4.18/32 \
max-limit=1024000/1024000 name="Momma_CAT3" parent=none priority=8 \
queue=default-small/default-small
Ustawienia skryptów
Dla limitów dziennych:
/system scheduler
add comment="" disabled=no interval=1d name="Day" on-event="/queue simple\r\nset [find \
comment=CAT1] max-limit=256000/256000\r\nset [find comment=CAT2] \
max-limit=512000/512000\r\nset [find comment=CAT3] max-limit=1024000/1024000\r\n" \
start-date=jan/01/1970 start-time=06:00:00
Dla limitów nocnych:
/system scheduler
add comment="" disabled=no interval=1d name="Night" on-event="/queue simple\r\nset [find \
comment=CAT1] max-limit=1024000/1024000\r\nset [find comment=CAT2] \
max-limit=2048000/2048000\r\nset [find comment=CAT3] max-limit=4096000/4096000\r\n" \
start-date=jan/01/1970 start-time=18:00:00
W czystym tekście wygląda to tak (lepiej):
Dzień:
/queue simple set [find comment=CAT1] max-limit=256000/256000 set [find comment=CAT2] max-limit=512000/512000 set [find comment=CAT3] max-limit=1024000/1024000
Noc:
/queue simple set [find comment=CAT1] max-limit=1024000/1024000 set [find comment=CAT2] max-limit=2048000/2048000 set [find comment=CAT3] max-limit=4096000/4096000
Każdy skrypt ma przerwę co jeden dzień, skrypt dzienny zaczyna się o 06.00, a nocny o 18.00.
Zrobione!
Zaimplementuj to w swoim systemie.
Zrób ograniczenia jakie chcesz, tylko pamiętaj o ich aktualizacji;)
Możesz edytować ograniczenia drzew kolejkowania jeśli chcesz je uruchomić z innymi ograniczeniami w nocy. (możesz np. zmieniać dostęp do p2p w nocy, w zależności od tego czy chcesz to robić przez markowanie lub proste kolejki).
Miłego pisania skryptów!



