ipfw: ipfw_install_state: Too many dynamic rules

Проблемы с установкой, настройкой и работой системных и сетевых программ.

Модераторы: GRooVE, alexco

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
BlitzKrieg
ст. прапорщик
Сообщения: 538
Зарегистрирован: 2008-03-13 12:02:59

ipfw: ipfw_install_state: Too many dynamic rules

Непрочитанное сообщение BlitzKrieg » 2010-11-10 9:50:29

Ну проблема то ясная какбэ, не хватает динамических правил.

Код: Выделить всё

00080 allow tcp from any to me dst-port 80 in via bce0 setup keep-state

Код: Выделить всё

ipfw -d list|grep 00080|wc -l
    8188
Сервер с посещаемостью овер 9к в сутки. tcp соединений с уникальными ip в состоянии ESTABLISHED в течении дня ~250 минимальное ночью с 3-4 утра ~30.
Подкрутил

Код: Выделить всё

net.inet.ip.fw.dyn_ack_lifetime: 100
net.inet.ip.fw.dyn_max: 8192
но одинх хрен мало.
Имеет ли вообще смысл пользовать динамическое правило в данном случае? Я уже начинаю думать что НЕТ. Или просто посчитать примерно эту цифру и выставить?
Как думаете Вы?

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Dog
лейтенант
Сообщения: 723
Зарегистрирован: 2006-09-21 10:34:36
Откуда: Kharkiv, Ukraine
Контактная информация:

Re: ipfw: ipfw_install_state: Too many dynamic rules

Непрочитанное сообщение Dog » 2010-11-11 9:29:08

Код: Выделить всё

sysctl net.inet.ip.fw.dyn_buckets
увеличьте, после чего передерните файрвол.
Oh my God, they killed init! Bastards!

BlitzKrieg
ст. прапорщик
Сообщения: 538
Зарегистрирован: 2008-03-13 12:02:59

Re: ipfw: ipfw_install_state: Too many dynamic rules

Непрочитанное сообщение BlitzKrieg » 2010-11-13 10:31:35

Мда... кто пишет увеличить этот, кто тот про кот. я говорил. Хоть бы кто объяснил почему тот или иной и почему их не вместе. Что какбэ вполне логично.
Кстати помог не он а net.inet.ip.fw.dyn_keepalive: 0

Аватара пользователя
Mox
лейтенант
Сообщения: 757
Зарегистрирован: 2008-12-16 16:04:14
Откуда: питер
Контактная информация:

Re: ipfw: ipfw_install_state: Too many dynamic rules

Непрочитанное сообщение Mox » 2010-11-13 15:22:41

Too many dynamic rules
это не
не хватает динамических правил
Наоборот, т.е. "слишком много динамических правил"
"В мире программирования алгоритмы становятся более важными, чем код, и именно из-за академических корней в BSD изначально большое внимание уделялось проработке алгоритмов". Мэтт Диллон

BlitzKrieg
ст. прапорщик
Сообщения: 538
Зарегистрирован: 2008-03-13 12:02:59

Re: ipfw: ipfw_install_state: Too many dynamic rules

Непрочитанное сообщение BlitzKrieg » 2010-11-13 15:54:47

Правильно, спасибо что помогли с переводом. Я сам не осилил.
Я по-моему нигде не указывал, что это эквивалентные фразы.
Вы бы лучше объяснили, что за параметр выше предложил человек поменять.

Аватара пользователя
Dog
лейтенант
Сообщения: 723
Зарегистрирован: 2006-09-21 10:34:36
Откуда: Kharkiv, Ukraine
Контактная информация:

Re: ipfw: ipfw_install_state: Too many dynamic rules

Непрочитанное сообщение Dog » 2010-11-13 21:49:57

BlitzKrieg писал(а):Мда... кто пишет увеличить этот, кто тот про кот. я говорил. Хоть бы кто объяснил почему тот или иной и почему их не вместе. Что какбэ вполне логично.
Кстати помог не он а net.inet.ip.fw.dyn_keepalive: 0

Код: Выделить всё

dog@dog:~> man ipfw
...
skipped
...
net.inet.ip.fw.dyn_buckets: 256
             The number of buckets in the hash table for dynamic rules.  Must
             be a power of 2, up to 65536.  It only takes effect when all
             dynamic rules have expired, so you are advised to use a flush
             command to make sure that the hash table is resized.
Читайте документацию.
Oh my God, they killed init! Bastards!

BlitzKrieg
ст. прапорщик
Сообщения: 538
Зарегистрирован: 2008-03-13 12:02:59

Re: ipfw: ipfw_install_state: Too many dynamic rules

Непрочитанное сообщение BlitzKrieg » 2010-11-13 23:25:29

Ну вы наверное уже исходники разобрали, или англ. ваш второй родной язык.
Мне лично ничего не гооврит количество ячеек в хеш-таблице для динамических правил.
Я надесюь вы мои темы просматривали в отличие от предыдущего помощника-переводчика, чтобы хоть какое-то иметь представление об уровне ответа который вы хотите дать. Или вам уже глубоко насрать и ответ в днк? ЧИТАЙ МАН бгг.
Если вы любите читать маны, то наверняка заметили о различной степени их доступности. После прочтения некоторых манов остается вопросов 0, а некоторые порождают больше вопросов, чем те на которые они отвечают. Не нада всех под одну гребенку я вопросов задавал немного, ни один ответ мне не помог. Я на форуме ищу не ответ на вопрос " а чего мне изменить" этого полно в гуглах, яхах и прочих, а ответ на вопрос "почему это изменить, а не вот это". Я ищу людей которые понимают больше меня, а не тех, которые так считают.

Аватара пользователя
Dog
лейтенант
Сообщения: 723
Зарегистрирован: 2006-09-21 10:34:36
Откуда: Kharkiv, Ukraine
Контактная информация:

Re: ipfw: ipfw_install_state: Too many dynamic rules

Непрочитанное сообщение Dog » 2010-11-14 13:00:29

Переходим на личности?
Нет хватает ума читать официальную документацию? Забанили в гугле? Переквалифицируйтесь в управдомы.
Oh my God, they killed init! Bastards!

BlitzKrieg
ст. прапорщик
Сообщения: 538
Зарегистрирован: 2008-03-13 12:02:59

Re: ipfw: ipfw_install_state: Too many dynamic rules

Непрочитанное сообщение BlitzKrieg » 2010-11-14 14:28:07

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

Аватара пользователя
Dog
лейтенант
Сообщения: 723
Зарегистрирован: 2006-09-21 10:34:36
Откуда: Kharkiv, Ukraine
Контактная информация:

Re: ipfw: ipfw_install_state: Too many dynamic rules

Непрочитанное сообщение Dog » 2010-11-14 14:37:17

Я тебе указал на решение проблемы, дав конкретный параметр, ты устроил клоунаду.
Когда я первый перешел на личности? Прошу указать конкретный пост.
Писать я волен куда захочу, ты здесь не админ и не модератор, чтобы мне указывать.
Oh my God, they killed init! Bastards!

BlitzKrieg
ст. прапорщик
Сообщения: 538
Зарегистрирован: 2008-03-13 12:02:59

Re: ipfw: ipfw_install_state: Too many dynamic rules

Непрочитанное сообщение BlitzKrieg » 2010-11-16 14:05:20

Ты мне указал на параметр, который кстати ни коим образом не влияет на мою проблему. Даже в самой ошибке четко указано что менять. По существу: увеличивал значение с 256 до 2048 дальше смысла не вижу, так как тенденция вполне линейная через сутки я получаю эту ошибку. Более того, считаю что советы изменить этот параметр дают люди которые если и читали мануал, то его не поняли.
На данный момент просто изменил параметр из мануала через 12 часов работы имею:

net.inet.ip.fw.dyn_max=4096
net.inet.ip.fw.dyn_count=1154
net.inet.ip.fw.dyn_buckets=256

Аватара пользователя
gonzo111
лейтенант
Сообщения: 648
Зарегистрирован: 2007-11-15 16:32:33
Откуда: China
Контактная информация:

Re: ipfw: ipfw_install_state: Too many dynamic rules

Непрочитанное сообщение gonzo111 » 2010-11-16 15:32:52

а почему нельзя было переписать правила на статические
не пойму какие плюшки от этой динамики , кроме удобства чтения
Тяжело в учении легко в РАЮ!
беру зарплату гречкой и сахаром...
Наша комната - lissyara.su@conference.jabber.ru

BlitzKrieg
ст. прапорщик
Сообщения: 538
Зарегистрирован: 2008-03-13 12:02:59

Re: ipfw: ipfw_install_state: Too many dynamic rules

Непрочитанное сообщение BlitzKrieg » 2010-11-16 15:41:56

Это был основной вопрос моей темы :-) Но на него никто не ответил :-) Потому, что как мы уже выяснили, те кто отвечал не умеют читать мануалы :-D

BlitzKrieg
ст. прапорщик
Сообщения: 538
Зарегистрирован: 2008-03-13 12:02:59

Re: ipfw: ipfw_install_state: Too many dynamic rules

Непрочитанное сообщение BlitzKrieg » 2010-11-17 10:27:07

Вобщем менять кол-во ячеек в хеш-таблице бессмысленно, что и следовало ожидать.
Сутки - полет нормальный.

Код: Выделить всё

net.inet.ip.fw.dyn_keepalive=0
net.inet.ip.fw.dyn_max=4096
net.inet.ip.fw.dyn_count=850
net.inet.ip.fw.dyn_buckets=256

Аватара пользователя
Dog
лейтенант
Сообщения: 723
Зарегистрирован: 2006-09-21 10:34:36
Откуда: Kharkiv, Ukraine
Контактная информация:

Re: ipfw: ipfw_install_state: Too many dynamic rules

Непрочитанное сообщение Dog » 2010-11-17 10:39:35

При более интенсивном потоке данных, например когда количество динамических правил переваливает за 10000, при стандартном значении net.inet.ip.fw.dyn_buckets система будет вываливать топиковую ошибку. Тут уже на личном опыте, пришлось увеличивать до 1024 (может хватило бы и меньшего значения, но на эксперименты не было времени).
Oh my God, they killed init! Bastards!

BlitzKrieg
ст. прапорщик
Сообщения: 538
Зарегистрирован: 2008-03-13 12:02:59

Re: ipfw: ipfw_install_state: Too many dynamic rules

Непрочитанное сообщение BlitzKrieg » 2010-11-17 11:24:43

Охотно не верю. Только что самолично провел простой эксперимент установил net.inet.ip.fw.dyn_buckets=2 ошибку не получил. Установил число динамических правил 128. При этом вами предложенный = 256 И вуаля.

Код: Выделить всё

router# date
Wed Nov 17 11:14:35 MSK 2010
router# sysctl -a | grep ip.fw
net.inet.ip.fw.dyn_keepalive: 1
net.inet.ip.fw.dyn_short_lifetime: 5
net.inet.ip.fw.dyn_udp_lifetime: 10
net.inet.ip.fw.dyn_rst_lifetime: 1
net.inet.ip.fw.dyn_fin_lifetime: 1
net.inet.ip.fw.dyn_syn_lifetime: 20
net.inet.ip.fw.dyn_ack_lifetime: 300
net.inet.ip.fw.static_count: 41
net.inet.ip.fw.dyn_max: 128
net.inet.ip.fw.dyn_count: 111
net.inet.ip.fw.curr_dyn_buckets: 256
net.inet.ip.fw.dyn_buckets: 256
net.inet.ip.fw.default_rule: 65535
net.inet.ip.fw.verbose_limit: 100
net.inet.ip.fw.verbose: 1
net.inet.ip.fw.debug: 1
net.inet.ip.fw.one_pass: 1
net.inet.ip.fw.autoinc_step: 100
net.inet.ip.fw.enable: 1
router# tail -n 5 /var/log/messages
Nov 17 11:09:00 router kernel: ipfw: limit 10 reached on entry 800
Nov 17 11:09:00 router kernel: ipfw: limit 10 reached on entry 450
Nov 17 11:10:20 router kernel: ipfw: install_state: Too many dynamic rules
Nov 17 11:10:22 router last message repeated 2 times
Nov 17 11:13:50 router kernel: ipfw: install_state: Too many dynamic rules
Отсюда аналогичное встречное предложение на пост нумбер 7. Как это не печально и опыт ваш под большим сомнением. Не обижайтесь.
Все предельно просто: параметр отвечающий за их колличество в моем первом посте и не нужно ничего придумывать.
Складывается ощущение, что люди пишут на форумах не сцелью делиться опытом, а с целью прокачивания левела количеством постов. Займитесь вышиванием лучше.
И ведь не ленятся же нажать кнопку "ответить" и накарябать это презрительное "читай документацию". Призываю всех разумных просто не писать в темы если вам лень ответить по существу пусть даже на самый тупой вопрос. Поверьте, кроме вас найдется тот, кто ответит даже на вопрос, который обсуждается в первой строчке указанного вами мануала.

Аватара пользователя
gonzo111
лейтенант
Сообщения: 648
Зарегистрирован: 2007-11-15 16:32:33
Откуда: China
Контактная информация:

Re: ipfw: ipfw_install_state: Too many dynamic rules

Непрочитанное сообщение gonzo111 » 2010-11-17 13:44:10

на мой вопрос по существу будет ответ?
Тяжело в учении легко в РАЮ!
беру зарплату гречкой и сахаром...
Наша комната - lissyara.su@conference.jabber.ru

BlitzKrieg
ст. прапорщик
Сообщения: 538
Зарегистрирован: 2008-03-13 12:02:59

Re: ipfw: ipfw_install_state: Too many dynamic rules

Непрочитанное сообщение BlitzKrieg » 2010-11-17 14:32:12

По существу я на ваш вопрос ответил выше.

FiL
ст. лейтенант
Сообщения: 1374
Зарегистрирован: 2010-02-05 0:21:40

Re: ipfw: ipfw_install_state: Too many dynamic rules

Непрочитанное сообщение FiL » 2010-11-19 2:00:07

отрубить keepalive - это конечно вариант уменьшения динамических правил. Но это не всегда то решение, которое хотелось-бы видеть. Как-то оно очень категорично. Однако, почитав гугль оказалось, что там есть некоторое хреновое поведение у системы, когда при потеряных коннектах и включенном keepalive правила вообще не умирают. И потому переполнют таблицу.

BlitzKrieg
ст. прапорщик
Сообщения: 538
Зарегистрирован: 2008-03-13 12:02:59

Re: ipfw: ipfw_install_state: Too many dynamic rules

Непрочитанное сообщение BlitzKrieg » 2010-11-19 2:32:48

Вот вот, именно так оно и выходит. Причем так получается не со всеми динамическими правилами. Это именно то решение :-). Это решает проблемы координально раз и навсегда. Я не проверял на больших значениях ограничителя числа дин. правил, но есть подозрение, что при любом значении максимум будет достигнут при включенном кипэлив. Заметил, что со временем при включенном кипэлив ставновилось все больше и больше netstat -an|grep TIME_WAIT_2|wc -l . ПРи каких-то условиях эти правила просто поддерживаются не экспайред постоянно.
Но согласитесь размер-хеш таблицы тут вообще непричем. Можно ковырять только два параметра первый указан в моем первом посте второй вы назвали.
Размер хеш-таблицы может влиять на время поиска/вставки/замены так как оно зависит от коэффициента заполенения, но размер ее нужно менять уже после изменения максимум дин. правил.
В любом случае, чтобы четко ответить на все эти вопросы нужно лезть в исходники, я пока не дозрел.

Аватара пользователя
bammbr
рядовой
Сообщения: 13
Зарегистрирован: 2010-05-14 14:47:16
Откуда: с Урала

Re: ipfw: ipfw_install_state: Too many dynamic rules

Непрочитанное сообщение bammbr » 2013-10-22 19:50:28

Моя ситуация отличается от описанной в первом топике -- ДНС-сервер, создающий множественные исходящие соединения по произвольным портам. И версия FreeBSD уже 9.2, да и времени с начала беседы прошло... Но топик оказался полезным. Сыпавшиеся сообщения очень напоминали те, о которых говорится в заголовке.
net.inet.ip.fw.dyn_keepalive=0
в моём случае не подходил. Помогло одновременное увеличение
net.inet.ip.fw.dyn_max
и уменьшение
net.inet.ip.fw.dyn_udp_lifetime

Спасибо камраду BlitzKrieg-у за правильное направление мысли!