суббота, 5 апреля 2014 г.

Linux NAT MASQUERADE

Задача: нужно получить доступ с сервера OpenVPN под ОС Windows к сети клиента OpenVPN под ОС Ubuntu. Сеть между клиентом и сервером OpenVPN 10.8.0.0/24. Серверу назначен статический адрес 10.8.0.1 в конфигурации OpenVPN. Клиентом является роутер, ему назначен статический адрес 10.8.0.2 в конфигурации OpenVPN. Для того чтобы видеть локальную сеть 192.168.0.0/24 за ним - нужно включить NAT на роутере:

sudo iptables -t nat -A POSTROUTING -o eth0 -s 10.8.0.0/24 -j MASQUERADE

eth0 - интерфейс с адресом 192.168.0.10, -o eth0 выходной интерфейс, -s 10.8.0.0/24 IP-сеть источника пакета (то есть подмена IP-адреса источника пакета на IP-адрес роутера будет только для пакетов из сети 10.8.0.0/24). Если смотреть через Wireshark на пакеты в интерфейсе eth0, то до включения NAT заходят пакеты с источником из сети 10.8.0.0 получателем из сети 192.168.0.0, но ответы не приходят, так как получатели ничего не знают о сети 10.8.0.0. При включении NAT источник заменяется на IP-адрес роутера. Просмотреть таблицу NAT можно командой:
sudo iptables -L -t nat

На сервере 10.8.0.1 должен быть прописан маршрут к этой сети через клиентский роутер 10.8.0.2:

route add 192.168.0.0 mask 255.255.255.0 10.8.0.2

Командой в ОС Windows pathping можно посмотреть через какие хопы проходит пинг.

Комментариев нет:

Отправить комментарий