因為家裡需要,這週末我裝好了一台fb主機作gateway,帶上頻寬管制,需求除了最後一個外其他的都已經滿足。最後一個需求——『借』頻寬的地方不知道該如何實現,想請教各位先進:
需求:
1) 需要運行四種應用,按優先次序為: icmp, counter strike, http 以及 ppstream.
2) pps 再多也不能影響 http.
3) pps 與 http 再多也不能影響 cs.
4) pps + http + cs 不能影響 icmp.
5) gateway 對內部網路的頻寬開到最大
6) 如果同時出現pps與http應用, 兩者按照10:7比例分享頻寬
7) pps 與 http 能夠借用所有頻寬
頻寬規則:
1) icmp 獨占 64KB/s
2) cs 獨占 92KB/s
3) pps + http 分享 2.200KBit/s
環境:
1) freebsd 7.1-r-p4,
2) pppoe + nat,adsl 總頻寬為 2M
3) vr0為內部網路介面(192.168.0.10/24),vr1為internet介面。
4) 內部網路: 192.168.0.0/24
#!/usr/local/bin/bash
./ipfw.sh
CMD="/sbin/ipfw"
# -- Internal Network --
${CMD} add 1000 pipe 1 tcp from 192.168.0.10 80 to any
${CMD} add 1100 pipe 2 tcp from any to 192.168.0.10 80
${CMD} pipe 1 config bw 100MBit/s
${CMD} pipe 2 config bw 100MBit/s
# -- Down-link & up-link pipes --
${CMD} pipe 3 config bw 3000KBit/s queue 48
${CMD} pipe 4 config bw 480KBit/s queue 16
# -- ICMP --
${CMD} add 2000 queue 1 icmp from any to 192.168.0.0/24
${CMD} queue 1 config weight 50 pipe 3 mask dst-ip 0x000000ff
${CMD} add 2050 queue 2 icmp from 192.168.0.0/24 to any
${CMD} queue 2 config weight 50 pipe 4 mask src-ip 0x000000ff
# -- Counter Strike --
${CMD} add 2100 queue 3 udp from any 27010-27020 to 192.168.0.0/24
${CMD} queue 3 config weight 100 pipe 3 mask dst-ip 0x000000ff
${CMD} add 2150 queue 4 udp from 192.168.0.0/24 to any 27010-27020
${CMD} queue 4 config weight 100 pipe 4 mask src-ip 0x000000ff
# -- TCP Traffic --
${CMD} add 3000 queue 20 tcp from any to 192.168.0.0/24
${CMD} queue 20 config weight 10 pipe 3 mask dst-ip 0x000000ff
${CMD} add 3050 queue 21 tcp from 192.168.0.0/24 to any
${CMD} queue 21 config weight 10 pipe 4 mask src-ip 0x000000ff
# -- UDP Traffic --
${CMD} add 3100 queue 22 udp from any to 192.168.0.0/24
${CMD} queue 22 config weight 10 pipe 3 mask dst-ip 0x000000ff
${CMD} add 3150 queue 23 udp from 192.168.0.0/24 to any
${CMD} queue 23 config weight 1 pipe 4 mask src-ip 0x000000ff
有個小缺點:單台主機不能佔用所有頻寬,http下載到了極限也是165KB(我裝的是2Mb的adsl),損失了一些頻寬
效果:在一台主機看pps, 一台主機開迅雷下載的『惡劣』網路條件下, ping 的 reply time 平均比平時上升10ms. counter strike 的 ping 平均比平時上升 30ms 左右.
個人感覺還ok啦...
p.s. 我還是奇怪為何我的 down-link (pipe 3) 的速率要調到 3000KBit/s 才有 165KB 的下載速度... 還是想不明白. 再調高就會影響 ping 以及 counter strike. 調低則影響不大.
阅读(1564) | 评论(0) | 转发(0) |