Перейти к содержимому
Калькуляторы

Прокси сервер и игры в Интернет

Есть маленькая локальная сеть с выходом в Интернет через сервер FreeBSD 4.9 + NAT + SQUID.

При попытке обнаружить сервера QUAKE или КС - машины внутри сети и игровые сревера в Интернете лезут на UDP-порты в диапазонах примерно 26000-2800 и 1240-4500. Если я открываю эти порты - сервера вроде как находятся, но сединиться с ними невозможно.

Я подозреваю, что проблема в UDP - пакетах, которые неправильно транслируются NAT.

Кто сталкивался с таким? Как победить?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вдумчивое чтение вывода tcpdump поможет.

Нат тут совершенно не виноват, как правило.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Т.е. Вы хотите сказать, что играть в игры типа quake и КС в таком варианте - это лишь проблема правильной настройки сервера? Это возможно? Ведь вся сеть имеет только 1 реальный IP.. а если играть захочет скажем - человек 5 одновремнно?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

У меня 50 одновременно играло :-)

Проблема -- в правильной настройке пропуска трафика через гейт.

КС, например, лезет не только на игровой сервер.

tcpdump, вобщем.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Спасибо, обнадёжили. Буду рыть. :)

Но проблема в том, что я новичёк. Не могли бы вы хоть примерно сказать что смотреть? 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 он у меня рубит по-умолчанию.

Что посоветуете?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Например на внутреннем иф я вижу:

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-трафик?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Посоветую посмотреть, а не пытается ли он еще к каким серверам обратиться? И не только по удп. И есть ли пакеты, которые были куда-то отправлены и не было ответов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Raul,

:) Ну да.

Что я уже только не делал.

Пробовал ещё делать:

natd -v -redirect_port udp 10.0.0.1:1000-4500 1000-4500

 

как мне посоветовали, но система пишет в ответ:

aliasing address not given

 

Т.е. пытаюсь сделать проброс портов, но не получается почему-то.

Понимаю, что чайник, но просто нет времени и сил изучать всё подряд - от винды до линукса и при этом ещё заниматься сеткой. :(

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

natd -v -redirect_port udp 10.0.0.1:1000-4500 1000-4500

man natd

(natd -n, например)

Для контры, по крайней мере, прокидывать порты не надо.

А НАТ у тебя, похоже, точно не делается, если 10.0.0.1 на внешнем интерфейсе появляется.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

${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 исправишь, сделаешь "как положено".

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Raul,

Большое спасибо. Действительно всё заработало.

Чёрт, а ведь конфиг этот взят отсюда:

 

http://stg.dp.ua/doc20/conf_example_freebsd.html

 

Я даже не менял его, полагая, что там всё правильно. :(

 

Спасибо ещё раз. :)

 

Буду разбираться что означало это правило.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.