Cosa succede alle connessioni all'interno e all'esterno del tunnel VPN

Dalle lettere al supporto tecnico di Tucha nascono veri e propri articoli. Ad esempio, recentemente un cliente si è rivolto a noi chiedendoci di chiarire cosa succede durante le connessioni all'interno del tunnel VPN tra l'ufficio dell'utente e l'ambiente cloud, nonché durante le connessioni all'esterno del tunnel VPN. Pertanto, l'intero testo riportato di seguito è una vera e propria lettera che abbiamo inviato a uno dei nostri clienti in risposta alla sua domanda. Naturalmente gli indirizzi IP sono stati modificati per non rendere anonimo il client. Ma sì, il supporto tecnico di Tucha è davvero famoso per le sue risposte dettagliate e le e-mail informative. 🙂

Naturalmente capiamo che per molti questo articolo non sarà una rivelazione. Tuttavia, poiché di tanto in tanto su Habr compaiono articoli per amministratori alle prime armi e poiché questo articolo è apparso da una vera lettera a un vero cliente, condivideremo comunque queste informazioni qui. C'è un'alta probabilità che possa essere utile a qualcuno.
Spieghiamo quindi nel dettaglio cosa succede tra il server nel cloud e l'ufficio se sono collegati tramite una rete site-to-site. Tieni presente che alcuni servizi sono accessibili solo dall'ufficio, mentre altri sono accessibili da qualsiasi punto di Internet.

Spieghiamo subito cosa voleva il nostro cliente sul server 192.168.A.1 potresti venire da qualsiasi luogo tramite RDP, connettendoti a AAA2:13389e accesso agli altri servizi solo dall'ufficio (192.168.B.0/24)connesso tramite VPN. Inoltre, il cliente inizialmente aveva configurato l'auto 192.168.B.2 in ufficio era anche possibile utilizzare RDP da qualsiasi luogo, collegandosi a BBB1:11111. Abbiamo aiutato a organizzare le connessioni IPSec tra il cloud e l’ufficio e lo specialista IT del cliente ha iniziato a porre domande su cosa sarebbe successo in questo o quel caso. Per rispondere a tutte queste domande noi, infatti, gli abbiamo scritto tutto quello che potete leggere qui sotto.

Cosa succede alle connessioni all'interno e all'esterno del tunnel VPN

Ora diamo un'occhiata a questi processi in modo più dettagliato.

Posizione uno

Quando viene inviato qualcosa da 192.168.B.0/24 в 192.168.A.0/24 o fuori 192.168.A.0/24 в 192.168.B.0/24, entra nella VPN. Cioè, questo pacchetto viene ulteriormente crittografato e trasmesso tra BBB1 и AAA1ma 192.168.A.1 vede il pacco esattamente da 192.168.B.1. Possono comunicare tra loro utilizzando qualsiasi protocollo. Le risposte di ritorno vengono trasmesse allo stesso modo attraverso la VPN, il che significa che il pacchetto da 192.168.A.1 per 192.168.B.1 verrà inviato come datagramma ESP da AAA1 su BBB1, che il router aprirà su quel lato, estrai il pacchetto da esso e invialo a 192.168.B.1 come pacchetto da 192.168.A.1.

Esempio specifico:

1) 192.168.B.1 fa appello a 192.168.A.1, vuole stabilire una connessione TCP con 192.168.A.1:3389;

2) 192.168.B.1 invia una richiesta di connessione da 192.168.B.1:55555 (sceglie lui stesso il numero di porta per il feedback; di seguito utilizzeremo il numero 55555 come esempio del numero di porta che il sistema seleziona quando stabilisce una connessione TCP) su 192.168.A.1:3389;

3) un sistema operativo che gira su un computer con l'indirizzo 192.168.B.1, decide di inoltrare questo pacchetto all'indirizzo gateway del router (192.168.B.254 nel nostro caso), perché altri percorsi più specifici per 192.168.A.1, ne è sprovvisto, quindi trasmette il pacchetto tramite la route predefinita (0.0.0.0/0);

4) per questo cerca di trovare l'indirizzo MAC per l'indirizzo IP 192.168.B.254 nella tabella della cache del protocollo ARP. Se non viene rilevato, invia dall'indirizzo 192.168.B.1 trasmettere la richiesta di chi ha alla rete 192.168.B.0/24. Quando 192.168.B.254 in risposta gli invia il suo indirizzo MAC, il sistema trasmette per lui un pacchetto Ethernet e inserisce queste informazioni nella sua tabella cache;

5) il router riceve questo pacchetto e decide dove inoltrarlo: ha una policy scritta secondo la quale deve inviare tutti i pacchetti tra 192.168.B.0/24 и 192.168.A.0/24 trasferimento su una connessione VPN tra BBB1 и AAA1;

6) il router genera un datagramma ESP da BBB1 su AAA1;

7) il router decide a chi inviare questo pacchetto, lo invia, diciamo, BBB254 (gateway ISP) perché ci sono percorsi più specifici verso AAA1, rispetto a 0.0.0.0/0, non ha;

8) esattamente come già detto, trova l'indirizzo MAC per BBB254 e trasmette il pacchetto al gateway dell'ISP;

9) I provider Internet trasmettono un datagramma ESP da BBB1 su AAA1;

10) router virtuale acceso AAA1 riceve questo datagramma, lo decodifica e riceve un pacchetto da 192.168.B.1:55555 per 192.168.A.1:3389;

11) il router virtuale controlla a chi passarlo, trova la rete nella tabella di routing 192.168.A.0/24 e lo invia direttamente a 192.168.A.1, perché ha un'interfaccia 192.168.A.254/24;

12) per questo, il router virtuale trova l'indirizzo MAC per 192.168.A.1 e gli trasmette questo pacchetto tramite una rete Ethernet virtuale;

13) 192.168.A.1 riceve questo pacchetto sulla porta 3389, accetta di stabilire una connessione e genera un pacchetto in risposta 192.168.A.1:3389 su 192.168.B.1:55555;

14) il suo sistema trasmette questo pacchetto all'indirizzo gateway del router virtuale (192.168.A.254 nel nostro caso), perché altri percorsi più specifici per 192.168.B.1, non ne ha, quindi deve trasmettere il pacchetto tramite la route predefinita (0.0.0.0/0);

15) lo stesso dei casi precedenti, un sistema che gira su un server con l'indirizzo 192.168.A.1, trova l'indirizzo MAC 192.168.A.254, poiché si trova sulla stessa rete con la sua interfaccia 192.168.A.1/24;

16) il router virtuale riceve questo pacchetto e decide dove inoltrarlo: ha una policy scritta secondo la quale deve inviare tutti i pacchetti tra 192.168.A.0/24 и 192.168.B.0/24 trasferimento su una connessione VPN tra AAA1 и BBB1;

17) il router virtuale genera un datagramma ESP da AAA1 per BBB1;

18) il router virtuale decide a chi inviare questo pacchetto, lo invia AAA254 (gateway ISP, in questo caso, siamo anche noi), perché ci sono percorsi più specifici per BBB1, rispetto a 0.0.0.0/0, non ha;

19) I provider Internet trasmettono un datagramma ESP sulle loro reti con AAA1 su BBB1;

20) router acceso BBB1 riceve questo datagramma, lo decodifica e riceve un pacchetto da 192.168.A.1:3389 per 192.168.B.1:55555;

21) capisce che dovrebbe essere trasferito specificamente a 192.168.B.1, poiché è sulla stessa rete con lui, ha quindi una voce corrispondente nella tabella di routing, che lo obbliga a inviare pacchetti per l'intero 192.168.B.0/24 direttamente;

22) il router trova l'indirizzo MAC per 192.168.B.1 e gli porge questo pacco;

23) sistema operativo su un computer con l'indirizzo 192.168.B.1 riceve un pacco da 192.168.A.1:3389 per 192.168.B.1:55555 e avvia i passaggi successivi per stabilire una connessione TCP.

Questo esempio in modo abbastanza conciso e semplificato (e qui puoi ricordare molti altri dettagli) descrive cosa succede ai livelli 2-4. I livelli 1, 5-7 non sono considerati.

Posizione due

Se con 192.168.B.0/24 qualcosa viene inviato specificamente a AAA2, non va alla VPN, ma direttamente. Cioè, se l'utente dall'indirizzo 192.168.B.1 fa appello a AAA2:13389, questo pacchetto proviene dall'indirizzo BBB1, passa oltre AAA2, quindi il router lo riceve e lo trasmette a 192.168.A.1. 192.168.A.1 non ne sa nulla 192.168.B.1, vede un pacco da BBB1, perché l'ha preso. Pertanto, la risposta a questa richiesta segue il percorso generale, proviene dall'indirizzo allo stesso modo AAA2 e va a BBB1e quel router invia questa risposta a 192.168.B.1, vede la risposta da AAA2, al quale si è rivolto.

Esempio specifico:

1) 192.168.B.1 fa appello a AAA2, vuole stabilire una connessione TCP con AAA2:13389;

2) 192.168.B.1 invia una richiesta di connessione da 192.168.B.1:55555 (questo numero, come nell'esempio precedente, potrebbe essere diverso) acceso AAA2:13389;

3) un sistema operativo che gira su un computer con l'indirizzo 192.168.B.1, decide di inoltrare questo pacchetto all'indirizzo gateway del router (192.168.B.254 nel nostro caso), perché altri percorsi più specifici per AAA2, non ne ha uno, il che significa che trasmette il pacchetto tramite il percorso predefinito (0.0.0.0/0);

4) per questo, come accennato nell'esempio precedente, cerca di trovare l'indirizzo MAC per l'indirizzo IP 192.168.B.254 nella tabella della cache del protocollo ARP. Se non viene rilevato, invia dall'indirizzo 192.168.B.1 trasmettere la richiesta di chi ha alla rete 192.168.B.0/24. Quando 192.168.B.254 in risposta gli invia il suo indirizzo MAC, il sistema trasmette per lui un pacchetto Ethernet e inserisce queste informazioni nella sua tabella cache;

5) il router riceve questo pacchetto e decide dove inoltrarlo: ha una policy scritta secondo la quale deve inoltrare (sostituendo l'indirizzo di ritorno) tutti i pacchetti provenienti 192.168.B.0/24 ad altri nodi Internet;

6) poiché questa politica implica che l'indirizzo di ritorno deve corrispondere all'indirizzo basso sull'interfaccia attraverso la quale verrà trasmesso questo pacchetto, il router decide prima a chi inviare esattamente questo pacchetto e lui, come nell'esempio precedente, deve inviarlo A BBB254 (gateway ISP) perché ci sono percorsi più specifici verso AAA2, rispetto a 0.0.0.0/0, non ha;

7) quindi il router sostituisce l'indirizzo di ritorno del pacchetto, da qui in poi il pacchetto proviene BBB1:44444 (il numero di porta, ovviamente, potrebbe essere diverso) a AAA2:13389;

8) il router ricorda cosa ha fatto, ovvero quando AAA2:13389 к BBB1:44444 arriva la risposta, saprà che deve cambiare l'indirizzo di destinazione e il porto 192.168.B.1:55555.

9) ora il router dovrebbe passarlo alla rete dell'ISP tramite BBB254quindi, proprio come abbiamo già accennato, trova l'indirizzo MAC per BBB254 e trasmette il pacchetto al gateway dell'ISP;

10) I provider Internet trasmettono pacchetti da BBB1 su AAA2;

11) router virtuale acceso AAA2 riceve questo pacchetto sulla porta 13389;

12) esiste una regola sul router virtuale che stabilisce che i pacchetti ricevuti da qualsiasi mittente su questa porta debbano essere trasmessi a 192.168.A.1:3389;

13) il router virtuale trova la rete nella tabella di routing 192.168.A.0/24 e lo invia direttamente 192.168.A.1 perché ha un'interfaccia 192.168.A.254/24;

14) per questo, il router virtuale trova l'indirizzo MAC per 192.168.A.1 e gli trasmette questo pacchetto tramite una rete Ethernet virtuale;

15) 192.168.A.1 riceve questo pacchetto sulla porta 3389, accetta di stabilire una connessione e genera un pacchetto in risposta 192.168.A.1:3389 su BBB1:44444;

16) il suo sistema trasmette questo pacchetto all'indirizzo gateway del router virtuale (192.168.A.254 nel nostro caso), perché altri percorsi più specifici per BBB1, non ne ha, quindi deve trasmettere il pacchetto tramite la route predefinita (0.0.0.0/0);

17) esattamente come nei casi precedenti, un sistema che gira su un server con l'indirizzo 192.168.A.1, trova l'indirizzo MAC 192.168.A.254, poiché si trova sulla stessa rete con la sua interfaccia 192.168.A.1/24;

18) il router virtuale riceve questo pacchetto. Va notato che ricorda ciò che ha ricevuto AAA2:13389 pacchetto da BBB1:44444 e ha cambiato l'indirizzo e la porta del destinatario in 192.168.A.1:3389, quindi, il pacchetto da 192.168.A.1:3389 per BBB1:44444 cambia l'indirizzo del mittente in AAA2:13389;

19) il router virtuale decide a chi inviare questo pacchetto, lo invia AAA254 (gateway ISP, in questo caso, siamo anche noi), perché ci sono percorsi più specifici per BBB1, rispetto a 0.0.0.0/0, non ha;

20) I provider Internet trasmettono un pacchetto con AAA2 su BBB1;

21) router acceso BBB1 riceve questo pacchetto e lo ricorda da quando ha inviato il pacchetto 192.168.B.1:55555 per AAA2:13389, ha cambiato il suo indirizzo e la porta del mittente in BBB1:44444, allora questa è la risposta a cui inviare 192.168.B.1:55555 (in effetti, ci sono molti altri controlli lì, ma non approfondiamo l’argomento);

22) capisce che deve essere trasmesso direttamente a 192.168.B.1, poiché è sulla stessa rete con lui, ha quindi una voce corrispondente nella tabella di routing, che lo obbliga a inviare pacchetti per l'intero 192.168.B.0/24 direttamente;

23) il router trova l'indirizzo MAC per 192.168.B.1 e gli porge questo pacco;

24) sistema operativo su un computer con l'indirizzo 192.168.B.1 riceve un pacco da AAA2:13389 per 192.168.B.1:55555 e avvia i passaggi successivi per stabilire una connessione TCP.

Va notato che in questo caso il computer con l'indirizzo 192.168.B.1 non sa nulla del server con l'indirizzo 192.168.A.1, comunica solo con AAA2. Allo stesso modo, il server con l'indirizzo 192.168.A.1 non sa nulla del computer con l'indirizzo 192.168.B.1. Crede di essere stato collegato dall'indirizzo BBB1, e non sa nient'altro, per così dire.

Va inoltre notato che se questo computer accede AAA2:1540, la connessione non verrà stabilita perché l'inoltro della connessione alla porta 1540 non è configurato sul router virtuale, anche se su qualsiasi server nella rete virtuale 192.168.A.0/24 (ad esempio, su un server con l'indirizzo 192.168.A.1) e ci sono alcuni servizi che attendono connessioni su questa porta. Se un utente di computer con un indirizzo 192.168.B.1 È imperativo stabilire una connessione a questo servizio, deve utilizzare una VPN, ad es. contattare direttamente 192.168.A.1:1540.

Va sottolineato che qualsiasi tentativo di stabilire una connessione con AAA1 (ad eccezione della connessione IPSec da BBB1 non avrà successo. Qualsiasi tentativo di stabilire connessioni con AAA2, ad eccezione delle connessioni alla porta 13389, non avranno esito positivo.
Notiamo anche che se a AAA2 Se ne fa richiesta qualcun altro (ad esempio CCCC), anche a lui varrà tutto quanto indicato ai paragrafi 10-20. Ciò che accade prima e dopo dipende da cosa c'è esattamente dietro questo CCCC. Non disponiamo di tali informazioni, quindi ti consigliamo di consultare gli amministratori del nodo con l'indirizzo CCCC

Posizione tre

E, al contrario, se con 192.168.A.1 qualcosa viene inviato a una porta configurata per l'inoltro verso BBB1 (ad esempio, 11111), inoltre non finisce nella VPN, ma scorre semplicemente da AAA1 ed entra BBB1, e lo trasmette già da qualche parte, diciamo, 192.168.B.2:3389. Vede questo pacchetto non da 192.168.A.1, ma da AAA1. E quando 192.168.B.2 risponde, il pacco proviene da BBB1 su AAA1, e successivamente arriva all'iniziatore della connessione - 192.168.A.1.

Esempio specifico:

1) 192.168.A.1 fa appello a BBB1, vuole stabilire una connessione TCP con BBB1:11111;

2) 192.168.A.1 invia una richiesta di connessione da 192.168.A.1:55555 (questo numero, come nell'esempio precedente, potrebbe essere diverso) acceso BBB1:11111;

3) un sistema operativo che gira su un server con l'indirizzo 192.168.A.1, decide di inoltrare questo pacchetto all'indirizzo gateway del router (192.168.A.254 nel nostro caso), perché altri percorsi più specifici per BBB1, ne è sprovvisto, quindi trasmette il pacchetto tramite la route predefinita (0.0.0.0/0);

4) per questo, come accennato negli esempi precedenti, cerca di trovare l'indirizzo MAC per l'indirizzo IP 192.168.A.254 nella tabella della cache del protocollo ARP. Se non viene rilevato, invia dall'indirizzo 192.168.A.1 trasmettere la richiesta di chi ha alla rete 192.168.A.0/24. Quando 192.168.A.254 in risposta le invia il suo indirizzo MAC, il sistema trasmette per lui un pacchetto Ethernet e inserisce queste informazioni nella sua tabella cache;

5) il router virtuale riceve questo pacchetto e decide dove inoltrarlo: ha una policy scritta secondo la quale deve inoltrare (sostituendo l'indirizzo di ritorno) tutti i pacchetti provenienti 192.168.A.0/24 ad altri nodi Internet;

6) poiché questa politica presuppone che l'indirizzo di ritorno debba corrispondere all'indirizzo basso sull'interfaccia attraverso la quale verrà trasmesso questo pacchetto, il router virtuale decide prima a chi inviare esattamente questo pacchetto e lui, come nell'esempio precedente, deve inviare su AAA254 (gateway ISP, in questo caso, siamo anche noi), perché ci sono percorsi più specifici per BBB1, rispetto a 0.0.0.0/0, non ha;

7) questo significa che il router virtuale sostituisce l'indirizzo di ritorno del pacchetto, da ora in poi è un pacchetto da AAA1:44444 (il numero di porta, ovviamente, potrebbe essere diverso) a BBB1:11111;

8) il router virtuale ricorda cosa ha fatto, quindi, da quando BBB1:11111 per AAA1:44444 arriva la risposta, saprà che deve cambiare l'indirizzo di destinazione e il porto 192.168.A.1:55555.

9) ora il router virtuale dovrebbe passarlo alla rete dell'ISP tramite AAA254, quindi, proprio come abbiamo già detto, trova l'indirizzo MAC per AAA254 e trasmette il pacchetto al gateway dell'ISP;

10) I provider Internet trasmettono pacchetti da Da AAA1 a BBB1;

11) router acceso BBB1 riceve questo pacchetto sulla porta 11111;

12) esiste una regola sul router virtuale che stabilisce che i pacchetti arrivati ​​da qualsiasi mittente su questa porta debbano essere trasmessi a 192.168.B.2:3389;

13) il router trova la rete nella tabella di routing 192.168.B.0/24 e lo invia direttamente a 192.168.B.2, perché ha un'interfaccia 192.168.B.254/24;

14) per questo, il router virtuale trova l'indirizzo MAC per 192.168.B.2 e gli trasmette questo pacchetto tramite una rete Ethernet virtuale;

15) 192.168.B.2 riceve questo pacchetto sulla porta 3389, accetta di stabilire una connessione e genera un pacchetto in risposta 192.168.B.2:3389 su AAA1:44444;

16) il suo sistema trasmette questo pacchetto all'indirizzo gateway del router (192.168.B.254 nel nostro caso), perché altri percorsi più specifici per AAA1, non ne ha, quindi deve trasmettere il pacchetto tramite la route predefinita (0.0.0.0/0);

17) allo stesso modo dei casi precedenti, un sistema che gira su un computer con l'indirizzo 192.168.B.2, trova l'indirizzo MAC 192.168.B.254, poiché si trova sulla stessa rete con la sua interfaccia 192.168.B.2/24;

18) il router riceve questo pacchetto. Va notato che ricorda ciò che ha ricevuto BBB1:11111 pacchetto da AAA1 e ha cambiato l'indirizzo e la porta del destinatario in 192.168.B.2:3389, quindi, il pacchetto da 192.168.B.2:3389 per AAA1:44444 cambia l'indirizzo del mittente in BBB1:11111;

19) il router decide a chi inviare questo pacchetto. Lo manda, diciamo, a BBB254 (gateway ISP, di cui non conosciamo l'indirizzo esatto), perché non esistono percorsi più specifici per raggiungerlo AAA1, rispetto a 0.0.0.0/0, non ha;

20) I provider Internet trasmettono un pacchetto con BBB1 su AAA1;

21) router virtuale acceso AAA1 riceve questo pacchetto e lo ricorda da quando ha inviato il pacchetto 192.168.A.1:55555 per BBB1:11111, ha cambiato il suo indirizzo e la porta del mittente in AAA1:44444. Ciò significa che questa è la risposta a cui inviare 192.168.A.1:55555 (in realtà, come accennato nell'esempio precedente, ci sono anche diversi controlli in più, ma questa volta non li approfondiamo);

22) capisce che deve essere trasmesso direttamente a 192.168.A.1, poiché è sulla stessa rete con lui, significa che ha una voce corrispondente nella tabella di routing che lo obbliga a inviare pacchetti all'intero 192.168.A.0/24 direttamente;

23) il router trova l'indirizzo MAC per 192.168.A.1 e gli porge questo pacco;

24) sistema operativo sul server con l'indirizzo 192.168.A.1 riceve un pacco da BBB1:11111 per 192.168.A.1:55555 e avvia i passaggi successivi per stabilire una connessione TCP.

Esattamente come nel caso precedente, in questo caso il server con l'indirizzo 192.168.A.1 non sa nulla del computer con l'indirizzo 192.168.B.1, comunica solo con BBB1. Computer con indirizzo 192.168.B.1 inoltre non sa nulla del server con l'indirizzo 192.168.A.1. Crede di essere stato collegato dall'indirizzo AAA1, e il resto gli è nascosto.

conclusione

Tutto avviene così per le connessioni all’interno del tunnel VPN tra l’ufficio del cliente e l’ambiente cloud, così come per le connessioni all’esterno del tunnel VPN. E se hai domande o hai bisogno del nostro aiuto per risolvere i problemi del cloud, contattaci 24 ore su 7, XNUMX giorni su XNUMX.

Fonte: habr.com

Aggiungi un commento