O que acontece ao conectar dentro e fora de um túnel VPN

Das cartas ao suporte técnico de Tucha, esses artigos nascem. Portanto, recentemente, um cliente entrou em contato conosco com uma solicitação para esclarecer o que acontece ao conectar-se dentro de um túnel VPN entre o escritório do usuário e o ambiente na nuvem, bem como ao conectar-se fora do túnel VPN. Portanto, o texto inteiro abaixo é uma carta real que enviamos a um dos clientes em resposta à sua pergunta. Evidentemente, alteramos os endereços IP para não anonimizar o cliente. Mas, sim, o suporte técnico da Tucha é realmente famoso por suas respostas abrangentes e cartas informativas. :-)

Obviamente, entendemos que, para muitos, este artigo não será uma revelação. Porém, como os artigos para administradores iniciantes aparecem periodicamente no Habr e também porque esse artigo apareceu de uma carta real para um cliente real, ainda compartilharemos essas informações aqui. Há uma alta probabilidade de que seja útil para alguém.
Portanto, explicamos em detalhes o que acontece entre o servidor na nuvem e o escritório se eles estiverem conectados por uma rede site a site. Observe que, nesse caso, parte dos serviços está disponível apenas no escritório e parte - de qualquer lugar da Internet.

Explicaremos imediatamente que nosso cliente desejava poder acessar o servidor 192.168.A.1 de qualquer lugar via RDP, conectando-se ao AAA2: 13389 e a outros serviços apenas do escritório (192.168.B.0 / 24) conectado por meio de VPN Além disso, o cliente foi configurado inicialmente para que a máquina 192.168.B.2 no escritório também pudesse ser acessada via RDP de qualquer lugar, conectando-se ao BBB1: 11111 . Ajudamos a organizar as conexões IPSec entre a nuvem e o escritório, e o especialista em TI do cliente começou a fazer perguntas sobre o que aconteceria neste ou naquele caso. Para responder a todas essas perguntas, de fato, escrevemos para ele tudo o que você pode ler abaixo.


Agora considere esses processos com mais detalhes.


Primeira posição


Quando algo é enviado de 192.168.B.0 / 24 para 192.168.A.0 / 24 ou de 192.168.A.0 / 24 para 192.168.B.0 / 24 , ele entra na VPN. Ou seja, esse pacote é adicionalmente criptografado e transmitido entre BBB1 e AAA1 , mas 192.168.A.1 vê exatamente o pacote de 192.168.B.1 . Eles podem se comunicar através de qualquer protocolo. As respostas de retorno também são transmitidas via VPN da mesma maneira, o que significa que o pacote de 192.168.A.1 para 192.168.B.1 será enviado como um datagrama ESP de AAA1 para BBB1 , que o roteador implantará do outro lado, pegará esse pacote e o enviará para 192.168.B.1 como um pacote de 192.168.A.1 .

Exemplo concreto:

1) 192.168.B.1 acessa 192.168.A.1 , deseja estabelecer uma conexão TCP com 192.168.A.1: 3389 ;

2) 192.168.B.1 envia uma solicitação para estabelecer uma conexão a partir de 192.168.B.1: 55555 (ele seleciona a porta para feedback, a seguir usaremos o número 55555 como exemplo do número da porta que o sistema seleciona ao gerar TCP- conexões) a 192.168.A.1: 3389 ;

3) o sistema operacional executado no computador com o endereço 192.168.B.1 decide transferir este pacote para o endereço de gateway do roteador ( 192.168.B.254 no nosso caso), porque existem outras rotas mais específicas para 192.168.A.1 , portanto, ele não passa o pacote ao longo da rota padrão (0.0.0.0/0);

4) para isso, ela tenta encontrar o endereço MAC para o endereço IP 192.168.B.254 na tabela de cache do protocolo ARP. Se não for encontrado, envia do endereço 192.168.B.1 uma transmissão que possui solicitação para a rede 192.168.B.0 / 24 . Quando 192.168.B.254 devolve seu endereço MAC, o sistema envia um pacote Ethernet para ele e armazena essas informações em sua tabela de cache;

5) o roteador recebe esse pacote e decide para onde enviá-lo: possui uma política de transmissão de todos os pacotes entre 192.168.B.0 / 24 e 192.168.A.0 / 24 através de uma conexão VPN entre BBB1 e AAA1 ;

6) o roteador gera um datagrama ESP de BBB1 a AAA1 ;

7) o roteador decide a quem enviar esse pacote, enviando-o para, digamos, BBB254 (gateway do provedor de Internet), porque não possui rotas mais específicas para AAA1 que 0.0.0.0/0;

8) da mesma forma como já mencionado, encontra o endereço MAC para BBB254 e envia o pacote para o gateway do provedor de Internet;

9) Os provedores de Internet transmitem através de suas redes o datagrama ESP de BBB1 a AAA1 ;

10) o roteador virtual em AAA1 recebe esse datagrama, descriptografa-o e recebe um pacote de 192.168.B.1: 55555 para 192.168.A.1: 3389 ;

11) o roteador virtual verifica para quem deve ser enviado, encontra a rede 192.168.A.0 / 24 na tabela de roteamento e a envia diretamente para 192.168.A.1 , pois possui uma interface 192.168.A.254 / 24 ;

12) para isso, o roteador virtual encontra o endereço MAC para 192.168.A.1 e passa esse pacote para ele através da rede Ethernet virtual;

13) 192.168.A.1 recebe esse pacote na porta 3389, concorda em estabelecer uma conexão e forma um pacote em resposta de 192.168.A.1: 3389 a 192.168.B.1: 55555 ;

14) seu sistema envia esse pacote para o endereço de gateway do roteador virtual ( 192.168.A.254 no nosso caso), porque não possui outras rotas mais específicas para 192.168.B.1 ; portanto, ele deve transmitir o pacote ao longo da rota padrão (0.0.0.0/0);

15) da mesma maneira que nos casos anteriores, o sistema que roda no servidor com o endereço 192.168.A.1 encontra o endereço MAC 192.168.A.254 , pois está na mesma rede com sua interface 192.168.A.1 / 24 ;

16) o roteador virtual recebe esse pacote e decide para onde enviá-lo: possui uma política de transmissão de todos os pacotes entre 192.168.A.0 / 24 e 192.168.B.0 / 24 através de uma conexão VPN entre AAA1 e BBB1 ;

17) o roteador virtual gera um datagrama ESP de AAA1 para BBB1 ;

18) o roteador virtual decide para quem esse pacote deve ser enviado, o envia para AAA254 (o gateway do provedor de Internet, neste caso, também somos nós), porque não possui rotas mais específicas para BBB1 do que 0.0.0.0/0;

19) Os provedores de Internet transmitem através de suas redes um datagrama ESP de AAA1 para BBB1 ;

20) o roteador no BBB1 recebe esse datagrama, descriptografa-o e recebe um pacote de 192.168.A.1: 3389 para 192.168.B.1: 55555 ;

21) ele entende que deve ser transmitido para 192.168.B.1 , pois ele está na mesma rede com ele, portanto, ele tem uma entrada correspondente na tabela de roteamento que o obriga a enviar pacotes para todo o 192.168.B.0 / 24 diretamente;

22) o roteador encontra o endereço MAC para 192.168.B.1 e envia esse pacote;

23) o sistema operacional no computador com o endereço 192.168.B.1 recebe um pacote de 192.168.A.1: 3389 para 192.168.B.1: 55555 e inicia as seguintes etapas para estabelecer uma conexão TCP.

Este exemplo é bastante conciso e simplista (e aqui você pode se lembrar de vários detalhes) descrevendo o que acontece nos níveis 2-4. Os níveis 1, 5-7 não são considerados.

Segunda posição


Se algo for enviado especificamente para AAA2 a partir de 192.168.B.0 / 24 , ele não será direcionado à VPN, mas diretamente. Ou seja, se um usuário do endereço 192.168.B.1 acessa AAA2: 13389 , esse pacote é desfiado do endereço BBB1 , passa para AAA2 , e aí o roteador o recebe e envia para 192.168.A.1 . 192.168.A.1 não sabe nada sobre 192.168.B.1 , ele vê um pacote do BBB1 , porque ele o entendeu. Portanto, a resposta a esta solicitação segue a rota geral, exatamente o mesmo vai do endereço AAA2 e vai para BBB1 , e esse roteador fornece essa resposta para 192.168.B.1 , e vê a resposta de AAA2 , para a qual se dirigiu.

Exemplo concreto:

1) 192.168.B.1 endereça AAA2 , deseja estabelecer uma conexão TCP com AAA2: 13389 ;

2) 192.168.B.1 envia uma solicitação para estabelecer uma conexão de 192.168.B.1: 55555 (esse número, como no exemplo anterior, pode ser diferente) para AAA2: 13389 ;

3) o sistema operacional que é executado no computador com o endereço 192.168.B.1 decide transferir esse pacote para o endereço de gateway do roteador ( 192.168.B.254 no nosso caso), porque não possui outras rotas mais específicas para AAA2 , o que significa que ele envia o pacote ao longo da rota padrão (0.0.0.0/0);

4) para isso, ela, como mencionamos no exemplo anterior, tenta encontrar o endereço MAC para o endereço IP 192.168.B.254 na tabela de cache do protocolo ARP. Se não for encontrado, envia do endereço 192.168.B.1 uma transmissão que possui solicitação para a rede 192.168.B.0 / 24 . Quando 192.168.B.254 devolve seu endereço MAC, o sistema envia um pacote Ethernet para ele e armazena essas informações em sua tabela de cache;

5) o roteador recebe esse pacote e decide para onde enviá-lo: possui uma política que deve encaminhar (substituindo o endereço de retorno) todos os pacotes de 192.168.B.0 / 24 para outros nós da Internet;

6) como essa política implica que o endereço de retorno deve coincidir com o endereço mais baixo na interface através da qual esse pacote será transmitido, o roteador primeiro decide para quem exatamente esse pacote deve ser transmitido e ele, como no exemplo anterior, deve enviá-lo para BBB254 (Gateway de Provedor de Serviços de Internet), porque não possui rotas mais específicas para AAA2 que 0.0.0.0/0;

7) portanto, o roteador substitui o endereço de retorno do pacote, doravante o pacote de BBB1: 44444 (o número da porta, é claro, pode ser diferente) para AAA2: 13389 ;

8) o roteador lembra o que fez, o que significa que, quando uma resposta é recebida de AAA2: 13389 para BBB1: 44444 , ele saberá que deve alterar o endereço e a porta do destinatário para 192.168.B.1: 55555 .

9) agora o roteador deve transferi-lo para a rede do provedor de Internet via BBB254 ; portanto, da mesma forma que já mencionamos, encontra o endereço MAC para BBB254 e envia o pacote para o gateway do provedor de Internet;

10) Os provedores de Internet transferem um pacote de BBB1 para AAA2 em suas redes;

11) o roteador virtual no AAA2 recebe esse pacote na porta 13389;

12) existe uma regra no roteador virtual que estipula que os pacotes que vieram de qualquer remetente para esta porta devem ser enviados para 192.168.A.1: 3389 ;

13) o roteador virtual encontra a rede 192.168.A.0 / 24 na tabela de roteamento e a envia diretamente para 192.168.A. 1, porque possui uma interface 192.168.A.254 / 24 ;

14) para isso, o roteador virtual encontra o endereço MAC para 192.168.A.1 e passa esse pacote para ele através da rede Ethernet virtual;

15) 192.168.A.1 recebe esse pacote na porta 3389, concorda em estabelecer uma conexão e forma um pacote em resposta a 192.168.A.1: 3389 no BBB1: 44444 ;

16) seu sistema envia esse pacote para o endereço de gateway do roteador virtual ( 192.168.A.254 no nosso caso), porque não possui outras rotas mais específicas para BBB1 , portanto, deve transmitir o pacote ao longo da rota padrão (0.0. 0,0 / 0);

17) da mesma maneira que nos casos anteriores, o sistema que roda no servidor com o endereço 192.168.A.1 encontra o endereço MAC 192.168.A.254 , pois está na mesma rede com sua interface 192.168.A.1 / 24 ;

18) O roteador virtual aceita este pacote. Deve-se observar que ele lembra que recebeu um pacote de BBB1: 44444 em AAA2: 13389 e alterou o endereço e a porta do destinatário para 192.168.A.1: 3389 ; portanto, ele altera o pacote de 192.168.A.1: 3389 para BBB1: 44444 endereço do remetente em AAA2: 13389 ;

19) o roteador virtual decide para quem esse pacote deve ser enviado; ele o envia para AAA254 (o gateway do provedor de Internet, neste caso, também somos nós), porque não possui rotas mais específicas para BBB1 do que 0.0.0.0/0;

20) Os provedores de Internet transferem um pacote de AAA2 para BBB1 em suas redes;

21) o roteador no BBB1 recebe esse pacote e lembra que, quando enviou o pacote de 192.168.B.1: 55555 para AAA2: 13389 , mudou seu endereço e porta de remetente para BBB1: 44444 , o que significa que esta é a resposta que precisa ser transmitida em 192.168.B.1: 55555 (de fato, há várias outras verificações, mas não fazemos isso);

22) ele entende que eles devem ser enviados diretamente para 192.168.B.1 , uma vez que ele está na mesma rede com ele, portanto, ele tem uma entrada correspondente na tabela de roteamento que o obriga a enviar pacotes para todo o 192.168.B.0 / 24 diretamente;

23) o roteador encontra o endereço MAC para 192.168.B.1 e envia esse pacote;

24) o sistema operacional no computador com o endereço 192.168.B.1 recebe um pacote de AAA2: 13389 para 192.168.B.1: 55555 e inicia as seguintes etapas para estabelecer uma conexão TCP.

Observe que, nesse caso, o computador com o endereço 192.168.B.1 não sabe nada sobre o servidor com o endereço 192.168.A.1 , ele se comunica apenas com o AAA2 . Da mesma forma, o servidor com o endereço 192.168.A.1 não sabe nada sobre o computador com o endereço 192.168.B.1 . Ele acredita que eles se conectaram a ele pelo endereço BBB1 , e ele não sabe mais nada, por assim dizer.

Observe também que, se este computador acessar AAA2: 1540 , a conexão não será estabelecida, porque o encaminhamento de conexão para a porta 1540 não está configurado no roteador virtual, mesmo que em servidores da rede virtual 192.168.A.0 / 24 (por exemplo, em um servidor com o endereço 192.168.A.1 ) e existem alguns serviços que estão aguardando uma conexão nessa porta. Se o usuário do computador com o endereço 192.168.B.1 for absolutamente necessário para estabelecer uma conexão com este serviço, ele deverá usar uma VPN, ou seja, entre em contato diretamente no 192.168.A.1: 1540 .

Deve-se enfatizar que quaisquer tentativas de estabelecer uma conexão com AAA1 (exceto a conexão IPSec de BBB1 não serão bem-sucedidas. Todas as tentativas de estabelecer uma conexão com AAA2 , exceto as conexões com a porta 13389, também falharão.
Observe também que, se alguém chamar AAA2 (por exemplo, UDP), tudo o que é indicado nos parágrafos 10 a 20 também se aplicará a ele. O que acontece antes e depois depende do que exatamente está por trás disso. Não possuímos essas informações, portanto, recomendamos que você consulte os administradores do site com o endereço do endereço.

Terceira posição


E vice-versa, se algo é enviado de 192.168.A.1 para alguma porta configurada para ser encaminhada para o BBB1 (por exemplo, 11111), ele também não entra na VPN, mas apenas pega o AAA1 e acaba no BBB1 e esse já está sendo transferido para algum lugar, digamos, 192.168.B.2: 3389 . Ele vê este pacote não de 192.168.A.1 , mas de AAA1 . E, quando 192.168.B.2 responde, o pacote passa de BBB1 a AAA1 e depois chega ao iniciador de conexão - 192.168.A.1 .

Exemplo concreto:

1) 192.168.A.1 aborda BBB1 , deseja estabelecer uma conexão TCP com BBB1: 11111 ;

2) 192.168.A.1 envia uma solicitação para estabelecer uma conexão a partir de 192.168.A.1: 55555 (esse número, como no exemplo anterior, pode ser diferente) no BBB1: 11111 ;

3) o sistema operacional que roda no servidor com o endereço 192.168.A.1 decide transferir esse pacote para o endereço de gateway do roteador ( 192.168.A.254 no nosso caso), porque não possui outras rotas mais específicas para BBB1 , portanto, ele envia o pacote ao longo da rota padrão (0.0.0.0/0);

4) para isso, ela, como mencionamos nos exemplos anteriores, tenta encontrar o endereço MAC para o endereço IP 192.168.A.254 na tabela de cache do protocolo ARP. Se não for encontrado, envia do endereço 192.168.A.1 uma transmissão que possui solicitação para a rede 192.168.A.0 / 24 . Quando 192.168.A.254 devolve seu endereço MAC, o sistema transmite um pacote Ethernet para ele e insere essas informações em sua tabela de cache;

5) o roteador virtual recebe esse pacote e decide para onde transferi-lo: possui uma política que deve encaminhar (substituindo o endereço de retorno) todos os pacotes de 192.168.A.0 / 24 para outros nós da Internet;

6) como essa política assume que o endereço de retorno deve coincidir com o endereço mais baixo na interface pela qual esse pacote será transmitido, o roteador virtual decide primeiro a quem exatamente esse pacote deve ser transmitido e ele, como no exemplo anterior, deve enviá-lo no AAA254 (o gateway do provedor de Internet, neste caso, também somos nós), porque não possui rotas mais específicas para BBB1 do que 0.0.0.0/0;

7) significa que o roteador virtual substitui o endereço de retorno do pacote; doravante, é um pacote de AAA1: 44444 (o número da porta, é claro, pode ser diferente) para BBB1: 11111 ;

8) o roteador virtual se lembra do que fez, portanto, quando uma resposta é recebida de BBB1: 11111 para AAA1: 44444 , ele saberá que deve alterar o endereço e a porta do destinatário para 192.168.A.1: 55555 .

9) agora o roteador virtual deve transferi-lo para a rede do provedor de Internet através do AAA254 , o que significa que, como já mencionamos, ele encontra o endereço MAC do AAA254 e envia o pacote ao gateway do provedor de Internet;

10) Os provedores de Internet transferem em suas redes um pacote de AAA1 para BBB1 ;

11) o roteador no BBB1 recebe esse pacote na porta 11111;

12) existe uma regra no roteador virtual, que estipula que os pacotes recebidos de qualquer remetente para essa porta sejam transmitidos para 192.168.B.2: 3389 ;

13) o roteador encontra a rede 192.168.B.0 / 24 na tabela de roteamento e a envia diretamente para 192.168.B.2 , uma vez que possui uma interface 192.168.B.254 / 24 ;

14) para isso, o roteador virtual encontra o endereço MAC para 192.168.B.2 e passa esse pacote para ele através da rede Ethernet virtual;

15) 192.168.B.2 recebe esse pacote na porta 3389, concorda em estabelecer uma conexão e forma um pacote em resposta de 192.168.B.2: 3389 a AAA1: 44444 ;

16) seu sistema envia esse pacote para o endereço de gateway do roteador ( 192.168.B.254 no nosso caso), porque não possui outras rotas mais específicas para AAA1 ; portanto, deve passar o pacote pela rota padrão (0.0.0.0 / 0);

17) da mesma forma que nos casos anteriores, o sistema que roda no computador com o endereço 192.168.B.2 encontra o endereço MAC 192.168.B.254 , pois está na mesma rede com sua interface 192.168.B.2 / 24 ;

18) O roteador aceita este pacote. Deve-se observar que ele lembra que recebeu um pacote de AAA1 no BBB1: 11111 e alterou o endereço e a porta do destinatário para 192.168.B.2: 3389 , portanto, ele altera o endereço do remetente para um pacote de 192.168.B.2: 3389 para AAA1: 44444 no BBB1: 11111 ;

19) O roteador decide para quem encaminhar este pacote. Ele o envia para, digamos, BBB254 (o gateway do provedor de Internet, cujo endereço exato não sabemos), porque ele não possui rotas mais específicas para AAA1 que 0.0.0.0/0;

20) Os provedores de Internet transferem um pacote de BBB1 para AAA1 em suas redes;

21) o roteador virtual no AAA1 recebe esse pacote e lembra que, quando enviou o pacote de 192.168.A.1: 55555 para BBB1: 11111 , alterou o endereço e a porta do remetente para AAA1: 44444 . Portanto, esta é a resposta que precisa ser transmitida para 192.168.A.1: 55555 (de fato, como mencionamos no exemplo anterior, também há mais algumas verificações por lá, mas desta vez não as analisamos também);

22) ele entende que deve ser enviado diretamente para 192.168.A.1 , já que ele está na mesma rede com ele, o que significa que ele tem uma entrada correspondente na tabela de roteamento que o obriga a enviar pacotes para todo o 192.168.A.0 / 24 diretamente;

23) o roteador encontra o endereço MAC para 192.168.A.1 e envia esse pacote;

24) o sistema operacional no servidor com o endereço 192.168.A.1 recebe um pacote de BBB1: 1111 1 para 192.168.A.1: 55555 e inicia as seguintes etapas para estabelecer uma conexão TCP.

Da mesma forma que no caso anterior, neste caso, o servidor com o endereço 192.168.A.1não sabe nada sobre o computador com o endereço 192.168.B.1 , ele se comunica apenas com BBB1 . O computador com o endereço 192.168.B.1 também não sabe nada sobre o servidor com o endereço 192.168.A.1 . Ele acredita que eles se conectaram a ele pelo endereço AAA1 , e o resto está oculto.

Conclusão


É assim que acontece ao conectar-se dentro de um túnel VPN entre o escritório do cliente e o ambiente na nuvem, bem como ao conectar-se fora do túnel VPN. E se você ainda tiver dúvidas ou precisar de nossa ajuda para solucionar problemas na nuvem, entre em contato 24 horas por dia , 7 dias por semana.

Source: https://habr.com/ru/post/pt477854/


All Articles