Автор Тема: Oтносно iptables  (Прочетена 1486 пъти)

ceHky

  • Участници
  • ***
  • Публикации: 5
    • Профил
Oтносно iptables
« -: Sep 06, 2005, 04:49 »
Здравейте! От около година се занимавам с линукс и по
 специално Slackware в момента 10.1. Подържам мрежа от с
 няколко потребителя и от скоро пред мен стой един проблем.
 Хората ми искат да играят WarCraft в Battle-net. За да е
 възможно направих portforward от рутера към всички локални
адреси:
 iptables -t nat -A PREROUTING -p tcp -i ppp0 --dport 6112 -j
DNAT --to 192.168.1.2-192.168.1.10:6112
 Сега всички от 192.168.1.2 до 192.168.1.10 могат да правят
 игра, но преблема е, че когато някои от вътрешните
 потребители направи игра останалите от локалната мрежа
 немогат да влизат в нея, въпреки че я виждат. Как да оправя
това?!
Активен

ceHky

  • Участници
  • ***
  • Публикации: 5
    • Профил
Oтносно iptables
« Отговор #1 -: Sep 06, 2005, 20:40 »
никои ли си няма на идея за какво говоря?
Активен

semionov

  • Напреднали
  • *****
  • Публикации: 110
    • Профил
Oтносно iptables
« Отговор #2 -: Sep 06, 2005, 21:04 »
това е BSD секцията, не линукс
Активен

Филип Бонев

  • Напреднали
  • *****
  • Публикации: 517
  • Distribution: Debian
  • Window Manager: KDE
    • Профил
Oтносно iptables
« Отговор #3 -: Sep 06, 2005, 21:05 »
Следното не е тествано само си расъждавам. Междо другото и аз го имах този проблем, но после се разцепи мрежата и двамата които играеха WC3 минаха при различни доставчици.

Така в момента при мен така са редовете за iptables:
Примерен код
$IPTABLES -t nat -A PREROUTING -p tcp -i $EXTIF -d $EXTIP --dport 6110 -j DNAT --to-destination 172.31.100.3:6110
$IPTABLES -A FORWARD -p tcp -i $EXTIF -o $INTIF -d 172.31.100.3 --dport 6110 -j ACCEPT
$IPTABLES -t nat -A PREROUTING -p udp -i $EXTIF -d $EXTIP --dport 6110 -j DNAT --to-destination 172.31.100.3:6110
$IPTABLES -A FORWARD -p udp -i $EXTIF -o $INTIF -d 172.31.100.3 --dport 6110 -j ACCEPT

$IPTABLES -t nat -A PREROUTING -p tcp -i $EXTIF -d $EXTIP --dport 6111 -j DNAT --to-destination 172.31.100.5:6111
$IPTABLES -A FORWARD -p tcp -i $EXTIF -o $INTIF -d 172.31.100.5 --dport 6111 -j ACCEPT
$IPTABLES -t nat -A PREROUTING -p udp -i $EXTIF -d $EXTIP --dport 6111 -j DNAT --to-destination 172.31.100.5:6111
$IPTABLES -A FORWARD -p udp -i $EXTIF -o $INTIF -d 172.31.100.5 --dport 6111 -j ACCEPT


Може и малко да съм ги прекали, но това е при мен.

Идеята ми за твойта ситуация е, че трябва да добавиш по още един ред в prerouting/forward за всеки потребител, в който да има правило, ако идва от този потребител и отива до реалното IP + порта на другия, да се праща директно на другия, а не да минава през външното ip. Надявам се да си ме разбрал, пък и да стане. Аз в момента не мога да го пробвам.
Активен

Поздрави,
Филип Бонев

ceHky

  • Участници
  • ***
  • Публикации: 5
    • Профил
Oтносно iptables
« Отговор #4 -: Sep 06, 2005, 21:52 »
имам идея! сега ще тесвам. Благодаря. не съм описал Forward-a защото сам го направил отделно за цялата мрежа. Въпроса е, че незнам откаде минават пакетите. Дали трябва да излизат през реалното Ип и да се връщат обратно до другия потребител в межата или да не излизат а да отиват директно към локален потребител.

Кода е превилен с тази разлика,че при мен е на default port 6112 и просто сам задал range на ип-тата от *.2 до *.10 на tcp и udp. Работи перфектно, но когато единия направи игра останалите от вътрешната мрежа не могат да влизат в нея.
Активен

Филип Бонев

  • Напреднали
  • *****
  • Публикации: 517
  • Distribution: Debian
  • Window Manager: KDE
    • Профил
Oтносно iptables
« Отговор #5 -: Sep 06, 2005, 22:17 »
Аз съм поставил за всеки потребител IP и порт и съм им казал да си ги настройват портовете в играта. Защото реално се дава порта+IP(мое мнение) за връзка с клиента от сървъра на близард. По този начин другите знаят, че ти си на точно определни IP+Порт, при мен сега има три компа настроение за различни портове 6110,6111(Warcraft III) и 6112(този го ползвам за World of warcraft заедно с 4000). По принцип близард хващат външна/вътрешна мрежа и би трябвало клиентите който са в локална мрежа да си предават пакетите в локалната мрежа. Но понеже сървъра на близард им казва IP+Port, на човека от локалната мрежа му се връща външното IP на сървъра и порт. При теб както си го написал всички реално би трябвало да се връзват на един и същи порт. Предполагам тук става объркването.
Активен

Поздрави,
Филип Бонев

ceHky

  • Участници
  • ***
  • Публикации: 5
    • Профил
Oтносно iptables
« Отговор #6 -: Sep 06, 2005, 22:39 »
сега ще пробвам с различни портове
Активен

ceHky

  • Участници
  • ***
  • Публикации: 5
    • Профил
Oтносно iptables
« Отговор #7 -: Sep 07, 2005, 02:18 »
всякакви варианти пробвах и не става. Правя игра в която потребители влизат освен тия от моята мрежа. те немогат.
Активен

Agent_SMITH

  • Administrator
  • Напреднали
  • *****
  • Публикации: 3082
  • matrix kernel module
    • Профил
Oтносно iptables
« Отговор #8 -: Sep 07, 2005, 11:38 »
move
Активен

-= СПАЗВАЙТЕ ПРАВИЛАТА НА ФОРУМА =-