Bear_UA Posted September 8, 2019 Сегодня вечером словил странный глюк на следующей связке. 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 Почему-то перестали удаляться старые неактивные сессии клиентов. Руками удаляю все сессии - клиент подключается и работает но я так думаю это до следующего реконнекта. Вот конфиг мпд (может там что-то довписать надо, хотя конфиг переносится от сервака к серваку уже долгие годы) 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 интерфейс с тем же ип если уже такой существует? Ну и почему не удаляются старые сессии? Подскажите может сталкивался кто и как побороть. Share this post Link to post Share on other sites More sharing options...
vlad11 Posted September 8, 2019 Самое обновиться до FreeBSD 12-STABLE. Share this post Link to post Share on other sites More sharing options...
Bear_UA Posted September 8, 2019 2 часа назад, vlad11 сказал: Самое обновиться до FreeBSD 12-STABLE. Не ну конечно это выход НО - у меня стабильно работают уйма 9.х, 10.х, 11.х без особых проблем уйму времени. И эта машина отлично работала в течении 3-х месяцев. Должно быть решение проблемы без обновления версии. Да и STABLE версии как-то не внушают доверия еще со времен 8.х Share this post Link to post Share on other sites More sharing options...
jffulcrum Posted September 9, 2019 Патч для mpd стоит? Share this post Link to post Share on other sites More sharing options...
Ivan_83 Posted September 9, 2019 9 часов назад, Bear_UA сказал: Не ну конечно это выход НО - у меня стабильно работают уйма 9.х, 10.х, 11.х без особых проблем уйму времени. И тебя не смущает: https://www.freebsd.org/security/notices.html https://www.freebsd.org/security/advisories.html ? 9 часов назад, Bear_UA сказал: И эта машина отлично работала в течении 3-х месяцев. Должно быть решение проблемы без обновления версии. Да и STABLE версии как-то не внушают доверия еще со времен 8.х Оно разумеется есть, всего то нужно найти багу в коде и пофиксить. Можно и просто найти и бэкпортировать фикс из 100500 коммитов :) Кроме того, вот тебе не внушает доверия а нетфликс сидит на карренте да и ещё со своими патчами :) Правда у них есть команда погромистов которые ядро пилят. Да и я всё чаще задумываюсь о переезде со stable на current даже на десктопе - дрова на амд видюху там свежее. Конкретно в твоём случае похоже где то что то не очистилось, возможно у тебя упёрлось в лимит буфера сокета и сообщения гоняемые через ngctl не пролезли целиком. Кажется maxpipekva и от netgraph что то. в лоадере: kern.ipc.maxpipekva="33554432" # Pipe KVA limit в сисцтл: # ng_socket net.graph.maxdgram=262144 # Maximum outgoing Netgraph datagram size / really max datagram size net.graph.recvspace=262144 # Maximum space for incoming Netgraph datagrams / можешь ещё больше сделать, раза в 4. Можно поискать в netstat что то на предмет нетграфа и попробовать подиагностировать. Обычный ребут должен помочь. Share this post Link to post Share on other sites More sharing options...
Bear_UA Posted September 9, 2019 13 минут назад, Ivan_83 сказал: Конкретно в твоём случае похоже где то что то не очистилось, возможно у тебя упёрлось в лимит буфера сокета и сообщения гоняемые через ngctl не пролезли целиком. Кажется maxpipekva и от netgraph что то. в лоадере: kern.ipc.maxpipekva="33554432" # Pipe KVA limit в сисцтл: # ng_socket net.graph.maxdgram=262144 # Maximum outgoing Netgraph datagram size / really max datagram size net.graph.recvspace=262144 # Maximum space for incoming Netgraph datagrams / можешь ещё больше сделать, раза в 4. kern.ipc.maxpipekva: 128659456 в сисцтл net.graph.maxdgram=8388608 net.graph.recvspace=8388608 kern.ipc.maxsockbuf=83886080 14 минут назад, Ivan_83 сказал: Обычный ребут должен помочь. Ребут то помог - но надолго ли? Под 9.х/10.x с такой же настройкой NAS-ы стоят с аптаймом в несколько лет и никаких нюансов :( Только вот не поддерживаются уже и обновлений нет ни на 9.х ни на 10.х :( Share this post Link to post Share on other sites More sharing options...
Ivan_83 Posted September 9, 2019 3 минуты назад, Bear_UA сказал: в сисцтл net.graph.maxdgram=8388608 net.graph.recvspace=8388608 kern.ipc.maxsockbuf=83886080 Можно ещё в 2х увеличить. 4 минуты назад, Bear_UA сказал: Ребут то помог - но надолго ли? Под 9.х/10.x с такой же настройкой NAS-ы стоят с аптаймом в несколько лет и никаких нюансов :( Только вот не поддерживаются уже и обновлений нет ни на 9.х ни на 10.х :( Кажется нынче минимально поддерживаемое это 11.4. Только на днях выставили метку что 12.1 пререлиз для стабле ветки. Там процесс разработки такой: current - master ветка куда всё впиливается, дальше это стараются обкатать и бэкпортирую по возможности в stable (недели через две). А в прошлый стабле бэкпортируют только совсем-совсем важные вещи типа секурити фиксов, ну или может то что не требует усилий. Потом всякие изменения ломающие совместимость в куренте накапливаются и становится всё сложнее в стабле бэкпортировать, тогда апают мажорную версию :) Во всём процессе занято меньше сотни человек, я бы сказал что активных менее 50, так что тянуть даже это - уже на пределе возможностей. Это редхат может позволить себе содержать армию макак которые круглосуточно бэкпортируют всё подряд в окаменелости. Как workaround можешь написать скрипты которые будут вычищать старые сессии как это делал ты руками. Можно подобные скрипты повесить на хуки if up, if down - помнится mpd5 такое умел. Скажем на if down ты посылаешь ngctl shutdown (или как ты их там килял) на ноду с интерфейсом, а на if up скрипт делает что то типа "[] show sessions ip 10.10.0.9" и дальше так же киляет всё что не текущий интерфейс. PS: крайне некрасиво выдавать абонентам чужие днс, ты же сливаешь все их запросы прямиком в анб, прощай приватность. Share this post Link to post Share on other sites More sharing options...
vlad11 Posted September 9, 2019 Да, ДНС лучше, чтоб был кеширующий и локальный. Share this post Link to post Share on other sites More sharing options...