Che cos’è anycast?
Anycast, noto anche come IP anycast, è una tecnica di rete che consente a più macchine di condividere lo stesso indirizzo IP. In base alla posizione della richiesta dell’utente, i router la inviano alla macchina nella rete più vicina. Ciò è utile poiché, tra le altre cose, riduce la latenza e aumenta la ridondanza. Se un particolare data center dovesse andare offline, un IP anycasted sceglierebbe il percorso migliore per gli utenti e li reindirizzerebbe automaticamente al data center più vicino. Di seguito vengono illustrati alcuni dei pro e dei contro associati alla configurazione di anycast.
Pro
- Velocità. Il traffico che va a un nodo anycast verrà instradato al nodo più vicino riducendo così la latenza tra il client e il nodo stesso. Ciò garantisce che le velocità saranno ottimizzate indipendentemente da dove il cliente richiede informazioni.
- Ridondanza. Anycast migliora la ridondanza posizionando più server in tutto il mondo utilizzando lo stesso IP. Ciò consente di reindirizzare il traffico al server più vicino nel caso in cui un server non riesca o vada offline.
- Mitigazione DDoS. Gli attacchi DDoS sono causati da botnet che possono generare così tanto traffico da sopraffare una tipica macchina Unicast. Il vantaggio di avere una configurazione anycast in questa situazione è che ogni server è in grado di “assorbire” una parte dell’attacco con conseguente minore sforzo sul server in generale.
- Bilanciamento del carico. Il bilanciamento del carico può essere utilizzato nel caso in cui ci siano più nodi tutti all’interno della stessa distanza geografica dalla richiesta. Ciò elimina alcuni dei requisiti delle risorse da un nodo singolare e li disperde su più nodi.
Contro
- Difficile da implementare. L’implementazione di IP anycast è uno sforzo complesso che richiede hardware aggiuntivo, fornitori upstream affidabili e instradamento del traffico corretto.
Border gateway protocol e Autonomous systems
Border Gateway Protocol (BGP) e Autonomous Systems (AS) sono parti integranti nel modo in cui IP anycast funziona. Il BGP scambia informazioni di routing e raggiungibilità tra AS. Prende decisioni di routing in base a percorsi, criteri e set di regole che è un componente chiave di ciò che IP anycast offre. All’interno di BGP routing ci sono più percorsi per lo stesso indirizzo IP che puntano a posizioni diverse.
Un sistema autonomo è una singola o raccolta di reti tutte amministrate dallo stesso amministratore. I sistemi autonomi hanno ciascuno un ASN univoco, o un numero di sistema autonomo, da utilizzare nel routing BGP poiché ogni ASN identifica ogni rete su Internet.
Strumenti come ExaBGP possono essere utilizzati per trasformare i messaggi BGP in testo o JSON che possono quindi essere gestiti da semplici script. Ciò consente agli amministratori di rilevare e gestire facilmente errori di rete o di servizio.
Come agisce anycast?
Come accennato in precedenza, anycast indirizza le richieste degli utenti al nodo più vicino per ridurre la latenza della pagina. Lo fa seguendo questi passaggi.
- Più istanze di servizio annunciano di condividere lo stesso indirizzo IP.
- Quando il browser dell’utente effettua una richiesta, il router riceve tale richiesta e sceglie semplicemente il percorso con la distanza più breve dal server più vicino in base al percorso AS.
Usando Unicast, che verrà spiegato nella sezione seguente, il percorso porterebbe solo a una destinazione indipendentemente dalla distanza. Utilizzando anycast, il percorso è ottimizzato grazie alla selezione sempre del percorso migliore. Nel caso in cui un server sia inattivo, il BGP troverà semplicemente il percorso migliore successivo e indirizzerà la richiesta lì.
Va notato tuttavia che anycast può essere configurato non solo per instradare la richiesta in base alla distanza ma anche ad altri fattori, ad esempio:
- Disponibilità del server
- Numero di connessioni
- Tempo di risposta
Altri metodi di indirizzamento
Esistono anche altre metodologie di indirizzamento per instradare le richieste degli utenti a un particolare endpoint di rete. Questi includono unicast, multicast, broadcast e geocast. Andremo in ulteriori dettagli per ciascuno nelle sezioni seguenti.
Unicast
La maggior parte di Internet oggi utilizza questo metodo. Unicast limita un indirizzo IP da associare a un solo nodo particolare in una rete. Questo è noto come un’associazione uno a uno. Anche se gran parte di Internet utilizza questo metodo, è sub-ottimale a causa delle restrizioni di essere solo in grado di associare un indirizzo IP con un nodo.
Multicast
Multicast utilizza un’associazione uno-a-molti-di-molti o molti-a-molti-di-molti. Multicast consente di instradare una richiesta da un mittente a vari endpoint selezionati contemporaneamente. Ciò consente a un client di scaricare un file in blocchi da più host contemporaneamente (utile per lo streaming audio o video). Multicast è spesso confuso con anycast, tuttavia la differenza principale è che anycast indirizza il mittente a un nodo specifico anche se sono disponibili più nodi per l’uso.
Broadcast
Broadcast utilizza un’associazione one-to-all. Un datagramma da un mittente singolare viene indirizzato a tutti gli endpoint associati all’indirizzo broadbast. La rete replica automaticamente i datagrammi in modo che sia in grado di raggiungere tutti i destinatari all’interno della trasmissione, che generalmente consiste in un’intera sottorete di rete.
Geocast
Geocast è in qualche modo simile a multicast in quanto le richieste da un mittente vengono instradate a più endpoint contemporaneamente, tuttavia, la differenza è che la rete è definita dalla loro posizione geografica.
Anycast e IPv4 vs IPv6
Anycast non è ufficialmente supportato in IPv4 tuttavia, questo può essere risolto utilizzando BGP. In sostanza, a più host viene assegnato lo stesso IP unicast e le rotte vengono annunciate tramite BGP. Pertanto, i router interpretano questo come più percorsi verso la stessa destinazione, mentre in realtà, vengono indirizzati a destinazioni diverse con lo stesso indirizzo.
Lo svantaggio di questo approccio, tuttavia, è che la rete può eseguire quello che viene chiamato un “POP switch” che cambia i pacchetti di routing nel caso in cui ci sia congestione o cambiamenti nella rete.
IPv6 d’altra parte supporta esplicitamente anycast. I router IPv6 in genere non distinguono un pacchetto anycast da un pacchetto unicast attraverso la rete, sebbene sia necessaria una gestione speciale dai router vicino alla destinazione.
Inoltre, lo stesso processo utilizzato in IPv4 può essere utilizzato anche in IPv6. Questo metodo non dipende da router anycast-aware tuttavia si incorrerà negli stessi problemi di cui sopra.
Riepilogo
È chiaro che anycast è una tecnica potente per, tra le altre cose, ridurre la latenza della pagina e mitigare gli attacchi. Anche se è uno sforzo complesso da implementare, il payoff è vasto sia per gli utenti che per i fornitori di servizi.
KeyCDN è lieta di offrire anycast per contribuire a migliorare l’efficienza complessiva dei servizi ai nostri clienti.