Iptables и проброс порта во внутрь
Добавлено: 2010-03-25 22:58:19
Собственно буду очень признателен за помощь в освоении iptables, слишком уже кипит мозг.
Ситуация такая, есть роутер с 3-мя заведенными провайдерами.
Есть внутри сети сервер с открытым портом к примеру 12500, надо сделать так чтобы этот самый порт был доступен одновременно со всех 3-х провайдеров и клиенты подключались на сервере на порт 12000.
Как это видется? тупой DNAT и SNAT не проходят (почему сам не знаю, но думаю что не будет нормально работать.)
Что нужно? сделать так чтобы когда идет пакет из интернета на этот порт, сервер навешивал на пакет маркер, чтобы потом разобрать от куда пришел пакет и отправить его туда-же.
Отправкой пакетов назад по метке занимается iproute2.
Сейчас есть правила вида:
Пытаюсь заставить работать подключение из вне по eth2, но в упор не хочет.
Ситуация такая, есть роутер с 3-мя заведенными провайдерами.
Есть внутри сети сервер с открытым портом к примеру 12500, надо сделать так чтобы этот самый порт был доступен одновременно со всех 3-х провайдеров и клиенты подключались на сервере на порт 12000.
Как это видется? тупой DNAT и SNAT не проходят (почему сам не знаю, но думаю что не будет нормально работать.)
Что нужно? сделать так чтобы когда идет пакет из интернета на этот порт, сервер навешивал на пакет маркер, чтобы потом разобрать от куда пришел пакет и отправить его туда-же.
Отправкой пакетов назад по метке занимается iproute2.
Код: Выделить всё
eth1 (port 12000) mark 1 | |
Client ------- eth2 (port 12000) mark 2 | Gateway | eth0 ------------ server (port 12500)
eth3 (port 12000) mark 3 | |
Код: Выделить всё
iptables -t nat -A PREROUTING -p tcp --dport 12000 -d $my_inet_ip -j CONNMARK --set-mark 2
iptables -t nat -A PREROUTING -p tcp -d my_inet_ip --dport 12000 -j DNAT --to-destination server:12500
from all fwmark 2 lookup T1
ip route add default via $prov_gate table T1
iptables -t nat -A POSTROUTING -o $inet_interface -j MASQUERADE