глючит radius и вылетают pptp соединения вместе с pure-ftpd

Ответить
сайбрис
Сообщения: 40
Зарегистрирован: Сб июн 02, 2007 2:34 pm
Откуда: Кишинев, Молдова
Контактная информация:

глючит radius и вылетают pptp соединения вместе с pure-ftpd

Сообщение сайбрис »

привет друзья!
сразу говорю, что вопрос не по теме, но хотелось бы услышать совета бывалого юниксойда :)

стоит сервак с FreeBSD 6.3 , abills 0.4 , freeradius-1.1.7, exppp, mysql и pure-ftpd на борту. Короче говоря, сервак выполняет 2 функции:
1. Раздает людям интернет
2. Служит файлообменником (pure-ftpd).

Время от времени, когда с фтп-сервака начинают качать что нибудь у некоторых пользователей ни с того, ни с чего рвутся pptp соединения. Сколько я ни рылся в логах - ничего путного не нашел. Но хуже того, что от сколько бы ни было мало-мальски нармальной нагрузки на сервак начинает глючить freeradius, а именно начинает грузить процессор на 90-99%. Благо, что сервак мощный и не дохнет от таких прелестей. Попытки убить radius никакого эффекта ни дают, он просто не хочет вылезать из памяти. Единственный способ - это перезагрузка, а как вы сами понимаете , что перезагружать сервак каждые сутки - это не дело. Я предпринимал интуитивно понятные попытки разрешить непонятную ситуацию, а именно:
1.Уменьшал канал скачки/закачки с pure-ftpd, но это не дает абсолютно никакого эффекта. Снизил уже буквально до 4Мбит.с., а проблема осталась.
2.Отключал pure-ftpd и пробовал на стандартном ftpd демоне, но то же самое....
3.Переместил стандартный порт ftp c 21го на 8021ый (думал, что может быть каким то образом данные идут через радиус), но опять то же самое.

может быть проблема в NATе, вот стандартный набор правил, которые я использую для ipnat:

Код: Выделить всё

map rl1 10.1.0.0/16 -> 0.0.0.0/32 proxy port ftp ftp/tcp

# -----------------------------------------------------------
# Use ipfilter IKE proxy for ESP packets for hosts behind NAT
# IP Filter 3.4.21 and beyond only.
# -----------------------------------------------------------
map rl1 10.1.0.0/16 -> 0.0.0.0/32 proxy port 500 ipsec/udp

# -----------------------------------------------------------
# Use ipfilter RealAudio proxy for hosts behind NAT
# -----------------------------------------------------------
map rl1 10.1.0.0/16 -> 0.0.0.0/32 proxy port 7070 raudio/tcp

# -----------------------------------------------------------
# Map all internal UDP and TCP traffic to the external IP address
# -----------------------------------------------------------
map rl1 10.1.0.0/16 -> 0.0.0.0/32 portmap tcp/udp 40000:60000

# -----------------------------------------------------------
# Map all other traffic e.g. ICMP to the external IP address
# -----------------------------------------------------------
map rl1 10.1.0.0/16 -> 0.0.0.0/32

Если хто нибудь сталкивался с этой проблемой или может указать на путь нахождения причины был бы очень признателен в вашей помощи:)[/code]
Последний раз редактировалось сайбрис Пт апр 04, 2008 6:03 pm, всего редактировалось 1 раз.

sopov
Сообщения: 610
Зарегистрирован: Вс апр 02, 2006 7:13 pm

Сообщение sopov »

Да вопрос то вобщемто по теме, только сведений о машинке маловато...
Что за система? С чем собрано ядро? Как собирался радиус? Используете ли rlm_perl? Сколько пользователей онлайн? Что показывает systat -vmstat?

ps. кillalll -9 radiusd пробовали?

сайбрис
Сообщения: 40
Зарегистрирован: Сб июн 02, 2007 2:34 pm
Откуда: Кишинев, Молдова
Контактная информация:

Сообщение сайбрис »

машина FreeBSD 6.3-RELEASE i386

ядро собиралось с обычными параметрами для абиллса:

Код: Выделить всё

.....
options         IPFIREWALL
options         IPFIREWALL_DEFAULT_TO_ACCEPT
options         DUMMYNET
options         NETGRAPH
options         NETGRAPH_PPPOE
options         IPFILTER
options         IPFILTER_LOG
options         IPDIVERT
радиус собирался с дефолтными параметрами прямо из портов с поддержкой майскюэл.

rlm_perl не использую потому что пользователей онлайн не больше 30-ти.

systat -vmstat

Код: Выделить всё

    1 users    Load  0.26  0.15  0.10                  Apr  4 21:25

Mem:KB    REAL            VIRTUAL                       VN PAGER   SWAP PAGER
        Tot   Share      Tot    Share    Free           in   out     in   out
Act  181084    4916  2813484     8956   33652  count
All  202368    6444  4961824    12152          pages     3
Proc:                                                            Interrupts
  r   p   d   s   w   Csw  Trp  Sys  Int  Sof  Flt     18 cow    3211 total
  1          77      8822  271  11k 3315   37  203    165 zfod    583 rl0 irq16
                                                      142 ozfod   627 rl1 irq17
 1.2%Sys   2.8%Intr  4.2%User  0.1%Nice 91.6%Idle      86%ozfod     3 ohci0+ 21
|    |    |    |    |    |    |    |    |    |    |       daefr       ohci1 23
=+>>                                                  175 prcfr  1998 cpu0: time
                                        49 dtbuf      185 totfr
Namei     Name-cache   Dir-cache     33089 desvn        1 react
   Calls    hits   %    hits   %      2342 numvn          pdwak
    3317    3036  92                  1356 frevn          pdpgs
                                                          intrn
Disks   ad4   ad6                                   76708 wire
KB/t  13.83 64.00                                  279640 act
tps       2     0                                   78992 inact
MB/s   0.03  0.01                                   26764 cache
%busy     1     0                                    6888 free
                                                    57760 buf

машина мощная, стоит проц на 2.2Ггц с гигом оперативы и хорошим винтом.

кillalll -9 radiusd кстати не пробовал :), но как представится возможность обязательно попробую.

sopov
Сообщения: 610
Зарегистрирован: Вс апр 02, 2006 7:13 pm

Сообщение sopov »

Ну давайте на вырост...

Код: Выделить всё

machine         i386
#cpu            I486_CPU
#cpu            I586_CPU
cpu             I686_CPU
ident           fast
maxusers        1024 #Нужно для расчета процессов
# To statically compile in device wiring instead of /boot/device.hints
#hints          "GENERIC.hints"         # Default places to look for devices.

#makeoptions    DEBUG=-g                # Build kernel with gdb(1) debug symbols

###snn modified###
options         DEVICE_POLLING
options         HZ=1000
options         IPDIVERT
options         IPFIREWALL
options         IPFIREWALL_DEFAULT_TO_ACCEPT
options         IPFIREWALL_FORWARD
#options         IPFIREWALL_FORWARD_EXTENDED
options         DUMMYNET
options         NETGRAPH
options         NETGRAPH_IPFW
options         NETGRAPH_PPPOE
options         NETGRAPH_NAT
options         NETGRAPH_NETFLOW
options         NETGRAPH_SPLIT
options         NETGRAPH_KSOCKET
options         NETGRAPH_SOCKET
options         NETGRAPH_BPF
options         NETGRAPH_IFACE
options         NETGRAPH_MPPC_ENCRYPTION
options         NETGRAPH_PPP
options         NETGRAPH_PPTPGRE
options         NETGRAPH_TCPMSS
options         NETGRAPH_VJC
options         IPFILTER
options         IPFILTER_LOG
options         LIBALIAS
Нагрузки просто смешные для Вашей машины. Количество прирываний сетевух раз в 5 привышает нормы для типичной системы с 30 пользователями. (может конечно сказываеться ftp) Но лучше заменить сетевухе на em или fxp. Проверьте железо на предмет банального неконтакта и битой памяти.
В любом случае желательно использование rlm_perl - авторизация будет проходить значительно веселее. В пиковых нагрузках сделайте systat -vmstat и top -S

kaats
Сообщения: 99
Зарегистрирован: Пн ноя 19, 2007 8:43 pm
Контактная информация:

Сообщение kaats »

Хочу поделится своим "бывшим горем". Сродни Вашему, правда не зависимо от нагрузки - случалось так что пользователей выбрасывало и радиус и мпд (и как потом оказалось и ДНС иногда и возможно другие демоны - не проверял) не можно было убить процесс ни каким образам(и так тоже кillalll -9), только перезагрузкой. И загрузка процессора именно "неубиваемыми" демонами 90%
Из всех моих изысканий (оптимизации sysctl, ядра) - нашел, что 2 сеттевухи использовали одно и тоже прерывание - я не считаю что это "преступление". Но тем не менее - выкинул все свои сеттевухи - поставил две (именно сколько надо - а не впрок) - и проблема ушла. (При чем сеттевухи были от Интел, ошибок на интерфейсах небыло)

А проверте еще работу Вашего сервака - запустите архивировать несколько фильмов(больших файлов) одновременно. Нагрузочка на "процессор-память" - спровоцирует проблему или нет?
Что б разделить проблемы на сеть, проц, память...

star
Сообщения: 211
Зарегистрирован: Ср окт 11, 2006 4:27 pm
Контактная информация:

Сообщение star »

на одной из машин имел проблему вылетания радиуса решил так
запуск по крону с интервалом 5 мин

Код: Выделить всё

#!/bin/sh
#poisk radiusa
CR2=`/bin/ps -ax | /usr/bin/grep radiusd | /usr/bin/grep -v grep |  awk '{ print $1 }'`

#proverka, esli est niche ne dalaem
if [ $CR2 ]
then
#echo $CR2
else
#echo net radiusa
/usr/local/sbin/radiusd
fi
пока работает :)
В принципе это часть скрипта там побольше было, проверки пптпд и наличие записей об ошибке мускула в логе...
http://v-lan.com.ua Выделенные линии в Боярке

сайбрис
Сообщения: 40
Зарегистрирован: Сб июн 02, 2007 2:34 pm
Откуда: Кишинев, Молдова
Контактная информация:

Сообщение сайбрис »

kaats, спасибо, будем разбираться. Если что, поставим более крутые сетевухи от Интела, а то ат реалтэка действительно фуфло наверно..

сайбрис
Сообщения: 40
Зарегистрирован: Сб июн 02, 2007 2:34 pm
Откуда: Кишинев, Молдова
Контактная информация:

Сообщение сайбрис »

Установил сетевуху 3Com 3C905C. Будем тестировать на предмет зависаний и разрыва VPN соединений. На первый взгляд сетевуха произвела впечатление какой то старой модели с кучей микросхем и всякой херни, но на практике сразу видно что нагрузка на процессор серьезно снизилась. Я вычитал в тестах, что это связано с тем, что в этой сетевухе стоит микросхемка которая сама считает контрольные суммы TCP/IP и за счет какой то там технологии распараллеливания задач.
К сожалению в городе моем нельзя купить нармальной интеловской сетевухи 100мбит, есть только гигабитные, которые носят гордое название серверных и стоят полсотни зеленых-буржуйских. Пришлось купить подержанную 3Com :-)

Ответить