前幾天有同學向我訴苦,他們公司的網絡時快時慢,問我有沒有什麼好的解決方案;之後瞭解了一下他們公司的網絡情況,拉的是10M的DDN專線,大多數情況下帶寬還是夠用的,但有時侯一到關鍵時刻,就顯得特別的擁塞。原因是有些部門某些時候較大的突發流量,導致網絡的速度整體變慢。普通員工倒也不怎麼抱怨,公司領導一發不出去郵件,就不高興了,可苦了我這位同學。最後我建議他使用QOS技術,通過限速或其他形式對這些部門的帶寬進行限制。
QOS(服務質量)是一種網絡擁塞的解決方法,其基本思想是把數據進行分類,放到不同隊列中,然後根據數據的類型決定傳輸的先後或保證一定的帶寬。也就是說在不增加帶寬的情況下,使數據流均勻的傳輸,以此避免擁塞的產生。
下面我們模擬一個QOS應用的案例,通過兩種技術:CAR(承諾訪問速率)和GTS(流量×××配置)來解決上述問題。拓撲圖如下:
從拓撲上我們可以看到:
l 網關路由器R1外網口E0/0的IP是:200.200.200.1/24,內網口E0/1的IP是:192.168.1.1/24.
l PC1在這裏表示將要被我們限速的PC,它的IP是:192.168.1.2/24,網關是路由器接口E0/1的地址:192.168.1.1.
l PC2在這裏表示網管工作站,IP是192.168.1.254/24,網關:192.168.1.1
l 位於Internet上的FTP服務器的IP是:200.200.200.2/24
我們假設PC1的正常流量爲:80Kb/S,突發量爲:200Kb/S,所以將PC1的流量限制在100Kb/S既能滿足PC1主機的正常需求,又能避免突發流量對網絡造成擁塞。下面通過QOS的兩種技術來實現這個需求。
1. 配置ACL,定義需要×××的流量。
2. 進入接口模式,配置進行流量×××的參數
完整的命令如下圖:
說明:上述命令表示匹配訪問控制列表100的流量,被限速爲100KB/s,最大突發量爲8000byte,符合的流量被轉發,超出的流量被丟棄;另外,配置CAR在E0/0或E0/1接口上都可以,關鍵注意配置時用的參數是input還是output.
注意這裏的單位很容易搞錯,第一個參數800000表示CIR(承諾訪問速率)它的範圍是:8000—2000 000 000,單位爲Bits per second,第二個參數40000表示BC(突發量)它的範圍是:1000—512 000 000,單位爲byte,第三個參數80000表示BE(過量突發量或最大突發量)它的範圍是:2000—1024 000 000,單位爲byte.
通過上面的配置現在我們來查看配置信息,使用show interface e0/0 rate-limit可以查端口限速信息。
說明:方框中第一行顯示的是匹配的ACL,此處是100,對應的也就是PC1,第二行顯示的是配置的速率限制,可以看到PC1的流量被限制在100Kb/s,突發量是40000,最大突發量是80000.第三行顯示的是符合的流量統計,動作是繼續轉發。第四行顯示的是違規的流量統計,動作爲丟棄。第五行顯示的是當前流量中突發量的信息,最後一行是交換機的速率信息。
1. 配置ACL,定義需要×××的流量。
2. 定義chass-map來匹配一種流量或協議
說明:其中zpp爲創建的class map的名稱,match-all表示匹配class-map定義的所有條件,是默認配置。
3.進入class map模式,配置匹配的條件。
說明:此處定義的是匹配配置的訪問控制列表100;也可以用命令match protocol protocol匹配配置的協議。除此之外還可以匹配端口、VLAN等信息。例如使用命令match input-interface interface-type interface-number可以匹配端口進入的流量,使用命令match any匹配任意數據包,使用命令match source-address | destination-address mac mac-address匹配源或目的的MAC地址。
4. 定義流量控制策略
說明:定義名子叫zpp的policy map,並調用class map zpp,此處policy map的名子和class map名子可以不同,爲了方便記憶可以配置成相同的。配置了policy map並調用了class map後就可以根據實際情況配置標記流量,流量×××,CAR等信息。
5. 配置GTS(流量×××配置)
說明:shape average 800000,表示限速爲100kB/s,average表示平均值。shape max-buffers 100定義緩衝區上線爲100(默認爲1000),緩衝區的作用是用來緩存GTS隊列信息。
6. 在接口上應用策略
說明:接口e0/1上應用GTS,命令service-policy output zpp表示在e0/1接口的output方向上應用策略zpp。需要注意的是,GTS只能應用在output方向,即e0/1接口上。而CAR可以應用在兩個方向上。
現在來驗證一下我們的配置
說明:通過命令show policy-map可以查看到策略的名稱是zpp(第一行);調用的class map的名子也叫zpp(第二行),再次強調兩個名子可以不同;第三行以後顯示的是流量×××的配置如:限制的速率爲100kB/s,緩衝區上線爲100(報文數)
說明:通過show policy-map interface命令我們可以得出以下結論:
方框2:應用的策略名zpp,以及應用的方向output
方框3:調用的class map名子叫zpp,轉發和丟棄的流量,以及匹配的訪問控制列表等信息
方框4:顯示的是流量×××配置參數,前面已經逐個解釋,此處不在聱述。
現在我們就實現了上述的要求,PC1的突發流量被限制了,網絡的整體性能得到了改良。相信大家應該對QOS也有了一定的認識了。通過這個案例,我們可以看到:在企業無法提高網絡帶寬的情況下,解決網絡擁塞更有效的方法是合理利用網絡帶寬。在網絡發生擁塞時,根據業務的性質和需要使用QOS技術合理分配現有帶寬,降低網絡擁塞的影響。