Попробуй так:
# Две трубы
ipfw pipe 3 config bw 10Kbits/sec queue 40 gred 0.002/5/15/0.1
ipfw pipe 4 config bw 100Mbits/sec queue 100 gred 0.002/10/30/0.1
# Делим честно между клиентами
ipfw queue 1 config weight 50 pipe 3 mask proto 0xff src-ip 0xffffffff queue 40 gred 0.002/5/15/0.1
ipfw queue 2 config weight 50 pipe 4 mask proto 0xff dst-ip 0xffffffff queue 100 gred 0.002/10/30/0.1
# Если интерфейс для клиентов один (fxp0 - для примера)
ipfw add 100 queue 1 all from 192.168.1.0/24{8,16,69} to me in via fxp0
ipfw add 200 queue 2 all from me to 192.168.1.0/24{8,16,69} out via fxp0
# Если интерфейсов для клиентов много (fxp0,fxp1,em0,rl0 - для примера)
ipfw add 100 queue 1 all from 192.168.1.0/24{8,16,69} to me in { via fxp0 or via fxp1 or via em0 or via rl0 }
ipfw add 200 queue 2 all from me to 192.168.1.0/24{8,16,69} out { via fxp0 or via fxp1 or via em0 or via rl0 }
# Если интерфейсов для клиентов очень много
ipfw add 100 queue 1 all from 192.168.1.0/24{8,16,69} to me in
ipfw add 200 queue 2 all from me to 192.168.1.0/24{8,16,69} out
Всё вышеизложенное относится к IPFW2 и FreeBSD 4.11 и новее