本檔案將說明當使用模組化服務品質命令列介面(MQC)的指令使用服務原則設定傳出路由器介面時,路由通訊協定訊息(例如hello和資料庫描述符)以及其他重要控制流量如何排隊。
具體而言,本檔案會檢視Cisco IOS®路由器用來設定控制封包優先順序的這兩種機制:
欄位 | 位置 | 如果考慮優先順序 |
---|---|---|
IP優先順序位元 | IP標頭中的服務型別(TOS)位元組 | 通過網路提供優先順序 |
pak_priority | 路由器內部的內部資料包標籤,由介面驅動程式分配 | 通過路由器提供優先順序(每跳) |
這兩種機制都旨在確保在出站介面擁塞時,路由器和排隊系統最後不會丟棄或丟棄關鍵控制資料包。
本文件沒有特定需求。
本檔案中的資訊是根據Cisco IOS軟體版本12.2。
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路正在作用,請確保您已瞭解任何指令可能造成的影響。
如需文件慣例的詳細資訊,請參閱思科技術提示慣例。
要求建議(RFC)791 定義IP封包標頭中的TOS位元組。儘管RFC 2474 和RFC 2475 將此位元組重新定義為區分服務代碼點(DSCP)值,但根據RFC 791,Cisco IOS路由器仍使用TOS位元組的原始IP優先位元。請注意RFC如何定義TOS位元組:
「服務型別提供了所需服務品質的抽象引數指示。在通過特定網路傳輸資料包時,這些引數用於指導實際服務引數的選擇。幾個網路提供服務優先順序,這樣會以某種方式將高優先順序流量視為比其他流量更重要(通常在高負載時僅接受高於某一優先順序的流量)。」
如圖所示,IP優先順序欄位佔用TOS位元組的三個最高有效位。只有三個IP優先位元反映封包的優先順序或重要性,而不是TOS位元組的完整值。
下表列出優先位值:
編號 | 位值 | 名稱 |
---|---|---|
0 | 000 | 常式 |
1 | 001 | 優先順序機制 |
2 | 010 | 立即 |
3 | 011 | 快閃記憶體 |
4 | 100 | 快閃記憶體覆寫 |
5 | 101 | 批評家/ECP |
6 | 110 | 網際網路控制 |
7 | 111 | 網路控制 |
Cisco IOS為控制平面上的路由協定資料包分配IP優先順序6。如RFC 791所述,「網際網路控制指定僅供網關控制發起方使用。」 具體而言,Cisco IOS會標籤以下基於IP的控制封包:開放最短路徑優先(OSPF)、路由資訊協定(RIP)、增強型內部網關路由協定(EIGRP)hello和keepalive。進出路由器的Telnet封包也會收到IP優先順序值6。當輸出介面將封包傳送到網路時,仍會保留指派的值。
雖然IP優先順序值指定了在通過網路傳輸資料包的過程中處理資料包,但pak_priority機制指定了在路由器內部傳輸資料包時處理資料包的方法。
除了路由器CPU的核心之外,每個介面都使用網路控制器或本地CPU,後者運行一種稱為驅動程式的專用軟體。驅動程式碼提供特定於介面的指令。
當介面驅動器接收到資料包時,它將資料包從小型先進先出(FIFO)緩衝區複製到輸入/輸出(I/O)記憶體中的資料緩衝區。然後將一個小封包標頭附加到緩衝區中。在Cisco IOS術語中稱為資料包型別結構的資料包報頭包含有關緩衝區中資料塊的關鍵資訊。根據封包的內容,封包標頭可以指向記憶體中乙太網路封裝標頭、網際網路通訊協定(IP)標頭以及傳輸控制通訊協定(TCP)標頭開始的地址。
Cisco IOS軟體使用資料包報頭中的欄位控制介面隊列中資料包的處理方式。資料包報頭包含pak_priority標誌,該標誌指示已標籤資料包對排隊系統的相對重要性。
在路由器的核心CPU上運行的RIP和OSPF路由進程會標籤所有發自IP優先順序6和pak_priority的流量。相反,邊界閘道通訊協定(BGP)會指示TCP使用IP優先順序6來標籤其流量,但不會設定pak_priority。
Cisco IOS還必須確保幾種型別的非IP控制資料包的丟棄概率較低。這些封包型別包括:
中間系統到中間系統(IS-IS)路由協定消息
增強型內部網關路由協定(EIGRP)消息
點對點通訊協定(PPP)和高階資料連結控制(HDLC)在序列和Packet over SONET(POS)介面上使用Keepalive
ATM介面上的操作、管理和維護(OAM)信元和位址解析通訊協定(ARP)訊息
由於此類流量不是IP,因此Cisco IOS無法匹配IP優先順序值以提供優先順序。相反,它僅使用資料包緩衝區報頭中的內部pak_priority值。
註:Cisco Catalyst 6000/Cisco 7600系列最初僅支援FlexWAN上的pak_priority機制。隨後實施了IP和非IP控制資料包優先順序的增強措施。
路由器(例如Cisco 7500路由/交換處理器(RSP)和低端路由器(例如Cisco 7200和3600系列))使用與Cisco 7500多功能介面處理器(VIP)不同的機制來路由和控制流量。 此表總結了這兩種方法,並假設使用MQC配置的服務策略應用於出站介面。
平台 | pak_priority消息的隊列 |
---|---|
Cisco 7500系列(含分散式QoS和VIP) |
|
基於RSP的QoS和其他平台,包括Cisco 7200、3600、2600系列 |
|
換句話說,在Cisco 7500系列上,如果向介面附加了輸出服務策略,則會根據該策略中的類對資料包進行分類,並將pak_priority資料包置於所選類隊列的末尾。如果pak_priority資料包與任何使用者定義的類都不匹配,則該資料包將被置於類預設隊列的末尾。
注意:使用優先順序隊列和自定義隊列等傳統排隊方法,或使用預設介面FIFO隊列,非RSP路由器將pak_priority消息排入隊列的頭部,以確保最小延遲和最小丟棄概率。
如資料包優先順序標籤和隊列表中所述,Cisco 7200、3600和2600系列等思科路由器平台將pak_priority消息放入一組單獨的隊列中,而不是分類預設隊列集中。
介面上有三組隊列:
2^n個基於流的隊列,這些隊列將此類報頭值視為源IP地址和目標IP地址。實際隊列數取決於介面或虛電路的頻寬。請參閱Cisco IOS命令參考中fair-queue命令的說明。
使用者建立的類的隊列。
根據連結型別的雜湊值訪問的隊列。例如,IP微流由公平排隊系統根據源地址和目標地址及埠的雜湊、TOS位和IP協定編號分類到隊列中。幀中繼本地管理介面(LMI)消息根據指示消息為LMI的幻數雜湊排隊。帶有pak_priority標誌的消息進入這些單獨的連結型別隊列。
此表列出了頻寬大於512 Kbps的介面的各種隊列及其會話ID(如show policy-map interface或show queue命令的輸出所示)。
會話/隊列編號 | 流量型別 |
---|---|
1 - 256 | 常規基於流的流量隊列。與使用者建立的類不匹配的流量與class-default和基於流的隊列之一匹配。 |
257 - 263 | 保留給思科發現協定和使用內部高優先順序標籤的資料包。 |
264 | 優先順序類(使用priority命令配置的類)的保留隊列。 在show policy-map interface輸出中查詢類的「Strict Priority」值。優先順序隊列使用的會話ID等於動態隊列數加8。 |
265及更高版本 | 使用者建立的類的隊列。 |
注意:此表中的值取決於實施情況,可能會發生變化。
中間系統到中間系統(IS-IS)路由控制資料包是有關排隊和資料包優先順序的特殊情況。
IS-IS是國際標準化組織(ISO)無連線網路協定(CLNP)的路由協定。 CLNP的開發者將TCP/IP視為開放式系統互聯(OSI)套件最終會取代的臨時協定套件。為了支援這一預計的過渡,建立了Integrated IS-IS(或雙IS-IS)作為IS-IS的擴展,以提供能夠路由無連線模式網路服務(CLNS)和IP的單一路由協定。此通訊協定設計為可在純CLNS環境、純IP環境或雙CLNS/IP環境中執行。
即使IS-IS僅用於路由TCP/IP,IS-IS仍然是ISO CLNP協定。IS-IS與其對等體通訊的資料包是CLNS協定資料單元(PDU),這進而意味著,即使在僅IP環境中,排隊系統和Cisco IOS也不能使用IP優先順序來確定CLNS控制消息的優先順序。相反,IS-IS資料包通過路由器內的pak_priority機制接收優先順序。
本節考慮設計隊列策略的三種常規方法,這些方法專門用於在Cisco 7500系列和VIP上嚴重擁塞的情況下將丟棄控制資料包的可能性降至最低。(回想一下,預設情況下,非RSP平台會將控制資料包放在不同的隊列中。)
策略 | 使用時機 | 如何配置的說明 |
---|---|---|
與單獨的隊列匹配。 | 最保守的策略。確保滴水很少或沒有滴水。 | 使用模組化QoS CLI配置單獨的類,並使用bandwidth命令在擁塞期間為匹配流量分配最小頻寬。使用bandwidth命令配置的類根據頻寬而不是根據IP優先順序使用排程「權重」。請參閱瞭解ATM上基於類的加權公平隊列。 |
使用公平排隊與class-default匹配。 | 對於大多數配置而言已足夠。出現擁塞時,某些控制封包可能遭捨棄。 | 使用Cisco IOS自動分配給資料包的IP優先順序6來影響資料包的權重,從而影響其頻寬份額。請參閱瞭解ATM上的加權公平佇列。 |
使用FIFO隊列與class-default匹配。 | 不建議用於擁塞的鏈路。出現擁塞時,某些控制封包可能遭捨棄。 | 此方法不考慮IP優先順序。使用基於VIP的QoS時,pak_priority消息將排入到FIFO隊列的末尾。 |
以下示例說明如何為RIP控制資料包建立單獨的隊列。
class-map match-all rp match access-group 104 ! access-list 104 permit udp any eq rip any eq rip !--- Create a class-map that matches an ACL permitting RIP. ! policy-map bandwidth class voip priority 64 class bus bandwidth 184 class RP bandwidth 8 !--- Create a policy-map (named "bandwidth") and specify !--- class RP. ! interface Serial1/0:0.1 point-to-point bandwidth 256 ip unnumbered Loopback0 ip accounting precedence input no cdp enable frame-relay class sample frame-relay interface-dlci 100 IETF !--- Apply the map-class named "sample" to the PVC. ! map-class frame-relay sample frame-relay cir 256000 frame-relay bc 2560 frame-relay mincir 256000 no frame-relay adaptive-shaping service-policy output bandwidth frame-relay fragment 160 !--- Create a frame relay map-class and apply the service !--- policy inside the map-class.
當您選擇以下方法之一時,請考慮以下因素:
使用的特定路由協定和為hello和資料庫刷新配置的計時器值
需要交換的資料庫的大小,以及是僅定期刷新更新/更改還是刷新完整的表
介面或虛電路上預期的擁塞量
換句話說,請考慮在存在擁塞的情況下實際排隊高優先順序資料包的可能性。
路由器生成的流量代表出站QoS服務策略的特殊情況。某些本地生成的流量必須被視為任何其他使用者流量,並且QoS系統必須將配置的QoS機制應用到此流量。此類流量的一個示例是效能探測器,這些探測器旨在測量給定類的資料包所引發的行為。其他本地生成的流量(尤其是第2層keepalive和路由協定消息)對路由器的基本功能至關重要,不能受某些QoS功能的制約。例如,當平均隊列深度達到高水印時,加權隨機早期檢測(WRED)不得丟棄第2層keepalive
此外,必須謹慎處理髮往路由器的資料包。例如,請記住,應用基於類的策略的服務策略不能應用於發往路由器的資料包,以免丟棄重要的控制消息。
附註: 根據設計,RP生成的資料包不會計入模組化QoS CLI計數器,即使這些資料包已正確分類/排隊。show policy-map interface命令輸出中未記錄這些資料包。
下表列出去往和來自路由器的資料包當前如何與關鍵QoS功能互動。
QoS功能 | 說明 |
---|---|
類別型標籤 |
|
管制 |
|
在Catalyst 6000的Supervisor和多層交換器功能卡(MSFC)上運行Cisco IOS時,RP會使用IP優先順序6標籤路由控制資料包。此標籤值可用於輸出排程,以將路由控制資料包對映到加權循環配置資源(WRR)系統中的高隊列、高閾值。只要使用mls qos 命令全域性啟用QoS,則源自MSFC的路由控制資料包的此類對映將自動發生。如果啟用QoS,將導致系統設定所有隊列引數,例如WRED丟棄閾值、WRR頻寬和隊列限制。在全域性禁用QoS的情況下,所有資料包都對映到WRR的低隊列、低輸出排程閾值。
如Catalyst 6000設定指南設定QoS一章所述,QoS支援在乙太網路輸入連線埠上使用第2層服務類別(CoS)值進行分類、標籤、排程和擁塞規避。乙太網入口埠的分類、標籤、排程和擁塞避免不使用或設定第3層IP優先順序或DSCP值。此外,對於任何交換引擎,QoS都支援乙太網出口埠排程和使用第2層CoS值避免擁塞。因此,關鍵的IP和非IP資料包必須對映到CoS值,即使這些值僅在內部用作資料匯流排報頭的一部分。關鍵IP資料包的IP優先順序值6對映到等效的CoS值6。關鍵的非IP資料包(包括來自MSFC的IS-IS資料包)使用pak_priority標籤進行標籤,然後將此類標籤的資料包對映到CoS值6。此對映在當前Cisco IOS版本中自動發生。
入口策略器或出口策略器都不會標籤源自MSFC且目的地為通過物理乙太網介面傳輸的資料包。
Catalyst 6000上的QoS配置不屬於本文檔的範圍。如需詳細資訊,請參閱設定QoS和Catalyst LAN和ATM交換器支援頁面。
修訂 | 發佈日期 | 意見 |
---|---|---|
1.0 |
15-Feb-2008 |
初始版本 |