Jump to content
Калькуляторы

dummynet, sysctl и dynamic pipe - помогите разобраться

${ipfw} add 10 pipe 1 ip from any to table1 in via vlan1

${ipfw} pipe 1 config mask dst-ip 0xffffffff bw 1Mbit/s

${ipfw} add 20 pipe 2 ip from table1 to any out via vlan1

${ipfw} pipe 2 config mask src-ip 0xffffffff bw 1Mbit/s

 

по данным правилам пакеты попадаеющие под правила 10 и 20 dummynet будет генерить pipes (если они имееют разные dst-ip и src-ip соответственно)

 

1. параметр pipe - net.inet.ip.dummynet.hash_size - как написано в мане обозначет размер хэш таблицы (1а. что это?) (по умолчанию) 64 (1б. чего?) И как видно, макс. кол-во pipes которые генерит каждый pipe config mask ______ 0xffffffff как раз равно 64. Если pipe config mask ______ 0xffffffff задан параметр buckets, то размер хэш таблицы будет браться оттуда (1в. верно?)

1г. - dynamic pipe, которые мы видим в ipfw show pipe, имееют ли какое нибудь время жизни?

(скажем по pipe-у, который был создан каким нить src-ip уже не ходит трафик, сколько времени он будет жить)

1д. - очередной ip влетая в ${ipfw} add 10 pipe 1 ip from any to table1 in via vlan1 хочет создать pipe. А у нас уже все 64 pipe созданы при этом по всем идет трафик, что будет? как настраивается?

1е. - очередной ip влетая в ${ipfw} add 10 pipe 1 ip from any to table1 in via vlan1 хочет создать pipe. А у нас уже все 64 pipe созданы при этом НЕКОТОРЫМ dynamic pipe ТРАФИК НЕ ХОДИТ, что будет?как настраивается?

 

 

2. sysctl net.inet.ip.dummynet.max_chain_len: 16

Target value for the maximum number of pipes/queues in a hash bucket.

(2а. не понял я как раз вижу что maximum number of pipes/queues in a hash bucket задается предыдущим параметром (1)

 

The product max_chain_len*hash_size is used to determine the threshold over which empty pipes/queues will be expired even when net.inet.ip.dummynet.expire=0.

2б. а как этот threshold может быть достигнут если количество dynamic pipe не может быть больше чем значение hash_size (задаваемое net.inet.ip.dummynet.hash_size )

 

3. 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.

разьясните что значит

4. dynamic pipe - в концепции ipfw - это dynamic rules ?

 

Спасибо.

Share this post


Link to post
Share on other sites

up, обращаясь к коллетивному разуму)), неужели никто не сталкивался...

Share this post


Link to post
Share on other sites
${ipfw} add 10 pipe 1 ip from any to table1 in via vlan1

${ipfw} pipe 1 config mask dst-ip 0xffffffff bw 1Mbit/s

${ipfw} add 20 pipe 2 ip from table1 to any out via vlan1

${ipfw} pipe 2 config mask src-ip 0xffffffff bw 1Mbit/s

 

по данным правилам пакеты попадаеющие под правила 10 и 20 dummynet будет генерить pipes (если они имееют разные dst-ip и src-ip соответственно)

 

1. параметр pipe - net.inet.ip.dummynet.hash_size - как написано в мане обозначет размер хэш таблицы (1а. что это?) (по умолчанию) 64 (1б. чего?) И как видно, макс. кол-во pipes которые генерит каждый pipe config mask ______ 0xffffffff как раз равно 64. Если pipe config mask ______ 0xffffffff задан параметр buckets, то размер хэш таблицы будет браться оттуда (1в. верно?)

1a элемент хеш таблицы - один поток данных попадающих под маску.

1в верно

 

1г. - dynamic pipe, которые мы видим в ipfw show pipe, имееют ли какое нибудь время жизни?

(скажем по pipe-у, который был создан каким нить src-ip уже не ходит трафик, сколько времени он будет жить)

зависит от того, выставлен ли параметр: net.inet.ip.dummynet.expire=1

если 0 - то правила удаляются если превышен порог:

net.inet.ip.dummynet.max_chain_len: 16

Target value for the maximum number of pipes/queues in a hash

bucket. The product max_chain_len*hash_size is used to determine

the threshold over which empty pipes/queues will be expired even

when net.inet.ip.dummynet.expire=0.

если 1 = ""Lazily delete dynamic pipes/queue <b>once</b> they have no pending traf-

fic."

1д. - очередной ip влетая в ${ipfw} add 10 pipe 1 ip from any to table1 in via vlan1 хочет создать pipe. А у нас уже все 64 pipe созданы при этом по всем идет трафик, что будет? как настраивается?
создается pipы скажем c номерами(bucket'a) 3,3,3,3. в норм ситуаци они были бы 1,2,3,4

ну и трафик по ним ходит в соответствии с bw отдельного pipa. те полностью раздельные bw остаются

 

1е. - очередной ip влетая в ${ipfw} add 10 pipe 1 ip from any to table1 in via vlan1 хочет создать pipe. А у нас уже все 64 pipe созданы при этом НЕКОТОРЫМ dynamic pipe ТРАФИК НЕ ХОДИТ, что будет?как настраивается?
опять таки зависит от: net.inet.ip.dummynet.expire

в норме если не ходит траффика, то и pip'ы нету. особено в случае с icmp пакетами, для которых

ни SYN ни ACK нету. на практике - pipe для icmp живет меньше секунды.

 

2. sysctl net.inet.ip.dummynet.max_chain_len: 16

Target value for the maximum number of pipes/queues in a hash bucket.

(2а. не понял я как раз вижу что maximum number of pipes/queues in a hash bucket задается предыдущим параметром (1)

 

The product max_chain_len*hash_size is used to determine the threshold over which empty pipes/queues will be expired even when net.inet.ip.dummynet.expire=0.

2б. а как этот threshold может быть достигнут если количество dynamic pipe не может быть больше чем значение hash_size (задаваемое net.inet.ip.dummynet.hash_size )

как показали тесты на freebsd6.1, вполене может быть больше bucket's чем задано. в тестовом варианте

доходило до 80-90 при ограниченни в 64. и при превышеннии buckets 64 вроде бы более аггресивно удалялись динамические pip'ы

3. 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.

разьясните что значит

см ниже
4. dynamic pipe - в концепции ipfw - это dynamic rules ?
dynamic rules относятся к конструкция keep-state ...

насколько я понимаю

Edited by stalex

Share this post


Link to post
Share on other sites

Спасибо парни. то что я искал

Edited by -=DOmen=-

Share this post


Link to post
Share on other sites
G.Y.S. какие параметры дали наилучший результат?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this