Blackhole e null route: anti-loop, aggregazione BGP e mitigazione DDoS
Usa le rotte blackhole/null in RouterOS v7 per evitare loop di routing con i prefissi aggregati BGP, scartare traffico verso subnet non assegnate e implementare il Remote Triggered Black Hole (RTBH) anti-DDoS.
Cos'è una rotta blackhole
Una rotta type=blackhole scarta silenziosamente tutti i pacchetti destinati a quel prefisso, senza inviare alcun messaggio di errore al mittente. RouterOS offre tre varianti di rotta 'scartante': blackhole (scarta in silenzio), unreachable (scarta e invia ICMP host unreachable) e prohibit (scarta e invia ICMP admin prohibited). Per la maggior parte degli usi infrastrutturali si preferisce blackhole, perché non rivela informazioni e non genera traffico ICMP.
Uso 1: evitare loop con i prefissi aggregati BGP
Quando annunci in BGP un prefisso aggregato (es. il tuo /22 pubblico) ma internamente hai assegnato solo alcuni /24, il traffico verso i /24 non ancora usati arriva al tuo router e — senza una rotta specifica — verrebbe rimbalzato indietro verso la default route, creando un loop che intasa l'uplink. La soluzione standard è una rotta blackhole verso l'intero aggregato: il traffico verso parti non assegnate viene scartato localmente.
# Annunci 203.0.113.0/22 in BGP ma usi solo alcuni /24 al suo interno. # Questa rotta blackhole evita il loop verso le parti non assegnate. /ip/route/add dst-address=203.0.113.0/22 type=blackhole \ distance=254 comment="Anti-loop aggregato BGP (le specifiche /24 vincono)" # Le rotte /24 reali (connected o statiche verso i POP) sono più specifiche # e quindi vincono il longest-prefix-match: il blackhole copre solo i 'buchi'. /ip/route/add dst-address=203.0.113.0/24 gateway=10.0.0.2 comment="POP-1 assegnato"
Uso 2: scartare subnet non instradate (anti-leak)
Se hai spazi di indirizzamento riservati o subnet che non devono mai uscire verso Internet, una blackhole evita che il traffico vaganti finisca sulla default route. Tipico per le RFC1918 che per qualche motivo potrebbero scappare, o per subnet di management che non devono essere instradate verso l'esterno.
# Esempio: una subnet di lab che non deve MAI raggiungere Internet /ip/route/add dst-address=10.250.0.0/16 type=blackhole comment="Lab isolato"
Uso 3: RTBH — mitigazione DDoS verso un IP sotto attacco
Il Remote Triggered Black Hole (RTBH) è la tecnica anti-DDoS più diffusa tra gli operatori: quando un IP cliente è sotto attacco volumetrico, invece di lasciare che il flood saturi l'uplink, si annuncia all'upstream una rotta /32 di quell'IP marcata con una community concordata. L'upstream, riconoscendo la community RTBH, scarta il traffico verso quel /32 alla sua frontiera, prima che arrivi al tuo link. Localmente lo si realizza con una blackhole sul /32 e un annuncio BGP con la community giusta.
# 1. Blackhole locale dell'IP sotto attacco (evita che ti saturi internamente)
/ip/route/add dst-address=192.0.2.45/32 type=blackhole comment="RTBH-vittima"
# 2. Annuncia il /32 in BGP all'upstream con la community RTBH concordata
# (es. 65000:666, il valore è quello che ti fornisce il tuo upstream)
/routing/filter/rule/add chain=bgp-out-rtbh \
rule="if (dst==192.0.2.45/32) { set bgp-communities 65000:666; accept }"
# 3. Applica la chain in output sulla connessione BGP verso l'upstream
/routing/bgp/connection/set [find name=peer-upstream] output.filter=bgp-out-rtbhblackhole, unreachable o prohibit?
| Tipo | Comportamento | Quando usarlo |
|---|---|---|
| blackhole | Scarta in silenzio, niente ICMP | Anti-loop, RTBH, infrastruttura (default consigliato) |
| unreachable | Scarta + ICMP host unreachable | LAN interne dove vuoi un errore rapido al client |
| prohibit | Scarta + ICMP admin prohibited | Quando vuoi segnalare un blocco amministrativo |
Continua con
Configura senza fatica con l'AI
In WispOS l'agente AI genera la configurazione RouterOS dalle tue parole e un tutor ti guida passo passo.
Prova WispOS