FreeBSDでトラフィックシェーピングを行おうとしています。これが私のルールです
su-3.2#ipfw show | grep pipe 08380 1514852 125523804 pipe 1 tcp from any to any dst-port 80 su-3.2#ipfw pipe 1 show 00001:2.000 Mbit/s 0 ms 50sl。 1キュー(1バケット)droptail マスク:0x00 0x00000000/0x0000-> 0x00000000/0x0000 BKT Prot___ソースIP /ポート________宛先。 IP/port ____ Tot_pkt/bytes Pkt/Byte Drp 0 tcp 64.237.55.83/60598 72.21.81.133/80 6520267 1204533020 0 0 1216 su-3.2#
まず第一に、私が走るとき ipfwパイプ1ショー 同じ送信元と宛先のIPを取得しますが、変更されていないようですが、合計パケット/バイトが増加しています
そして最も重要な質問ですが、MRTGの統計を調べたところ、2Mbit/sの制限をはるかに超えていることがわかりました。
私は何が間違っているのですか?
これが設定ファイルです
flush pipeflush pipe 1 config bw 2Mbit/s add 100 allow ip from any to any via lo0 add 200 deny ip from any to127.0.0.0/8 300deny ip from 127.0.0.0/8 to any add 8380 pipe 1 tcp from any to any src-port wwwuiddaemon add 8380パイプ1tcpを任意から任意のdst-portwwwuidデーモン 65000パスすべてを任意から任意に
Httpトラフィックを2Mb/sに制限しますが、他のすべてのトラフィックは通過させます。したがって、たとえば制限されない50Mb/sのFTPトラフィックを引き続き使用できます。
以前は次のようにポリシーを設定していました。
# flush all rules
ipfw -f flush
ipfw pipe 1 config bw 256Kbits/s
ipfw pipe 2 config bw 512Kbits/s
ipfw pipe 10 config bw 1Mbits/s
ipfw pipe 50 config bw 20Mbits/s
ipfw pipe 60 config bw 20Mbits/s
ipfw pipe 100 config bw 100Mbits/s
ipfw add 1 pipe 50 ip from X.X.X.X/21 to any out
ipfw add 2 pipe 60 ip from any to X.X.X.X/21 in
つまり、内側に20Mb/s、外側に20Mb/sがあります。パイプを1つだけ使用する場合、それは20Mb/sで共有されるため、10Mb/sになります。
シェーピングには最後にすべてのトラフィックを含める必要があるため、トラフィックシェーピングなしではフローはありません。