У меня есть канал 1024Кбит/с, нужно разделить его между пользователями, так чтобы у одних была скорость 80Кбит/с, у других 64Кбит/с а у третих - 32Кбит/с.
Почитал статьи насчет использования pipe - мало что понял :( Мне для каждого пользователя создавать свой пайп, или очередями это делать? Можно примерчик?Вот как я это думаю:
#user1
ipfw pipe 1 config bw 80Kbit/s queue 20
ipfw queue 1 config pipe 1 weight 50 queue 20
ipfw add queue 1 ip from 192.168.1.1 to any
....
#user55
ipfw pipe 55 config bw 64Kbit/s queue 20
ipfw queue 55 config pipe 55 weight 50 queue 20
ipfw add queue 55 ip from 192.168.1.97 to anyМне кажется - так работать не будет, особенно если юзеров больше, чем пропускная способность канала, как еще можно?
Подскажите пожалуйста!!!
>У меня есть канал 1024Кбит/с, нужно разделить его между пользователями, так чтобы
>у одних была скорость 80Кбит/с, у других 64Кбит/с а у третих
>- 32Кбит/с.
>Почитал статьи насчет использования pipe - мало что понял :( Мне для
>каждого пользователя создавать свой пайп, или очередями это делать? Можно примерчик?
>
>
>Вот как я это думаю:
>#user1
>ipfw pipe 1 config bw 80Kbit/s queue 20
>ipfw queue 1 config pipe 1 weight 50 queue 20
>ipfw add queue 1 ip from 192.168.1.1 to any
>....
>#user55
>ipfw pipe 55 config bw 64Kbit/s queue 20
>ipfw queue 55 config pipe 55 weight 50 queue 20
>ipfw add queue 55 ip from 192.168.1.97 to any
>
ipfw add pipe 1 tcp from IP_serv to IP_cli1,IP_cli2,IP_cli3
ipfw add pipe 2 tcp from IP_serv to IP_cli4,IP_cli5,IP_cli6ipfw pipe 1 config bw 80Kb/s
ipfw pipe 2 config bw 64Kb/s>Мне кажется - так работать не будет, особенно если юзеров больше, чем
>пропускная способность канала, как еще можно?
>Подскажите пожалуйста!!!А причем тут пропускная способность? Она что, меньше чем 80Kb/s :)
>ipfw add pipe 1 tcp from IP_serv to IP_cli1,IP_cli2,IP_cli3
>ipfw add pipe 2 tcp from IP_serv to IP_cli4,IP_cli5,IP_cli6
>
>ipfw pipe 1 config bw 80Kb/s
>ipfw pipe 2 config bw 64Kb/sА разве так получится на каждого юзера по 80Кбит/с? Я думал что если так сделать, то 80Кбит будут делится на IP_cli1,IP_cli2 и IP_cli3 ! Или я ошибаюсь?
#Allows to use more than 1 pipe for packet
/sbin/sysctl net.inet.ip.fw.one_pass=0#External interface, please change this value!
ipfw add allow ip from any to any via rl0#users 80Kbit
ipfw pipe 3 config mask dst-ip 0xffffffff bw 80Kbit/s
ipfw pipe 4 config mask src-ip 0xffffffff bw 80Kbit/s
ipfw add pipe 3 ip from any to 192.168.1.1,192.168.1.2,192.168.1.3 out #To client
ipfw add pipe 4 ip from 192.168.1.1,192.168.1.2,192.168.1.3 to any in #From client#users 64Kbit
ipfw pipe 5 config mask dst-ip 0xffffffff bw 64Kbit/s
ipfw pipe 6 config mask src-ip 0xffffffff bw 64Kbit/s
ipfw add pipe 5 ip from any to 192.168.1.4,192.168.1.5,192.168.1.6 out #To client
ipfw add pipe 6 ip from 192.168.1.4,192.168.1.5,192.168.1.6 to any in #From client#users 32Kbit
ipfw pipe 7 config mask dst-ip 0xffffffff bw 64Kbit/s
ipfw pipe 8 config mask src-ip 0xffffffff bw 64Kbit/s
ipfw add pipe 7 ip from any to 192.168.1.7,192.168.1.7,192.168.1.7 out #To client
ipfw add pipe 8 ip from 192.168.1.7,192.168.1.7,192.168.1.7 to any in #From client#Queue for max 1024Kbit/s download and max 1024Kbit/s upload
ipfw queue 1 config pipe 1 mask dst-ip 0xffffffff
ipfw pipe 1 config bw 1024Kbit/s
ipfw queue 2 config pipe 2 mask src-ip 0xffffffff
ipfw pipe 2 config bw 1024Kbit/s
ipfw add queue 1 ip from any to 192.168.1.0/24 out #To client
ipfw add queue 2 ip from 192.168.1.0/24 to any in #From clientЕсли списки адресов (192.168.1.1,192.168.1.2,192.168.1.3) будут слишком длинными, рекомендую использовать table:
ipfw add pipe 3 ip from any to "table(1)" out #To client
ipfw add pipe 4 ip from "table(1)" to any in #From client
ipfw table 1 add 192.168.1.1
ipfw table 1 add 192.168.1.2
ipfw table 1 add 192.168.1.3
...
>#users 80Kbit
>ipfw pipe 3 config mask dst-ip 0xffffffff bw 80Kbit/s
>ipfw pipe 4 config mask src-ip 0xffffffff bw 80Kbit/s
>ipfw add pipe 3 ip from any to 192.168.1.1,192.168.1.2,192.168.1.3 out #To client
>
>ipfw add pipe 4 ip from 192.168.1.1,192.168.1.2,192.168.1.3 to any in #From
>clientВот это уже похоже на правду!!!! Огромаднейшее спасибо mummy !!!!!
Сейчас буду делать :)
А если я хочу разделить канал! Т.е одной сети дать 512К и другой столько-же, мне тогда делать:
#Queue for max 512Kbit/s download and max 512Kbit/s upload
ipfw queue 1 config pipe 1 mask dst-ip 0xffffffff
ipfw pipe 1 config bw 512Kbit/s
ipfw queue 2 config pipe 2 mask src-ip 0xffffffff
ipfw pipe 2 config bw 512Kbit/s
ipfw add queue 1 ip from any to 192.168.1.0/24 out #To client
ipfw add queue 2 ip from 192.168.1.0/24 to any in #From clientИ тоже самое для другой сети?
#Queue for max 512Kbit/s download and max 512Kbit/s upload
ipfw queue 3 config pipe 1 mask dst-ip 0xffffffff
ipfw pipe 3 config bw 512Kbit/s
ipfw queue 4 config pipe 2 mask src-ip 0xffffffff
ipfw pipe 4 config bw 512Kbit/s
ipfw add queue 3 ip from any to 192.168.2.0/24 out #To client
ipfw add queue 4 ip from 192.168.2.0/24 to any in #From clientА верхнюю часть оставить также?
>>#Allows to use more than 1 pipe for packet
>>/sbin/sysctl net.inet.ip.fw.one_pass=0подскажите, как для этой схемы задать, через какие пайпы пакету проходить, а через какие нет ?
например 1й пайп - общая скорость,
2й пайп - скорость для конкретных IP (на каждого)
3й пайп - скорость для всей сети (на каждого)Если я в 3м пайпе задам всю сеть, то по идее все пакеты 2го пайпа попадут и в 3й? И им выставится меньшая скорость ???