1


У меня очень специфическая проблема - создание конечной точки Linux VPN (с внешним VPN-шлюзом), которая должна маршрутизировать определенные сети через туннель, а другие - через шлюз по умолчанию.
Linux VPN должен выполнять NAT на исходящих соединениях для 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

Пинг до машин через туннель от VPN роутера работает.

Теперь я хочу установить маршрутизацию от моих клиентов через шлюз VPN, и пакет клиента будет перенаправлен на 192.168.25.1! Выходные данные traceroute показывают, что пакеты маршрутизируются на 192.168.25.71, а затем на 192.168.25.1.

Так что маршрут вперед не соблюдается!

IPTables и маршрутизация:


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


Так что не так с моей настройкой? Маршрут выбран правильно с локального хоста, но все клиенты перенаправляются в Интернет GW.

спасибо за помощь, Маркус

20121025: Обнаружил хотя бы одну проблему: MASQUERADE всегда будет маскироваться как основной IP-адрес интерфейса. При использовании SNAT я могу назначить адрес для NAT (который может быть адресом псевдонима). Проблема с не доставляемыми пакетами сохраняется. Я работаю с Debian 6.

Попробовал ту же настройку с SNAT в виртуальной Ubuntu 12.04 и, наконец, перешел на маршрутизацию. Так что, похоже, проблема в Debian или в некоторых настройках, которые я пропустил!

Рабочие настройки (на сервере Ubuntu 12.04):

iptables -t nat -A POSTROUTING -d 87.115.17.40/29 -j SNAT --to-source=10.45.99.1

Поэтому мы должны переустановить наши серверы, не ожидая, что это может быть проблемой Debian!
Возможно где-то между ядром (2.6.32 -> 3.2.0) и iptables (1.4.8 -> 1.4.12).

0