Cos'e' Anycast#
Anycast e' una tecnica di indirizzamento IP in cui lo stesso indirizzo viene annunciato da piu' server fisici in posizioni geografiche diverse. Il protocollo di routing BGP (Border Gateway Protocol) instrada automaticamente ogni client verso il server topologicamente piu' vicino, senza che il client debba sapere nulla dell'infrastruttura sottostante.
Assegnare lo stesso IP a centinaia di server globali, lasciando che BGP decida quale istanza serve ogni richiesta in base alla vicinanza di rete.
TL;DR#
- Un'organizzazione configura 300 server in 300 citta' diverse con lo stesso indirizzo IP (es.
1.1.1.1) - Ogni server annuncia via BGP il prefisso
1.1.1.0/24ai router vicini - I router Internet vedono 300 percorsi verso lo stesso IP e scelgono il piu' corto
- Un client a Roma viene instradato al nodo di Roma, un client a Tokyo al nodo di Tokyo
- Se il nodo di Roma va offline, BGP re-instrada automaticamente al nodo piu' vicino disponibile
Anycast vs Altri Modelli di Indirizzamento#
IPv4 supporta quattro modalita' di indirizzamento. Anycast e' quella piu' complessa ma piu' potente per infrastrutture distribuite globalmente.
| Modello | Destinatari | Meccanismo | Esempio |
|---|---|---|---|
| Unicast | 1 specifico | IP univoco | HTTP verso un server fisso |
| Broadcast | Tutti in subnet | IP broadcast | ARP Request |
| Multicast | Gruppo iscritto | IGMP/PIM | Video streaming |
| Anycast | Il piu' vicino | BGP hop count | 8.8.8.8, 1.1.1.1 |
Come Funziona BGP Anycast#
BGP (Border Gateway Protocol) e' il protocollo di routing usato tra Autonomous System su Internet. E' il meccanismo che rende possibile Anycast: ogni istanza annuncia lo stesso prefisso IP, e BGP fa il resto.
flowchart TD
classDef client fill:#00336633,stroke:#003366,stroke-width:2px,color:#000;
classDef router fill:#80808033,stroke:#808080,stroke-width:2px,color:#000;
classDef anycast fill:#2d6a4f33,stroke:#2d6a4f,stroke-width:2px,color:#000;
classDef internet fill:#a7262633,stroke:#a72626,stroke-width:2px,color:#000;
classDef spacer fill:none,stroke:none,color:none;
CLIENT_IT["Client Roma"]:::client
CLIENT_JP["Client Tokyo"]:::client
INTERNET["Internet - Router BGP globali"]:::internet
NODE_IT["Server 1.1.1.1 - Roma"]:::anycast
NODE_JP["Server 1.1.1.1 - Tokyo"]:::anycast
NODE_US["Server 1.1.1.1 - New York"]:::anycast
subgraph CLOUDFLARE["Cloudflare Anycast Infrastructure - stesso IP 1.1.1.1"]
SPACER_CF[" "]:::spacer
NODE_IT
NODE_JP
NODE_US
SPACER_CF ~~~ NODE_IT
end
CLIENT_IT -->|query a 1.1.1.1| INTERNET
CLIENT_JP -->|query a 1.1.1.1| INTERNET
INTERNET -->|BGP shortest path per Roma| NODE_IT
INTERNET -->|BGP shortest path per Tokyo| NODE_JP
Lettura diagramma: Entrambi i client usano lo stesso IP 1.1.1.1. I router BGP globali (Internet) vedono tre percorsi verso quell'IP e instradano ciascun client al nodo geograficamente piu' vicino: Roma verso il server italiano, Tokyo verso il server giapponese. New York resta disponibile come fallback.
Root DNS Server e Anycast#
I 13 root DNS server (da A-Root a M-Root) sono l'esempio storico per eccellenza di Anycast. Nonostante esistano solo 13 indirizzi IP distinti, ci sono quasi 2.000 istanze fisiche in tutto il mondo.
Nota Security+: I 13 root server sono un concetto critico per l'esame. Non sono 13 macchine fisiche ma 13 indirizzi IP Anycast, ognuno replicato su centinaia di istanze. La frase "i root server DNS sono vulnerabili a DDoS" e' falsa proprio grazie ad Anycast.
Anycast come Scudo Anti-DDoS#
La proprieta' piu' importante di Anycast per la sicurezza e' la distribuzione naturale degli attacchi DDoS. Quando un attaccante lancia un volume massiccio di traffico verso un IP Anycast, i router BGP distribuiscono quel traffico tra tutte le istanze geograficamente vicine all'attaccante.

flowchart LR
classDef attacker fill:#a7262633,stroke:#a72626,stroke-width:2px,color:#000;
classDef victim fill:#2d6a4f33,stroke:#2d6a4f,stroke-width:2px,color:#000;
classDef router fill:#80808033,stroke:#808080,stroke-width:2px,color:#000;
classDef spacer fill:none,stroke:none,color:none;
ATK_CN["Botnet Cina - 500 Gbps verso 1.1.1.1"]:::attacker
ATK_RU["Botnet Russia - 300 Gbps verso 1.1.1.1"]:::attacker
BGP["Internet - Router BGP globali"]:::router
NODE_CN["Nodo Anycast - Pechino saturato - isolato"]:::attacker
NODE_RU["Nodo Anycast - Mosca saturato - isolato"]:::attacker
NODE_IT["Nodo Anycast - Roma - operativo"]:::victim
USER["Utente Roma - non impatto"]:::victim
subgraph INFRA["Anycast Infrastructure 1.1.1.1"]
SPACER_I[" "]:::spacer
NODE_CN
NODE_RU
NODE_IT
SPACER_I ~~~ NODE_CN
end
ATK_CN -->|DDoS BGP instrada a Pechino| NODE_CN
ATK_RU -->|DDoS BGP instrada a Mosca| NODE_RU
BGP --> NODE_IT
USER -->|continua a funzionare| NODE_IT
Lettura diagramma: I 500 Gbps della botnet cinese vengono instradati da BGP verso il nodo di Pechino (il piu' vicino per hop BGP). I 300 Gbps russi vanno verso Mosca. Il nodo di Roma non vede nulla dell'attacco e serve normalmente gli utenti italiani. L'attaccante dovrebbe colpire simultaneamente TUTTI i nodi globali per abbattere il servizio.
Confronto con Unicast:
- Unicast: 500 Gbps su un unico IP fisso abbattono immediatamente il server
- Anycast: 500 Gbps vengono assorbiti dal nodo piu' vicino all'attaccante, il resto del mondo non e' impattato
Dev parallel: Cloudflare e Fastly usano Anycast per la loro CDN: quando la tua app Node/PHP usa Cloudflare, le request degli utenti arrivano all'edge node geograficamente piu' vicino. Anycast rende tutto cio' trasparente senza DNS round-robin o geolocalizzazione esplicita. Un attacco DDoS da 1 Tbps contro la tua API viene distribuito tra 300 data center globali di Cloudflare: nessuno viene sopraffatto.
Differenza Anycast vs DNS Load Balancing#
E' una distinzione importante per Security+: DNS round-robin e Anycast sembrano fare la stessa cosa ma funzionano in modo radicalmente diverso.
| Aspetto | Anycast | DNS Round-Robin |
|---|---|---|
| Meccanismo | Routing BGP a livello IP | Risposta DNS con IP multipli |
| Configurazione client | Nessuna | Nessuna |
| Geolocalizzazione | Automatica via BGP | Manuale (geo-DNS) o casuale |
| Failover | Automatico (convergenza BGP) | Lento (dipende TTL DNS) |
| Anti-DDoS | Distribuisce traffico fisicamente | Non distribuisce il traffico |
| Esempio | 1.1.1.1, root DNS | Record A con piu' IP |
Scenario Reale Blue Team#
In un contesto difensivo, Anycast compare nell'analisi del traffico di rete e nella risposta a incidenti legati a DNS e DDoS.
# Verificare qual e' il nodo Anycast che risponde da questa posizione
dig +short +nsid @1.1.1.1 id.server chaos txt
dig +short +nsid @8.8.8.8 id.server chaos txt
# Tracciare il percorso verso un IP Anycast (rivela il nodo fisico piu' vicino)
traceroute 1.1.1.1
mtr 1.1.1.1
# Verificare quale nodo root DNS risponde (es. A-Root)
dig +short @198.41.0.4 version.bind chaos txt
# Analisi BGP per un prefisso Anycast (tool esterno)
# bgp.he.net → inserire 1.1.1.0/24 per vedere gli annunci globali
# Rilevare traffico anomalo verso IP Anycast noti (es. flooding DNS)
tcpdump -i eth0 'host 1.1.1.1 or host 8.8.8.8' -nSegnali da monitorare in un SIEM:
- Volume anomalo di query verso resolver pubblici Anycast (possibile DNS tunneling o amplification)
- Query NXDOMAIN massive verso root server (possibile ricognizione o amplification DDoS)
- Cambio improvviso del nodo Anycast che risponde (possibile BGP hijacking dell'annuncio)
Collegato a#
- bgp-asn-fundamentals - BGP e' il meccanismo che abilita Anycast
- dns-resolution-flow - root server usano Anycast
- dnssec - DNSSEC protegge l'integrita', Anycast protegge la disponibilita'
- unicast-broadcast-multicast - i quattro modelli di indirizzamento IP
- tcp-udp - UDP il trasporto principale per DNS Anycast


