Kucher2 Опубликовано 25 апреля, 2006 · Жалоба Есть маленькая локальная сеть с выходом в Интернет через сервер FreeBSD 4.9 + NAT + SQUID. При попытке обнаружить сервера QUAKE или КС - машины внутри сети и игровые сревера в Интернете лезут на UDP-порты в диапазонах примерно 26000-2800 и 1240-4500. Если я открываю эти порты - сервера вроде как находятся, но сединиться с ними невозможно. Я подозреваю, что проблема в UDP - пакетах, которые неправильно транслируются NAT. Кто сталкивался с таким? Как победить? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Saenara Опубликовано 26 апреля, 2006 · Жалоба Вдумчивое чтение вывода tcpdump поможет. Нат тут совершенно не виноват, как правило. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Kucher2 Опубликовано 26 апреля, 2006 · Жалоба Т.е. Вы хотите сказать, что играть в игры типа quake и КС в таком варианте - это лишь проблема правильной настройки сервера? Это возможно? Ведь вся сеть имеет только 1 реальный IP.. а если играть захочет скажем - человек 5 одновремнно? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Saenara Опубликовано 26 апреля, 2006 · Жалоба У меня 50 одновременно играло :-) Проблема -- в правильной настройке пропуска трафика через гейт. КС, например, лезет не только на игровой сервер. tcpdump, вобщем. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Kucher2 Опубликовано 26 апреля, 2006 · Жалоба Спасибо, обнадёжили. Буду рыть. :) Но проблема в том, что я новичёк. Не могли бы вы хоть примерно сказать что смотреть? TCPDUMP'ом я вижу трафик на шлюз и со шлюза, вижу порты, но мне это ничего не говорит о том, почему не работает. Например на внутреннем иф я вижу: 10.0.0.1.2615 > 69.28.151.162.27010: udp 9 На внешнем: 10.0.0.1.gdp-port > 69.28.151.162.27010 udp 29 10.0.0.1 - адрес машины в локальной сети. 69.28.151.162.27010 - похоже на адрес и порт сервера КС. ipfw я открыл - всё же UDP он у меня рубит по-умолчанию. Что посоветуете? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Raul Опубликовано 27 апреля, 2006 · Жалоба Например на внутреннем иф я вижу:10.0.0.1.2615 > 69.28.151.162.27010: udp 9 На внешнем: 10.0.0.1.gdp-port > 69.28.151.162.27010 udp 29 Так получается, что UDP-пакеты не "натятся" у тебя сейчас. Ты наверное до дивертов файрволом открыл UDP-трафик? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Saenara Опубликовано 27 апреля, 2006 · Жалоба Посоветую посмотреть, а не пытается ли он еще к каким серверам обратиться? И не только по удп. И есть ли пакеты, которые были куда-то отправлены и не было ответов. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Kucher2 Опубликовано 27 апреля, 2006 · Жалоба Raul, :) Ну да. Что я уже только не делал. Пробовал ещё делать: natd -v -redirect_port udp 10.0.0.1:1000-4500 1000-4500 как мне посоветовали, но система пишет в ответ: aliasing address not given Т.е. пытаюсь сделать проброс портов, но не получается почему-то. Понимаю, что чайник, но просто нет времени и сил изучать всё подряд - от винды до линукса и при этом ещё заниматься сеткой. :( Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Saenara Опубликовано 27 апреля, 2006 · Жалоба natd -v -redirect_port udp 10.0.0.1:1000-4500 1000-4500 man natd (natd -n, например) Для контры, по крайней мере, прокидывать порты не надо. А НАТ у тебя, похоже, точно не делается, если 10.0.0.1 на внешнем интерфейсе появляется. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Kucher2 Опубликовано 27 апреля, 2006 · Жалоба Saenara, -Для контры, по крайней мере, прокидывать порты не надо. Достаточно просто их открыть? - А НАТ у тебя, похоже, точно не делается, если 10.0.0.1 на внешнем интерфейсе появляется. Уже не появляется. Но всё равно не работает. Гляньте плиз профессиональным взором. Мне кажется я в правилах ipfw напутал (на сервере стоит биллинг Старгейзер): #!/bin/sh fwcmd="/sbin/ipfw" natdcmd="/sbin/natd" int_if="rl0" #erv_if="xl1" ext_if="rl1" ${fwcmd} -f flush ipfw add 5 allow udp from any 123 to any 123 # согласование времени по ntp ipfw add 10 fwd 127.0.0.1,3128 tcp from 10.0.0.0/24 to any 80 out xmit rl1 # заворачиваем http на squid ${fwcmd} add 50 divert natd ip from any to <внешний ip сервера> # заворачиваем всё снаружи на НАТ ${fwcmd} add 55 deny log icmp from any to any frag ${fwcmd} add 60 allow icmp from any to any ${fwcmd} add 100 allow ip from any to any via lo0 # !!!!! Зачем это надо не понятно: без него работает так же. ${fwcmd} add 200 deny log ip from any to 127.0.0.0/8 ${fwcmd} add 250 deny log ip from 127.0.0.0/8 to any ${fwcmd} add 00305 deny log ip from any to 10.0.0.0/24 out via ${ext_if} # Это для СТГ ${fwcmd} add 00308 allow udp from any to 10.0.0.0/24 8888 via ${int_if} ${fwcmd} add 00309 allow udp from 10.0.0.0/24 to any via ${int_if} # Это для СТГ ${fwcmd} add 00314 allow tcp from 10.0.0.10 5555 to 10.0.0.1 via ${int_if} ${fwcmd} add 00315 allow tcp from 10.0.0.1 to 10.0.0.10 5555 via ${int_if} #Разрешающее правило для моего ПК ${fwcmd} add 29000 divert natd ip from 10.0.0.1 to any ${fwcmd} add 29001 allow ip from 10.0.0.1 to any ${fwcmd} add 29002 allow ip from any to 10.0.0.1 ${fwcmd} add 50020 deny log ip from 10.0.0.0/24 to 10.0.0.10 via ${int_if} ${fwcmd} add 50021 deny log ip from 192.168.10.0/24 to 192.168.20.1 via ${int_if} ${fwcmd} add 50022 deny log ip from 192.168.10.0/24 to 192.168.30.1 via ${int_if} ${fwcmd} add 50024 divert natd all from any to any via ${ext_if} ${fwcmd} add 50029 allow tcp from any to any out via ${ext_if} setup ${fwcmd} add 50030 allow tcp from any to any via ${ext_if} established ${fwcmd} add 50031 allow udp from any to any out via ${ext_if} ${fwcmd} add 50032 allow udp from any 53 to any in via ${ext_if} #${fwcmd} add 50033 allow tcp from any to 192.168.30.1 22 via ${ext_if} $fwcmd add 65534 deny log ip from any to any Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Raul Опубликовано 27 апреля, 2006 · Жалоба ${fwcmd} add 50032 allow udp from any 53 to any in via ${ext_if} Временно измени на : ${fwcmd} add 50032 allow udp from any to any in recv ${ext_if} После того, как все заработает, хорошенько обдумав и прочитав руководство по ipfw исправишь, сделаешь "как положено". Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Kucher2 Опубликовано 27 апреля, 2006 · Жалоба Raul, Большое спасибо. Действительно всё заработало. Чёрт, а ведь конфиг этот взят отсюда: http://stg.dp.ua/doc20/conf_example_freebsd.html Я даже не менял его, полагая, что там всё правильно. :( Спасибо ещё раз. :) Буду разбираться что означало это правило. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...