Como encaminhar o tráfego para uma sub-rede para um servidor remoto com vpn?

1

Desculpe por fazer uma pergunta realmente genérica, sou mais um desenvolvedor do que um especialista em rede, então, por favor, fique comigo ...: - (

Meu problema é este: eu tenho
 - server A , servindo nossas APIs REST.
 - server B , hospedando uma VPN de ipsec strongswan na sub-rede C , que precisamos acessar com segurança para dados ativos do servidor A e que não controlamos.
Quero que o tráfego de e para a sub-rede C no servidor A seja encaminhado pelo servidor 'B'.

Você acha que tal tarefa é viável?
Devo adicionar uma rota na tabela de roteamento, ou devo trabalhar com regras de encaminhamento de firewall, para começar?

Minhas primeiras tentativas foram:

no servidor A: # ip route add C_SUBNET_IP via B_SERVER_PUBLIC_IP dev eth0

que me cuspiu: RTNETLINK answers: Network is unreachable

depois, com os roules de firewall:

# echo 1 > /proc/sys/net/ipv4/ip_forward
# iptables -t nat -A POSTROUTING -j MASQUERADE
# iptables -t nat -A PREROUTING -s C_SUBNET_IP -p udp -j DNAT --to-destination B_SERVER_PUBLIC_IP

que não me permitiu alcançar nenhum C subnet ip:

# ping C_SUBNET_IP
PING C_SUBNET_IP (C_SUBNET_IP) 56(84) bytes of data.
...
^C
10 packets transmitted, 0 received, 100% packet loss, time 9056ms
    
por MarcoS 06.09.2018 / 16:37

1 resposta

1

Como regra geral, você não pode definir um gateway em uma rota que não esteja em sua sub-rede. Você pode resolver seu problema no servidor A com o seguinte truque.

Primeiro, defina a rota do seu gateway desejado:

ip route add B_SERVER_PUBLIC_IP dev eth0

Em seguida, defina sua rota:

ip route add C_SUBNET_IP via B_SERVER_PUBLIC_IP

Agora vai funcionar! Isso é explicado no post abaixo, incluindo como torná-lo permanente no Ubuntu:

link

Agora que você chegou ao seu servidor B, você terá que implementar algumas coisas de encaminhamento lá ...

    
por 06.09.2018 / 23:04