Hej!
Jag har redan postat detta på FreeBSD-frågor sändlista, men jag trodde att jag skulle prova det här också.
Jag använder FreeBSD 7.0 med IPFW DUMMYNET aktiverat.
Jag har ett problem med att skapa en regeluppsättning som tillåter mig att begränsa den totala bandbredd på en länk och därefter vidarebefordra paket till en annan pipa för bearbetning.
Så långt jag har dessa regler:
Kod:
in_if="em0"
out_if="em1"
management_if="em2"
in_ip="100.100.100.1"
out_ip="200.200.200.1"
management_ip="172.16.0.201"
client1_subnet="192.168.5.0/26"
client2_subnet="192.168.6.0/26"
server_subnet="192.168.7.0/24"
download_bandwidth="6144Kbit/s"
upload_bandwidth="1024Kbit/s"
delay="0"
queue_size="10"
cmd="ipfw"
$cmd add 10 allow all from any to any via lo0
$cmd pipe 100 config mask src-ip 0xffffffff bw $upload_bandwidth queue $queue_size delay $delay
$cmd pipe 200 config mask dst-ip 0xffffffff bw $download_bandwidth queue $queue_size
$cmd add pipe 100 all from $client1_subnet to $server_subnet in via $in_if
$cmd add pipe 200 all from $server_subnet to $client1_subnet out via $in_if
$cmd add pipe 100 all from $client2_subnet to $server_subnet in via $in_if
$cmd add pipe 200 all from $server_subnet to $client2_subnet out via $in_if
$cmd add 10000 allow all from any to any via $management_if
$cmd add 20000 allow all from any to any via $in_if
$cmd add 30000 allow all from any to any via $out_if
Vad jag vill lägga till nu, är möjligheten att begränsa bandbredden för hela länken, t.ex. 100Mbit / s på em0.
Jag har försökt att lägga ett rör:
$ cmd pipe 50 config kroppsvikt 100Mbit / s kö $ queue_size
$ cmd lägga röret 50 alla från något till någon via $ in_if
Men när jag tar en titt på rören med "ipfw visa" Jag kan bara se paket gå igenom röret 50 och ingenting går igenom övriga rör (vilket är logiskt egentligen eftersom IPFW fungerar på det sättet?).
All hjälp är mycket uppskattad.
xenator