Atualmente estou configurando um ambiente em 2 sites. todos os servidores são Linux/ubuntu. O primeiro site é meu escritório e o segundo site é AWS. Tenho 2 servidores na AWS dentro de uma VPC com VPN site a site Web01 - 172.31.24.106 Revproxy01 - 172.31.17.216
Tenho 1 servidor e 1 câmera IP no escritório Servidor1 - 192.168.102.1 Câmera1 - 192.168.102.79
A VPN está no Servidor1 (IPSec Strongswan) e está configurada para se conectar a uma VPN de site para site da AWS no lado da AWS.
Com muita pesquisa e tempo, coloquei tudo em funcionamento. Web01 e Revproxy01 podem executar ping no Servidor1 e o Servidor1 pode executar ping em Web01 e Revproxy01.
Minha próxima etapa é conseguir executar ping na Camera1 de Web01 e RevProxy01. Eventualmente, gostaria de acessar o feed http das câmeras de web01 e Revproxy01
Acho que preciso configurar o roteamento (no Server01) para passar os dados do Web01 para o Camera01 via Server1.
Eu apreciaria muito a ajuda de alguém e aprenderia como fazer isso?
Responder1
OK, então não sei o quanto você entende como funciona o roteamento, então tentarei explicar e veremos o quanto você pode entender a minha explicação. A explicação não é exatamente correta porque na realidade há mais rodas girando, mas deveria ser suficiente.
A cada salto na rede, a pilha IP analisa cada pacote IP recebido. Ele compara odestinoEndereço IP com sua tabela de roteamento. Você pode ver essa tabela de roteamento com ip route
.
Primeiro verifica se o IP do pacote corresponde a uma de suas próprias interfaces. Se isso acontecer, o pacote será destinado ao próprio salto e o salto "engole" o pacote (empurra-o para cima na pilha, por exemplo, em direção à pilha TCP).
Se o pacote não for destinado ao salto em si, o salto verifica e atravessa sua própria tabela de roteamento da rota mais significativa para a menos significativa. A /24
informa que 24 dos 32 bits são significativos. A /16
seria menos significativo então. No caso da ip route
pilha IP compararia o endereço IP do pacote com as rotas exibidas de baixo para cima. A primeira rota que corresponder ao IP do pacote vence. Portanto, ao percorrer a tabela de roteamento com um IP de destino 192.168.102.10, a rota 192.168.0.0/16 corresponderá ao pacote. Uma rota de 192.0.0.0/16 não. Você pode usar a sipcalc
ferramenta para mostrar informações de endereço de rede.
A última rota correspondente será a rota padrão que corresponde a tudo.
Cada rota contém o próximo salto, para onde o pacote será enviado. Talvez você possa ver melhor o próximo salto em /sbin/route -n
. É a coluna "roteador" ou "interface", dependendo se a rede que a rota representa está diretamente conectada a uma interface de rede presente no salto ou não.
Quando um pacote passa por um túnel VPN, o pacote IP é agrupado em um pacote diferente. Então, para você, apenas os IPs internos da entrada VPN e do ponto de saída contam. O pacote entra no ponto de entrada e sai do ponto de saída "magicamente".
Portanto, agora você deve ser capaz de determinar em cada salto qual caminho o pacote deve seguir, incluindo os saltos de origem e de destino. Se não seguir o caminho desejado, você deverá adicionar uma rota correspondente. Essa pode ser uma rota de host único, também conhecida como 192.168.102.79/32
(todos os bits significativos! Corresponde a apenas um único host!). Procure alguns exemplos para ip route add
.
O que você também deseja fazer é observar os pacotes que atravessam o salto. Você pode usar tcpdump -n -i interface
para isso (por exemplo tcpdump -n -i eth0
). Portanto, se você vir um pacote atravessando o hop1 e achar que ele deveria ir para o hop2, mas não consegue vê-lo atravessando o hop2, então as rotas no hop1 provavelmente estão erradas e estão enviando o pacote para o destino errado.
Desta forma você deverá ser capaz de analisar cada tabela de roteamento salto a salto, da sua origem ao seu destino, ver qual rota o pacotedeveassuma cada salto, possivelmente adicione rotas para que o pacote siga o caminho correto e verifique se isso realmente acontece com tcpdump
.
Esteja ciente de que ambas as rotas da origem ao destinoeback precisa ser configurado corretamente.
Lembre-se de que uma rota errada pode tornar a máquina inacessível pela rede. Portanto, você pode querer uma maneira de reinicializar a máquina com um mecanismo independente do que pela rede.
Depois que seu roteamento funcionar, certifique-se de que ele sobreviva a uma reinicialização. F.ex. escrevendo a nova rota /etc/network/interfaces
(o local onde você precisa registrar isso depende de como a pilha de rede é configurada naquela máquina. Isso varia muito entre diferentes Unixes, distribuições Linux, etc.)
Espero que isso ajude você ainda mais.