LINUX.ORG.RU
ФорумAdmin

ipset для iptables nat

 ,


0

1

Добрый день.

Нужно на каждую машину выдавать свой выделенный IP, но именно через NAT.

Есть много однотипных правил NAT но с уникальными внутренними ip к которым привязан уникальный внешний ip:

iptables -t nat -A POSTROUTING –protocol all –source ВНУТРЕННИЙIP1 -o eth1 -j SNAT –to-source ВНЕШНИЙIP1

iptables -t nat -A POSTROUTING –protocol all –source ВНУТРЕННИЙIP2 -o eth1 -j SNAT –to-source ВНЕШНИЙIP2

Можно ли их как-то сократить до одного правила при помощи ipset?


Как минимум, можно вынести весь snat в отдельную цепочку, а не гнать через него весь трафик.

Oleg_Iu ()

ipset не умеет мапить адреса.

Если внешних адресов немного, то проще сделать набор для каждого внешнего адреса и правила по числу адресов.

vel ★★★★★ ()
Последнее исправление: vel (всего исправлений: 1)
Ответ на: комментарий от Pinkbyte

Внутренние ip из разных подсетей. Выглядит примерно так, только другие ip:

iptables -t nat -A POSTROUTING –protocol all –source 192.168.3.5 -o eth1 -j SNAT –to-source 1.1.1.2

iptables -t nat -A POSTROUTING –protocol all –source 192.168.5.8 -o eth1 -j SNAT –to-source 1.1.1.3

iptables -t nat -A POSTROUTING –protocol all –source 192.168.7.4 -o eth1 -j SNAT –to-source 1.1.1.4

выделенные ip привязываются к внутренним ip

NETMAP я так понимаю тут не поможет

Izolda ()
Ответ на: комментарий от Oleg_Iu

Не очень понимаю что Вы имеете в виду. Все правила в цепочке POSTROUTING таблицы nat. Их можно еще как-то раскидать?

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

Да, NETMAP в такой конфигурации не вариант. Собственно а что ты собрался объединять в set? Из тех примеров что ты привел у тебя разные как --source так и --to-source. И --to-source не повторяются(или я не прав?).

Специального типа сета для пар --source/--to-source для NAT в ipset точно нет.

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

Да, можно раскидать. Тем более, там разные подсети.

iptables -t nat -N snat3
iptables -t nat -A snat3 -s 192.168.3.5 -j SNAT –to-source 1.1.1.2
# ....
iptables -t nat -N snat5
iptables -t nat -A snat5 -s 192.168.5.8 -j SNAT –to-source 1.1.1.3
# ....
iptables -t nat -A POSTROUTING -s 192.168.3.0/24 -o eth1 -j snat3
iptables -t nat -A POSTROUTING -s 192.168.5.0/24 -o eth1 -j snat5
# ....

Тогда и списки обновлять проще, и iptables не надо насиловать. Если адресов не так уж и много, хватит и одной.

NETMAP здорово, но для него надо иметь вагон внешних ipv4.

Oleg_Iu ()

Если умеешь собирать модули ядра, то глянь на https://github.com/vel21ripn/ipset_natmap

Мне интересна обратная задача - отмапить кучу портов на внутренние хосты.

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