Konfiguracja MikroTik – Część 41: Dynamiczna kontrola pasma z wykorzystaniem skryptów i warunkowego QoS
Konfiguracja MikroTik – Część 41: Dynamiczna kontrola pasma z wykorzystaniem skryptów i warunkowego QoS
W poprzednich częściach serii omówiliśmy integrację MikroTik z systemami monitoringu Prometheus i Grafana. Teraz skupimy się na zagadnieniu szczególnie istotnym dla środowisk produkcyjnych oraz ISP – dynamicznym zarządzaniu pasmem w oparciu o zmienne warunki sieciowe. Przedstawimy zaawansowane mechanizmy kształtowania ruchu z użyciem QoS, skryptów MikroTik RouterOS oraz automatycznej reakcji na zdarzenia.
1. Dlaczego dynamiczne QoS?
Statyczne reguły QoS nie uwzględniają zmieniających się warunków – obciążenia łącza, liczby użytkowników, typów ruchu w konkretnym czasie. Wdrażając dynamiczne podejście, administratorzy zyskują:
- możliwość przyznania większego priorytetu usługom real-time w godzinach szczytu,
- adaptację polityk pasma do pory dnia, dostępności łącza zapasowego lub aktualnego transferu,
- automatyczne ograniczanie pasma użytkownikom generującym niepożądany ruch (np. torrent, P2P),
- lepsze doświadczenia końcowe bez utraty jakości VoIP, wideokonferencji czy aplikacji krytycznych.
2. Klasyczne podejście: Queue Trees + Mangle
Podstawą dynamicznej kontroli ruchu w MikroTik jest mechanizm kolejek typu Queue Tree, wsparty przez Mangle, czyli narzędzie do znakowania pakietów. W połączeniu dają pełną elastyczność:
- Mangle – służy do klasyfikacji pakietów na podstawie adresu IP, portu, protokołu, rozmiaru pakietu, interfejsu, itp.
- Queue Tree – przypisuje klasom pasma określone limity oraz priorytety.

3. Warunkowe QoS z użyciem skryptów
Dzięki wbudowanemu językowi skryptowemu MikroTik (RouterOS scripting) możemy zmieniać reguły kolejek i Mangle dynamicznie – np. co 5 minut, lub po przekroczeniu konkretnego progu transferu.
Przykład skryptu automatycznie zmieniającego limit pasma po przekroczeniu 80% zużycia:
:local currentTx [/interface get ether1 tx-byte]
:delay 60
:local newTx [/interface get ether1 tx-byte]
:local deltaTx ($newTx - $currentTx)
:if ($deltaTx > 80000000) do={
/queue tree set [find name="client-down"] max-limit=10M
} else={
/queue tree set [find name="client-down"] max-limit=30M
}
Skrypt ten mierzy przez 60 sekund transfer na interfejsie i reaguje odpowiednio, dostosowując limit przepustowości.
4. Integracja ze skryptami zewnętrznymi (Python via API)
Dla bardziej złożonych warunków, warto skorzystać z API RouterOS i wykonać skrypty z zewnątrz – np. z poziomu serwera Linux analizującego dane z NetFlow, SNMP lub zintegrowanego systemu SIEM.
Przykład (Python + librouteros):
from routeros_api import RouterOsApiPool
api = RouterOsApiPool('192.168.88.1', username='admin', password='securepass')
resource = api.get_api().get_resource('/queue/tree')
high_traffic_detected = True
if high_traffic_detected:
resource.update(id='*3', max_limit='5M')
else:
resource.update(id='*3', max_limit='20M')
5. Adaptacyjne QoS – reguły zależne od pory dnia i tygodnia
Dodatkowym elementem może być kalendarz – RouterOS pozwala wykonywać skrypty o określonych godzinach. Dzięki temu możemy tworzyć harmonogramy QoS:
- szczytowe godziny pracy – priorytet dla VPN i VoIP,
- noce – podniesione limity dla backupu danych i synchronizacji systemów,
- weekendy – zwiększona swoboda dla użytkowników domowych.
/system scheduler add name="QoS-szpital" interval=1d start-time=08:00:00 on-event="/queue tree set client-down max-limit=10M"
6. QoS w środowiskach ISP – dynamiczne wykrywanie nadużyć
Dla operatorów sieci lokalnych lub ISP, dynamiczne QoS może także reagować na:
- klienta przekraczającego limit dzienny,
- użytkowników generujących zbyt wiele sesji jednocześnie,
- próby nadużyć typu „torrent flooding”.
W takich przypadkach możliwe jest automatyczne ograniczenie pasma, przesłanie powiadomienia administratorowi, a nawet blokada dostępu.
7. Grafana + MikroTik – wizualizacja efektywności QoS
Dla administratorów chcących zobaczyć efekty działania QoS w czasie rzeczywistym, Prometheus i Grafana są nieocenione:
- wykresy pokazujące zmiany limitów pasma,
- korelacja ze wzrostem ilości sesji,
- obserwacja, jak zachowuje się ruch w zależności od wprowadzanych polityk.
8. Podsumowanie
Dynamiczne QoS w MikroTik to coś więcej niż tylko ograniczenie transferu – to inteligentna adaptacja do realiów sieci i zachowań użytkowników. Dzięki połączeniu Queue Tree, Mangle, scriptingu i integracji API, możemy zbudować środowisko sieciowe działające jak system ekspercki: autonomiczne, skalowalne i elastyczne. Takie rozwiązania doskonale sprawdzają się w firmach, placówkach edukacyjnych, szpitalach oraz u operatorów ISP.






