簡介
本文說明如何在Cisco路由器的服務品質(QoS)設定中設定差異服務代碼點(DSCP)值。
必要條件
需求
您必須熟悉IP報頭和Cisco IOS® CLI中的欄位。
採用元件
本文件所述內容不限於特定軟體和硬體版本。
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路運作中,請確保您瞭解任何指令可能造成的影響。
慣例
如需檔案慣例的詳細資訊,請參閱思科技術提示慣例。
背景資訊
區分服務(DiffServ)是一種新模式,在該模式下,流量由基於服務型別(ToS)欄位的相對優先順序的中繼系統處理。RFC 2474和RFC 2475中對DiffServ標準進行了定義,該標準取代了最初用於定義RFC 791中描述的資料包優先順序的規範。DiffServ在重新分配IP資料包的位以將其標籤為優先順序時,會增加可定義的優先順序的數量。
DiffServ架構定義DiffServ (DS)欄位,取代IPv4中的ToS欄位,就封包分類和流量調節功能(例如計量、標籤、整形和管制)制定每躍點行為(PHB)決策。
RFC不規定實施PHB的方式;這是供應商的責任。思科實施隊列技術,可以基於資料包的IP報頭中的IP優先順序或DSCP值來建立其PHB。根據DSCP或IP優先順序,可將流量放入特定服務類。服務類別內的封包會以相同方式處理。
區別服務代碼點
DiffServ欄位的六個最高有效位稱為DSCP。DiffServ欄位中的最後兩個「當前未使用(CU)」位在DiffServ欄位體系結構中未定義;現在它們用作顯式擁塞通知(ECN)位。位於網路邊緣的路由器對資料包進行分類,並使用Diffserv網路中的IP Precedence或DSCP值標籤它們。核心中支援Diffserv的其他網路裝置使用IP報頭中的DSCP值為資料包選擇PHB行為並提供適當的QoS處理。
本部分中的圖顯示了RFC 791定義的ToS位元組與DiffServ欄位之間的比較。
ToS位元組
第2頁 |
P1 |
P0 |
T2 |
T1 |
T0 |
CU1 |
CU0 |
-
IP優先順序-三位(P2至P0)
-
延遲、吞吐量和可靠性-三位(T2至T0)
-
CU(當前未使用)-兩位(CU1-CU0)
DiffServ欄位
DS5 |
DS4 |
DS3 |
DS2 |
DS1 |
DS0 |
ECN |
ECN |
-
DSCP -六位(DS5-DS0)
-
ECN -兩位
資料包的標準化DiffServ欄位用值標籤,使得資料包在每個網路節點處接收特定的轉發處理或PHB。
預設DSCP為000 000。類選擇器DSCP是向後相容IP優先順序的值。在IP優先順序和DSCP之間進行轉換時,請匹配三個最高有效位。換句話說:
IP Prec 5 (101) maps to IP DSCP 101 000
ToS位元組
DiffServ欄位
DiffServ標準使用相同的優先順序位(最高有效位— DS5 、 DS4和DS3)進行優先順序設定,但進一步澄清了定義,從而透過使用DSCP中接下來的三個位提供了更精細的粒度。DiffServ將優先順序級別(仍由DSCP的三個最高有效位定義)重新組織和重新命名為以下類別(這些級別將在本文檔中詳細介紹):
優先順序層次 |
說明 |
7 |
保持不變(鏈路層和路由協定保持活動) |
6 |
保持不變(用於IP路由協定) |
5 |
快速轉送(EF) |
4 |
第4類 |
3 |
第3類 |
2 |
類別2 |
1 |
類別1 |
0 |
盡力 |
藉助此系統,裝置會優先處理按類劃分的流量。然後,它區分和排列同類流量的優先順序,並將丟棄概率考慮在內。
DiffServ標準沒有指定「低」、「中」和「高」丟棄概率的精確定義。並非所有裝置都能辨識DiffServ (DS2和DS1)設定;即使能夠辨識這些設定,它們也不一定在每個網路節點觸發相同的PHB轉發操作。每個節點根據配置方式實施自己的響應。
保證轉發
RFC 2597定義了保證轉發(AF) PHB,並將其描述為提供程式DS域為從客戶端DS域接收的IP資料包提供不同級別的轉發保證的方法。保證轉發PHB保證為AF類提供一定量的頻寬,並允許訪問額外的頻寬(如果可用)。有四個AF類別:AF1x到AF4x。在每個類別中,有三種捨棄可能性。根據給定的網路策略,可以根據所需的吞吐量、延遲、抖動、丟失或訪問網路服務的優先順序為PHB選擇資料包。
1到4類稱為AF類。此表說明了指定概率的AF類的DSCP代碼。位DS5、DS4和DS3定義類別;位DS2和DS1指定丟棄概率;位DS0始終為零。
drop |
類別1 |
類別2 |
第3類 |
第4類 |
低 |
001010 AF11 DSCP 10 |
010010 AF21 DSCP 18 |
011010 AF31 DSCP 26 |
100010 AF41 DSCP 34 |
中 |
001100 AF12 DSCP 12 |
010100 AF 22 DSCP 20 |
011100 AF32 DSCP 28 |
100100 AF42 DSCP 36 |
高 |
001110 AF13 DSCP 14 |
010110 AF23 DSCP 22 |
011110 AF33 DSCP 30 |
100110 AF43 DSCP 38 |
加速轉發
RFC 2598對加速轉發(EF) PHB進行了定義:「EF PHB可用於透過DS (Diffserv)域構建低丟失、低延遲、低抖動、有保證的頻寬和端到端服務。此類服務對終端而言類似於點對點連線或「虛擬租用線路」。 此服務也稱為高級服務。對於EF PHB,建議使用Codepoint 101110,它對應於DSCP值46。
同樣,需要配置特定於供應商的機制以實施這些PHB。有關EF PHB的詳細資訊,請參閱RFC 2598 。
使用DSCP欄位
有三種方法可以使用DSCP欄位:
如果有流量以加權公平佇列(WFQ)、加權隨機早期偵測(WRED)或加權輪詢法(WRR)排隊,Cisco IOS軟體會考慮ToS欄位的優先位元。配置策略路由、優先順序隊列(PQ)、自定義隊列(CQ)或基於類的加權公平隊列(CBWFQ)時,不考慮優先順序位。有關詳細資訊,請參閱基於類的加權公平隊列(CBWFQ)。
封包分類
資料包分類涉及使用流量描述符對特定組內的資料包進行分類,並使網路中管理的QoS可以訪問資料包。使用封包分類時,可以將網路流量劃分為多個優先順序層級或服務類別(CoS)。
可在模組化QoS CLI中使用訪問清單(ACL)或match命令匹配DSCP值。Cisco IOS軟體版本12.1(5)T引入了在match指令中選取DSCP值的功能。
Router1(config)#access-list 101 permit ip any any ?
dscp Match packets with given dscp value
fragments Check non-initial fragments
log Log matches against this entry
log-input Log matches against this entry, including input interface
precedence Match packets with given precedence value
time-range Specify a time-range
tos Match packets with given TOS value
使用class map命令指定ip dscp值時,可採用以下方法:
Router(config)#class-map match-all VOIP
1751-uut1(config-cmap)#match ip dscp ?
<0-63> Differentiated services codepoint value
af11 Match packets with AF11 dscp (001010)
af12 Match packets with AF12 dscp (001100)
af13 Match packets with AF13 dscp (001110)
af21 Match packets with AF21 dscp (010010)
af22 Match packets with AF22 dscp (010100)
af23 Match packets with AF23 dscp (010110)
af31 Match packets with AF31 dscp (011010)
af32 Match packets with AF32 dscp (011100)
af33 Match packets with AF33 dscp (011110)
af41 Match packets with AF41 dscp (100010)
af42 Match packets with AF42 dscp (100100)
af43 Match packets with AF43 dscp (100110)
cs1 Match packets with CS1(precedence 1) dscp (001000)
cs2 Match packets with CS2(precedence 2) dscp (010000)
cs3 Match packets with CS3(precedence 3) dscp (011000)
cs4 Match packets with CS4(precedence 4) dscp (100000)
cs5 Match packets with CS5(precedence 5) dscp (101000)
cs6 Match packets with CS6(precedence 6) dscp (110000)
cs7 Match packets with CS7(precedence 7) dscp (111000)
default Match packets with default dscp (000000)
ef Match packets with EF dscp (101110)
Router1(config-cmap)#match ip dscp af31
標籤
可在網路邊緣將DSCP設定為所需要的值,從而方便核心裝置對資料包進行分類(如資料包分類部分所示)並提供相應的服務級別。基於類的資料包標籤可用於設定DSCP值(如圖所示):
policy-map pack-multimedia-5M
!--- Creates a policy map named pack-multimedia-5M.
class management
!--- Specifies the policy to be created for the !--- traffic classified by class management.
bandwidth 50
set ip dscp 8
!--- Sets the DSCP value of the packets matching !--- class management to 8.
class C1
priority 1248
set ip dscp 40
class voice-signalling
bandwidth 120
set ip dscp 24
使用承諾訪問速率或基於類的策略
承諾接入速率和基於類的策略是流量管制機制,用於管制流量以符合商定的服務引數。這些機制和DSCP可用於提供不同等級的服務,當流量適當修改DSCP值時,這些服務不會也確實符合流量,如本節所示。
有關詳細資訊,請參閱 Configuring
「流量Policing
」和比較基於類的策略和承諾接入速率。
interface Serial1/0.1 point-to-point
bandwidth 5000
ip address 192.168.126.134 255.255.255.252
rate-limit output access-group 150 8000 1500 2000 conform-action
set-dscp-transmit 10 exceed-action set-dscp-transmit 20
!--- For traffic matching access list 150, sets the DSCP value of conforming traffic !--– to 10 and that of non-conforming traffic to 20.
rate-limit output access-group 152 8000 1500 2000 conform-action
set-dscp-transmit 15 exceed-action set-dscp-transmit 25
rate-limit output access-group 154 8000 1500 2000 conform-action
set-dscp-transmit 18 exceed-action set-dscp-transmit 28
frame-relay interface-dlci 17
class shaper-multimedia-5M
與DSCP相容的WRED
加權隨機早期檢測(WRED)會在介面開始擁塞時選擇性地丟棄低優先順序流量。WRED可以為不同的CoS提供不同的效能特徵。此差異化服務可以基於DSCP,如下所示:
class C2
bandwidth 1750
random-detect dscp-based
!--- Enable dscp-based WRED as drop policy.
random-detect exponential-weighting-constant 7
!--- Specifies the exponential weight factor for the !--- average queue size calculation for the queue.
random-detect dscp 16 48 145 10
!--- Specifies the minimum and maximum queue thresholds !--- for each DSCP value.
random-detect dscp 32 145 435 10
有關詳細資訊,請參閱擁塞避免概述中與DiffServ相容的WRED部分。
Cisco IOS軟體12.2版本系列中的已知問題
只有已註冊的思科使用者端才能存取錯誤工具和資訊。
您可以使用錯誤搜尋工具搜尋這些錯誤。
-
思科漏洞ID CSCdt63295 -如果在Cisco IOS軟體版本12.2.2T中,不能在撥號對等體上使用新的DSCP標籤命令設定ToS位元組(設定為0),則資料包將無法進行標籤,並且在ToS設定為0的情況下仍然可以保留該資料包。
-
思科漏洞ID CSCdt74738 — Cisco 7200路由器和低端平台上的set ip dscp 命令支援組播資訊包,自Cisco IOS軟體版本12.2(3.6)及更高版本起必須可用。
相關資訊