Перейти до

FreeBSD 11.2 + mpd 5.8 словил странный глюк


Рекомендованные сообщения

Сегодня вечером словил странный глюк на следующей связке.

FreeBSD 11.2-RELEASE-p9

MPD version: 5.8

Клиенты подключаются по PPPOE.

Онлайна на машине в районе 1600 абонентов

 

Стали звонить под вечер клиенты с проблемой на неработающий интернет. Причем некоторые.

Стали разбираться

В результате выяснился странный глюк

 

[] show sessions ip 10.10.0.9
ng1865  10.10.0.9       C-1866  7956732-C-1866  vlan60-1137     1137    7956732-vlan60-1137     vova    54:e6:fc:fe:5d:53
ng2233  10.10.0.9       C-2234  7959914-C-2234  vlan60-2290     2290    7959914-vlan60-2290     vova    54:e6:fc:fe:5d:53
ng2151  10.10.0.9       C-2152  7960268-C-2152  vlan60-2298     2298    7960268-vlan60-2298     vova    54:e6:fc:fe:5d:53
ng2112  10.10.0.9       C-2113  7960073-C-2113  vlan60-2299     2299    7960073-vlan60-2299     vova    54:e6:fc:fe:5d:53

[] show sessions ip 10.10.51.184
ng1710  10.10.51.184    C-1711  7933915-C-1711  vlan63-468      468     7933915-vlan63-468      051184  00:30:67:f9:8b:87
ng608   10.10.51.184    C-609   7879576-C-609   vlan63-727      727     7879576-vlan63-727      051184  00:30:67:f9:8b:87
ng883   10.10.51.184    C-884   7933023-C-884   vlan63-1028     1028    7933023-vlan63-1028     051184  00:30:67:f9:8b:87
ng1071  10.10.51.184    C-1072  7932679-C-1072  vlan63-1177     1177    7932679-vlan63-1177     051184  00:30:67:f9:8b:87
ng1643  10.10.51.184    C-1644  7933515-C-1644  vlan63-1714     1714    7933515-vlan63-1714     051184  00:30:67:f9:8b:87
ng1671  10.10.51.184    C-1672  7928866-C-1672  vlan63-1751     1751    7928866-vlan63-1751     051184  00:30:67:f9:8b:87
ng1701  10.10.51.184    C-1702  7931011-C-1702  vlan63-1769     1769    7931011-vlan63-1769     051184  00:30:67:f9:8b:87
ng1709  10.10.51.184    C-1710  7932364-C-1710  vlan63-1777     1777    7932364-vlan63-1777     051184  00:30:67:f9:8b:87
ng2269  10.10.51.184    C-2270  7961076-C-2270  vlan63-2050     2050    7961076-vlan63-2050     051184  00:30:67:f9:8b:87
ng2229  10.10.51.184    C-2230  7960448-C-2230  vlan63-2273     2273    7960448-vlan63-2273     051184  00:30:67:f9:8b:87
ng1425  10.10.51.184    C-1426  7959795-C-1426  vlan63-2280     2280    7959795-vlan63-2280     051184  00:30:67:f9:8b:87
ng2216  10.10.51.184    C-2217  7960721-C-2217  vlan63-2287     2287    7960721-vlan63-2287     051184  00:30:67:f9:8b:87
ng2252  10.10.51.184    C-2253  7960944-C-2253  vlan63-2301     2301    7960944-vlan63-2301     051184  00:30:67:f9:8b:87
ng2236  10.10.51.184    C-2237  7960217-C-2237  vlan63-2302     2302    7960217-vlan63-2302     051184  00:30:67:f9:8b:87
ng2270  10.10.51.184    C-2271  7961240-C-2271  vlan63-2313     2313    7961240-vlan63-2313     051184  00:30:67:f9:8b:87
ng2248  10.10.51.184    C-2249  7960285-C-2249  vlan63-2318     2318    7960285-vlan63-2318     051184  00:30:67:f9:8b:87
ng1899  10.10.51.184    C-1900  7962171-C-1900  vlan63-2347     2347    7962171-vlan63-2347     051184  00:30:67:f9:8b:87
ng2299  10.10.51.184    C-2300  7962389-C-2300  vlan63-2363     2363    7962389-vlan63-2363     051184  00:30:67:f9:8b:87
ng194   10.10.51.184    C-195   7962428-C-195   vlan63-2373     2373    7962428-vlan63-2373     051184  00:30:67:f9:8b:87
ng2260  10.10.51.184    C-2261  7960890-C-2261  vlan63-2378     2378    7960890-vlan63-2378     051184  00:30:67:f9:8b:87

и так далее

Почему-то перестали удаляться старые неактивные сессии клиентов. Руками удаляю все сессии - клиент подключается и работает но я так думаю это до следующего реконнекта.

 

Вот конфиг мпд (может там что-то довписать надо, хотя конфиг переносится от сервака к серваку уже долгие годы)

pppoe_server:
        create bundle template C
        set bundle disable encryption
        set bundle disable compression
        set ccp disable mppc
        set ipcp dns 8.8.8.8 1.1.1.1
        set ipcp range a.b.c.d/32 0.0.0.0/0
        set iface enable tcpmssfix
        create link template oe pppoe
        set link action bundle C
        set link disable chap pap eap
        set link enable pap chap
        set link enable peer-as-calling
        load radius

		create link template vlan2 oe
        set link max-children 1000
        set pppoe iface vlan2
        set pppoe service "*"
        set link enable incoming

......

Почему мпд создает ng интерфейс с тем же ип если уже такой существует? Ну и почему не удаляются старые сессии?

 

Подскажите может сталкивался кто и как побороть.

Ссылка на сообщение
Поделиться на других сайтах

Не разбираюсь в MPD, но полагаю что явно нужно указать тайм-аут для LCP-пингов:

set link keep-alive seconds max

This command enables the sending of LCP echo packets on the link. The first echo packet is sent after seconds seconds of quiet time (i.e., no frames received from the peer on that link). After seconds more seconds, another echo request is sent. If after max seconds of doing this no echo reply has been received yet, the link is brought down.

If seconds is zero, echo packets are disabled. The default values are five second intervals with a maximum no-reply time of fourty.

 

Скорее всего раньше это было неявно указано в MPD, а теперь по умолчанию выключено.

Например для пингов раз в 30 сек и отключения по неактивности через 1.5 минуты:

set link-keepalive 30 90

  • Like 1
  • Thanks 1
Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Вхід

Уже зарегистрированы? Войдите здесь.

Войти сейчас
  • Зараз на сторінці   0 користувачів

    Немає користувачів, що переглядають цю сторінку.

  • Схожий контент

    • Від mac
      Глюк в тому, що один (так - тільки один) mac адрес onu існує в білінгу у вигляді строки. Це трохи заважає.
      olt - bdcom gepon.
      Наскільки зрозумів, це виключно проблема реалізації snmpwalk у freebsd, де snmpwalk може на свій розсуд віддати mac адресу не як hex-string, а як звичайний string.
      Можливо snmpwalk тригериться на якомусь символі, мені невідомо.
       
      # tcpdump -vv -i em0 udp port 161 and host olt and host ub | grep "3320.101.10.4.1.1.241 ... olt.snmp > ub.47940: [udp sum ok] { SNMPv2c C="*****" { GetResponse(44) R=93278354 E:3320.101.10.4.1.1.241="8LO"W*" } } ub.47940 > olt.snmp: [udp sum ok] { SNMPv2c C="*****" { GetNextRequest(34) R=93278355 E:3320.101.10.4.1.1.241 } } snmpwalk -c***** -v2c -t5 olt .1.3.6.1.4.1.3320.101.10.4.1.1 SNMPv2-SMI::enterprises.3320.101.10.4.1.1.241 = STRING: "8LO\"W*" snmpwalk -Ox -c***** -v2c -t5 olt .1.3.6.1.4.1.3320.101.10.4.1.1 SNMPv2-SMI::enterprises.3320.101.10.4.1.1.241 = Hex-STRING: 38 4C 4F 22 57 2A  
      Це стосується таких параметрів у snmp конфізі bdcom
       
      [signal] MACINDEX=".1.3.6.1.4.1.3320.101.10.4.1.1" [misc] ONUINDEX=".1.3.6.1.4.1.3320.101.11.1.1.3"  
      За для усунення глюку спробував трошки змінити код і завдати тип snmp параметру явно у ./api/libs/api.ponbdcom.php у function collect()
      Це працює. Мабуть станеться у нагоді:
       
      # diff api.ponbdcom.php{.new,.bak} 37c37 < $onuIndex = $this->snmp->walk('-Ox ' . $oltIp . ':' . self::SNMPPORT, $oltCommunity, $onuIndexOid, self::SNMPCACHE); --- > $onuIndex = $this->snmp->walk($oltIp . ':' . self::SNMPPORT, $oltCommunity, $onuIndexOid, self::SNMPCACHE); 91c91 < $macIndex = $this->snmp->walk('-Ox ' . $oltIp . ':' . self::SNMPPORT, $oltCommunity, $macIndexOID, self::SNMPCACHE); --- > $macIndex = $this->snmp->walk($oltIp . ':' . self::SNMPPORT, $oltCommunity, $macIndexOID, self::SNMPCACHE);  
      P.S. Створив тему, а зараз міркую: а може це глюк у ПЗ olt. Оновлю фірмваре olt та перевірю...
       

    • Від a_n_h
      Всем доброго дня и мирного неба!
        После многочисленных экспериментов выяснил, что на последних версиях freebsd  максимум удавалось прокачать до 14 ГБт суммарно трафика со 100% загрузкой процессора. На том-же железе но с установленной freebsd 11.2 прокачивается до 20-ти ГБт суммарно тестового трафика с загрузкой процессора около 50%. 
        Подскажите, что можно убрать или наоборот добавить в систему с freebsd 13,3 для получения аналогичного результата...
    • Від mac
      Здається, після оновлення PHP 7.4 до PHP 8.2 feesharvester припинив працювати:
       
      /usr/local/bin/curl "http://127.0.0.1/billing/?module=remoteapi&key={SERIAL}&action=feesharvester" <br /> <b>Fatal error</b>: Uncaught TypeError: Unsupported operand types: string - string in {UBPATH}/billing/api/libs/api.fundsflow.php:570 Stack trace: #0 {UBPATH}/billing/modules/remoteapi/feesharvester.php(22): FundsFlow-&gt;harvestFees('2024-01') ...  
      Невеличке розслідування врешті з'ясувало, що це через наявність пробілу у деяких логінах абонентів. Як так сталося? Тому що інколи був неуважно додан трейлінг пробіл до номеру будинка і цей пробіл потрапив до логіну абоненту. Логін абоненту неможливо змінити ніяким чином штатними засобами. Я не розглядаю створення нового абонента для усунення помілки.

      Був обран такий шлях вирішення проблеми. Заміну функції php explode() знайшов у мережі. Мабуть це станеться в нагоді:

       
      diff api.fundsflow.php.bak api.fundsflow.php.new 559c559 < $eachfee = explode(' ', $eachline); --- > $eachfee = preg_split("~(?<!\\\\)(?:\\\\{2})*'[^'\\\\]*(?:\\\\.[^'\\\\]*)*'(*SKIP)(*F)|\s+~s" , $eachline);  
    • Від FantoM_EscapE
      Хочу перенести свій білінг NODENY із фізичного сервера на віртуальний. Шукаю адміна який зможе допомогти у цьому питанні, так як нашого адміна банально призвали до війська. Вся схема на даний момент робоча, маю доступи до всього. Потрібно проінсталити на новішу версію FREEBSD, бо на моїй 10 річній вже не працюють нові SSL сертифікати. Кого зацікавила дана пропозиція - прошу у приватні повідомлення. обсудимо ціну і строки. або пишіть на будь-який месенджер 0677792091
    • Від rusol
      Добрый вечер.
       
      Есть от провайдера блок реальных адресов, к примеру 100.1.1.192/26
       
      Раньше сеть была в одном влане и записи в /etc/rc.conf были такие:

       
      ifconfig_ix0="inet 192.168.0.1 netmask 255.255.255.0" # Шлюз для пользователей с локальным IP ifconfig_ix0_alias0="inet 100.1.1.193 netmask 255.255.255.192" # Шлюз для пользователей с реальными IP  
      После чего стала задача часть пользователей переводить во вланы тоже с разделением на локальные IP и реальные, первый влан создал где-то пару лет назад и все работает:
       
      ifconfig_vlan1="vlan 1 vlandev ix0 192.168.1.1 netmask 255.255.255.0" # Шлюз для пользователей с локальным IP во Влане 1 ifconfig_vlan1_alias0="inet 100.1.1.248 netmask 255.255.255.248" # Шлюз для пользователей с реальными IP  во Влане 1  
      И вот стоит задача создать еще один влан, делаю по аналогии с вланом 1, только маску смещаю назад:
       
      ifconfig_vlan2="vlan 2 vlandev ix0 192.168.1.1 netmask 255.255.255.0" # Шлюз для пользователей с локальным IP во Влане 2 ifconfig_vlan2_alias0="inet 100.1.1.246 netmask 255.255.255.254" # Шлюз для пользователей с реальными IP во Влане 2  
      Когда я внес это в /etc/rc.conf и прописал команду:
       
      ifconfig vlan2 create  
      Все заработало.
       
      Но как только перезагрузился сервер, перестали работать реальные IP без вланов, в первом влане и во втором. Не пойму что не так делаю, возможно я с маской подсети что-то недопонимаю...
×
×
  • Створити нове...