The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Решение проблемы с падением FreeBSD при удалении связанных с dummynet ipfw правил

09.02.2009 14:30

"Решение проблемы с kernel panic на FreeBSD" - разбор причин падения FreeBSD при высокой загруженности системы в момент удаления ipfw правил, отправляющих пакеты в dummynet.

  1. Главная ссылка к новости (http://www.opennet.dev/base/sys...)
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/20179-ipfw
Ключевые слова: ipfw, crash, freebsd, dummynet, pipe
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (8) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, wtf (ok), 19:38, 09/02/2009 [ответить]  
  • +/
    Вся проблема в этом 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
     
     
  • 2.2, wtf (ok), 20:35, 09/02/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >Вся проблема в этом 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

    описался, ошибка ipfw:ouch!, skip past end of rules, denying packet возникает при
    net.inet.ip.fw.one_pass=0

     

  • 1.3, Аноним (-), 21:53, 09/02/2009 [ответить]  
  • +/
    >описался, ошибка ipfw:ouch!, skip past end of rules, denying packet возникает >при
    >net.inet.ip.fw.one_pass=0

    Ну разумеется. При этом пакеты из dummynet просто идут мимо фаервола. Так что это применимо в очень редких случаях.
    А к чему тут
    >ipfw flush

    я не понял вообще.

     
  • 1.4, dansoftware (ok), 13:48, 10/02/2009 [ответить]  
  • +/
    Это старая и до сих пор нерешенная проблема: http://www.freebsd.org/cgi/query-pr.cgi?pr=kern/106316
     
  • 1.5, Ilya Evseev (?), 20:04, 10/02/2009 [ответить]  
  • +/
    net.inet.ip.fw.one_pass=0 нужен при использовании netgraph'a.
    Избегать kernel panic'a можно IMHO тремя способами:

    1) вместо удаления/создания правила менять параметры queue/pipe,
    которое используется в правиле, а само правило оставлять без изменений.

    2) если в правиле используются таблица, то очистить таблицу и подождать:
    ipfw add 10 pipe 20 from any to table(30) in
    ipfw table 30 flush && sleep 1 && ipfw delete 10

    3) временно добавить "ipfw add N-1 skipto N+1 from any to any" и подождать
    (где N - номер dummynet-правила).

     
  • 1.6, byteplayer (?), 23:49, 11/02/2009 [ответить]  
  • +/
    Я прошу модераторов не удалять мой коммент, как в прошлый раз!
    Я говорю по сути! У автора _!В КОРНЕ!_ неправильный подход к построению сервера доступа в Интернет по протоколу РРТР!
    Я настаиваю на том, что для того случая, о котором пишет автор, нельзя строить сервер с использованием РОРТОР + user-ppp + ipfw + dummynet.
    Такая конфигурация, кроме поедания ресурсов CPU, ничего хорошего не принесёт!
    Такие сервера доступа нужно строить с использованием mpd + ng_car.
    Тогда всё будет работать _!ОЧЕНЬ!_ быстро, проблем не будет, один сервер сможет обслуживать _!ОЧЕНЬ!_ много клиентов и маршрутизировать много трафика как в мегабитах, так и в килопакетах.
    При использовании схемы, описанной автором, такое невозможно!
    Не делайте так никто!
     
  • 1.7, freebsd_max (?), 22:19, 20/02/2009 [ответить]  
  • +/
    хе, проше резать трафик самим mpd, man mpd, радиус передаёт функцию на нарезку интерффейса! а ipfw использывать только как нат! фсё пожно зделать проше, и без паники в ядро!


    P.S. читаем маны не стесняемся! :)

     
     
  • 2.8, byteplayer (?), 14:00, 21/02/2009 [^] [^^] [^^^] [ответить]  
  • +/
    хе, проше резать трафик самим mpd, man mpd, радиус передаёт функцию на нарезку интерффейса! а ipfw использывать только как нат! фсё пожно зделать проше, и без паники в ядро!

    P.S. читаем маны не стесняемся! :)

    Как раз об этом я и говорю!
    mpd получает от радиуса опции для настройки ng_car на каждом интерфейсе!
    всё очень мощно получается!
    Окрываем ссылку и смотрм в самом её низу:
    http://mpd.sourceforge.net/doc5/mpd30.html#30

     
     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру