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.