LINUX.ORG.RU
ФорумAdmin

Помогите настроить NAT/MASQUARADE в двух сетях


0

0

Не могу додуматься как настроить iptables.
Вообщем ситуация такая. Есть сервер на базе Убунты-Сервер.
На нём запущен PvPGN сервак, для игр War/Star Craft
Есть некая локальная сеть при провайдере. С провайдером сервак подключается через pppoe по первой сетевой карте eth0 (через домашний хаб), интерфейс ppp0
Есть внешний интернет от другого провайдера, подключается по другой, второй сетевой карте eth1 через VPN интерфейс ppp1.
Есть локальная домашняя сеть, подключена через домашний хаб, т.е. eth0 на серваке.

Что бы не заморачиваться, коротко получилась такая картина:
eth0 - дом сеть
ppp0 - игровая сеть
ppp1 - внешний мир

192.168.0.0/24 - дом сеть
88.147.128.0/18 - игровая сетка
78.29.64.0/17 - та же игровая сетка

Сервак pvpgn слушает порт 6112 на всех интерфейсах, т.к. входящие клиенты(игроки) играют со всех трёх сторон.
Сам сервер устроен как Direct Connect он только говорит клиентам кто с кем подключается, по какому адрессу и т.д. вообщем когда игра стартует трафик идёт не через сервер, а только между клиентам.
Поэтому тут особой заморочки нет, как они там себя найдут, через внешний мир.

Заморочка именно в домашней сети.
Т.к. по умолчанию у игроков игра и авторизация на сервере используют один порт 6112, я не могу понять как мне настроить НАТ.

Этот сервер, на котором pvpgn является также маршрутизатором в интернет для домашней сети.
iptables правило у меня такое:

iptables --table nat --append POSTROUTING --out-interface ppp1 -j MASQUERADE
iptables --append FORWARD --in-interface eth0 -j ACCEPT

От сюда видно, что всё натиться на ppp1 т.е. интернет.
Естественно игроки из домашней сети могут зайти на сервак, но вот подключиться к другим игрокам не удаётся.
Однако если я делаю такое правило:
iptables --table nat --append POSTROUTING --out-interface ppp0 -j MASQUERADE
iptables --append FORWARD --in-interface eth0 -j ACCEPT

игра работает, но интернет пропадает (само собой, логично).
Как мне настроить нат так, что бы и интернет работал, и только порты 6110 - 6119 TCP/UDP натились к игрокам на диапозон игровой сети.

Что-то никак в голову не лезит.

Заренее спасибо за разъяснения.
Хотелось бы понять по логике, как натить.

вот так попробуйте:

iptables -t nat -A POSTROUTING --out-interface ppp1 -d ! 88.147.128.0/18 -j MASQUERADE
iptables --append FORWARD --in-interface eth0 -j ACCEPT

т.е. натим только когда адрес назначения не игровая сеть. 

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