Привет всем
/>uname -r
6.2-RELEASE-p12
Организовываю ограничение по скорости на пользователей созданием 4-5 pipe'ов:cmd="/sbin/ipfw -q add "
bw="/sbin/ipfw pipe "
u512=table\(10\)
$cmd 200 pipe 200 all from not 10.0.0.0/8 to $u512 in
$cmd 200 pipe 200 all from $u512 to not 10.0.0.0/8 out
$bw 200 config mask dst-ip 0x000000ff bw 512Kbit/s
и т.д.Как теперь можно ограничить количество соединений для диапазона портов?
то есть Я хочу ограничить для каждого ИП находящегося в таблице table\(10\) допустим так:
максимальное количество входящих ИП для портов >1024 = 100, для остальных 200Если Я увеличу количество pipe'ов в два раза и сделаю так будет ли работать?:
pipe 200 ip from table(5) to not me dst-port 1024-65535 out limit dst-addr 100
pipe 200 ip from table(5) to not me dst-port 1-1024 out limit dst-addr 200pipe 200 ip from not me 1024-65535 to table(5) in src-addr 100
pipe 200 ip from not me 1-1024 to table(5) in src-addr 200
>[оверквотинг удален]
>ли работать?:
>pipe 200 ip from table(5) to not me dst-port 1024-65535 out limit
>dst-addr 100
>pipe 200 ip from table(5) to not me dst-port 1-1024 out limit
>dst-addr 200
>
>pipe 200 ip from not me 1024-65535 to table(5) in src-addr 100
>
>pipe 200 ip from not me 1-1024 to table(5) in src-addr
>200Во первых, limit это STATEFUL firewall и как результат создает динамические правила. Как следствие, обычно, обратные правила не нужны. А они у Вас есть.
Во вторых, как я понимаю скорость так же ограничивается на каждый IP, тогда логичнее было бы писать маску /32 в конфиге от pipe.
В третьих, т.к. limit динамически создает правила для каждой сессии на определенный порт и pipe у Вас так же определен как динамический, для каждого ипа, то в результате получится что скорость определенная в pipe будет выделена каждой сессии из limit.
>[оверквотинг удален]
>есть.
>
>Во вторых, как я понимаю скорость так же ограничивается на каждый
>IP, тогда логичнее было бы писать маску /32 в конфиге от
>pipe.
>
>В третьих, т.к. limit динамически создает правила для каждой сессии на определенный
>порт и pipe у Вас так же определен как динамический, для
>каждого ипа, то в результате получится что скорость определенная в pipe
>будет выделена каждой сессии из limit.Я 3-и раза прочитал и не понял - можно сделать то, что нужна на этом компе или нет?...
Если да, то Мне нужно с pipe'а ми по одному правилу?...ЗЫ:
Если смотреть table(5) то там будут ип с маской /32
>Я 3-и раза прочитал и не понял - можно сделать то, что
>нужна на этом компе или нет?...
>Если да, то Мне нужно с pipe'а ми по одному правилу?...
>ЗЫ:
>Если смотреть table(5) то там будут ип с маской /32Я хотел просто обратить внимание на то, что динамические pipe и limit должны находиться в разных правилах.
Если идет ограничение на каждый ip то конфиг для пайпа должен выглядить так:
ipfw pipe 200 config mask dst-ip /32 bw 512KbВаши правила мне не совсем понятны, например
pipe 200 ip from table(5) to not me dst-port 1024-65535 out limit dst-addr 100
Здесь Вы указываете адреса назначения к которым будет применено правило как "not me", и тут же говорите "out". А что, возможные пакеты по направлению к me в то время как они out?Нужна схема для более точного написаня правил, но выглядеть по-моему это должно как-то так:
# Для каждого соединения на порты 1024-65535 с IP из таблицы 5 будут созданы динамические
# правила для прямого и обратного трафика. Таких соединений возможно не более 100 на каждый IP из таблицы 5.
# Далее передать трафик на проверку правилу 400
ipfw add 200 skipto 400 ip from table\(5\) to any dst-port 1024-65535 limit src-addr 100# Для каждого соединения на порты 1-1023 с IP из таблицы 5 будут созданы динамические
# правила для прямого и обратного трафика. Таких соединений возможно не более 200 на каждый IP из таблицы 5.
# Далее передать трафик на проверку правилу 400
ipfw add 300 skipto 400 ip from table\(5\) to any dst-port 1-1023 limit src-addr 200# На каждый IP из таблицы 5 создать свою (aka динамическую) трубу размером 512. Направление трафика от IP из таблицы 5
ipfw add 400 pipe 200 ip from table\(5\) to any
ipfw pipe 200 config mask src-ip /32 bw 512Kb# На каждый IP из таблицы 5 создать свою (aka динамическую) трубу размером 512. Направление трафика к IP из таблицы 5
ipfw add 400 pipe 300 ip from any to table\(5\)
ipfw pipe 300 config mask dst-ip /32 bw 512KbЕсли я где-то что-то неправильно понял то поправте.
>[оверквотинг удален]
>размером 512. Направление трафика от IP из таблицы 5
>ipfw add 400 pipe 200 ip from table\(5\) to any
>ipfw pipe 200 config mask src-ip /32 bw 512Kb
>
># На каждый IP из таблицы 5 создать свою (aka динамическую) трубу
>размером 512. Направление трафика к IP из таблицы 5
>ipfw add 400 pipe 300 ip from any to table\(5\)
>ipfw pipe 300 config mask dst-ip /32 bw 512Kb
>
>Если я где-то что-то неправильно понял то поправте.Не понятная ситуация получается, для чего обрабатывается правило прыгом на 400 правило?
Нельзя разве сразу написать
ipfw add 400 pipe 300 ip from any to table\(5\) dst-port 1024-65535
Понял для чего, :) спасибостолкнулся с такой же батвой, все поправил Автору респект и уважуха