Настройка сетевых служб, маршрутизации, фаерволлов. Проблемы с сетевым оборудованием.
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
-
Spank
- мл. сержант
- Сообщения: 106
- Зарегистрирован: 2009-04-16 0:28:05
Непрочитанное сообщение
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`;
}
Spank
-
Хостинг HostFood.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/
-
Spank
- мл. сержант
- Сообщения: 106
- Зарегистрирован: 2009-04-16 0:28:05
Непрочитанное сообщение
Spank » 2009-10-09 21:56:31
paradox писал(а):ну и зачем все эти сложности не помнимаю
А какие варианты есть?
Spank
-
Spank
- мл. сержант
- Сообщения: 106
- Зарегистрирован: 2009-04-16 0:28:05
Непрочитанное сообщение
Spank » 2009-10-09 22:07:56
paradox писал(а):а что нужно делать ?
Нужно что бы мпд нормально заработал
...
Spank
-
Spank
- мл. сержант
- Сообщения: 106
- Зарегистрирован: 2009-04-16 0:28:05
Непрочитанное сообщение
Spank » 2009-10-09 22:25:54
paradox писал(а):ну так выкинте скрипт
и он нормально работает
А зарезки по скорости как удалять без него? Можно конешно не удалять но опять хотелось бы все таки чтобы лишних проверок ipfw не делал...
Spank
-
paradox
- проходил мимо
- Сообщения: 11620
- Зарегистрирован: 2008-02-21 18:15:41
Непрочитанное сообщение
paradox » 2009-10-09 22:40:48
зачем вам думать вместо ipfw ? оставте это на функции ядра
paradox
-
Spank
- мл. сержант
- Сообщения: 106
- Зарегистрирован: 2009-04-16 0:28:05
Непрочитанное сообщение
Spank » 2009-10-09 22:49:45
paradox писал(а):зачем вам думать вместо ipfw ? оставте это на функции ядра
Логика понятна, но меня смущает количество пользователей которое уже сейчас может достигать 700 одновременных коннектов. Причем есть классы трафика разные с разными зарезками, что полюбому производтельность снижает. Хотя да, если посмотреть на загрузку, то тут нужно бороться с прерываниями, а не ipfw. Но все же если есть какойто ответ на задачу хотелось бы найти его. Хотя бы даже ради спортивного интереса ...
Spank
-
Spank
- мл. сержант
- Сообщения: 106
- Зарегистрирован: 2009-04-16 0:28:05
Непрочитанное сообщение
Spank » 2009-10-09 22:57:49
paradox писал(а):по айпишникам нарежте и ipfw не трогайте
Как? Вот в tc в линуксе заню, там есть фильтры. А тут как? ng_car вроде как не умеет трафик на классы делить..
Spank
-
paradox
- проходил мимо
- Сообщения: 11620
- Зарегистрирован: 2008-02-21 18:15:41
Непрочитанное сообщение
paradox » 2009-10-09 23:13:39
при отключении клиента иногда mpd5 в down_script передает неверный интерфейс. При выводе в логи бывает стопается ng100 и сразу за ним стопается опять ng100
лучше бы вы эту ситуацию в mpd.log показали
ибо есть народ который и поболее клиентов чем у вас использует и у них никаких проблем
правда я не в курсе как они шейпят...
paradox
-
Spank
- мл. сержант
- Сообщения: 106
- Зарегистрирован: 2009-04-16 0:28:05
Непрочитанное сообщение
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
Как появятся логи когда уже и файл с конфигом клиента удален скину...
Spank
-
paradox
- проходил мимо
- Сообщения: 11620
- Зарегистрирован: 2008-02-21 18:15:41
Непрочитанное сообщение
paradox » 2009-10-10 0:52:51
7.2-RELEASE FreeBSD
желательно все же до стеибла обновиться
ибо баги могут быть в релизе но уже может не быть их в стеибле
paradox
-
Spank
- мл. сержант
- Сообщения: 106
- Зарегистрирован: 2009-04-16 0:28:05
Непрочитанное сообщение
Spank » 2009-10-10 0:56:17
paradox писал(а):7.2-RELEASE FreeBSD
желательно все же до стеибла обновиться
ибо баги могут быть в релизе но уже может не быть их в стеибле
Я наверное туплю, а какой же тогда стейбл? Вроде это последнее что есть на сайте freebsd.org .
Spank
-
paradox
- проходил мимо
- Сообщения: 11620
- Зарегистрирован: 2008-02-21 18:15:41
Непрочитанное сообщение
paradox » 2009-10-10 1:01:52
до стеибла обновляються путем cvsup и сборкой всего мира
стеибл на компактах не распрастраняеться
на компактах токо оффициальный релиз который выходит токо один раз
paradox
-
Spank
- мл. сержант
- Сообщения: 106
- Зарегистрирован: 2009-04-16 0:28:05
Непрочитанное сообщение
Spank » 2009-10-10 1:14:08
paradox писал(а):до стеибла обновляються путем cvsup и сборкой всего мира
стеибл на компактах не распрастраняеться
на компактах токо оффициальный релиз который выходит токо один раз
Понял, уже походу так делал
. Пасиб буду пробовать.
Spank
-
Spank
- мл. сержант
- Сообщения: 106
- Зарегистрирован: 2009-04-16 0:28:05
Непрочитанное сообщение
Spank » 2009-10-10 16:45:52
Нашел проблему. Оказывается если клиент был подключен и связь порвалась и он по новой подключается, то в логи пишется, что ип такой то уже есть на ифейсе и выполняется скрипт остановки, в котором указывается номер договора и уже новый интерфейс. Ну а потом еще и когда старый ифейс падает, так же запускается скрипт.
Spank