*nat
-A POSTROUTING -o eth1 -j MASQUERADE
-A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
-A PREROUTING -p tcp --dport 6112 -i eth1 -j DNAT --to-destination 192.168.0.2:6112
COMMIT
*filter
-A FORWARD -p tcp -m tcp -m multiport --dports 6112:6119,6500,6886 -i eth0 -j ACCEPT
-A FORWARD -p udp -m udp -m multiport --dports 6112:6119 -i eth0 -j ACCEPT
COMMITкогда игра идёт по локальной сети то пакеты не доходят до шлюза на то она и локальная игра, они через свич видимо сразу проходят. Проблемы с battle.net потому что это внешний сервер, когда один создаёт игру то для подключения извне нужно чтобы пакеты с порта 6112 заворачивались на машину хоста в локальной сети :
192.168.0.2 - ip адрес хоста в локальной сети
на шлюз приходит пакет (порт 6112) шлюз меняет ip его назначения с внешнего ip шлюза на 192.168.0.2 (согласно приведённым выше правилам), но когда клиент из локальной сети с ip адресом 192.168.0.3 хочет подключится к хосту, то пакет с ответом на его запрос снова заворачивается на 192.168.0.2, вопрос собственно в том как сделать так чтобы порт 6112 заворачивался именно на тот ip с которого был запрос или так не возможно? может можно пакеты из локальной сети с каким нибудь флагом на сервер отправлять? или может сделать правило такое чтобы все внешние пакеты 6112 отправлялись не на конкретный адрес в локальной сети а на всю сеть (кому надо тот и примет).
Боюсь я фигню написал ибо слабо представляю как iptables определит кому предназначался пакет...
Значит остаётся только завернуть порт 6112 на внутрисеть и пусть там принимает тот кому надо....
Если у кого то есть идеи сжальтесь над новичком, напишите как будет конфиг выглядеть.