Задался таким вопросом:
-Как организовать в связке, указанной в теме, канал с ограниченной пропускной полосой?
Объясню подробнее:
есть канал в интернет 100мб
есть сеть 10.0.0.0/24 которая ходит в интернет через нат(ipfw nat)
есть разные тарифные планы(1мб, 2мб, 4мб и т.д.)
В данное время все работает на таких условиях(нат, блокировки и все прочее упущено)
Код: Выделить всё
############### USERS 1Mbit/s ###############
${FwCMD} pipe 15 config bw 1Mbit/s queue 20 mask dst-ip 0xffffffff gred 0.05/20/100/0.7
${FwCMD} pipe 16 config bw 1Mbit/s queue 20 mask src-ip 0xffffffff gred 0.05/20/100/0.7
${FwCMD} add 515 pipe 15 ip from not me to table\(100\),1024 out
${FwCMD} add 516 pipe 16 ip from table\(100\),1024 to not me in
${FwCMD} add 1008 allow tcp from table\(100\),1024 to not me in via ${LanIn} setup
############### USERS 2Mbit/s ###############
${FwCMD} pipe 17 config bw 2Mbit/s queue 20 mask dst-ip 0xffffffff gred 0.05/20/100/0.7
${FwCMD} pipe 18 config bw 2Mbit/s queue 20 mask src-ip 0xffffffff gred 0.05/20/100/0.7
${FwCMD} add 517 pipe 17 ip from not me to table\(100\),2048 out
${FwCMD} add 518 pipe 18 ip from table\(100\),2048 to not me in
${FwCMD} add 1009 allow tcp from table\(100\),2048 to not me in via ${LanIn} setup
############### USERS 4Mbit/s ###############
${FwCMD} pipe 19 config bw 4Mbit/s queue 20 mask dst-ip 0xffffffff gred 0.05/20/100/0.7
${FwCMD} pipe 20 config bw 4Mbit/s queue 20 mask src-ip 0xffffffff gred 0.05/20/100/0.7
${FwCMD} add 519 pipe 19 ip from not me to table\(100\),4096 out
${FwCMD} add 520 pipe 20 ip from table\(100\),4096 to not me in
${FwCMD} add 1010 allow tcp from table\(100\),4096 to not me in via ${LanIn} setup
при скачивании данный клиент получает скорость 4мб(все правильно все хорошо), но он может и раздавать на скорости в 4мб в это же время так как трубы то две!!!
Код: Выделить всё
${FwCMD} pipe 19 config bw 4Mbit/s queue 20 mask dst-ip 0xffffffff gred 0.05/20/100/0.7
${FwCMD} pipe 20 config bw 4Mbit/s queue 20 mask src-ip 0xffffffff gred 0.05/20/100/0.7
-Как сделать так чтоб канал все же был 4мб суммарно(чтоб отдача вычиталась с приема)?
Есть идея создать трубу с определенной скоростью(4мб), а в ней создать две очереди на вход. и выходящий трафик равных приоритетов
Код: Выделить всё
ipfw pipe 4 config bw 4Mbit/s
ipfw queue 1 config pipe 4 weight 50 mask src-ip 0xffffffff
ipfw queue 2 config pipe 4 weight 50 mask dst-ip 0xffffffff
${FwCMD} add 650 queue 1 ip from not ${NetIn} to table\(100\) out
${FwCMD} add 651 queue 2 ip from table\(100\) to not ${IpIn} in
Жду интересных сообщений