Страница 1 из 1

IPTables и NAT.

СообщениеДобавлено: 06 мар 2013, 23:48
Samael28
Всем доброго дня.
Возник хитрый вопрос по IPTables, т.к. сам по нему крупным спецом не являюсь :)
Есть внутренняя сеть LAN вида 10.10.10.0/24. И внешняя сеть WAN вида 8.8.8.192/27. На внешней сети есть шлюз провайдера 8.8.8.193.
Есть сервер с 2мя сетевыми и 2мя IP
eth0 - 10.10.10.254
eth1 - 8.8.8.213
Default gateway - 8.8.8.193
Задачка - построить NAT таким образом, чтобы внутри сетей LAN и WAN все ходило простым роутингом, т.е. внутри этих сетей все устройства имеют маршруты друг на друга и никакого NAT нету. Но если устройства из сети LAN пытаются выйти за пределы этих сетей, то тогда уже включается NAT с предоставлением "внешнего" IP 8.8.8.213
Т.е. если устройство с адресом 10.10.10.25 обращается к устройству 8.8.8.200, то устройство на этом адресе видит адрес источника 10.10.10.25, а если уходит дальше, например на 8.8.8.8, то уже подставляется 8.8.8.213.
Все, что я видел в интернете использует для NAT не IP, а имя интерфейса. А хотелось бы именно так построить.
(Может мой вопрос глупый, но задачка пока именно такая)

Re: IPTables и NAT.

СообщениеДобавлено: 07 мар 2013, 00:04
ded
Сложняки.
Через год уже не распутаешь.
В локальной сети 10.10.10.0/24 никакого НАТа не будет, ибо это уровень коммутатора локальной сети - Layer 2. Хосты будут видеть друг-друга по МАС адресам и не будут обращаться на сервер с 2мя сетевыми eth0 - 10.10.10.254. Верно?
На этом сервере нужно подменять source IP только если destination не будет = 8.8.8.192/27
Но тогда каждый хост в этой сети должен иметь route
10.10.10.0/24 gw 8.8.8.213
а иначе они будут искать эти адреса на Default gateway - 8.8.8.193

Re: IPTables и NAT.

СообщениеДобавлено: 07 мар 2013, 01:50
Samael28
ded писал(а):На этом сервере нужно подменять source IP только если destination не будет = 8.8.8.192/27

Подменять в данном случае = NATить.
ded писал(а):Но тогда каждый хост в этой сети должен иметь route
10.10.10.0/24 gw 8.8.8.213

Да, каждый хост в сети 8.8.8.192/27 будет иметь этот роут.

Суть в том, что узлы сети 10.10.10.0/24 должны иметь доступ в интернет, но с узлами сети 8.8.8.192/27 общаться без NATов.

Re: IPTables и NAT.

СообщениеДобавлено: 07 мар 2013, 07:08
Vlad1983
убрать из -t nat POSTROUTING всю ту чушь, которую вы уже туда вбили

и выполнить
iptables -t nat -A POSTROUTING -s 10.10.10.0/24 ! -d 8.8.8.192/27 -o eth1 -j SNAT --to-source 8.8.8.213
iptables -t filter -I FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -t filter -A FORWARD -i eth0 -o eth1 -j ACCEPT
iptables -t filter -A FORWARD -i eth1 -s 8.8.8.192/27 -d 10.10.10.0/24 -j ACCEPT
заменив на свои реальные сети и IP на интерфейсах

Re: IPTables и NAT.

СообщениеДобавлено: 07 мар 2013, 12:28
Samael28
Спасибо, ушел применять и читать мануалы....

Re: IPTables и NAT.

СообщениеДобавлено: 07 мар 2013, 12:51
ded
На этом сервере нужно подменять source IP только если destination не будет = 8.8.8.192/27 (НАТить)
а тут получается НАТить на -d 8.8.8.192/27
iptables -t nat -A POSTROUTING -s 10.10.10.0/24 ! -d 8.8.8.192/27 -o eth1 -j SNAT --to-source 8.8.8.213
т.е. ровно наоборот?

Re: IPTables и NAT.

СообщениеДобавлено: 07 мар 2013, 13:11
Vlad1983
iptables -t nat -A POSTROUTING -s 10.10.10.0/24 ! -d 8.8.8.192/27 -o eth1 -j SNAT --to-source 8.8.8.213

делаем соурс маппинг всех пакетов проходящих через eth1 при условии что инициатор из сети 10.10.10.0/24 и получатель не в сети 8.8.8.192/27

Re: IPTables и NAT.

СообщениеДобавлено: 07 мар 2013, 13:15
ded
О, восклицательный знак сразу совсем не увидел.