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 на отдельный роутер или все же есть способ сдружить все это вместе на одном роутере?



Последнее исправление: Izolda (всего исправлений: 1)

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

anonymous
()

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

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

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

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

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

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

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