服務訪問質量(QOS)

當網絡出現擁塞的時候,一般會有延遲、延遲抖動或丟包的現象出現,那麼解決這種現象的最好辦法就是提高網絡的帶寬,那麼,如果在無法提高網絡帶寬的話,就只能通過合理的利用網絡帶寬。在網絡發生擁塞時,根據業務的性質和需要使用QoS技術合理的分配現有帶寬,降低網絡擁塞的影響。

QoS服務模型一共分爲三種:

1、best-Effort service服務模型:它是一種單一的服務模型,也是最簡單的服務模型,應用程序可以在任何時候發送任意數量的報文。網絡盡最大可能發送這些報文,但是對於延時、可靠性不做保證,它是在互聯網中默認的服務模型,其遵循先進先出的轉發規則。

2、IntServ服務模型:IntServ服務模型在使用網絡資源時,需要提前申請,申請的過程是通過RSVP(資源預留協議)完成的,應用程序會通過RSVP將需要的時延、帶寬、丟包率等性能通知其他節點,這些節點收到資源預留請求後,會根據用戶的合法性、資源使用情況來決定是否預留資源。

這個服務模型的擴展性很差,實施比較困難,並且RSVP存在一定缺陷,所以限制了它的廣發應用。

3、Diffserv服務模型:它可以滿足不同的QoS需求,與IntServ不同,它不需要預留資源,網絡不需要爲每個端到端的流量進行維護。Diffserv服務模型可以使用不同的方法來指定報文的QoS,如報文的優先級、MAC地址、源IP地址、目的IP地址等,網絡可以通過這些信息來提供特定的服務(報文分類、流量整 形等)。

接下來,對Diffserv服務模型進行詳細的解釋。

QoS的操作模型:

QoS涉及四大組件:分類和標記、整 形和監管、擁塞避免和擁塞管理。QoS操作模型如下所示:

服務訪問質量(QOS)

首先,數據進入設備進行流分類,根據流量的重要程度劃分不同的類別,並打上不同的標記。然後使用GTS或CAR技術進行整 形和監管,並根據策略對違規的報文進行操作,限制流量的速率。隨後通過WRED技術隨機丟棄相對不重要的報文避免網絡擁塞,最後通過擁塞管理的隊列技術將報文放入不同的隊列。隊列達到最大長度後,後到達的報文將被丟棄,通過隊列的出隊調度技術轉發報文。

可以通過下面這個實際的案例更加通俗的理解QoS對數據流的處理:

服務訪問質量(QOS)

我們來把QoS操作模型拆分開來一步步瞭解:

1、分類和標記:

QoS是一個整體的框架,不侷限於一臺設備,整個網絡中設備相互配合,最終達到流量優化的目的。QoS的核心就是保證重要的流量有限通過網絡設備。默認情況下,網絡設備對任何流量都一視同仁,爲了可以讓任何設備都可以識別重要的流量,在網絡的邊界,也就是任何進入網絡的流量都應該根據重要程度被分類,並打上不同的標記,後續設備基於這些標記來標識哪些流量是相對重要的。

①、分類:流分類是進行區別服務的基礎,流分類可以使用報文的優先級來識別不同優先級特徵的流量;

流分類一般通過ACL區分不同的流量,尤其是擴展ACL,基本上可以定義大部分流量。如下命令定義了網絡中所有的FTP流量:

R1(config)#access-list 101 permit tcp any any eq 21

②、標記:在QoS技術的Diffserv服務模型中,對於IP報文中的DS字段使用DSCP(差異化服務編碼點)作爲QoS優先級描述,如下所示:

服務訪問質量(QOS)

DS字段一共八位,在Diffserv中使用DS的前六位,即DS0~DS5定義了0~63共64個優先級。
QoS也可以使用DS字段中的IP優先級,使用DS的前三位IP。優先級共八個等級,其中0表示正常流量,盡力轉發。
默認情況下,如果不做設置,正常數據的優先級都是0,而像RIP、OSPF報文,默認優先級是6,優先級越高越優先發送;

在配置時,首先定義匹配類,然後定義流量控制策略,最後在端口實施策略。

1)定義匹配類

R1(config)#class-map abc
R1(config-cmap)#match access-group 101              #101爲上面創建的擴展ACL編號

除了配置ACL外,還可以配置端口、VLAN、源或目的MAC地址等信息,配置命令如下:

R1(config-cmap)#match input-interface f0/0            #匹配 F0/0端口進入的流量。
R1(config-cmap)#match any                                     #匹配任意流量

2)、定義流量控制策略

通過policy map調用class map,然後爲每一個class map 配置策略:

R1(config)#policy-map QoS                     #定義策略名稱
R1(config-pmap)#class abc                     #調用class  map
R1(config-pmap-c)#set ip dscp 5             #定義優先級,範圍爲0~63;
也可以使用如下命令來定義優先級:
R1(config-pmap-c)#set ip precedence 7         #與dscp一樣,用來定義優先級,範圍爲0~7。

3)、在接口上應用策略

R1(config-if)#service-policy input qos                 #service-policy爲命令字,input表示入站。
可以使用output來表示出站,qos爲定義的策略名稱

4)、查看配置
可以使用命令show policy-map來查看配置:

R1#show policy-map
  Policy Map df
    Class abc
      set ip precedence 7

  Policy Map qos
    Class abc
      set ip precedence 0

2、整 形和監管:

經過分類和標記已經可以區分流量的優先級了,那麼爲了避免網絡擁塞的出現,可以對流量進行控制,通過採用一定的策略控制流量的大小,以減少網絡擁塞的出現。主要的流量管理技術是整 形和監管。

在對流量進行監控時一般可以設定三個參數:
1. 承諾平均速率(CIR):允許流量通過的平均速率;
2. 突發量(BC):允許突發產生流量的大小,設置的大小必須大於最大報文長度。
3. 額外突發量(Be):表示流量超出突發量後還可以轉發的流量大小。

1)流量策略

對於符合規定部分的流量視爲合規流量,而對於超出規定部分的流量視爲違規流量。設置流量策略時,既可以設置合規流量策略,也可以設置違規流量策略。一般流量策略有以下幾種:

  • 轉發:對於合規流量和違規流量都可以設置策略爲轉發。
  • 丟棄:對於合規流量和違規流量都可以設置策略爲丟棄。
  • 標記:標記報文的優先級。例如,將合規流量報文的IP優先級設定爲5,而將違規流量報文的優先級設置爲0.
  • 進入下一級流量策略:流量策略可以多級處理,可以將流量提交給下一級流量策略來進行控制。

2)整 形與監管

流量整 形(GTS)是一種調節輸出速率的措施,流量整 形使用緩衝區使流量均勻地進行轉發。流量進入設備進行分類,不需要進行整 形的流量直接通過設備轉發,需要進行整 形的流量根據配置分爲合規流量和違規流量。當流量速率超過設定時,設備將多餘的流量緩存到GTS隊列,然後按照配置的CIR,將報文均勻地轉發出去,以保證網絡流量平穩。

由於流量整 形使用緩存來保存違規流量,所以可以減少丟包率,避免了報文重發,但是使用緩存將導致數據轉發時增加時延。流量整 形一般應用在整體流量較小,但有時出現突發流量的環境中。如下圖所示:
服務訪問質量(QOS)

流量整 形配置有兩種配置方式,一種是基本的流量整 形配置,另一種是基於ACL的流量整 形配置。

基本的流量整 形配置如下:

R1(config)#access-list 100 permit udp any any
R1(config)#in f0/0
R1(config-if)#traffic-shape rate 8000000              #針對所有經過該接口的流量整 形。承諾平均速率爲100kb/s
R1(config)#in f1/0
R1(config-if)#traffic-shape group 100 800000 800000 800000                 #針對於ACL組號爲100的流量整 形。
順序依次爲CIR、Bc、Be,CIR是每秒可通過的速率,
計量單位爲比特 
(1GB=1024MB,1MB=1024KB,1KB=1024B,1B(字節)=8bits(比特),
也就是說80000bits大約是100KB/s

查看網絡整 形配置信息:

R1#show traffic-shape f0/0

Interface   Fa0/0
       Access Target    Byte   Sustain   Excess    Interval  Increment Adapt
VC     List   Rate      Limit  bits/int  bits/int      (ms)      (bytes)   Active
-              1000000   6250   25000     25000     25         3125      -   

查看GTS流量統計信息:


R1#show traffic-shape statistics f0/0
                  Acc. Queue Packets   Bytes     Packets   Bytes     Shaping
I/F            List    Depth                             Delayed   Delayed   Active
Fa0/0                   0          0                0                0         0    no

查看GTS隊列信息:
R1#show traffic-shape queue
Traffic queued in shaping queue on FastEthernet0/0
Queueing strategy: weighted fair
Queueing Stats: 0/1000/64/0 (size/max total/threshold/drops)
Conversations 0/0/64 (active/max active/max total)
Reserved Conversations 0/0 (allocated/max allocated)
Available Bandwidth 1000 kilobits/sec

其中粗體1000標識設置的緩存器限制。

流量監管是一種流量控制措施,監管使用的三個參數分別是承諾平均速率、Bc、Be。所以監管中,Bc+Be的大小是允許突發的最大流量的大小。監管的核心技術是承諾訪問速率(CAR)

Bc和Be相當於信用的積累,如果一直守信(小於規定流量),其信用值就不斷增加到某個數值(Bc);如果繼續守信,則信用值就會繼續增加到一個規定的最大值(Bc+Be)。這時,如果出現違規現象(流量速率超過規定速率),信用就會減少,知道信用值爲0,。所以Bc、Be是一個積累使用的過程,而不是始終存在的(最初時Bc和Be爲滿的)。

在使用CAR技術限制流量速率時,違規流量一般會被直接丟棄而不進行緩存,所以呢,CAR技術保證了數據的延時,但是增加了丟包率。CAR技術多應用於接入層,對接入用戶進行流量限制。

CAR的速率圖如下所示:

服務訪問質量(QOS)

服務訪問質量(QOS)

CIR表示速率,而Bc和Be表示大小。
一般的使用一下公式進行配置:

Bc=2XRTTXCIR/8

其中,RTT表示流量往返的時間,可以使用ping命令測試。Be流量一般等於Bc。

承諾訪問速率配置:和流量整 形相同,也有兩種配置方式,一種是基本的承諾訪問速率配置,另一種是擴展的承諾訪問速率配置。

1)、基本的承諾訪問速率配置

R1(config-if)#rate-limit input 8000000 2000 4000 conform-action transmit exceed-action drop

上述命令表示進入端口的流量被限速爲8000000b/s(約8MB/s),最大突發量爲4000字節,符合的流量conform-action被轉發transmit,超出的流量exceed-action被丟棄drop

R1(config-if)#rate-limit input 8000000 2000 4000 conform-action set-prec-transmit 5
exceed-action set-prec-transmit 0 
#其中8000000爲CIR,參數範圍是8000~2000000000,單位是b/s;
2000表示普通突發量,參數範圍是100~512000000,單位是字節;
4000表示最大突發量,參數範圍是2000~1024000000,單位是字節

上述命令表示進入端口的流量被限速爲8Mb/s,最大的突發量爲4000字節,符合的流量被標記IP優先級5後進行轉發,超出的流量被標記IP優先級0後進行轉發,IP優先級0爲默認值,表示盡力轉發。當網絡出現擁塞時,可以根據優先級確定優先丟棄的數據。

2)、擴展的承諾訪問速率配置

首先配置ACL,定義需要整 形的流量,然後再接口模式下配置如下命令進行流量整 形:


R1(config)#access-list 101 permit tcp any any 
R1(config)#in f0/0
R1(config-if)#rate-limit input access-group 101 8000000 2000 4000  
conform-action transmit exceed-action drop  

#其中8000000爲CIR,參數範圍是8000~2000000000,單位是b/s;
2000表示普通突發量,參數範圍是100~512000000,單位是字節;
4000表示最大突發量,參數範圍是2000~1024000000,單位是字節

查看CAR配置信息:

R1#show interfaces f0/0 rate-limit 
FastEthernet0/0 
  Input
    matches: access-group 101                  #匹配的ACL
      params:  8000000 bps, 4000 limit, 4000 extended limit              #配置的速率限制
      conformed 0 packets, 0 bytes; action: transmit         #符合的流量統計,動作爲轉發
      exceeded 0 packets, 0 bytes; action: drop                #違規的流量統計,動作爲丟棄
      last packet: 4176504ms ago, current burst: 0 bytes           #當前流量突發量信息
      last cleared 00:07:24 ago, conformed 0 bps, exceeded 0 bps             #速率信息
    matches: access-group 101
      params:  8000000 bps, 4000 limit, 4000 extended limit
      conformed 0 packets, 0 bytes; action: transmit
      exceeded 0 packets, 0 bytes; action: drop
      last packet: 4176504ms ago, current burst: 0 bytes
      last cleared 00:00:44 ago, conformed 0 bps, exceeded 0 bps
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章