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

DrakoN

Активный участник
  • Публикации

    126
  • Зарегистрирован

  • Посещение

Все публикации пользователя DrakoN


  1. Можно чуть больше деталей по этому вопросу? У меня корневая очередь htb, а далее по esfq. Можно попробовать SFQ. ##### speed server->client /sbin/tc qdisc add dev $1 root handle 1:0 htb default 20 r2q 1 /sbin/tc class add dev $1 parent 1:0 classid 1:10 htb rate 95mbit burst 512k /sbin/tc class add dev $1 parent 1:0 classid 1:20 htb rate ${UPSPEED}kbit burst 30k /sbin/tc qdisc add dev $1 parent 1:10 handle 10: esfq limit 128 depth 128 divisor 12 hash dst /sbin/tc qdisc add dev $1 parent 1:20 handle 20: esfq limit 128 depth 128 divisor 12 hash dst /sbin/tc filter add dev $1 parent 1:0 protocol ip prio 10 u32 match ip src "локальные IP" flowid 1:10 ##### speed client->server /sbin/tc qdisc add dev $1 handle ffff: ingress /sbin/tc filter add dev $1 parent ffff: protocol ip prio 49 u32 match ip dst "локальные IP" police rate 95mbit burst 1000k drop flowid :1 /sbin/tc filter add dev $1 parent ffff: protocol ip prio 50 u32 match ip src 0.0.0.0/0 police rate ${DOWNSPEED}kbit burst 30k drop flowid :1 htb всяко лучше, чем tbf, с этим я согласен. Но странно, что у вас burst/cburst ручками ставится, а не от скорости считается. cburst тоже нужен, на 10-20мегабитных скоростях, по умолчанию он какой-то мелкий. Ещё я порекомендовал бы взглянуть на mtu на интерфейсах, если speedtest не грузится.
  2. ну для этого очень просто можно netconsole в ядре настроить для логгинга упсов/паников на другой сервер.
  3. Попробуй всё-таки отсниффить трафик через bridge. Т.е. возьми какую-нибудь машинку с двумя интерфейсами, соедини их бриджом и поставь перед серваком. Дамп пиши на диск, скажем каждые 5-10 минут с оверлапом по времени, и стирай пред-предыдущий дамп при запуске очередного. 50к пакетов в секунду - это всего-то 23 метра за 5 минут.Крон-скрипт что-то типа этого: DATE=`date "+%0Y%0m%0d%0H%0M"` DAYDATE=`date "+%0Y%0m%0d"` ( tcpdump -w /var/tmp/alldump/all_${DATE}.tcpdump -n -s 0 -i br0 >/dev/null 2>&1 ) & PID=$! ; sleep 605 ; kill ${PID} ; wait P.S. Я конечно понимаю, что привычки тяжело менять, но посоветовал бы Debian для более быстрого деплоя.
  4. strace-ом попробовал strace -f -F -tt -v -i -x -s 1024 -o /tmp/accel.out -p `pidof accel-pptpd` 31441 17:39:41.463718 [b7836424] epoll_wait(4, <unfinished ...> 31439 17:39:41.463725 [b7836424] sigprocmask(SIG_SETMASK, ~[KILL STOP RTMIN], ~[KILL STOP RTMIN]) = 0 31439 17:39:41.463762 [b7836424] recvfrom(14, "тут много всякого шестнадцатиричного, наверно содержимое radius-пакета", 4096, 0, {sa_family=AF_INET, sin_port=htons(47874), sin_addr=inet_addr("192.168.2.12")}, [16]) = 90 31439 17:39:41.463847 [b7836424] brk(0x9f60000) = 0x9f60000 31439 17:39:41.463867 [b75d4440] --- SIGSEGV (Segmentation fault) @ 0 (0) --- 31437 17:39:41.463926 [????????] <... ???? resumed> ) = ? <unavailable> 31493 17:39:41.463952 [????????] +++ killed by SIGSEGV +++ 31443 17:39:41.463963 [????????] +++ killed by SIGSEGV +++ 31441 17:39:41.463969 [????????] +++ killed by SIGSEGV +++ 31438 17:39:41.463974 [????????] +++ killed by SIGSEGV +++ 31437 17:39:41.463979 [????????] +++ killed by SIGSEGV +++ 31436 17:39:41.463984 [????????] +++ killed by SIGSEGV +++ 31435 17:39:41.463989 [????????] +++ killed by SIGSEGV +++ 31434 17:39:41.463994 [????????] +++ killed by SIGSEGV +++ 31440 17:39:41.574966 [????????] +++ killed by SIGSEGV +++ 31431 17:39:41.574975 [????????] +++ killed by SIGSEGV +++ наверно это не поможет... сейчас посмотрим, что ещё можно нарыть.
  5. лб ни 1.8, ни 1.9 похоже не умеют dm/coa, но можно воспользоваться radclient'ом и из vg.xxx посылть dm/coa запросы, вот пример vg.off: echo "NAS-Identifier=gw1,NAS-IP-Address=$4,Acct-Session-Id=$1,User-Name=$2,Framed-IP-Address=$3" | /usr/local/bin/radclient $4:3799 disconnect secret &> /dev/null Попробовал. В результате, падает accel-pptp и вследствие этого клиент не может переконнектиться. В логах ничего нет, кроме [2010-10-25 15:42:27]: info: ppp0: send [PPTP Echo-Request <Identifier 557fb7ee>] [2010-10-25 15:42:27]: info: ppp0: recv [PPTP Echo-Reply <Identifier 557fb7ee>] [2010-10-25 15:42:29]: info: ppp0: send [LCP EchoReq id=e <magic 30aadfda>] [2010-10-25 15:42:29]: info: ppp0: recv [LCP EchoRep id=e <magic 90f01dfa>] [2010-10-25 15:42:34]: info: ppp0: send [PPTP Echo-Request <Identifier 436f2beb>] [2010-10-25 15:42:34]: info: ppp0: recv [PPTP Echo-Reply <Identifier 436f2beb>] [2010-10-25 15:42:34]: info: ppp0: send [LCP EchoReq id=f <magic 30aadfda>] [2010-10-25 15:42:34]: info: ppp0: recv [LCP EchoRep id=f <magic 90f01dfa>] [2010-10-25 15:42:39]: info: ppp0: send [LCP EchoReq id=10 <magic 30aadfda>] [2010-10-25 15:42:39]: info: ppp0: recv [LCP EchoRep id=10 <magic 90f01dfa>] [2010-10-25 15:42:41]: info: ppp0: send [PPTP Echo-Request <Identifier 6c8b4466>] [2010-10-25 15:42:41]: info: ppp0: recv [PPTP Echo-Reply <Identifier 6c8b4466>] [2010-10-25 15:42:44]: info: ppp0: send [LCP EchoReq id=11 <magic 30aadfda>] [2010-10-25 15:42:44]: info: ppp0: recv [LCP EchoRep id=11 <magic 90f01dfa>] Видимо, accel не успевает записать в логи и сделать flush на диск. В системных логах: Oct 25 15:51:16 nas5 kernel: [361839.291762] accel-pptpd[29772]: segfault at 0 ip b7522440 sp 08227ed8 error 4 in libc-2.11.2.so[b74af000+140000] В консоли выдаёт: radclient: no response from server for ID 89 socket 3
  6. К слову сказать, я не вижу запроса от radius-а на прерываение соединения (LanBilling 1.8), так что хотелось бы, чтобы была возможность ручками убить клиента. Да и всякое бывает, что пакетики не доходят и другие экстренные ситуации, поэтому more than one way был бы предпочтителен.
  7. make[2]: *** No rule to make target `../driver/isg.c', needed by `driver/driver/isg.ko'. Stop. make[1]: *** [driver/CMakeFiles/isg_drv.dir/all] Error 2 make: *** [all] Error 2 **** Installation failed. Aborting package creation. В остальном всё работает, но остался один маленький вопрос: Как убить сессию конкретного пользователя из userspace на сервере? ifconfig pppX down только опускает интерфейс, но не разрывает сессию, дочерних процессов у accel-pptp нет, только треды. Может, конечно, есть какой-то интерфейс через /proc или /sys, но я их пока не заметил.
  8. А у меня - нет :) ppp0 none 0 x1.y1.z1.t1 x2.y2.z2.t2 x3.y3.z3.t3 PPP_TTY=none PPP_REMOTE=x2.y2.z2.t2 PPP_IFACE=ppp0 BYTES_RCVD=354910 PPP_TTYNAME=none PATH=/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin PPP_LOCAL=x1.y1.z1.t1 PPP_IPPARAM=x3.y3.z3.t3 PWD=/ PPP_SPEED=0 PEERNAME=tratata Прямо сейчас смотрю в исходники и вижу: char *env[2]; ... env[0] = peername; env[1] = NULL; fill_env(env, pd); где fill_env у нас: static void fill_env(char **env, struct pppd_compat_pd_t *pd) { sprintf(env[0], "PEERNAME=%s", pd->ppp->username); if (pd->ppp->stop_time) { sprintf(env[1], "CONNECT_TIME=%lu", pd->ppp->stop_time - pd->ppp->start_time); sprintf(env[2], "BYTES_SENT=%u", pd->bytes_sent); sprintf(env[3], "BYTES_RCVD=%u", pd->bytes_rcvd); } } и char *env[5]; char peername[64]; char connect_time[16]; char bytes_sent[12]; char bytes_rcvd[12]; ... env[0] = peername; env[1] = connect_time; env[2] = bytes_sent; env[3] = bytes_rcvd; env[4] = NULL; fill_env(env, pd); что-то тут явно не сходится. Для sprintf-а надо быть уверенным, что нам хватит размера char[], ведь так?
  9. Прямо сейчас собрал новый accel из git-а, и... УРА!PPP_IPPARAM есть, PEERNAME есть, BYTES_RCVD есть, а вот остального нет, после BYTES_RCVD идёт IFS... Посмотрел в исходники, похоже там надо NULL переставить куда надо :) P.S. По поводу ip-pre-up, планируется ли также добавить auth-up и auth-down, для меня смысла никакого нет, зато может кому-то понадобится?
  10. она упорно хочет чтобы у неё mru было 1500, там нигде таких настроек нет ? В винде можно через реестр MTU/MRU править.
  11. Это радует, но надо двигаться вперёд прямо сейчас, поэтому придётся самому в скриптах разбирать закодированную строчку. Да скорее всего у меня на linux-е pap не настроен, как я вижу. Да и не играет это особой роли, если появится оборудование типа клиентских маршрутизаторов каких-нибудь, там и будем разбираться. Во всяком случае прямо сейчас всё работает для одного клиента (меня), организую более масштабное тестирование (после разборок с атрибутами) и отчитаюсь :)А пока что всё радует: по сравнению с загруженным poptop пинги меньше, спидтест больше, и даже большие пинги всего на единицы процентов теряются (скорее всего выше, не на самом accel-е). P.S. Словарь добавил, атрибуты видны. Пока что нарыл несколько несовместимостей с классическим poptop: 1) нет 6 параметра передающегося в скрипт ip-[up|down]: локальный IP подключенного клиента 2) нет переменной окружения PEERNAME, в которой находится login клиента 3) Всякая мелочь для статистики в ip-down: BYTES_RCVD, BYTES_SENT, CONNECT_TIME, DNS1, DNS2
  12. запости лог И опять уже разобрался сам. :))) Просто агента надо было перезапустить после добавления нового NAS-а. Что не очень-то и понравилось, ибо пришлось всех клиентов порубить. Разбираемся дальше. PAP с Linux-овым клиентом не заработал. CHAP-ы все вроде пашут. Теперь маленький вопрос по радиус-аттрибутам. в /var/run/radattr.pppX вижу следующее: Vendor-Specific 00000009016E6C63703A696E746572666163652D636F6E66696723313D726174652D6C696D697420 6F7574707574203230343830303030203235363030303020323536303030302063 6F6E666F726D2D616374696F6E207472616E736D6974206578636565642D616374696F6E2064726F 70 Vendor-Specific 00000009016D6C63703A696E746572666163652D636F6E66696723313D726174652D6C696D697420 696E7075742031353336303030302031393230303030203139323030303020636F 6E666F726D2D616374696F6E207472616E736D6974206578636565642D616374696F6E2064726F70 хотя у poptop там что-то типа этого: Cisco-AVPair lcp:interface-config#1=rate-limit output 6000000 750000 750000 conform-action transmit exceed-action drop Cisco-AVPair lcp:interface-config#1=rate-limit input 4500000 562000 562000 conform-action transmit exceed-action drop Cisco-AVPair lcp:interface-config#1=rate-limit output 3072000 384000 384000 conform-action transmit exceed-action drop Cisco-AVPair lcp:interface-config#1=rate-limit input 2300000 287500 287500 conform-action transmit exceed-action drop Соответственно, хотелось бы понять, что надо сделать - отредактировать/добавить dictionary или потребуется более глубокое вмешательство? В логах пишет, что: [2010-10-20 13:22:43]: warn: ppp0: radius:packet: vendor 26 not found [2010-10-20 13:22:43]: warn: ppp0: radius:packet: vendor 26 not found Ну и чем лучше пользоваться в таком случае, когда скорости передаются радиус-атрибутами - встроенным шейпером или скриптами в /etc/ppp/ip-[up|down] tc использовать?
  13. testing/unstableуже собрал с checkinstall :) #!/bin/sh rm -rf /usr/src/accel-pptp/build cd /usr/src/accel-pptp mkdir build cd build cmake -DBUILD_DRIVER=TRUE -DKDIR=/usr/src/linux -DCMAKE_INSTALL_PREFIX=/ -DCMAKE_BUILD_TYPE=Debian -DLOG_PGSQL=FALSE -DSHAPER=TRUE .. make checkinstall --pkgname=accel-pptp -D make install chmod +x /etc/init.d/accel-pptp cp /usr/src/accel-pptp/build/accel-pptp_*.deb /usr/src/accel-pptp С LanBilling 1.8 его кто-нибудь дружил? Что-то у меня mschapv2 не хочет работать (ошибка 691), попробую разобраться. Хотя обычный poptop с LB1.8 работает, правда с radiusclient1-0.3.2-11 из stable.
  14. Для сборки под Debian libnl-dev или libnl2-dev нужна?
  15. В 8:10 начался небольшой затяжной дождик, что у нас на Северо-Западе не редкость
  16. Самый большой недостаток этого решения - отсутствие SFP разъёмов для подключения гигабитной оптики. Приходится заморачиваться с молниезащитой. Вдобавок в условиях постоянно влажного климата Петербурга такие решения будут работать не 97-98% времени на гигабите, а 85-90%, что явно не сможет устроить 99% пользователей.
  17. Интересно, откуда они таких идиотов понабрали, которые путают Mb с Mib? Приставка мега всегда означала 10^6 и в телекоме и в хранении данных. А то, что тупые виндузятники этого не знают, так это их проблемы. Могли бы хоть для приличия заглянуть в энциклопедию, а не пороть чушь. http://ru.wikipedia.org/wiki/Мегабит Мегабит растёт от мегагерца, а не от объёма оперативной памяти компьютера, как ошибочно думают виндузятники.
  18. Про трубу

    Не вижу генерации контента. Просто торентщики стали больше раздавать, период начального накопления закончился.
  19. Давайте пейпалку в Россию, хватит уже голову доморощенным дерьмецом а-ля Уебмани, людям морочить.
  20. Ай-яй-яй. Теперь они ещё и полноценный ботнет на хомячках прикрутили. http://www.overclockers.ru/softnews/37840/...go_dostupa.html
  21. 1. iPod market share at 73.8 percent, 225 million iPods sold, more games for Touch than PSP & NDS: Apple 2. latest stats (Dec 2009) showing Apple’s iPhone market share is still on the way up, going from 24.1% to 25.3% 3. e-Readers: future market share: iPad - 40%, Kindle - 28%, ... P.S. С начала года рыночная стоимость AAPL выросла на 30%, в то время как у других "лидеров рынка" она только падала. http://www.google.com/finance?chdnp=1&...AAPL&ntsp=0
  22. Зарезал на сервере доступа: iptables -A FORWARD -p udp -m length --length 61 -m string --hex-string "|7F FF FF FF|" --algo kmp --from 40 --to 44 -j DROP В результате загрузка CPU на бордере в пике уменьшилась с 56% до 36% при том же bandwidth, и сможем ввести новые тарифные планы без боязни потерять в качестве или количестве обслуживаемых клиентов. Посмотрел заодно, откуда идёт uTP-трафик: корбилайн не режет, сибирь не режет, казахстан и прибалтика тоже.
  23. Количество коллизий не совсем так считается. Почитайте http://ru.wikipedia.org/wiki/Парадокс_дней_рождения для начала