LINUX.ORG.RU
ФорумAdmin

понимание критерия limit


0

0

как я понимаю --limit-burst устанавливает размер очереди, по заполнении которой начнется пропускание через нее пакетов со скоростью --limit.
Но очередь начинает заполняться только когда ядро не в состоянии обработать и пропустить пакет так???
Например: если через меня форвардится некий пинг раз в 5 секунд.
а я хочу его отрезать на раз в 30 секунд.
То такую задачу не решить с помощью -m limit так как 
ядро будет успевать обрабатывать эти пакеты и очередь limit-burst
никогда незаполнится. так???

p.s.
задачу решать необязательно. 
придумана для вопроса.
★★

Там кажется наоборот - пакеты режутся на скорости --limit и помещаются в буфер --limit-burst. Когда буфер полон, пакеты просто уничтожаются.

fagot ★★★★★
()
Ответ на: комментарий от fagot

можешь на пальцах пояснить???
из доки iptables tutorial:
Ключ --limit-burst - это максимальное значение счетчика пакетов, при котором срабатывает ограничение.
Ключ --limit - это скорость, с которой счетчик burst limit "откручивается назад".

И вот еще(объясняющее что происходит когда емкость limit-burst заполнилась):
Емкость наполнилась. Теперь пакеты, подпадающие под наше ограничительное
правило, больше не смогут попасть в эту "емкость" (там просто нет места),
поэтому они (пакеты) пойдут дальше по набору правил, пока не будут явно
восприняты одним из них, либо подвергнутся политике по-умолчанию.

Вобщем я пока не осознал до конца как работает этот критерий.
И каково еще может быть его предназначение кроме того что он может не дать "распухнуть" лог файлам.

tugrik ★★
() автор топика
Ответ на: комментарий от tugrik

Я думаю, стоит почитать это - http://iptables-tutorial.frozentux.net/iptables-tutorial.html#LIMITMATCH

Consider the example below for further explanation of how this may look.

1. We set a rule with -m limit --limit 5/second --limit-burst 10/second. The limit-burst token bucket is set to 10 initially. Each packet that matches the rule uses a token.

2. We get packet that matches, 1-2-3-4-5-6-7-8-9-10, all within a 1/1000 of a second.

3. The token bucket is now empty. Once the token bucket is empty, the packets that qualify for the rule otherwise no longer match the rule and proceed to the next rule if any, or hit the chain policy.

4. For each 1/5 s without a matching packet, the token count goes up by 1, upto a maximum of 10. 1 second after receiving the 10 packets, we will once again have 5 tokens left.

5. And of course, the bucket will be emptied by 1 token for each packet it receives.

fagot ★★★★★
()
Ответ на: комментарий от fagot

ну все 10x, разобрался.
я просто limit-burst именно "очередью"(fifo) представлял.
а на самом деле это два счетчика.
ex: --limit 2/minute --limit-burst 10
первый: limit будет срабатывать каждые 30 секунд уменьшая при этом 
limit-burst на еденицу.
а limit-burst увеличивается на 1 по приходе каждого пакета.
если limit-burst достиг предела пакеты отбрасываются.

p.s.
это так если кто вдруг тоже недопонимает значение этого критерия.


tugrik ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.