Bear_UA Posted September 8, 2019 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 интерфейс с тем же ип если уже такой существует? Ну и почему не удаляются старые сессии? Подскажите может сталкивался кто и как побороть. Вставить ник Quote
vlad11 Posted September 8, 2019 Posted September 8, 2019 Самое обновиться до FreeBSD 12-STABLE. Вставить ник Quote
Bear_UA Posted September 8, 2019 Author Posted September 8, 2019 2 часа назад, vlad11 сказал: Самое обновиться до FreeBSD 12-STABLE. Не ну конечно это выход НО - у меня стабильно работают уйма 9.х, 10.х, 11.х без особых проблем уйму времени. И эта машина отлично работала в течении 3-х месяцев. Должно быть решение проблемы без обновления версии. Да и STABLE версии как-то не внушают доверия еще со времен 8.х Вставить ник Quote
Ivan_83 Posted September 9, 2019 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 что то на предмет нетграфа и попробовать подиагностировать. Обычный ребут должен помочь. Вставить ник Quote
Bear_UA Posted September 9, 2019 Author 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.х :( Вставить ник Quote
Ivan_83 Posted September 9, 2019 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: крайне некрасиво выдавать абонентам чужие днс, ты же сливаешь все их запросы прямиком в анб, прощай приватность. Вставить ник Quote
vlad11 Posted September 9, 2019 Posted September 9, 2019 Да, ДНС лучше, чтоб был кеширующий и локальный. Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.