Есть такая задача: есть шлюз на FreeBSD 6, на нем поднят нат, юзвери ходит в нет, нужно ограничить скорость работы с серваком до 100Мбит/с, а в нет пускать на скорости 80Кбит/с.
Я это организовал так:
Код: Выделить всё
#!/bin/sh
ipfw -f flush
ipfw -f pipe flush
ipfw -f queue flush
int_net="192.168.0.0" #internal network
net_mask="24" # network mask
ip_out="222.222.222.222" #external
ip_in="192.168.0.1" #server int ip
#DummyNET
#from local net to inet
ipfw pipe 1 config bw 80Kbit/s queue 20
ipfw queue 1 config pipe 1 weight 50 queue 100 mask dst-ip 0xffffffff
ipfw queue 11 config pipe 1 weight 50 queue 100 mask src-ip 0xffffffff
ipfw add queue 1 ip from any to ${int_net}/${net_mask}
ipfw add queue 11 ip from ${int_net}/${net_mask} to any
#from local net to server
ipfw add pipe 2 ip from ${ip_out} to ${int_net}/${net_mask}
ipfw pipe 2 config bw 100000Kbit/s
ipfw add pipe 3 ip from ${ip_in} to ${int_net}/${net_mask}
ipfw pipe 3 config bw 100000Kbit/s
ipfw add check-state
ipfw add allow ip from any to any via lo0
У меня есть подозрение что он немного неправильно работает, в плане ограничения проп. способности в инет.
У кого какие мысли? Где могут быть ошибки?
Заранее благодарен