Como realizar NAT com interface interna como bridge

1

(pergunta dublicada do AskUbuntu) Eu tenho um diagrama de rede a seguir: diagrama de rede

192.168.0.0/24 rede com 4 servidores da web (.1, .2, .3, .4). Existem 2 Ubuntu 14.04 (VM1 e VM2) nele. Eles possuem duas interfaces físicas (eth0 e eth1). E um túnel ethernet L2TP, configurado dessa forma:

root@vm1:~# modprobe l2tp_eth
root@vm1:~# ip l2tp add tunnel tunnel_id 1000 peer_tunnel_id 2000 encap udp local 10.0.0.1 remote 10.0.1.1 udp_sport 6000 udp_dport 5000
root@vm1:~# ip l2tp add session tunnel_id 1000 session_id 3000 peer_session_id 4000

root@vm2:~# modprobe l2tp_eth
root@vm2:~# ip l2tp add tunnel tunnel_id 2000 peer_tunnel_id 1000 encap udp local 10.0.1.1 remote 10.0.0.1 udp_sport 5000 udp_dport 6000
root@vm2:~# ip l2tp add session tunnel_id 2000 session_id 4000 peer_session_id 3000

Em cada VM eu tenho um brigde configurado entre eth1 (conectado a 192.168.0.0 net) e interface l2tpeth0 (o túnel). Em /etc/network/interfaces da VM2:

auto l2tp
iface l2tp inet static
        address 192.168.0.6
        netmask 255.255.255.0
        network 192.168.0.0
        broadcast 192.168.0.255
        bridge_ports l2tpeth0 eth1
        bridge_stp off
        bridge_fd 0
        bridge_maxwait 0

Agora, um servidor em 192.168.0.5 envia um pacote para o endereço remoto de 172.0.0.1. Seu caminho é mostrado com linha pontilhada de laranja (ele é capturado por brigde e enviado via túnel). Minha tarefa é fazê-lo seguir o caminho pontilhado azul - tem NATted na VM1 e passar pela interface eth1. Na VM2 eu tenho um NAT simples configurado:

iptables -t nat -A POSTROUTING -o eth0 -j LOG
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Mas isso não ajuda - eu não vejo pacotes em questing em /var/log/syslog (existem alguns embora).

Apenas no caso:

root@vm2:~#  cat /proc/sys/net/bridge/bridge-nf-call-iptables
1
root@vm2:~# cat /proc/sys/net/ipv4/ip_forward
1

Então a questão é como o pacote NAT destinado apenas a determinados destinos? Eu estou bem que, por exemplo, o tráfego de 192.168.0.4 para 192.168.0.1 usa túnel e não recebe NATted (por isso que eu tenho um túnel em primeiro lugar)

    
por Alexey Smirnov 16.03.2016 / 12:43

1 resposta

0

A solução foi muito simples. A configuração mostrou que estava ok. Mas as VMs 192.168.0.5 e .6 não estavam usando o gateway configurado 192.168.0.6 e enviaram quadros L2 para 192.168.0.254, portanto, não atingindo a pilha IP da interface l2tp. Estes não são dispositivos padrão, mas o Cisco WMS.

    
por 22.03.2016 / 16:41