CCNP 筆記本

2008 年 12 月 09 日

CCNP-ONT Module 04 Implement the DiffServ QoS (part 1)

Filed under: CCNP-ONT Module 04 — nkongkimo @ 00:30:37

QoS重點

1.設備有預設保留25%的頻寬給Routing及Management使用。
2.Implenent QoS的步驟:
第1步:Classification & Marking
第2步:Congestion Managment and Queuing
第3步:Congestion Avoidance
第4步:Traffic Policy and Shaping
第5步:Signaling
第6步:WAN Link Efficiency Mechanisms

Classification (分類)

種類 內容
1.Incoming interface 依介面分類,範圍最大,資料流量最雜。
2.IP Precendence
(802.1P)
可稱為802.1P或CoS值,共有8個等級,0~7,數字越大越好,
0為預設值(Best-Effort),
4通常都給Vedio用
5通常都給Voice用,
6、7被保留routing用。(6用於Internet/ 7用於路由協定)
故可用的級數為0~5。
3.DSCP 分類的範圍最細。用來改善IP Precendence值分類的不足。
4.Source or Destination Address (ACL) 利用ACL來源端跟目的地端來分類,資料流。
5.Application  利用Nbar的方式來查看應用程式的種類。
6.Unclassification 預設不做classification,資料的傳輸行為為先進先出(FIFO)

Marking

*貼有顏色標籤的意思

種類 內容
L2 Marking 1. CoS (ISL,802.1P),用於L2的環境中。
  2. F.R / ATM
L 2.5 Marking (3)MPLS EXP bits
L3 Marking

(1)DSCP (Differentiated Services Code Point )(需要設備支援)

(2)IP Precedence(ToS) (大部分都有支援)

*利用DSCP值來區分更複雜的資料種類,以彌補IP Precedence的不足。

*預設IP Precndence值會Copy L2的CoS值
*PHB(Per-Hub-Behavior):與DSCP值Combine在一起,意思為封包只要經過L3的設備,行為模式需要被重新定義或是Bypass過去。


種類 內容
1.CS PHB 不看DSCP值,只看IP Precedence值。
2.Default PHB Best-Effect有多少用多少,預設值。
3.AF PHB AF(Assured Forwording),保證頻寬。
4.EF PHB EF(Expedited Forwording),低延遲。
DSCP值為46。
 

備註
1.DSCP值為把AF 2進位轉成10進位。
2.丟棄規則:先比欄在比列,不同欄不能比較。
EXP:
(1)看的懂DSCP值的設備,AF11和AF41相等、AF22與AF32相等…。
(2)看不懂DSCP值的設備,比前3個bit,即為IP Precedence(ToS),或是802.1P COS值(L2的說法),數值越大越不容易被丟棄。
3.AF 2進位值,尾碼都是0。
4.共有12種可以使用。
對應表

IP Precedence(ToS)值等於CoS值
default IP Precedence 會複製L2 CoS值
補充 TOS(Type of Service)值:
 

Trust Boundaries

*End-to-End的第一個End的意思為可以支援的設備。

*各個Trust Boundaries可以做的動作

*變更數值非常耗CPU的資源,故建議在較高等級的設備上使用。

NBAR for Classification

1.NBAR(Network-Based Application Recognition)用來分類的一種方法。
2.Cisco已經有先定義好一些網路上的應用服務。
3.預設值為關閉的,可以用ip nabr protocol-discovery開啟此功能(須先啟動CEF)。
4.NBAR會自動統計目前網路上的各種類流量(cisco有定義好的服務),也可以自己定義。
5.目前IOS都有支援,無須再下載PDLM的檔案。
6.DPI(Deep Packets Inspection):
可以針對Application分析行為模式(Behavior)及特徵碼(signatune)但建議用在IDS,因耗CPU。
7.目前可以看到了服務,約100多種。
8.啟動NBAR的步驟:
(1)啟動CEF
(2)啟動NBAR (Network-Based Application Recongnition)

 
(3)套用MQC時,若要使用match protocol要啟動NBAR,否則不會生效。
Example:
9.Statefull NBAR細部參數:
Example: 

image

PDLM(Packet Description Language Module)

1.目前的IOS都已經有支援,無須在下載PDLM檔。
2.自行增加服務的方法:

Congestion and Queuing

Queuing 1.駐列技術,用來控制Congestion,提供Bandwidth、Delay的保障。
2.Queuing是額外的buffer
  Queue的邏輯運作
  Hardware Queue查看的方法:
*不建議調整
Congestion 1.當WAN頻寬與LAN頻寬不對偁時就會發生congestion。
2.當congestion發生時會先放在Queuing中,當Queuing爆了就會發生Drop。

Queuing Algorithms(運算方法)

種類

內容

1.FIFO

(最常用)

*Router自動判斷
*先進先出,當BW大於2MB Router就會使用此方法。
*可用show interface去觀察。
*不適合用於連續傳輸的環境 (FTP or BT or 驢子)。
*只有一個Software Queuing。
*用於LAN當中。
 

2.PQ

(Priority Queueing)

(最常用)

*使用優先權來區分
*分成4個Software Queueing:

(1)High (Q1) (最優先)
(2)Medium (Q2)
(3)Normal (Q3)
(4)Low (Q4) (最後傳送)

依順序傳送,當Hight送完了才換Medium,以此列推,當Hight又插新的資料進來,就會優先傳送Hight的資料。當同等級的Queueing爆了packet就會被drop掉,不會往下一個等級放。
*分類可以依照:

(1)Protocol Type
(2)Incoming interface
(3)Packet Size
(4)Fragment
(5)ACL

*適用的環境: 需要反應時間很短的服務使用,不允許Delay太長的服務,可用於Online Game 的環境。
*設定的方法:

*須要套用在Incoming的介面上。
*Priority-list共有16個可以用,未被分配到的queue會被自動分配。
*若超過16種建議使用MQC。
每一個Queuing的最大深度:
*若把深度調大會耗Money、若調小會耗CPU資源。
 

3.CQ

( Custom Queueing)

(最常用)

*與PQ的觀念一樣。
*最早用來定義哪些流量使用大小的方法。
*使用優先權來區分
*分成4個Software Queuing: High / Medium / Normal / Low,依順序傳送
*用來彌補PQ無法定義Queing的缺點。
*會計算byte count(Packet Size),可以自訂Queuing的大小,達到多Queueing平行傳輸的效果。
*共有16個Queue,未被分配到的queue會被自動分配。
*若超過16種建議使用MQC。
  Example:
Question: 假設網路上的流量種類有3種分別為A, B,及C.所帶的packet size為550B, 330B, and 220B.
希望能夠在頻寬使用分配上各為20%, 30%,及50%.使用CQ方式來設定
A:
(1)計算3種protocol的分配比率:
     20/550:30/33/:50/220=3.63:9.1:22.7
     都*4倍=14.52:36.4:90.8(opation)
     四捨五入=15:36:91(opation)
     把算出的數字填入Queue_limit裡面。
(2)到推分配比例是否接近Question Issue
     3.63*550+9.1*330+22.7*220=1997+3003+4994=9994
(3)計算出準確佔的比率
     A佔:1997/9994=19.98%約20%
     B佔:3003/9994=30.05%約30%
     C佔:4994/9994=49.97%約50%
這樣的比例非常接我們所要的20%, 30%, and 50%
CQ Config *類似ACL的設定方法。
config)#
     queue-list 1 protocol ip 0 tcp ftp (意指被我們所定義的A protocol)
     queue-list 1 protocol ip 1 tcp telnet (意指被我們所定義的B protocol)
     queue-list 1 protocol ip 2 tcp www (意指被我們所定義的C protocol)
     queue-list 1 queue 0 byte-count 550 limit 36 (定義A protocol的權重
     queue-list 1 queue 1 byte-count 330 limit 91 (定義B protocol的權重)
     queue-list 1 queue 2 byte-count 220 limit 227 (定義C protocol的權重  
**Byte-count意指packet size, limit意指Queue-depth
config-if)#
     interface s0/0
          coustom-queue-list 1(套用到介面上才生效)

4.RR

(Round Robin)

*依輪盤的排序方式傳送,所以packet較大時會被分到第2個queuing或第3個。
*傳送的方法為平行處理,一次會把所有的queuing都送出去。
*比重為1:1
*用於Router
*須要統計資料流封包的大小,否則會導致網路效能不佳,較不好用。
 

5.WRR

(Weighted RR)

*權重式的輪盤方式傳送,所以packet較大時會被分到第2個queuing。
*傳送的方法為平行處理,一次會把所有的queuing都送出去。
*可以調整比重。
*用於L2/L3 SW。
*須要統計資料流封包的大小,較不好用。
 

6.WFQ

(Weighted Fair Queue)

(最常用)

*Router自動判斷
*改善FIFO先進先出的缺點,當BW小於2MB Router就會自動使用此方法。
*可用show interface去觀察。
*用在T1 /E1 /F.R的介面。
*無法修改設定,無法做BW的設定。
*分類的方式:

(1)Source IP address
(2)Destination Ip Address
(3)Protocol Number
(4)Type of Service Filed
(5)Source TCP or UDP Number
(6)Destination TCP or UDP Number

*WFQ Drop的行為:

(1)Early Droping:
當Queue被塞爆了,就會啟動Drop機制,Drop順序為先來先丟。
(2)Aggressive Droping:當Hardware Queue被塞爆時,啟動drop的機制。
(預設深度為1024最大4096)

*WFQ基本功能:

(1) 針對互動的資料流(interactive traffic)減少反應時間。
(2)當有大量的flow可以主動避免 ,避免被攻擊。

*WFQ優缺點:

優點 缺點
(1)無需設定 (1)無法變更TOS值
(2)傳送進來的flow都會被classification,以達到公平的傳輸 (2)只支援在小於2MB的介面上
(3)幾乎所有介面都有支援。 (3)只有一個Queue
(4)Cisco的設備全部都支援 (4)無法定義特定資料流量使用的BW
  (5)可以觀察的指令很少。
WFQ Config 變更Software Queue的深度

變更Hardware Queue的深度
 
觀察的方法

7.DWFQ (Distributed WFQ)

*用於Cisco 7000 / 7500,運作的方法與WFQ相同,採用分散式。

8.CBWFQ

(Class-Based WFQ)

(最常用)

*以WFQ為基礎。
*Classfication的方法可以使用NBAR。
*與MQC相同,規定要用MQC+Bandwidth / percentage的指令。
*可對想要的服務做資料流頻寬的保證。
*不支援Voice的功能。
*Router無法自動偵測對外BW的大小,需要以手動的方式設定。(Sarial 介面預設1544bps)
*有Bandwidth及Percent 2種權重的方法。
*缺點:不支援Voice traffic 優先傳送
CBWFQ Config

設定範例:

觀察CBWFQ

9.DCBWFQ (Distributed CBWFQ)

*用於Cisco 7000 / 7500,運作的方法與WFQ相同,採用分散式。

10.LLQ

(Low-Latency Queuing)

(最常用)

*以WFQ為基礎。
*LLQ=PQ(high priority)+CBWFQ(Low Priority)
*PQ會放再第一個Queue會第一個優先處理,不會有延遲的問題。
*支援Voice 有高優先權的功能。
*Classfication的方法可以使用NBAR。
*與MQC相同,規定要用MQC+Priority的指令。
*可對想要的服務做資料流頻寬的保證。
*LLQ的行為方式:
LLQ config

觀察LLQ
廣告

CCNP-ONT Module 04 Implement the DiffServ QoS (Part 2)

Filed under: CCNP-ONT Module 04 — nkongkimo @ 00:03:53

Congestion Avoidance

1.RED (Random Early Detection):
不看IP precedence or DSCP值
2.WRED (Weighted Random Early Detection):
看IP precedence or DSCP值
3.CBRED (Class Based Random Early Detection):
直接套在Class-map裡面就可以啟用WRED的功能

*當Software Queue塞車時,後來的封包都會被Tail Drop,故使用Congestion Avoidance的機制預防塞車。

TCP 封包傳輸的特性

1.Three way handshake
2.當overloading時會開始drop封包。
3.會互相傳windows sie來溝通狀態,調整封包的大小。
4.因TCP會藉由window size去偵測網路的狀況,所以會有tail drop的現象。
在圖表會顯示忽高忽低的狀態。
5.TCP傳輸模式

RED(Random Early Detection)

*在Congeston發生前先偵測Queue的使用方法。

RED的行為模式:
(1)No Drop:沒有達到Minimum threshold,不丟棄。
(2)Random Drop:當達到Minimum和Maximum threshold中間質時,會透過MPD值(拋棄率)隨機Drop封包,以降低Queue的Congestion。(MPD值可以設定多少個封包丟一個)
(3)Tail Drop:當超過maximum時會全部drop。
RED的圖形
Config的方法:

WRED

*比RED多了2種功能,可以套用IP Precedence和DSCP值,來做套用的選擇。
*可以套用在任何介面。
*WRED的運作方法:
Config的方法:

1.使用IP Precedence值
 
 

Example:

2.使用DSCP值

Example:
觀察的方法:

Class-Based WRED

*可以直接套在Class-map裡面就可以啟用WRED的功能。

Traffic Policing and Shaping 比較

Policing 規範


1.使用在IN / OUT Bound。
2.只要超過定義的BW就會被Drop
3.因為TCP的特性會有較大的起伏。
4.可以針對將被drop的封包做marking/Re-marking的動作。
5.ISP都使用在inbound的方向。
細部說明  
*可以限制BW的大小,在可以使用的範圍內可以做的方式:

(1)transmin(預設值)
(2)Drop(有congestion時):用於ISP業者
(3)Marking(有congestion時):用於企業內部使用,不允許封包被丟棄。

*建議設定於application上做控制。

 
Cconfig

Shaping 瘦身


1.只能使用在Outbound。
2.會針對Outbound方向的流量留Buffer的動作。
3.不支援Marking及Re-marking
4.可以結合FR,稱為Traffic-shaping。
5.ISP業者較不會使用,因為與集縮比有關。
6.可以設定subinterfce上。
細部說明
*會有一個Buffer的BW。
*通常用於WAN或低速介面。
*建議設定於interface上做控制。
*流量的波動會比Policing小很多。
Config

Policy & Shaping混合使用的狀況

Speed Missmatch 大BW到小BW的方向
Ocersubscription 小BW到大BW的方向

Token Bucket

1.Token Bucket為可允許傳送封包的大小。
2.可以由設定去變更大小。
3.Token Bucket的計算公式:
CIR(bps)=Bc(bits)/Tc(sec)
CIR(Committed information rate): 每秒可傳送的最大頻寬
Bc(Committed Burst): 傳送的資料大小
Tc(Committed time interval): 取樣的時間
Example:

Limite Bandwidth指令的種類

*套用在MQC的Policy-map裡面

指令種類 說明
Priority XXX 保證PQ的BW大小(最大可用BW)
EXP:假如總BW為1MB,設定Priority為128k,那128K就會被分配出來給Voice/Video使用,不會動態分配給其他BW使用,就算目前沒有voice的流量,也會被保留。
Bandwidth XXX 保證最小可使用BW的大小
EXP:表示最小可以使用bandwidth所設定的BW以上,假如今天設定bandwidth為128K,總BW為1MB,在沒有其他流量在使用時,可以使用到1MB,在雍塞時最少可以使用128K。
Police XXX 使用Traffic-policy的機制。
EXP:表示若今天流量超過我所設定的BW,我會做甚麼動作,預設會drop,但是可以設定 Re-marking的動作,以利封包不被drop。

Link Efficiency Mechanisms (Link的優化機制)

1.Compression
壓縮
1.依環境及資料種類可做可不做。
2.用於WAN中小BW的環境。
3.雙方都要做,否則會看不懂送來的資料。
4.可以增加每單位傳輸量,及減少Delay time。
5.可以使用software或hardware壓縮,建議用hardware因為不耗CPU,由外接硬體處理。
6.在台灣Compression不流行,因WAN BW較大。
6.Compression的種類:

(1)Header(表頭) Compression:
針對TCP及RTP Header比較小的做壓縮,例如Voice的傳輸(G.729)。
(2)L2 Payload Compression: 針對Payload的部份做壓縮,用於文件、資料效果較大,不適用用於語音、媒體資料流,較耗設備的資源。

2.LFI
(Link Fragmentation and Interleaving)
1.當Voice與Data一起傳輸時,會把Data切成較小的packet傳輸,以利voice不會產生Delay。
2.用於Multilink PPP、FRF.12(在FR使用)、FRF.11.C(在FR使用)
3.建議用於有voice的環境使用。
4.LFI較不耗CPU資源,建議啟動。
5.LFI會把DATA切成較小的等分並重新排列。
 
6.建議切割大小:

128Kbps->160bps
384Kbps->480bps
512Kbps->640bps

QoS Preclassify Applications

1.原本在VPN後QoS就不生效了,除非在tunnel之前啟動QoS,才可達到QoS的機制。
2.QoS運作的流程:
Incoming+QoS->VPN運算->Tunnel interface->Physical interface out
*在Tunnel裡面只有TOS值其他不會變(TOS值有0~7個等級),其他值都會被更改。

3.QoS for IPSec的種類

(1)IPSec AH
只對Header做封裝加密的動作,TOS不會變
(2)IPSec ESP
對Payload做封裝加密的動作,TOS值不會變

Config:
Example:

QoS SLA

1.SLA(Service Level Agreement):SLA為一個口號與合約有關係。
2.SLA訂定的事項:

(1)Delay(fixed and variable):訂定因人或設備…等,Delay or 斷線修復的時間。
(2)Jitter:浮動的時間。
(3)Packet loss
(4)Throughput:BW的大小。
(5)Availability:穩定度。
3.SLA訂定的越嚴謹,花費會越高。
4.在國內大部分不需要訂定SLA,連國外的線路才有訂的需要。大部份訂定SLA都是和ISP業者訂定。
5.SLA的等級:

(1)金級:
針對voice & Real-Time的部份有低遲延的policy。
保留BW給VOIP使用。
(2)銀級
給Voice 40%的BW,使其有較低的延遲。
對多出來的Voice資料作Re-marking的動作。
做WRED
(3)銅級
使用CBWFQ
保留23%的BW給Voice。
做WRED
保留2%的BW給其他不重要流量使用

End-to-End QoS

1.End-to-End QoS的區域:

(1)QoS in the Compus:
自己可以控制的區域
(2)QoS iat WAN Edge(CE/PE):
自己可以控制的區域
(3)QoS in the Service provider IP Cloud:
無法控制由ISP業者設定,但是可與ISP業者訂定SLA來保證穩定度。

2.Cisco 3層式架構QoS Depoly的方式:

(1)QoS in the Campus – Access Layer:
*定速或其它的設定
*L2的分類,做802.1P(預測值都是0)。
*Auto QoS(Cisco 專屬)
*PQ和CQ的應用(只能看不能做動作)
(2)QoS in the Campus – Distribuation Layer:
*Calssifitin & Marking

Interface
IP Precendence (802.1P)
DSCP
Source or Destination Address
Application
Unclassification
NBAR

*Coregestion Mangment & Queueing

FIFO
PQ
CQ
RR
WRR
WFQ
DWFQ (已不使用)
CBWFQ
DCBWFQ (已不使用)
LLQ

*Corgestion Avoidance

RED
WRED
CBWRED

*Traffic Policing & Shaping

Policing
Shaping
(3)QoS in the Campus – Core Layer:
基本上Core Router不做QoS,只做封包的routing。
Core Router可以做Link Efficiency Mechanism。(就是Compression & LFI)

(4)QoS in the WAN-CE(Edge-to-WAN) – Maneged (ISP擁有)

 
*ISP業者可以連進來設定的CE Router。
*Congestion Management and Queuing
*Traffic Policy and Shaping
*Classfitcation and Marking
*Congestion Avoidance
*Signaling
*Link Efficienay
*做在Outbound會比Inbound好。

(5)QoS in the WAN-CE(Edge-to-WAN) – Unmaneged(Coustom擁有)

*ISP業者不可以連進來設定的CE Router。
*Classification and Marking
*Traffic Policy
*Signaling
(6)QoS in Serrice – Proider Cloud
靠Contract,SLA訂定。

WAN Edge Design

End-to-End QoS for FR 的範例

CoPP(Control Plane Policing)

*CoPP最主要的目的是做Router Security的功能。

*可以針對那些人可以使用Managment的protocol,用來避免DDoS的功能 保護Router被攻擊。

功能種類 內容
Service Plane *Cisco專屬的功能。
如:WCCP、IRDP、IDS/IPS
Manaegment Plane *負責做Managment Control的功能
ControlPlane *會先過濾那些是Management Packet,所以資料先通過Control Plane才會再到Management Plane。
*負責Telnet、SSH、SNMP…等
*Routing Protocol的packet,如IGP/BGP的Session
Data Plane *負責傳送一般的Data
*會先判斷packet的類型,若需要往上送的packet會再往上送。

Example

在WordPress.com寫網誌.