mpd5 путает интерфейсы

Настройка сетевых служб, маршрутизации, фаерволлов. Проблемы с сетевым оборудованием.
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Spank
мл. сержант
Сообщения: 106
Зарегистрирован: 2009-04-16 0:28:05

mpd5 путает интерфейсы

Непрочитанное сообщение Spank » 2009-10-09 21:44:33

Долго ковыряя пытался понять в чем все же дело и походу при отключении клиента иногда mpd5 в down_script передает неверный интерфейс. При выводе в логи бывает стопается ng100 и сразу за ним стопается опять ng100, при этом нового коннекта не было. Так же у меня есть файлики куда я при старте(up_скрипт) пишу инфу о коннекте и если сверять с логином, который приходит в down скрипт, то интерфейс там совсем другой. Как выловить багу чет я не понимаю. Клиентов онлайн грубо около 500. Сейчас сделал так, если интерфейс переданный в down скрипт не равен интерфейсу который прописан в конфиге при старте клиента, тогда убиваю интерфейс из конфига и удаляю правила из ipfw.
Сервис используем pppoe
mpd-5.3
7.2-RELEASE FreeBSD
Вот собственно скрипт остановки ифейса

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

$username=$ARGV[4];
$iface=$ARGV[0];
$ipaddr=$ARGV[3];

$date = `/bin/date`;
chomp($date);

$iface =~ /.*?(\d+).*/;
$num_pipe2 = ($1 + 1)*10;

if (-e "/usr/local/etc/mpd5/clients/$username"){
    open(USERFILE, "/usr/local/etc/mpd5/clients/$username");
    my $num_pipe = '';
    while(<USERFILE>){
<------>chomp;
<------>my($key, $val) = split(':');
<------>if($key eq 'pipe'){
<------>    $num_pipe = $val;
<------>}
    }
    close(USERFILE);

    if($num_pipe ne ''){
        if($num_pipe2 ne $num_pipe){
    <-->    my $new_if = ($num_pipe / 10) - 1;
<------>    `/usr/sbin/ngctl shutdown ng$new_if:`;
<------>    `/bin/echo "$date: Disconnected error pipe_conf != pipe_if $iface pipe: $num_pipe, destoroy: ng$new_if $username" >> /var/log/mpd_up.log`;
<------>}

<------>$cmd = "";
<------>for($index = 0; $index < 6; $index++){
    <-->    $cmd .= "/sbin/ipfw pipe ".($num_pipe+$index)." delete 2> /dev/null\n";
    <-->    $cmd .= "/sbin/ipfw table ".(5+$index)." delete $ipaddr 2> /dev/null\n";
<------>}
<------>`$cmd`;
    }else{
        `/bin/echo "$date: Disconnected error, pipe num not found!!!" >> /var/log/mpd_up.log`;
    }
    unlink("/usr/local/etc/mpd5/clients/$username");
    `/bin/echo "$date: Disconnected $username $ipaddr $iface pipe: $num_pipe " >> /var/log/mpd_up.log`;
}else{
    `/bin/echo "$date: Disconnected (Client not starting up_sctript) $username $iface " >> /var/log/mpd_up.log`;
}

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: mpd5 путает интерфейсы

Непрочитанное сообщение paradox » 2009-10-09 21:55:37

ну и зачем все эти сложности не помнимаю

Spank
мл. сержант
Сообщения: 106
Зарегистрирован: 2009-04-16 0:28:05

Re: mpd5 путает интерфейсы

Непрочитанное сообщение Spank » 2009-10-09 21:56:31

paradox писал(а):ну и зачем все эти сложности не помнимаю
А какие варианты есть?

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: mpd5 путает интерфейсы

Непрочитанное сообщение paradox » 2009-10-09 22:03:35

а что нужно делать ?

Spank
мл. сержант
Сообщения: 106
Зарегистрирован: 2009-04-16 0:28:05

Re: mpd5 путает интерфейсы

Непрочитанное сообщение Spank » 2009-10-09 22:07:56

paradox писал(а):а что нужно делать ?
Нужно что бы мпд нормально заработал :)...

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: mpd5 путает интерфейсы

Непрочитанное сообщение paradox » 2009-10-09 22:16:30

ну так выкинте скрипт
и он нормально работает

Spank
мл. сержант
Сообщения: 106
Зарегистрирован: 2009-04-16 0:28:05

Re: mpd5 путает интерфейсы

Непрочитанное сообщение Spank » 2009-10-09 22:25:54

paradox писал(а):ну так выкинте скрипт
и он нормально работает
А зарезки по скорости как удалять без него? Можно конешно не удалять но опять хотелось бы все таки чтобы лишних проверок ipfw не делал...

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: mpd5 путает интерфейсы

Непрочитанное сообщение paradox » 2009-10-09 22:40:48

зачем вам думать вместо ipfw ? оставте это на функции ядра

Spank
мл. сержант
Сообщения: 106
Зарегистрирован: 2009-04-16 0:28:05

Re: mpd5 путает интерфейсы

Непрочитанное сообщение Spank » 2009-10-09 22:49:45

paradox писал(а):зачем вам думать вместо ipfw ? оставте это на функции ядра
Логика понятна, но меня смущает количество пользователей которое уже сейчас может достигать 700 одновременных коннектов. Причем есть классы трафика разные с разными зарезками, что полюбому производтельность снижает. Хотя да, если посмотреть на загрузку, то тут нужно бороться с прерываниями, а не ipfw. Но все же если есть какойто ответ на задачу хотелось бы найти его. Хотя бы даже ради спортивного интереса ...

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: mpd5 путает интерфейсы

Непрочитанное сообщение paradox » 2009-10-09 22:53:44

по айпишникам нарежте и ipfw не трогайте

Spank
мл. сержант
Сообщения: 106
Зарегистрирован: 2009-04-16 0:28:05

Re: mpd5 путает интерфейсы

Непрочитанное сообщение Spank » 2009-10-09 22:57:49

paradox писал(а):по айпишникам нарежте и ipfw не трогайте
Как? Вот в tc в линуксе заню, там есть фильтры. А тут как? ng_car вроде как не умеет трафик на классы делить..

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: mpd5 путает интерфейсы

Непрочитанное сообщение paradox » 2009-10-09 23:13:39

при отключении клиента иногда mpd5 в down_script передает неверный интерфейс. При выводе в логи бывает стопается ng100 и сразу за ним стопается опять ng100
лучше бы вы эту ситуацию в mpd.log показали
ибо есть народ который и поболее клиентов чем у вас использует и у них никаких проблем
правда я не в курсе как они шейпят...

Spank
мл. сержант
Сообщения: 106
Зарегистрирован: 2009-04-16 0:28:05

Re: mpd5 путает интерфейсы

Непрочитанное сообщение Spank » 2009-10-10 0:43:11

В скрипт пришло ng48 а при старте клиенту выдался ng9

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

Oct 10 01:31:32 access2 mpd: [vlan106-40] LCP: state change Req-Sent --> Ack-Sent
Oct 10 01:31:33 access2 mpd: [vlan105-31] LCP: no reply to 5 echo request(s)
Oct 10 01:31:33 access2 mpd: [vlan105-31] LCP: peer not responding to echo requests
Oct 10 01:31:33 access2 mpd: [vlan105-31] LCP: state change Opened --> Stopping
Oct 10 01:31:33 access2 mpd: [vlan105-31] Link: Leave bundle "B-67"
Oct 10 01:31:33 access2 mpd: [vlan105-31] RADIUS: Accounting user 'nn8315' (Type: 2)
Oct 10 01:31:33 access2 mpd: [B-67] can't configure tcpmss node program: No such file or directory
Oct 10 01:31:33 access2 mpd: [B-67] can't configure tcpmss node program: No such file or directory
Oct 10 01:31:33 access2 mpd: [B-67] Bundle: Status update: up 0 links, total bandwidth 9600 bps
Oct 10 01:31:33 access2 mpd: [B-67] IPCP: Close event
Oct 10 01:31:33 access2 mpd: [B-67] IPCP: state change Opened --> Closing
Oct 10 01:31:33 access2 mpd: [B-67] IPCP: SendTerminateReq #3
Oct 10 01:31:33 access2 mpd: [B-67] IPCP: LayerDown
Oct 10 01:31:33 access2 mpd: [vlan105-31] RADIUS: Rec'd RAD_ACCOUNTING_RESPONSE for user 'nn8315'
Oct 10 01:31:33 access2 mpd: [B-67] IFACE: Down event
Oct 10 01:31:33 access2 mpd: [B-67] CCP: Close event
Oct 10 01:31:33 access2 mpd: [B-67] CCP: state change Stopped --> Closed
Oct 10 01:31:33 access2 mpd: [B-67] IPCP: Down event
Oct 10 01:31:33 access2 mpd: [B-67] IPCP: LayerFinish
Oct 10 01:31:33 access2 mpd: [B-67] Bundle: No NCPs left. Closing links...
Oct 10 01:31:33 access2 mpd: [B-67] IPCP: state change Closing --> Initial
Oct 10 01:31:33 access2 mpd: [B-67] CCP: Down event
Oct 10 01:31:33 access2 mpd: [B-67] CCP: state change Closed --> Initial
Oct 10 01:31:33 access2 mpd: [B-67] Bundle: Shutdown
Oct 10 01:31:33 access2 mpd: [vlan105-31] LCP: SendTerminateReq #3
Oct 10 01:31:33 access2 mpd: [vlan105-31] LCP: LayerDown
Oct 10 01:31:34 access2 mpd: [vlan106-40] LCP: SendConfigReq #2
Как появятся логи когда уже и файл с конфигом клиента удален скину...

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: mpd5 путает интерфейсы

Непрочитанное сообщение paradox » 2009-10-10 0:52:51

7.2-RELEASE FreeBSD
желательно все же до стеибла обновиться
ибо баги могут быть в релизе но уже может не быть их в стеибле

Spank
мл. сержант
Сообщения: 106
Зарегистрирован: 2009-04-16 0:28:05

Re: mpd5 путает интерфейсы

Непрочитанное сообщение Spank » 2009-10-10 0:56:17

paradox писал(а):
7.2-RELEASE FreeBSD
желательно все же до стеибла обновиться
ибо баги могут быть в релизе но уже может не быть их в стеибле
Я наверное туплю, а какой же тогда стейбл? Вроде это последнее что есть на сайте freebsd.org .

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: mpd5 путает интерфейсы

Непрочитанное сообщение paradox » 2009-10-10 1:01:52

до стеибла обновляються путем cvsup и сборкой всего мира
стеибл на компактах не распрастраняеться
на компактах токо оффициальный релиз который выходит токо один раз

Spank
мл. сержант
Сообщения: 106
Зарегистрирован: 2009-04-16 0:28:05

Re: mpd5 путает интерфейсы

Непрочитанное сообщение Spank » 2009-10-10 1:14:08

paradox писал(а):до стеибла обновляються путем cvsup и сборкой всего мира
стеибл на компактах не распрастраняеться
на компактах токо оффициальный релиз который выходит токо один раз
Понял, уже походу так делал :). Пасиб буду пробовать.

Spank
мл. сержант
Сообщения: 106
Зарегистрирован: 2009-04-16 0:28:05

Re: mpd5 путает интерфейсы

Непрочитанное сообщение Spank » 2009-10-10 16:45:52

Нашел проблему. Оказывается если клиент был подключен и связь порвалась и он по новой подключается, то в логи пишется, что ип такой то уже есть на ифейсе и выполняется скрипт остановки, в котором указывается номер договора и уже новый интерфейс. Ну а потом еще и когда старый ифейс падает, так же запускается скрипт.