LINUX.ORG.RU
ФорумAdmin

iptables -t nat snat и dnat

 , ,


0

1

Добрый день.

Есть в наличии один роутер раздающий выделенные ip напрямую и раздающий выделенные ip через nat но с выделенных ip, которые разданы напрямую не видно выделенных ip, которые разданы через nat с других роутеров, неважно по какому принципу выдан выделенный ip видно выделенные ip этого компьютера, которые разданы через nat

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

[центральный роутер]все другие роутеры общаются через него ifconfig eth0 100.100.1.1 255.255.255.0 up ; это основной ip центрального роутера через который работает роутер раздающий выделенные ip напрямую и раздающий выделенные ip через nat

route add -net 100.100.100.0/24 gw 100.100.1.2

route add -net 100.100.200.0/24 gw 100.100.1.2

[роутер, о котором идет речь] ifconfig eth1 100.100.1.2 255.255.255.0 up ; это основной ip роутера раздающего выделенные ip напрямую и раздающего выделенные ip через nat

ifconfig eth1:1 100.100.100.1 255.255.255.0 up ; это подсеть выделенных ip раздаваемых через nat

ifconfig eth1:1 192.168.0.1 255.255.255.0 up ; это подсеть внутренних ip, на которые выделяются выделенные ip раздаваемые через nat

ifconfig eth1:1 100.100.200.1 255.255.255.0 up ; это подсеть выделенных ip раздаваемых напрямую

На роутере поднята подсеть выделенных ip раздаваемых через nat

ifconfig eth1:1 100.100.100.1 255.255.255.0 up

route -n | grep 100.100.100.0

100.100.100.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1

На роутере прописаны правила SNAT и DNAT:

iptables -t nat -A POSTROUTING –source 192.168.0.5 -o eth1 -j SNAT –to-source 100.100.100.2

iptables -t nat -A PREROUTING -i eth1 –destination 100.100.100.2 -j DNAT –to-destination 192.168.0.5

при трассировке будет следующее

1ms 1ms 1ms 100.100.200.1 ; компьютер, которому выдан ip напряую обращается к роутеру

100.100.100.2 сообщает: заданный узел недоступен

Я так понимаю это из-за того что есть подсеть 100.100.100.1/24 в которой никого напрямую не видно а видно только через DNAT, в который трафик не заворачивается

При попытке обхитрить маршрутизацию и не использовать ifconfig eth1:1 100.100.100.1 255.255.255.0 up а потушить ifconfig eth1:1 down

при трассировке будет безконечный цикл поиска а при пинге превышен срок жизни ttl при передаче пакета:

1ms 1ms 1ms 100.100.200.1 ; компьютер, которому выдан ip напряую обращается к роутеру

1ms 1ms 1ms 100.100.1.1 ; его отсылает на центральный роутер

1ms 1ms 1ms 100.100.200.1 ; оттуда его отсылает обратно

1ms 1ms 1ms 100.100.1.1 ; его отсылает на центральный роутер

1ms 1ms 1ms 100.100.200.1 ; оттуда его отсылает обратно

С других роутеров компьютеры, которым выданы выделенные ip через nat видны при ifconfig eth1:1 down через dnat даже при отсутствии такой подсети при маршруте route add -net 100.100.100.0/24 gw 100.100.1.2 на центральном роутере

Остается только уводить компьютеры, которым выдаются выделенные ip через nat на отдельный роутер или все же есть способ сдружить все это вместе на одном роутере?


Есть такой замечательный знак, называется точка. Используй его, а то тебя не понять. И ещё начинай предложение с заглавной буквы.

anonymous
()

Если ты хочешь с роутера, на котором делаешь snat или dnat обращаться внешнему ip адресу который ты натишь, то просто так у тебя не получится.

Тебе придется прописать правило, что для всех запросов до 100.100.100.2 с самого роутера нужно делать подмену адреса нащначенич на ip адрес 192.168.0.5.

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

И это правило должно быть выше общего правила SNAT или DNAT для этого ip.

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

Я могу напридумывать много различных вариантов как бы это могло быть, но от этого в iptables они не появятся. В руководстве к iptables подмена адреса назначения встречается только в операциях DNAT и больше ни слова ни про какую другую подмену адреса назначения. Тебе жалко написать пример как это реализовать?

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