Vai al contenuto principale
BlogReteSpanning di più regioni con le VLAN di Linode

Spanning di più regioni con le VLAN di Linode

Spanning di più regioni con le VLAN di Linode

Le VLAN e le VPC sono metodi di isolamento della rete che utilizziamo per proteggere la nostra infrastruttura nei cloud pubblici. Garantiscono una maggiore sicurezza riducendo in modo significativo la superficie di attacco della nostra rete e dandoci la possibilità di segmentare i livelli delle applicazioni con e senza accesso a Internet pubblico. Oggi pensiamo più in grande e estendiamo la nostra rete privata su più regioni con Linode.

Quando parliamo di "regioni", ci riferiamo ad aree geografiche distinte all'interno dello stesso cloud provider. Le "zone" sono in genere sedi di hosting aggiuntive all'interno di tali regioni geografiche. Ad esempio, è possibile vedere una regione del Nord-Est con sede vicino a New York e una regione del Sud-Est con sede ad Atlanta, ognuna delle quali contiene più zone.

Oltre a garantire una latenza più bassa grazie alla vicinanza fisica a un maggior numero di utenti, l'esecuzione di un'applicazione multiregionale ci offre un significativo aumento dell'affidabilità e della tolleranza ai guasti. Tutto ciò che può avere un impatto sui carichi di lavoro in una sede, compresi i guasti hardware o le interruzioni della rete locale, può essere potenzialmente mitigato dalla presenza di un'altra sede su cui reindirizzare gli utenti.

Distribuzione di VLAN multiregione

Per instradare tra i segmenti VLAN distribuiti in più regioni, possiamo collegare tra loro i segmenti VLAN utilizzando una rete privata virtuale (VPN). 

In primo luogo, colleghiamo tutte le VLAN associate distribuite in una singola regione utilizzando un Linode che funge da router comune. Ogni segmento VLAN è un dominio layer-2 isolato e opera all'interno della propria subnet layer-3. Tutto il traffico tra i vari segmenti VLAN passerà attraverso il router e possiamo inserire regole di firewall all'interno del router per regolare il traffico consentito tra i vari segmenti.

Possiamo quindi configurare questa istanza del router per fare da ponte tra altri segmenti di rete utilizzando Internet pubblica e un software VPN come WireGuard o un protocollo come IPSec.

L'esempio precedente mostra una distribuzione a due regioni. Ogni regione è responsabile della gestione della connettività tra due VLAN isolate attraverso un'istanza di router. Ogni router può quindi creare un ponte tra le varie regioni a livello locale, utilizzando le istanze del router Linode che configuriamo con più interfacce. I router collegano le regioni utilizzando i tunnel WireGuard sulla rete Internet pubblica verso ciascuna regione.

Configurazione dei punti di uscita NAT

Il traffico può ora fluire tra qualsiasi VLAN, indipendentemente dalla regione. Inoltre, le istanze del router possono essere utilizzate come punti di uscita NAT (Network Address Translation) per fornire la connettività a Internet per le VLAN locali, nel caso in cui vengano distribuite senza connettività Internet locale. In questa configurazione, l'istanza del router locale verrebbe designata come gateway predefinito (ad esempio, in genere configurato come 10.0.0.1 su una rete 10.0.0.0/24). È inoltre possibile utilizzare le istanze del router come bastioni di gestione Secure Socket Shell (SSH).

Un modo comune per implementare questo tipo di configurazione NAT è quello di utilizzare una regola del firewall per contrassegnare il traffico WireGuard e il masquerading IP per qualsiasi traffico rilevato senza questo contrassegno. 

Ad esempio, il router è configurato per utilizzare una regola iptables:

iptables -t nat -A POSTROUTING -o eth0 -m mark ! -marca 42 -j MASQUERADE

È possibile configurare WireGuard in modo che utilizzi un FirewallMark (ad esempio, 42) all'interno della sua configurazione. Questa configurazione garantisce che il traffico di WireGuard non sia NATed, mentre tutto il traffico VLAN è NATed.

Le regole del firewall del cloud verrebbero quindi configurate per consentire la comunicazione di WireGuard tra i nodi di routing (in genere, udp/51820).

Possiamo quindi configurare le istanze del router con regole di firewall per controllare o registrare il flusso di traffico attraverso i segmenti locali e globali, come necessario.

Considerazioni

L'implementazione di questo esempio consente la condivisione dei dati a livello globale su più regioni e permette alle istanze del router di controllare il flusso di traffico tra i vari segmenti VLAN. Quando si incanala il traffico da più segmenti VLAN in un unico punto di aggregazione, è fondamentale comprendere le considerazioni relative alle prestazioni e alla larghezza di banda. Le prestazioni saranno determinate dalle limitazioni di larghezza di banda in upload imposte dalle risorse di calcolo assegnate al router.

È inoltre fondamentale considerare attentamente il protocollo VPN per assicurarsi che soddisfi i requisiti della vostra implementazione. La tecnologia scelta avrà un impatto notevole sulla larghezza di banda punto-punto e sulla sicurezza del traffico inviato attraverso la rete Internet pubblica. WireGuard, ad esempio, utilizza la crittografia per garantire che il traffico non possa essere intercettato e ha una base di calcolo affidabile più piccola rispetto a un'implementazione IPsec come strongSwan per limitare gli exploit e l'esposizione.

Multicloud

Lo stesso tipo di tecnologia che utilizziamo per estenderci su più regioni può essere implementato su diversi cloud provider. Ad esempio, è possibile posizionare un'istanza di router all'interno del confine di rete di un altro provider di servizi cloud e collegarla alla sua configurazione VPC locale, specifica del provider cloud. È possibile utilizzare un tunnel WireGuard tra l'istanza del router per creare un ponte verso la rete del cloud provider. Questa implementazione funziona bene per i servizi progettati per rimanere isolati esclusivamente in una rete privata.

Cosa c'è dopo

In definitiva, nella progettazione della nostra rete privata si può lavorare con molti strumenti diversi e i vantaggi possono superare di gran lunga la complessità aggiunta. Se la vostra applicazione cresce insieme alla vostra base di utenti, progettare il vostro ambiente per ridurre la latenza per un numero maggiore di individui può avere un impatto notevole sull'esperienza degli utenti. La tolleranza ai guasti aggiuntiva aumenta l'affidabilità e mantiene il software disponibile e accessibile.


Commenti

Lascia una risposta

Il vostro indirizzo e-mail non sarà pubblicato. I campi obbligatori sono contrassegnati da *