Konfiguracja MikroTik – Część 49: MikroTik jako urządzenie do aktywnego monitoringu BGP i rozpoznawania anomalii tras routingowych
Konfiguracja MikroTik – Część 49: MikroTik jako urządzenie do aktywnego monitoringu BGP i rozpoznawania anomalii tras routingowych
🎯 Wprowadzenie
Współczesny Internet oparty jest na protokole BGP (Border Gateway Protocol), który umożliwia wymianę tras między systemami autonomicznymi (AS). Choć niezastąpiony w skalowalnych sieciach szkieletowych, BGP nie jest wolny od zagrożeń, takich jak hijacking, route leaks czy błędne ogłoszenia prefiksów. MikroTik RouterOS, mimo że często kojarzony z małymi sieciami, w rzeczywistości może pełnić rolę aktywnego „strażnika” BGP — wykrywając i zgłaszając anomalie tras routingowych.
W tej części serii pokażemy, jak skonfigurować MikroTik do monitoringu sesji BGP, analizy tras, i integracji z zewnętrznymi systemami notyfikacyjnymi (Slack, E-mail, Syslog, API SIEM). Dzięki temu, nawet mniejsze organizacje mogą uzyskać widoczność i kontrolę nad tym, co ogłaszane jest z ich ASN i prefiksów.
🧱 Założenia środowiska
- MikroTik z RouterOS 7+ (obsługa BGP v4 z rozszerzeniami)
- Własna sesja BGP (pełna lub częściowa tablica)
- ASN (własny lub partnerski)
- Zewnętrzny system do rejestrowania alertów (Syslog, Elasticsearch, SIEM, Prometheus, Slack webhook)

⚙️ Krok 1: Konfiguracja podstawowa BGP
/routing bgp instance
add name=default as=65432 router-id=192.0.2.1
/routing bgp peer
add remote-address=203.0.113.1 remote-as=64512 name=peer1 update-source=loopback0 default-originate=never hold-time=3m ttl=default
/ip address
add interface=loopback0 address=192.0.2.1/32
🧪 Krok 2: Aktywacja pełnego logowania trasy
/routing bgp logging
set detail=yes
Logi będą zawierały informacje o trasach, czasach wycofania oraz zmianach prefiksów.
🔎 Krok 3: Skrypt detekcji anomalii tras BGP
/system script
add name=check-bgp-anomalies policy=read,write,test source="
:foreach route in=[/routing bgp advertisements find] do={
:local prefix [/routing bgp advertisements get \$route prefix]
:local asPath [/routing bgp advertisements get \$route as-path]
# przykład wykrycia zbyt krótkiej ścieżki jako możliwego hijackingu
:if ([:len \$asPath] < 1) do={
/tool fetch url=\"https://hooks.slack.com/services/XXXX/YYY/ZZZ\" http-method=post http-data=\"BGP anomaly: prefix \$prefix has empty AS path\"
}
}"
Można też wysłać dane do Elastic lub syslog.
🧰 Krok 4: Alertowanie i eksport logów
Slack Webhook (lub Discord, Mattermost):
/tool fetch url="https://hooks.slack.com/services/..." http-method=post http-data="ALERT: Anomalia BGP wykryta!"
Syslog:
/system logging
add topics=routing prefix="BGP-ALERT" action=remote
/system logging action
add name=remote target=remote remote-address=192.168.1.100 remote-port=514
Elasticsearch / Kibana:
Za pomocą skryptów można przesyłać JSON przez API.
📊 Krok 5: Wykresy i grafana (eksport Prometheus)
Eksportuj dane o sesjach BGP do Prometheus:
/tool snmp
set enabled=yes
# lub użyj node_exporter z JSON API na zewnętrznym hoście
🧠 Przykładowe scenariusze detekcji
| Anomalia | Detekcja | Akcja |
|---|---|---|
| Route Hijacking | AS Path zbyt krótki lub inny ASN | Slack alert, Email |
| Flapping prefiksu | Zbyt częsta zmiana ogłoszeń | Syslog, SIEM |
| ASN spoofing | Inny niż oczekiwany remote ASN | Przerwanie sesji |
| Zmiana nexthop | Nieznana ścieżka trasowania | Dodanie do czarnej listy BGP |
🔒 Zabezpieczenia i ochrona
- Prefix-listy: Ogranicz ogłaszane prefiksy
- Filter Rules: Aktywna kontrola przychodzących prefiksów
- MaxPrefix Limit: Przerwij sesję, gdy peer ogłasza zbyt wiele tras
- Hold-down: Wstrzymaj akceptację zmiennych tras
🧩 Integracja z zewnętrznymi bazami danych
- Integracja z RPKI (RouterOS wspiera validatory)
- Weryfikacja przez ROA
- Możliwość korelacji danych BGP z NetFlow, IDS, SIEM
✅ Podsumowanie
MikroTik to nie tylko urządzenie dostępu, ale także świetna platforma do aktywnego monitoringu tras BGP. Dzięki zintegrowanym mechanizmom analizy, skryptom oraz integracji z RADIUS, syslog i webhookami – można wykrywać zagrożenia na poziomie trasowania i reagować w czasie rzeczywistym. To idealne rozwiązanie dla operatorów, instytucji naukowych, czy organizacji zarządzających własnym ASN.






