Jump to content

Recommended Posts

Posted

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

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

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

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

Posted

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

Posted

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

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

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

tcpdump, вобщем.

Posted

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

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

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

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

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

Posted

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

Posted

Raul,

:) Ну да.

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

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

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

 

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

aliasing address not given

 

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

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

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

man natd

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

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

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

Posted

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

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

Posted

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...
На сайте используются файлы cookie и сервисы аналитики для корректной работы форума и улучшения качества обслуживания. Продолжая использовать сайт, вы соглашаетесь с использованием файлов cookie и с Политикой конфиденциальности.