Guida MikroTik
RoutingIntermedio

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.

Blackhole sull'aggregato annunciato in BGP
# 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"
Usa distance alta (es. 254) sulla blackhole dell'aggregato: così qualsiasi rotta legittima più specifica O con distance inferiore la sovrascrive. La blackhole è la rete di sicurezza che cattura solo ciò che nessun'altra rotta gestisce.

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.

Blackhole su spazi che non devono uscire
# 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.

RTBH: blackhole locale + annuncio con community
# 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-rtbh
RTBH è una mitigazione 'a doppio taglio': scarta TUTTO il traffico verso la vittima, attacco incluso ma anche traffico legittimo. È un'arma di ultima istanza per salvare l'intera rete sacrificando un singolo IP. Concorda SEMPRE in anticipo con il tuo upstream la community RTBH supportata: senza, l'annuncio /32 verrebbe filtrato (gli upstream tipicamente non accettano prefissi più lunghi di /24).

blackhole, unreachable o prohibit?

TipoComportamentoQuando usarlo
blackholeScarta in silenzio, niente ICMPAnti-loop, RTBH, infrastruttura (default consigliato)
unreachableScarta + ICMP host unreachableLAN interne dove vuoi un errore rapido al client
prohibitScarta + ICMP admin prohibitedQuando vuoi segnalare un blocco amministrativo
Tipi di rotta scartante in RouterOS v7
blackholenull routerotta nullaanti-loopRTBHremote triggered black holeDDoS mitigationaggregazionesummary routediscardprohibitunreachable

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