QOS筆記(未完)

前言  QOS基礎
QOSquality of service ,服務質量。傳統IP網絡中,全部報文都是無區別對待。網絡設備的處理機制是FIFOfirst in first out)也就是best-effort,但對報文的吞吐量,延遲,延遲抖動,丟包率等不保證。Maybe很好,maybe不好,視網絡具體情況而定。
   隨着網絡的高速發展,網絡承載的信息愈來愈豐富。而實時性強的語音,圖像,重要數據對延遲,抖動,帶寬比較敏感,解決的辦法是增長帶寬。但帶寬始終是有限的。用有限的帶寬,對不一樣網絡應用數據流提供預期的服務質量保證。但QOS自己並不能增長帶寬。(只是把帶寬等資源進行從新分配調度)
QOS可以:
1,  經過某種測量和監管機制,控制不一樣業務享受到不一樣的服務。
2,  經過某種調度策略,保障了在網絡擁塞時重要業務保持持續穩定的運行。
3,  經過對網絡流量的優化,使流量得到合理分配,網絡運行於最佳狀態。
形象點說,就跟現實中各行業裏的VIP和普通客戶,分別得到不一樣的服務。
 
交換QoS主要是在網絡的接入層對數據流,實施分類和標記,同時提供流量監管和擁塞管理。
QOS 模型 :因爲QOS是端對端的通信,好比兩個不一樣網絡通信,中間可能會跨越多個routerswitch,那麼QOS設計就須要全局考慮。不然你只能控制你的網絡out的流。
1,    best-effort service  盡力而爲模型
2,    integrated  綜合服務模型 簡稱 intserv
3,    differentiated service  區分(差分)服務模型 簡稱 diffserv
其實best-effort 模型並不算QOS,這是數據傳輸的一種簡單機制。目前是internet缺省服務類型。Intserv模型,應用程序首先通知本身的流量參數和須要的特定服務質量。在收到確認報文後,纔開始發送報文。靠的是RSVPresource  reservation protocol)預留資源協議。缺點:RSVP報文太多,不停刷新。對單一數據流預留帶寬的解決思路在internet上太難實現。廠家互聯等。因此,現實中幾乎是不採用。
Diffserv模型,不須要預留資源。經過IP優先級,COSDSCPACL等定義QOS,對報文進行分類,流量監管,流量×××,隊列調度等。通常經過如下技術來實現:
1,    CAR 根據報文的COSTOS(對IP報文就是IP優先級和DSCP等),或IP報文的五元組(源,目的地址,源,目的端口,協議類型)對報文進行分類標誌和流量監管
2 隊列技術  WREDPQCQWFQCBWFQ等隊列技術對擁塞的報文進行緩存和調度,實現擁塞管理。
QOS處理流程:
1,  首先在網絡邊緣對數據流進行分類,打上不一樣的QOS標誌。流分類(traffic classification)是指採用必定的規則,標識出具備某種特徵的報文。分類規則(classification rule)是指根據管理需求而配置的過濾規則。能夠只根據DSCPTOS或定義ACLMAC地址,IP,源端口,目的端口等進行過濾。
2,  而後根據標誌,在每一跳上進行相應的轉發處理。好比流量×××,流量監管,擁塞避免。
 
一,優先級標誌
優先級標誌是實施QOS的基礎。方法包括:802.1P,優先級,IP優先級,TOS優先級和DSCP優先級.
1,   IP headerTOS區域有8bit,023bit表示的是IP優先級(COS,取值範圍是0~7(二層frame只用0~567保留) ;3-6bit表示的是TOS(type of service)優先級,取值範圍是0~15;RFC2474,從新定義了TOS.稱之爲DS,其中DSCP使用0~5,取值範圍是0-63 ,  67是保留位.
以太幀格式和TAG字段。四個字節的TAG裏,PRI就表明802.1P優先級.
正常的以太frame並不帶標誌,802.1Q纔會帶有.(還有ISL,CISCO私有VLAN協議).packet卻有兩中標分方法: IP precedence IP優先級和DSCP 區分服務代碼點
                     IP precedence0~7和各對應表.
802.1P優先級位於二層報文頭.適用於不須要分析三層報文,只須要在二層保證QOS的場合.
The table below is very importantwe should be aware and remember
標誌 marking
設備說明:
1,    華爲記錄HCSE教材上的設備型號,或本人實際操做的S5624PAR46-20
2,    思科選用是C3550-48-EMI 三層交換機 以及 C7200 路由交換機。
3,    設備型號均在命令的主機名有顯示。
 
配置優先級標誌: 若是同時指定了802.1P優先級和local-precedence,那麼802.1P優先。TOS字段裏包括IP precendceDSCP,而DSCP是至關於IP precedence的擴展。因此DSCPIP precedence優先。
 
H 3C 配置
, S3026只支持802.1P優先級.接口視圖下:priority-level [0~7] 設定優先級,同時配置 port priority replacement 設置接口優先級替換,而後通過該端口的數據流都打上此端口的優先級.
, S3526E以上三層交換機都支持: IP優先級,802.1P優先級(COS),DSCP優先級和本地優先級.是根據ACL結合來定義數據流.接口視圖下:
[S5624P-GigabitEthernet1/0/25]traffic-priority inbound ip-group 2000 ?
  cos               Specify 802.1p priority
  dscp              Specify DSCP
  ip-precedence     Specify IP precedence
  local-precedence  Specify local precedence
  rule              Specify the ID of acl rule
華爲的是在一條命令裏完成定義要標誌的報文並設置優先級。而Cisco的是經過class-map定義要標誌的報文,而後在policy-map裏調用再設置優先級
Cisco配置
C7200(config)#class-map [match-any| match-all] ewen   定義class-map
C7200(config-cmap)#match ?      好多match的選擇,
  access-group         Access group
  any                  Any packets
  class-map            Class map
  cos                  IEEE 802.1Q/ISL class of service/user priority values
  destination-address  Destination address
  discard-class        Discard behavior identifier
  dscp                 Match DSCP in IP(v4) and IPv6 packets
  fr-de                Match . Frame-relay DE bit
  fr-dlci              Match . fr-dlci
  input-interface      Select an input interface to match
  ip                   IP specific values
  mpls                 Multi Protocol Label Switching specific values
  not                  Negate this match result
  packet               Layer 3 Packet length
  precedence           Match Precedence in IP(v4) and IPv6 packets
  protocol             Protocol
  qos-group            Qos-group
  source-address       Source address
C3550(config-cmap)#match ?           3550上選項就少多了。不過多了個vlan 
  access-group  Access group
  class-map     Class map
  ip            IP specific values
  vlan          VLANs to match
C7200(config-cmap)#match ip precedence      匹配ip優先級
  <0-7>           Enter up to 4 precedence values separated by white-spaces
  critical        Match packets with critical precedence (5)
  flash           Match packets with flash precedence (3)
  flash-override  Match packets with flash override precedence (4)
  immediate       Match packets with immediate precedence (2)
  internet        Match packets with internetwork control precedence (6)
  network         Match packets with network control precedence (7)
  priority        Match packets with priority precedence (1)
  routine         Match packets with routine precedence (0)
marking也就這麼一個match命令了,就至關因而個super ACL,用來定義感興趣的報文。以便後面的policy-map引用。較經常使用的是使用IP優先級和ACL定義。
C3550(config)#policy-map qos
C3550(config-pmap)#class ewen  調用class-map
C3550(config-pmap-c)#police 80000 8000 exceed-action drop   利用令牌桶算法進行限速CIR
C3550(config-pmap-c)#set ?    class-map定義的報文設置優先級。
  cos         Set IEEE 802.1Q/ISL class of service/user priority
  dscp        Set DSCP in IP(v4) and IPv6 packets
  ip          Set IP specific values
  precedence  Set precedence in IP(v4) and IPv6 packets
而路由器裏則有較多的選項:
C7200(config-pmap-c)#?
QoS policy-map class configuration commands:
  bandwidth       Bandwidth  定義保留的帶寬
  compression     Activate Compression
  drop            Drop all packets
  exit            Exit from QoS class action configuration mode
  no              Negate or set default values of a command
  police          Police  利用令牌桶算法進行限速
  priority        Strict Scheduling Priority for this Class優先級保留的帶寬以及突發流量
  queue-limit     Queue Max Threshold for Tail Drop隊列的最大包個數
  random-detect   Enable Random Early Detection as drop policy啓用WRED
  service-policy  Configure QoS Service Policy
  set             Set QoS values 定義class-map報文的優先級
  shape           Traffic Shaping 定義CIRBcBc以及流量×××
配置bandwidthpriority命令的話,就是啓用了CBWFQ,兩個命令只能啓用一個。當第二個取用的話,系統會提示:Must remove priority configuration from this class first.或者Must deconfigure bandwidth before issuing this command in this class
而後在接口上應用
C7200(config-if)#service-policy input qos
Class-map是個匹配模塊,policy-map是個執行模塊。一個policy-map能夠調用多個class-map而完成對多種不一樣流量進行優先級設置和帶寬保留等做用。
Case 1
把來自192.168.10.0/24 的出站telnet 流量的IP優先級設置爲5,其餘的出站流量的IP優先級設置爲1:
access-list 133 permit tcp 192.168.10.0 0.0.0 .255 any eq telnet
ACL133定義特定流量)
class-map match-all telnet
telnetclass map的名稱,而不是什麼協議噢)
match access-group 133 (調用ACL133
policy-map qos (qospolicy map的名稱)
class telnet (policy調用名字叫作telnetclass map)
set ip precedence 5 (把優先級修改爲5
class class-default class-default指的就是其餘的數據)
set ip precedence 1 (優先級次修改成1
interface Serial1
ip address 10.0.0 .1 255.255.255.252
service-policy output qos (在接口上執行)
這就是一個簡單的分類標記工做,實際工程中可能會命令會多一點,複雜一點,可是道理都是同樣的。
附加知識
關於classmap嵌套:有兩點理由在建立class map的時候去調用一個已有的class map
1、管理方便,在已有的基礎上增長一個修改進行平滑的過分。
2、容許用戶在同一個class map裏分別使用匹配全部(match-all)和匹配任何(match-any)
好比4個匹配標準:ABCD。如今想讓class map 匹配A,或匹配B,或同時匹配CD
 
流量監管
簡單說就是對特定的數據流進行流量控制.使之更能適應分配資源.
原理是: 特定數據流,會進入令牌桶.這個桶的流量是配置一個數值來限制.按規定速度向桶中丟令牌,當桶裏滿了後,再也不增長.當數據流須要令牌桶處理的時候,若是桶裏有足夠的令牌也就是流量值,就直接發送,桶裏流量相應減小.當少於發送的流量時,數據流會按照配置的執行動做處理.
 
配置:
, S3026不支持流量監管.
, S3026FM/FSS3526是結合ACL來定義數據流,但不能定義方向.也不支持突發量
, S3026ES3526E也是結合ACL來定義數據流,只能定義in的方向.也能支持突發的action.
[S5624P-GigabitEthernet1/0/25]traffic-limit inbound ip-group 2000 5000 exceed ?
  drop         Drop the packets
  remark-dscp  Specify DSCP
 
端口限速
LR(line rate) 也是用令牌桶來進行流量處理.當桶裏令牌數不夠時,會認爲端口擁塞,就會放進QOS隊列進行擁塞管理.由於用了令牌桶.因此流量控制更爲合理和有彈性.
LR是對物理接口上發送的總報文速率限制.工做在二層.對全部報文都能限制.CAR是工做在IP,IP報文進行限制.若是不通過三層處理的報文就不起做用.因此,LRCAR控制精度更高.記住:只對out方向報文有效
配製很是簡單:
[S5624P-GigabitEthernet1/0/25]line-rate outbound ?
  INTEGER<64-1000000>  Target rate(Kbps). It must be a multiple of 64 in this
                       port.
擁塞管理
這纔是QOS的精華所在哦。當接收端口速度大於發送端口速度時,擁塞就會發生.擁塞管理採用隊列技術,在網絡擁塞時經過報文緩存和調度策略,使報文能按規定發送出去。隊列技術不僅能進行擁塞管理,還能對不一樣數據流提供差異服務.
,先進先出隊列(First In First Out Queuing,FIFO
Internet默認使用的隊列技術,對報文不進行分類.在報文進入接口的速度大於報文出接口的速度的狀況下,按照報文到達接口的前後順序進入隊列,發送的時候也是同樣。在不使用其餘隊列技術時,除了小於2.048Mbps的串行接口之外的全部接口,默認都使用FIFO
C7200#sh int f0/0
FastEthernet0/0 is administratively down, line protocol is down
  Hardware is DEC21140, address is ca00.02ec.0000 (bia ca00.02ec.0000)
  MTU 1500 bytes, BW 100000 Kbit, DLY 100 usec,
     reliability 252/255, txload 1/255, rxload 1/255
  Encapsulation ARPA, loopback not set
  Keepalive set (10 sec)
  Half-duplex, 100Mb/s, 100BaseTX/FX
  ARP type: ARPA, ARP Timeout 04:00:00
  Last input never, output 00:42:30, output hang never
  Last clearing of "show interface" counters never
  Input queue: 0/75/0/0 (size/max/drops/flushes); Total output drops: 0
  Queueing strategy: fifo
  Output queue: 0/40 (size/max)
, 加權公平隊列(Weighed Fair Queuing,WFQ)
對報文按流進行分類(IP網絡來講,流是指相同源,目的IP地址,,目的端口,協議號,IP優先級的報文屬於同一個流),出站按照IP優先級高低分配帶寬,優先級高的佔用高.
WFQ是帶寬低於2.048Mbps串行接口默認使用的隊列技術.(銳捷路由器使用交互式配置PPPOE默認也是)因此沒什麼好說的.
不足之處:不支持加密的接口,不支持隧道.精確度不如CBWFQ等高.
配置很簡單:
C7200(config-if)#fair-queue
, 優先級隊列(Priority Queuing, PQ)
把報文優先級分類.而後歸類到四個優先級:high , medium, normal ,low
當網絡擁塞時,會按照定義的優先級從高到低發送.當優先級高的隊列發送完畢纔到下一個優先級隊列.若是高優先級隊列一直持續發送,那麼低優先級的就永遠不能發送,形成餓死了.
配置:
1,建立優先級列表
C7200(config)#priority-list 1 ?              
  default      Set priority queue for unspecified datagrams
  interface    Establish priorities for packets from a named interface 匹配進口
  protocol     priority queueing by protocol  匹配協議
  queue-limit  Set queue limits for priority queues  定義隊列個數
2,定義隊列匹配條件
C7200(config)#priority-list 1 protocol ?
  arp            IP ARP
  bridge         Bridging
  bstun          Block Serial Tunnel
  cdp            Cisco Discovery Protocol
  compressedtcp  Compressed TCP
  dlsw           Data Link Switching (Direct encapsulation .ly)
  ip             IP
  ipv6           IPV6
  llc2           llc2
  pad            PAD links
  pppoe          PPP over Ethernet
  qllc           qllc protocol
  rsrb           Remote Source-Route Bridging
  snapshot       Snapshot routing support
  stun           Serial Tunnel
C7200(config)#priority-list 1 protocol ip high ?
  fragments  Prioritize fragmented IP packets
  gt       Prioritize packets greater than a specified size大於多少字節的包(包括幀的封裝頭)
  list       To specify an access list
  lt         Prioritize packets less than a specified size 小於多少字節的包(包括幀的封裝頭)
  tcp        Prioritize TCP packets 'to' or 'from' the specified port
  udp        Prioritize UDP packets 'to' or 'from' the specified port
  <cr>能夠經過ACLTCP/UDP端口號來定義不一樣報文的優先級.
3,定義隊列中報文個數.默認就是20 40 60 80,能夠修改.
C7200(config)#priority-list 1 queue-limit 20 40 60 80
4,應用在接口上
C7200(config-if)#priority-group 1
,自定義隊列(Custom Queuing , CQ)
相關文章
相關標籤/搜索