Страница 1 из 1

ipfw: ipfw_install_state: Too many dynamic rules

Добавлено: 2010-11-10 9:50:29
BlitzKrieg
Ну проблема то ясная какбэ, не хватает динамических правил.

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

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
но одинх хрен мало.
Имеет ли вообще смысл пользовать динамическое правило в данном случае? Я уже начинаю думать что НЕТ. Или просто посчитать примерно эту цифру и выставить?
Как думаете Вы?

Re: ipfw: ipfw_install_state: Too many dynamic rules

Добавлено: 2010-11-11 9:29:08
Dog

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

sysctl net.inet.ip.fw.dyn_buckets
увеличьте, после чего передерните файрвол.

Re: ipfw: ipfw_install_state: Too many dynamic rules

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

Re: ipfw: ipfw_install_state: Too many dynamic rules

Добавлено: 2010-11-13 15:22:41
Mox
Too many dynamic rules
это не
не хватает динамических правил
Наоборот, т.е. "слишком много динамических правил"

Re: ipfw: ipfw_install_state: Too many dynamic rules

Добавлено: 2010-11-13 15:54:47
BlitzKrieg
Правильно, спасибо что помогли с переводом. Я сам не осилил.
Я по-моему нигде не указывал, что это эквивалентные фразы.
Вы бы лучше объяснили, что за параметр выше предложил человек поменять.

Re: ipfw: ipfw_install_state: Too many dynamic rules

Добавлено: 2010-11-13 21:49:57
Dog
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.
Читайте документацию.

Re: ipfw: ipfw_install_state: Too many dynamic rules

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

Re: ipfw: ipfw_install_state: Too many dynamic rules

Добавлено: 2010-11-14 13:00:29
Dog
Переходим на личности?
Нет хватает ума читать официальную документацию? Забанили в гугле? Переквалифицируйтесь в управдомы.

Re: ipfw: ipfw_install_state: Too many dynamic rules

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

Re: ipfw: ipfw_install_state: Too many dynamic rules

Добавлено: 2010-11-14 14:37:17
Dog
Я тебе указал на решение проблемы, дав конкретный параметр, ты устроил клоунаду.
Когда я первый перешел на личности? Прошу указать конкретный пост.
Писать я волен куда захочу, ты здесь не админ и не модератор, чтобы мне указывать.

Re: ipfw: ipfw_install_state: Too many dynamic rules

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

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

Re: ipfw: ipfw_install_state: Too many dynamic rules

Добавлено: 2010-11-16 15:32:52
gonzo111
а почему нельзя было переписать правила на статические
не пойму какие плюшки от этой динамики , кроме удобства чтения

Re: ipfw: ipfw_install_state: Too many dynamic rules

Добавлено: 2010-11-16 15:41:56
BlitzKrieg
Это был основной вопрос моей темы :-) Но на него никто не ответил :-) Потому, что как мы уже выяснили, те кто отвечал не умеют читать мануалы :-D

Re: ipfw: ipfw_install_state: Too many dynamic rules

Добавлено: 2010-11-17 10:27:07
BlitzKrieg
Вобщем менять кол-во ячеек в хеш-таблице бессмысленно, что и следовало ожидать.
Сутки - полет нормальный.

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

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

Re: ipfw: ipfw_install_state: Too many dynamic rules

Добавлено: 2010-11-17 10:39:35
Dog
При более интенсивном потоке данных, например когда количество динамических правил переваливает за 10000, при стандартном значении net.inet.ip.fw.dyn_buckets система будет вываливать топиковую ошибку. Тут уже на личном опыте, пришлось увеличивать до 1024 (может хватило бы и меньшего значения, но на эксперименты не было времени).

Re: ipfw: ipfw_install_state: Too many dynamic rules

Добавлено: 2010-11-17 11:24:43
BlitzKrieg
Охотно не верю. Только что самолично провел простой эксперимент установил 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. Как это не печально и опыт ваш под большим сомнением. Не обижайтесь.
Все предельно просто: параметр отвечающий за их колличество в моем первом посте и не нужно ничего придумывать.
Складывается ощущение, что люди пишут на форумах не сцелью делиться опытом, а с целью прокачивания левела количеством постов. Займитесь вышиванием лучше.
И ведь не ленятся же нажать кнопку "ответить" и накарябать это презрительное "читай документацию". Призываю всех разумных просто не писать в темы если вам лень ответить по существу пусть даже на самый тупой вопрос. Поверьте, кроме вас найдется тот, кто ответит даже на вопрос, который обсуждается в первой строчке указанного вами мануала.

Re: ipfw: ipfw_install_state: Too many dynamic rules

Добавлено: 2010-11-17 13:44:10
gonzo111
на мой вопрос по существу будет ответ?

Re: ipfw: ipfw_install_state: Too many dynamic rules

Добавлено: 2010-11-17 14:32:12
BlitzKrieg
По существу я на ваш вопрос ответил выше.

Re: ipfw: ipfw_install_state: Too many dynamic rules

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

Re: ipfw: ipfw_install_state: Too many dynamic rules

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

Re: ipfw: ipfw_install_state: Too many dynamic rules

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

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