LINUX.ORG.RU
решено ФорумAdmin

Переадресация через два роутера на сервер


0

1

Всем привет! Есть два роутера на линуксе. У каждого свой белый адрес. Локальная сторона каждого находится в одной локалке. Ситуация такова: На белый ip первого конектятся девайты(с разными адресами) на порт 7777. Задача данного роутера перекинуть пакет на сервер, который находится за вторым роутером на порт 7777. Сервер находится в общей локалке с первым и вторым роутером, но шлюз у него идёт через второй. Описал вот такие вот правила на первом и втором роутере, но никак не могу понять, что я не догладаю:<br> 1-й:<br> WAN - x.x.x.x<br> LAN - 10.133.0.8<br> <br> 2-й:<br> WAN - y.y.y.y<br> LAN - 10.133.0.3<br> <br> Сервер: LAN - 10.133.0.6<br> GW - 10.133.0.3<br> <br> Правила на первом роутере:<br> iptables -t nat -I PREROUTING -p tcp -d x.x.x.x --dport 7777 -j DNAT --to-destination 10.133.0.3:7777<br> <br> Правила на втором роутере:<br> iptables -t nat -I PREROUTING -p tcp -d 10.133.0.3 --dport 7777 -j DNAT --to-destination 10.133.0.6:7777<br> <br> Перепробовал массу вариантов и правил в POSTROUTING, но ничего не получается. Разумеется, если я поправлю шлюз на сервере, то всё заработает, но ввиду ситации необходимо заставить работать именно так. Заранее спасибо за рекомендации!


Осильте LORCODE - читать очень неудобно

Пологаю эта информация по настроке роутинга вам поможет, хотя статья и на другую тему

WhiteWolf ()

На сервере нельзя сделать ещё одни ip-адрес в локальной сети и маршрутизацию по src-адресу?

Если нет, то придётся делать это на втором маршрутизаторе, чтобы он как-то отмечал, что пакет (коннект) пришёл через первый маршрутизатор и ответный пакет маршрутизировал через него. DNAT не обещает, что если пакет пришёл через LAN, то ответ на него уйдёт через LAN, а не через WAN.

Запускайте везде tcpdump и ловите tcp-пакеты (SYN и ACK).

mky ★★★★★ ()

В итоге помогло следующее. На втором роутере убираем все правила, касательно нашего хоста. На первом роутере пишем два правила:
iptables -t nat -A PREROUTING -p tcp -d х.х.х.х --dport 7777 -j DNAT --to-destination 10.133.0.6:7777
iptables -t nat -I POSTROUTING -p tcp -d 10.133.0.6 --dport 7777 -j SNAT --to-source 10.133.0.8

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