Eu tenho um problema muito específico, construindo um ponto de extremidade VPN Linux (com gateway VPN externo),
que deve encaminhar certas redes através do túnel, outras através do gateway padrão.
O Linux VPN deve fazer um NAT nas conexões de saída para os pares de VPN.
Setup is as following: Internet gateway LAN 192.168.25.1/24 VPN Gateway LAN 10.45.99.2/24 (VPN tunnel 10.45.99.1 to net 87.115.17.40/29, separate connection to Internet) Linux VPN Router eth0 192.168.25.71/24 eth0:503 10.45.99.1/24 Default 192.168.25.1 route to 87.115.17.40/29 via 10.45.99.2 (send_redirects disabled, ip_forward enabled) Linux clients (multiple): eth0 192.168.25.x/24 Default 192.168.25.1 route to 87.115.17.40/29 via 192.168.25.71
O ping para as máquinas via túnel do roteador VPN está funcionando.
Agora eu quero estabelecer um roteamento de meus clientes através do gateway de VPN e o pacote do cliente é roteado para 192.168.25.1! saída traceroute mostra que os pacotes são roteados para 192.168.25.71, mas depois para 192.168.25.1.
Portanto, a rota não é respeitada no encaminhamento!
IPTables e roteamento:
ip route show 87.115.17.40/29 via 10.45.99.2 dev eth0 10.45.99.0/24 dev eth0 proto kernel scope link src 10.45.99.1 192.168.25.0/24 dev eth0 proto kernel scope link src 192.168.25.71 default via 192.168.25.1 dev eth0 iptables -A INPUT -i eth0:503 -j REJECT iptables -t nat -A POSTROUTING -o eth0:503 -j MASQUERADE iptables -A FORWARD -i eth0:503 -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A FORWARD -s 192.168.25.0/24 -o eth0:503 -j ACCEPT
Então, o que há de errado com a minha configuração? A rota é escolhida corretamente no host local, mas todos os clientes são encaminhados para a Internet GW.
obrigado por ajudar, Marcus
20121025: Encontrou um problema pelo menos: MASQUERADE sempre irá mascarar como o IP principal da interface. Ao usar o SNAT, posso atribuir o endereço para o NAT (que pode ser o endereço do alias). O problema com os pacotes não são encaminhados persiste. Eu estou trabalhando com o Debian 6.
Tentei a mesma configuração com o SNAT em um Ubuntu 12.04 virtual e consegui chegar ao roteamento finalmente.
Então, parece haver um problema com o Debian, ou alguma configuração que eu perdi!
A configuração de trabalho é (no servidor Ubuntu 12.04):
iptables -t nat -A POSTROUTING -d 87.115.17.40/29 -j SNAT --to-source=10.45.99.1
Portanto, temos que reinstalar nossos servidores, não esperava que isso pudesse ser um problema do Debian!
Talvez em algum lugar entre o kernel (2.6.32 - > 3.2.0) e o iptables (1.4.8 - > 1.4.12).
Tags iptables routing nat linux forwarding