URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 49128
[ Назад ]

Исходное сообщение
"Тематический каталог: Решение проблемы с kernel panic на FreeBSD (dummynet, swi1net, trap number = 12) (freebsd panic ip..."

Отправлено auto_topic , 09-Фев-09 14:53 
Обсуждение статьи тематического каталога: Решение проблемы с kernel panic на FreeBSD (dummynet, swi1net, trap number = 12) (freebsd panic ipfw crash dummynet)

Ссылка на текст статьи: http://www.opennet.me/base/sys/freebsd_panic_solution.txt.html


Содержание

Сообщения в этом обсуждении
"Решение проблемы с kernel panic на FreeBSD (dummynet, swi1net, trap number = 12) (freebsd panic ipfw crash dummynet)"
Отправлено terminus , 09-Фев-09 14:53 
Спасибо за статью! А в рассылки FreeBSD писали о данной проблеме?

"Решение проблемы с kernel panic на FreeBSD (dummynet, swi1:net, trap number = 12) (freebsd panic ipfw crash dummynet)"
Отправлено Alive , 09-Фев-09 15:05 
Познавательно. Спасибо.

"Решение проблемы с kernel panic на FreeBSD (dummynet, swi1:net, trap number = 12) (freebsd panic ipfw crash dummynet)"
Отправлено stasav , 09-Фев-09 15:10 
Люди никак не научатся юзать таблицы =) Оттеда все ваши проблемы )

"Решение проблемы с kernel panic на FreeBSD (dummynet, swi1:net, trap number = 12) (freebsd panic ipfw crash dummynet)"
Отправлено Аноним , 09-Фев-09 15:35 
хм
есть такой же сервер примерно
фря 6.2
канал 10 мегабит
проблем пока таких небыло слава богу
также ipfw + shaper

спасибо автор, в закладки


"Решение проблемы с kernel panic на FreeBSD (dummynet, swi1:net, trap number = 12) (freebsd panic ipfw crash dummynet)"
Отправлено xor2003 , 09-Фев-09 15:36 
это временное решение. правильное - багрепорт

"Решение проблемы с kernel panic на FreeBSD (dummynet, swi1:n..."
Отправлено wtf , 09-Фев-09 20:38 
это не баг. В списках рассылки об этом есть упоминание.
http://lists.freebsd.org/pipermail/freebsd-ipfw/2004-May/001...

"Решение проблемы с kernel panic на FreeBSD (dummynet, swi1:n..."
Отправлено Sem , 09-Фев-09 23:37 
Паника - всегда баг.

"Решение проблемы с kernel panic на FreeBSD (dummynet, swi1:n..."
Отправлено User294 , 10-Фев-09 20:32 
>это не баг.

Наверняка это такая, гм, фича? :)


"Решение проблемы с kernel panic на FreeBSD (dummynet, swi1:net, trap number = 12) (freebsd panic ipfw crash dummynet)"
Отправлено byteplayer , 09-Фев-09 15:39 
На такой тачке должен стоять FreeBSD 7.1 + mpd 5.2, который использует для нарезок на каждом туннеле ng_car, параметры которого передаются от FreeRadius, который, в свою очередь берёт их из базы данных в момент коннекта юзера. Так можно хоть 300М роутить с тыщей туннелей, а кто-то может смог и более, а на рортор в юзер-левеле много не промаршрутизируешь.

"Решение проблемы с kernel panic на FreeBSD (dummynet, swi1:n..."
Отправлено Radist , 10-Фев-09 20:13 
>На такой тачке должен стоять FreeBSD 7.1 + mpd 5.2, который использует
>для нарезок на каждом туннеле ng_car, параметры которого передаются от FreeRadius,
>который, в свою очередь берёт их из базы данных в момент
>коннекта юзера. Так можно хоть 300М роутить с тыщей туннелей, а
>кто-то может смог и более, а на рортор в юзер-левеле много
>не промаршрутизируешь.

ИМХО mpd не подойдет, т.к. судя по описанию работает в один поток, а хочется использовать все четіре ядра.

Но. Если не ошибаю, то в описании написано, что все подключения обробатіваются одним процессом mpd. Конечно єто не мешат mpd посоздавать треди для каждого подключения и использовать все ядра одновременно. Я не пробівал. Кто знает, может он так и делает.

А poptop для каждого подключения создает отднльній процес, тоесть все ядра будут использоватся на 100%. Кстати, не знаю как там на щет юзер-левела, но у меня в топе, загрузка системі 50% а юзер - 3%.


"Решение проблемы с kernel panic на FreeBSD (dummynet, swi1:net, trap number = 12) (freebsd panic ipfw crash dummynet)"
Отправлено stasav , 09-Фев-09 15:48 
ng_car не выход, в случае частичной зарезки скорости по диапазонам адресов он не подходит, так как вешается на интерфейс.


"Решение проблемы с kernel panic на FreeBSD (dummynet, swi1:net, trap number = 12) (freebsd panic ipfw crash dummynet)"
Отправлено mummy , 09-Фев-09 15:52 
Никогда не было проблем. Перегружал так
1) Выключить ограничение
/sbin/ipfw add 999 allow all from any to any
sleep 3

2) Генерируем файл /tmp/fw.tmp:

disable firewall
flush
pipe flush
queue flush
add 1    allow tcp from 192.168.99.2 to me 22
add 2    deny tcp from any to me 22
add 1000 pipe 1 ip from 192.168.1.11 to any
add 1001 pipe 2 ip from any to 192.168.1.11
...
...
enable firewall

3) Проверка правил на ошибки и перегрузка настроек
/sbin/ipfw -qn /tmp/fw.tmp
if [ "$?" != "0" ]; then
      echo "There was errors in rules."
      exit 1
fi
/sbin/ipfw -q /tmp/fw.tmp


"Решение проблемы с kernel panic на FreeBSD (dummynet, swi1:n..."
Отправлено mummy , 09-Фев-09 20:24 
P.S. У меня sysctl net.inet.ip.fw.one_pass=1

net.inet.ip.fw.one_pass: 1
    Forces a single pass through the firewall. If set to 0,
    packets coming out of a pipe will be reinjected into the
    firewall starting with the rule after the matching one.
    NOTE: there is always one pass for bridged packets.


"Решение проблемы с kernel panic на FreeBSD (dummynet, swi1:n..."
Отправлено Radist , 10-Фев-09 18:50 
>P.S. У меня sysctl net.inet.ip.fw.one_pass=1
>
>net.inet.ip.fw.one_pass: 1

Не проходит, т.к. шейпов у меня несколько - на юзера, на групу, на тип трафика и т.д. Кроме того иногда не хочется отправлять пакет по маршруту в таблице маршрутизации (что стлучится вданном случае), а переслать его с помощью fwd


"Решение проблемы с kernel panic на FreeBSD (dummynet, swi1:n..."
Отправлено Radist , 10-Фев-09 18:47 
У меня время пересоздавания до тісячи правил на загруженой машине (сейчас в фаерволе более 3 тісяч) достигает пару минут. Бістерее будет перезагрузить сервер :) Но єто не решение.

"Решение проблемы с kernel panic на FreeBSD (dummynet, swi1:net, trap number = 12) (freebsd panic ipfw crash dummynet)"
Отправлено Buba , 09-Фев-09 16:13 
Тут говорилось про altq но шейпер лучше вынести на отдельную машину и использовать полноформатный altqd (в нём присутвует возможность обреза входящего трафа и динамические очереди) в NetBSD у него возможностей больше чем у dummynet и работает стабильно у меня на 100мегабитной нагрузке уже больше года.

"Решение проблемы с kernel panic на FreeBSD (dummynet, swi1:net, trap number = 12) (freebsd panic ipfw crash dummynet)"
Отправлено Samm , 09-Фев-09 17:07 
Спасибо за описание проблемы. Оформили ли вы PR по результатам?

"Решение проблемы с kernel panic на FreeBSD (dummynet, swi1:n..."
Отправлено dansoftware , 10-Фев-09 13:49 
Это старая и до сих пор нерешенная проблема: http://www.freebsd.org/cgi/query-pr.cgi?pr=kern/106316

"Решение проблемы с kernel panic на FreeBSD (dummynet, swi1:n..."
Отправлено Samm , 10-Фев-09 13:53 
>Это старая и до сих пор нерешенная проблема: http://www.freebsd.org/cgi/query-pr.cgi?pr=kern/106316

Тут нигде не сказано про панику.


"Решение проблемы с kernel panic на FreeBSD (dummynet, swi1:n..."
Отправлено dansoftware , 10-Фев-09 14:11 
>Тут нигде не сказано про панику.

Справедливое замечание. Тем не менее, на этот PR я наткнулся, когда разбирался с описанной в статье проблемой.


"Решение проблемы с kernel panic на FreeBSD (dummynet, swi1:n..."
Отправлено Radist , 10-Фев-09 18:52 
>Спасибо за описание проблемы. Оформили ли вы PR по результатам?

Ничего не формлял. В силу различніх причин.


"Решение проблемы с kernel panic на FreeBSD (dummynet, swi1:net, trap number = 12) (freebsd panic ipfw crash dummynet)"
Отправлено Аноним , 09-Фев-09 17:32 
Автор, можешь расшифровать это предложение
>Причем пакет возвращается не на правило с
>номером большим чем правило отправившее пакет на >dummynet как это есть в
>natd, а пакет возвращается на СЛЕДУЮЩЕЕ правило.

Чем первое утверждение отличается от второго ?


"Решение проблемы с kernel panic на FreeBSD (dummynet, swi1:n..."
Отправлено terminus , 09-Фев-09 17:52 
> Автор, можешь расшифровать это предложение
>>Причем пакет возвращается не на правило с
>>номером большим чем правило отправившее пакет на >dummynet как это есть в
>>natd, а пакет возвращается на СЛЕДУЮЩЕЕ правило.
>
>Чем первое утверждение отличается от второго ?

цитата из:

http://nuclight.livejournal.com/124348.html
...
Подобное выведение пакета из обработки ipfw в другую подсистему - не уникально
для divert, это общая схема работы в стеке FreeBSD. Например, действия pipe и
queue в dummynet, передача пакета в netgraph (а также появившийся в 7.0
ipfw nat) действуют по тому же принципу. Отличие, однако, в том, что в этих
подсистемах пакет остается внутри ядра, никакому демону не передается.
Поэтому, во-первых, подсистемы вместо номера правила сохраняют на него полный
указатель, и пакет вернется непосредственно в следующее правило, даже если оно
имеет тот же номер.
...


"Решение проблемы с kernel panic на FreeBSD (dummynet, swi1:n..."
Отправлено Аноним , 09-Фев-09 18:38 
Спасибо, так понятнее.
Могу, однако заметить, что сообщения
>ipfw: ouch!, skip past end of rules, denying packet

вполне безобидны и к панике не приводят. У меня на нагруженном роутере таких сообщений множество. Они означают именно то, что означают - пакет просто отбрасывается. Также на этом сервере в больших количествах постоянно создаются и удаляются пайпы и правила, направляющие трафик в них. (На сервере стояла 6.1, затем 6.4). Так что я думаю до сути проблемы вы не докопались и утверждение
>СИСТЕМА ПАДАЕТ КОГДА УДАЛЯЕТСЯ ПРАВИЛО КОТОРОЕ ОТПРАВЛЯЕТ ПАКЕТЫ НА DUMMYNET

неверно.


"Решение проблемы с kernel panic на FreeBSD (dummynet, swi1:net, trap number = 12) (freebsd panic ipfw crash dummynet)"
Отправлено cvsup , 09-Фев-09 18:17 
конечно, ведь проще подковать блоху, чем оповестить  мантейнера

"Решение проблемы с kernel panic на FreeBSD (dummynet, swi1:net, trap number = 12) (freebsd panic ipfw crash dummynet)"
Отправлено wtf , 09-Фев-09 19:38 
Вся проблема в этом net.inet.ip.fw.one_pass если выставить в 0 то ipfw:ouch!, skip past end of rules, denying packet не будет, если эта переменная всеже необходима то я решал проблему отказом от ipfw flush.
Да и интернет не молчит http://www.google.ru/search?q=ipfw:+ouch!,+skip+past+end+of+rules,+denying+packet.++&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ru-RU:unofficial&client=firefox-a

"Решение проблемы с kernel panic на FreeBSD (dummynet, swi1:n..."
Отправлено mummy , 09-Фев-09 20:26 
Может выставить в 1? По-умолчанию ведь 0.

"Решение проблемы с kernel panic на FreeBSD (dummynet, swi1:n..."
Отправлено wtf , 09-Фев-09 20:33 
да в 1, при этом параметры пакет проходит только через первое подходящее правило, при 0 он проходит через все правила, отсюда и ошибка - во время флуша пакет не находит следующего правила в которое он был отправлен.

"Решение проблемы с kernel panic на FreeBSD (dummynet, swi1:net, trap number = 12) (freebsd panic ipfw crash dummynet)"
Отправлено pashaumka , 09-Фев-09 23:36 
не знаю как у вас с mpd, но у меня работа построена на pppoed & ppp  - 100 мбит канал и при подключении/отключении создаются и удаляются правила - серваки жужжат и не парятся...150 сессий - 10% загрузки железок. всё железо на интеловых серверных матерях

"Решение проблемы с kernel panic на FreeBSD (dummynet, swi1:n..."
Отправлено Radist , 10-Фев-09 20:25 
У меня 600 сессий ВПН и одновременно ломятся в инет до 100.

Сейчас прошло уже более месяца. Серваки ни разу (сплюнуть три раза через плечо) не ребутнулись

З.І. Похожая проблема обнаружилась еще на одном серваке (АМД, два ядра, 6.5 фря, занимается НАТ в пять потоков, т.к. в один поток не справляется). Правил фаєрвола до 300, но есть пару пайп. Иногда при нагрузке близкой к 4 (в еденицах топа), когда удалял правило фаєрвола, все єто чудо просто ребуталось (даже без дампа и сообщений в логах). Исправил по образу и подобию, пока все гуд.

З.З.І. Спользовать общие пайпі на несколько юзеров немог, т.к. используется система бонусов и у каждого юзверя своя скорость.

Испольщовать таблиці (имеестя в виду tablearg), можно, но только если не удалять соответствующие правила, а править параметрі пайп. Тоесть все то-же самое.


"Решение проблемы с kernel panic на FreeBSD (dummynet, swi1:n..."
Отправлено Аноним , 12-Фев-09 12:27 
>6.5 фря

Так и знал, что машину времени уже изобрели.


"Решение проблемы с kernel panic на FreeBSD (dummynet, swi1:n..."
Отправлено Radist , 13-Фев-09 20:28 
>>6.5 фря
>
>Так и знал, что машину времени уже изобрели.

Sorry, 6.2


"Решение проблемы с kernel panic на FreeBSD (dummynet, swi1:net, trap number = 12) (freebsd panic ipfw crash dummynet)"
Отправлено Pahanivo , 08-Май-09 12:51 
хотелось бы взглянуть на ipfw -a list у афтора ))

"Наблюдаю аналогичную проблему на FreeBSD + mpd4"
Отправлено ak , 08-Май-09 19:17 
Наблюдаю аналогичную проблему на FreeBSD + mpd4 на больших нагрузках (сотни тунелей, десятки килобит в секунду). Причем как на AMD, так и Intel. Как с net.inet.ip.fw.one_pass: 1 так и 0. Как с net.inet.ip.dummynet.io_fast=1, так и 0. Но действительно, на системах, где правила активно удаляются, намного чаще.

есть очень схожие багрепорты:
http://www.freebsd.org/cgi/query-pr.cgi?pr=kern/121382
http://www.freebsd.org/cgi/query-pr.cgi?pr=kern/118128
оба открыты. Все собираюсь дописать, собираю информацию. Напишите плз туда свое наблюдение.


"Наблюдаю аналогичную проблему на FreeBSD + mpd4"
Отправлено ak , 12-Май-09 11:50 
>десятки килобит в секунду

*десятки мегабит в секунду, сори


"Решение проблемы с kernel panic на FreeBSD (dummynet, swi1:net, trap number = 12) (freebsd panic ipfw crash dummynet)"
Отправлено napTu , 16-Мрт-10 22:11 
интересная статейка, а я то думал отчего у меня паник был постоянный после пересборок ядра, обновлений фри...

Что интересно, решилось пересборкой ядра с режимом отладки. После этого не падает.

Правда нет mpd, работает как основной шлюз с авторизацией stargazer, но правила постоянно добавляются-удаляются в зависимости от активности абонентов(не в моменты подключения-отключения)
Последовательность следующая:
ipfw delete $rulenum
ipfw pipe delete $rulenum
...
ipfw pipe $rulenum config bw $speed2
ipfw add $rulenum3 pipe $rulenum ip from...


"Решение проблемы с kernel panic на FreeBSD (dummynet, swi1:net, trap number = 12) (freebsd panic ipfw crash dummynet)"
Отправлено napTu , 16-Мрт-10 22:16 
а, кстати, говорят что то подправили в dummynet с месяц назад, связанное с падениями при 100% загрузке
у меня недавно упал сервак при выключении dummynet_io_fast в 0 на ядре 7.2p3
Знающие люди порекомендовали обновиться на последние патчи.

"Решение проблемы с kernel panic на FreeBSD (dummynet, swi1:net, trap number = 12) (freebsd panic ipfw crash dummynet)"
Отправлено napTu , 26-Май-10 10:09 
недавно понадобилось грохнуть все правила с pipe. Упали...
FreeBSD 7.2-RELEASE-p7