LINUX.ORG.RU
ФорумAdmin

как сделать NAT loopback в iptables


1

2

Есть локалка для нескольких виртуальных машин. Интернет доступен через NAT. Некоторые порты проброшены внутрь (у каждой машины свой набор). Нужно реализовать возможность подключения изнутри к сервисам за NAT по внешнему адресу.

Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 DNAT       tcp  --  eth0   *       0.0.0.0/0            внешний_адрес       multiport dports 3389 to:192.168.0.2
    0     0 DNAT       tcp  --  eth0   *       0.0.0.0/0            внешний_адрес       multiport dports 22,80,443 to:192.168.0.3

Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 SNAT       all  --  *      eth0    192.168.0.2          0.0.0.0/0           to:внешний_адрес
    0     0 SNAT       all  --  *      eth0    192.168.0.3          0.0.0.0/0           to:внешний_адрес

Читал Destination NAT onto the same network в Netfilter HOWTO, но чего-то всё равно не хватает.

Смущают пустые счётчики .. попробуйте не указывать интерфейс при добавления правил DNAT\SNAT

Tok ★★
()
Ответ на: комментарий от Tok

Это таблица сразу после сброса правил, траффика ещё не было. В общем-то, всё работает, кроме подключений изнутри вовнутрь по внешнему адресу.

frozen_twilight ★★
() автор топика
Ответ на: комментарий от kompas

если слушать tcpdump'ом на внутреннем интерфейсе хоста (192.168.0.1)

IP 192.168.0.3.46128 > внешний_адрес.80: Flags [S], seq 1271251801, win 5840, options [mss 1460,sackOK,TS val 2980006 ecr 0,nop,wscale 7], length 0
если на внешнем
IP внешний_адрес.46129 > внешний_адрес.80: Flags [S], seq 1493781587, win 5840, options [mss 1460,sackOK,TS val 2983555 ecr 0,nop,wscale 7], length 0
это, правда, при исходном положении дел (см. таблицу выше), без каких-либо добавок

frozen_twilight ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.