如何根據 IP 配置 QoS?
我們已經說過,專用網路中的使用者通過一個正在執行(NAT)的地址
4
連接到 Internet 。我必須配置為允許使用者訪問,但對使用者有限制的頻寬,而對其他人沒有限制。Linux router``public IP``network address translation``QoS``Internet``2
eth0:121.51.26.35 eth1:10.239.107.1
eth0
ofLinux Router
是一個10Mbps
連結。eth1
連接到switch
並且4
節點連接到switch
。我想配置tc
為2 nodes
僅限制一組使用者的頻寬,(XyZ in picture)
以便僅3Mbps
累積使用。(當1個使用者下載/上傳時,他/她必須得到3Mbps
,但當3個使用者同時下載/上傳時,他/她必須收到1MBps
)首先請讓我知道要求是否可以實現,如果可以,我該如何進行?
下面是拓撲
你需要選擇像 HFSC 或 HTB 這樣的類感知 qdisc。
然後你必須像這樣建構一個類樹:
Root Class (10MBit) | \--- XyZ Class (rate 3Mbit ceil 3Mbit) | | | \--- Client 10 (rate 1.5Mbit ceil 3Mbit) | \--- Client 11 (rate 1.5Mbit ceil 3Mbit) | \--- Client 30 (rate 3.5Mbit ceil 10Mbit) \--- Client 40 (rate 3.5Mbit ceil 10Mbit)
這在兩個界面上(用於上傳和下載整形)。
使用 HTB 以獲得可預測的結果,您應該確保子項的總和始終等於父項。所以 Root 有 10Mbit,其直接子節點相等(Xyz 3Mbit + Client30 3.5Mbit + Client40 + 3.5Mbit == 10Mbit)。同樣,XyZ 有 3Mbit 及其子 Client10+Client11。
多年前,我寫了一個類似的腳本:
https://github.com/frostschutz/FairNAT
今天它沒有維護,但也許它可以給你一些想法。
Linux 中的流量整形是一個有點被忽視/深奧的領域,也很難找到好的文件。不知道這是否曾經改變…
有http://lartc.org/ (忽略wondershaper部分)
和核心數據包旅行圖http://www.docum.org/docum.org/kptd/(也是常見問題解答)
或者,如果這太複雜了,也許像 ESFQ 這樣的無狀態 qdisc 會為您解決問題。它試圖在客戶端之間實現某種平衡,而不實際應用任何硬頻寬限制。
祝你好運。