(дублирующий вопрос от AskUbuntu) У меня есть следующая сетевая диаграмма: Диаграмма сети
192.168.0.0/24 сеть с 4 веб-серверами (.1, .2, .3, .4). В нем 2 Ubuntu 14.04 (VM1 и VM2). У них есть 2 физических интерфейса (eth0 и eth1). И туннель Ethernet L2TP, настроенный таким образом:
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
На каждой виртуальной машине у меня настроен brigde между eth1 (подключенным к сети 192.168.0.0) и интерфейсом l2tpeth0 (туннель). В /etc/network/interfaces
ВМ2:
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
Теперь сервер с адресом 192.168.0.5 отправляет пакет на удаленный адрес 172.0.0.1. Его путь показан оранжевой пунктирной линией (он захвачен brigde и отправлен через туннель). Моя задача - сделать так, чтобы он шел по синему пунктирному пути - получил NAT на VM1 и прошел через интерфейс eth1. На VM2 у меня настроен простой NAT:
iptables -t nat -A POSTROUTING -o eth0 -j LOG
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Но это не помогает - я не вижу пакетов в квестах в /var/log/syslog
(хотя и есть).
На всякий случай:
root@vm2:~# cat /proc/sys/net/bridge/bridge-nf-call-iptables
1
root@vm2:~# cat /proc/sys/net/ipv4/ip_forward
1
Итак, вопрос в том, как сделать пакет NAT, предназначенный только для определенных пунктов назначения? Я в порядке, например, трафик с 192.168.0.4 на 192.168.0.1 использует туннель и не получает NAT (именно поэтому у меня в первую очередь туннель)
Решение было очень простым. Показанная конфигурация была в порядке. Но виртуальные машины 192.168.0.5 и .6 не использовали настроенный шлюз 192.168.0.6 и отправляли кадры L2 на 192.168.0.254, таким образом не достигая IP-стека интерфейса l2tp. Это не стандартные устройства, а Cisco WMS.