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

Dethman

Пользователи
  • Публикации

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

  • Посещение

О Dethman

  • Звание
    Абитуриент
    Абитуриент

Контакты

  • ICQ
    Array

Информация

  • Пол
    Array
  1. напишите в почту ваш ценник :), на не новую.
  2. Ситуация : Авторизация и аккаунтинг через радиус, 1) Запускаю сервер, запускаю радиус 2) конекчусь (авторизация проходит, глотаеться акк старт) 3) гашу радиус 4) клиент отваливаеться 5) запускаю радиус 6) а сервер (аккел) умер, клиенты не конектяться в логе вот такая штука: [2011-09-27 15:32:17]: warn: ppp0: radius: server not responding [2011-09-27 15:32:17]: warn: radius: server noy responding [2011-09-27 15:32:17]: warn: ppp0: radius:acct: no servers available, terminating session... [2011-09-27 15:32:17]: info: ppp0: disconnected ==> core.log <== [2011-09-27 15:32:17.483]BUG:ctx:triton_unregister_ctx: handlers is not empty Т.е. если радиус умрет на какое-то время то аккель нужно перезапускать ? Собрал 1.4 из git, проблема исчезла, буду тестить под нагрузкой
  3. сорцы можно взять сорцы, сразу предупреждаю писалось на ходу и оформлением не занимался совсем. Там в корне лежит сорц под iptables и в директории kernel сам модуль (я собирал под 2.6.35 и 2.6.37 в других не пробовал, может и не собраться :)). Вот этот скриптик для выставления приоритетов по портам :) список портов лежит в /etc/brain/ports.class_1, /etc/brain/ports.class_2, /etc/brain/ports.class_3, в /etc/brain/ports.drop лежит список портов которые нужно просто дропать :) #!/bin/sh for class_1 in $(cat /etc/brain/ports.class_1);do echo "S ${class_1}=13" > /proc/brain/ctl done for class_2 in $(cat /etc/brain/ports.class_2);do echo "S ${class_2}=12" > /proc/brain/ctl done for drop in $(cat /etc/brain/ports.drop);do echo "D ${drop}" > /proc/brain/ctl done для Ifup пользуется вот такая штука: #!/usr/bin/perl $root_qdisc='/sbin/tc qdisc add dev %s root handle 1: htb default %x'."\n"; $add_qdisc= '/sbin/tc qdisc add dev %s parent 1:%x handle %x sfq perturb 30'."\n"; $root_class= '/sbin/tc class add dev %s '. 'parent 1:%x '. 'classid 1:%x '. 'htb prio %u rate %u '. 'quantum 1500 burst 64k'."\n"; $add_class= '/sbin/tc class add dev %s '. 'parent 1:%x '. 'classid 1:%x '. 'htb prio %u rate 1mbit '. 'ceil %u quantum 1500 burst 64k'."\n"; #dev class prio speed $del_class= '/sbin/tc class del dev %s classid 1:%x'."\n"; $mbit=1048576; $ppp_device=shift; if ($ppp_device=~/^ppp(\d+)$/) { $pppnum=$1; } else { print "device error\n"; exit 1; } $speed=shift; $speed=100 if (!$speed); $unlim_speed=100; $p[1]=1<<13; $p[2]=1<<12; $p[3]=1<<11; $un=1<<14; $base_class=(1<<15); for ($i=1;$i<=3;$i++) { $unlim[$i]=$base_class|$p[$i]|$un; $limit[$i]=$base_class|$p[$i]; } $unlim_class=$base_class|$un; $limit_class=$base_class; $out_name='internet'; sub setup_input ($$) { my $pppnum=shift; my $speed=shift; $ppp_name = sprintf('ppp%u',$pppnum); system sprintf("/sbin/tc qdisc del dev $ppp_name root\n"); system sprintf($root_qdisc,$ppp_name,$limit[3]); system sprintf($root_class,$ppp_name,0,$unlim_class,0,(2*$unlim_speed*$mbit)); system sprintf($add_class,$ppp_name,$unlim_class,$base_class,0,(2*$speed*$mbit)); for ($i=1;$i<=3;$i++) { system sprintf($add_class,$ppp_name,$unlim_class,$unlim[$i],$i,100*$mbit); system sprintf($add_class,$ppp_name,$base_class,$limit[$i],$i,$speed*$mbit); system sprintf($add_qdisc,$ppp_name,$unlim[$i],$unlim[$i]); system sprintf($add_qdisc,$ppp_name,$limit[$i],$limit[$i]); } } sub setup_output ($$) { my $pppnum=shift; my $speed =shift; $pppnum++; for ($i=1;$i<=3;$i++) { system sprintf($del_class,$out_name,$unlim[$i]|$pppnum); system sprintf($del_class,$out_name,$limit[$i]|$pppnum); } system sprintf($del_class,$out_name,$base_class|$pppnum); system sprintf($del_class,$out_name,$unlim_class|$pppnum); system sprintf($root_class,$out_name,1,$unlim_class|$pppnum,4,(2*$unlim_speed*$mbit)); system sprintf($add_class, $out_name,$unlim_class|$pppnum,$base_class|$pppnum,0,(2*$speed*$mbit)); for ($i=1;$i<=3;$i++) { system sprintf($add_class,$out_name,$unlim_class|$pppnum,$unlim[$i]|$pppnum,$i,100*$mbit); system sprintf($add_class,$out_name,$base_class|$pppnum,$limit[$i]|$pppnum,$i,$speed*$mbit); system sprintf($add_qdisc,$out_name,$unlim[$i]|$pppnum,$unlim[$i]|$pppnum); system sprintf($add_qdisc,$out_name,$limit[$i]|$pppnum,$limit[$i]|$pppnum); } } setup_input($pppnum,$speed); setup_output($pppnum,$speed); Если где-то чето-то забыл, вы пишите, вспомню :)
  4. Если интересно, у меня сделанно примерно так на впнах: Chain FORWARD (policy ACCEPT) target prot opt source destination NIGHT all -- 0.0.0.0/0 0.0.0.0/0 TIME from 21:00:00 to 05:00:00 UTC DAY all -- 0.0.0.0/0 0.0.0.0/0 Chain OUTPUT (policy ACCEPT) target prot opt source destination Chain POSTROUTING (policy ACCEPT) target prot opt source destination Chain DAY (1 references) target prot opt source destination CLASSIFY all -- 0.0.0.0/0 0.0.0.0/0 CLASSIFY set 1:0 CLASSIFY all -- 0.0.0.0/0 0.0.0.0/0 match-set UNLIMIT src CLASSIFY set 1:4000 CLASSIFY all -- 0.0.0.0/0 0.0.0.0/0 match-set UNLIMIT dst CLASSIFY set 1:4000 BRAIN all -- 0.0.0.0/0 0.0.0.0/0 Chain NIGHT (1 references) target prot opt source destination CLASSIFY all -- 0.0.0.0/0 0.0.0.0/0 CLASSIFY set 1:4000 BRAIN all -- 0.0.0.0/0 0.0.0.0/0 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 BRAIN - извращенная фантазия на основе CLASSIFY классифифицирущий по интерфейсу от которого пришел пакет, и занимающийся выставлением бит, отвечающих за приоритет. Как бы ни фильтров ни хешей, да ограничение в 2^12 на колличество ppp интерфейсов классифицируется так 12 бит на номер ppp интерфейса (pppX) 3 бита на приоритет 1 бит указывает на безлимитность :) у впна 2 интерфейса internet и local :) на internet вешаются исходячие классы для шейпинга Вобщем если оно интересно пишите
  5. Доброе время суток. есть необходимость убивать ppp из скрипта на сервере, т.е. например ifdown ppp10 должно отключать этот самый ppp10 есть разумные решения кроме нарисованного ниже ? #!/bin/sh accel_addr=127.0.0.1 accel_port=2001 ifname=$1 echo -en "terminate if ${ifname}" | netcat -t ${accel_addr} ${accel_port}
  6. Про сислог, флешки и место на насах: А что мешает выкидывать все логи с наса на внешний сервер ? У нас насы живут на флешках, да, /etc /tmp /var в тмпфс и каждому по 32 мб отведено ... но туда ничего не пишеться :)
  7. это да, сейчас у меня как раз по флоу на исх интерфейсе, фильтр работает. но как-то.... классид присваивать по ip - не комильфо, ибо либо нужно либо маску накладывать, либо иметь на выходе что-то типа cafa:0101... вобщем буду попробовать...
  8. хм, а его (tc filter u32) можно вывешивать на интерфес откуда валится трафик и класифицировать пакеты для выхода? т.е. трафик приходит на пппХ, и соответственно выходит из internet
  9. Не думаю, что я так одинок в том, что часть абонентов терминируются на pptp/l2tp сервер с линупсом. Думаю, что все думали - как честно резать исходящий трафик. Думаю все идут на разные ухищрения, что бы классифицировать трафик идущий от абонента (пришедший на интерфейс ppp+ и отправляющийся на скажем internet). и вот меня задело за живое: iptables -t mangle -A FORWARD -i ppp+ -o internet -j CLASSIFY --set-class 1:100 и все пакеты будут классифицированы. iptables -t mangle -A FORWARD -i pppX -o internet -j CLASSIFY --set-class 1:100 и будут классифицированы пакеты с ппп под номером Х, только понадобиться гора правил, и недешевое проц. вермя :) ну и я чуть-чуть переписал модуль, теперь оно работает вот так: iptables -t mangle -A FORWARD -i ppp+ -o internet -j CLASSIFY --set-class 1:100 и все пакеты от pppX получают classid (приорити) 1:100+X (нужно помнить, что Х - десятичное, а 100-шеснадцатиричное). имеем - одно правило и все интерфейсы классифицируются, в ip-up суем создание классов хтб на исх. интерфейсе (internet). в довесок получаем возможность классифицировать трафик (ну там локал не локал) например: iptables -t mangle -A FORWARD -d ! 10.0.0.0/8 -i ppp+ -o internet -j CLASSIFY --set-class 1:100 iptables -t mangle -A FORWARD -d 10.0.0.0/8 -i ppp+ -o internet -j CLASSIFY --set-class 2:100 в теории сюда можно воткнуть ip-set с списком сетей или еще-чем-либо изменений в коде модуля -- очень мало, думаю даже школьник бы справился я вот сижу и мучаюсь я один такой гений, или кто-то такое уже делал ? или же просто путь тупиковый и не интересный ?
  10. Альтернативные способы оплаты

    Положить монтажника на пол, обвести мелом, поднять, вылить полбанки малинового варенья около очертаний головы .... по делу: заставить при оплате через кассу заполнять длииинный квиточек.
  11. А что за чудо устройства эти АЛУ, их кто-нибудь где-нибудь под какой-нибудь нагрузкой пробовал ? (интересен личный опыт а не "слышал")
  12. не знаю, дгс-ы36 серии вроде проблемами с лакп не отличились
  13. Нет опасения по поводу балансировки на 5-ть линков? нет, по крайней мере между длинками и кошками все балансируется почти ровно.
  14. но денег скушает больше? имхо тут всанет вопрос ASR1000 VS MX80 если я правильно поинмаю
  15. а всякого рода дцф карточки в линейные карты стоит или пропустить мимо ушей при обьеме 10ж сумарном ? (5ж фул дуплекс соотвесно вход и выход)