本節書摘來自異步社群《nx-os與cisco nexus交換技術:下一代資料中心架構(第2版)》一書中的第1章,第1.5節,作者 【美】ron fuller, ccie#5851 , david jansen, ccie #5952 , matthew mcpherson,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視
nx-os與cisco nexus交換技術:下一代資料中心架構(第2版)
nexus 7000 nx-os軟體支援vdc(virtual device context,虛拟裝置環境),可以将單台nexus 7000實體裝置劃分為多個邏輯裝置。這種邏輯劃分能力具有以下好處:
控制與管理分離;
不同vdc的變更與故障域互相隔離;
位址、vlan、vrf和vpc隔離;
每個 vdc 都相當于一台獨立的裝置,每個 vdc 都能實作獨立的 rbac (roles- based access control management,基于角色的通路控制管理)功能,進而允許大量vdc在維持豐富的、精細的rbac能力的同時,由不同的管理者進行分别管理。通過該功能,每個管理者都能安全地定義獨立于其他 vdc 的vrf名稱和vlan id,因為每個vdc都維護了自己獨有的軟體程序、配置以及資料平面轉發表。
此外,每個 vdc 都維護了一個單獨的 ha(high-availability,高可用性)政策,定義了 vdc 内部發生故障後系統所要采取的操作。根據系統的硬體配置情況,可以關閉或重新開機 vdc,或者重新加載控制引擎。對于備援控制引擎配置來說,可以關閉或重新開機vdc,也可以發起控制引擎切換操作。
例1-11顯示了監控vdc資源的方式。
例1-11 監控vdc資源的方式
例 1-11 的輸出結果顯示了特定 vdc 中用于特定類型路由的共享記憶體量。其中,u4route-mem行表示了單點傳播ipv4路由的記憶體使用情況,前五項至port-channel是記憶體數量,其餘的-mem資訊均以mb為機關。
注:有關詳細資訊請參考第6章。
vdc之間共享的元件如下所示:
支援所有程序和vdc的單一核心執行個體;
控制引擎子產品;
交換矩陣子產品;
電源;
風扇架;
系統風扇架;
cmp;
copp;
硬體span資源。
圖 1-5 顯示了在nexus 7000 上利用 vdc 進行邏輯分段的情況。一種常見應用場景就是橫向整合,以減少資料中心彙聚層中的實體交換機數量。圖 1-5 顯示了兩台nexus 7000實體機箱以及邏輯vdc的部署情況。
預設 vdc 是一個具有全部能力的全功能 vdc。預設 vdc 擁有預設 vdc 所特有的特殊任務。預設 vdc 的特有任務如下所示。
建立/删除/挂起 vdc。
資源配置設定:接口和記憶體。
跨所有 vdc 進行nx-os更新。
更新epld(用于新的硬體功能特性)。
ethanalyzer功能:控制平面/資料平面(攜帶 acl)流量。
為nexus 2000、fabricpath和fcoe安裝功能特性集。
copp。
端口通道負載均衡。
硬體ids檢查控制。
如果滿足操作與管理需求或滿足任務需求,預設vdc也完全可以用于生産性流量,而某些使用者則可能會将預設vdc保留用作管理功能。
非預設 vdc 也是一種擁有全部能力及規模的全功能 vdc。vdc 功能特性是一系列能力的超集,以下功能特性是vdc能力的一個子集:
非預設vdc的變更僅影響該特定vdc;
每個vdc中的每種協定都使用獨立的程序;
每個vdc都有獨立的配置檔案;
每個vdc都有獨立的檢查點;
獨立的rbac、tacacs、snmp等;
獨立的vlan、vrf、生成樹控制平面或拓撲結構、路由協定、私有 vlan等。
nx-os 5.1版本引入了定義每個 vdc行為的子產品型參數,可以指定5種不同類型的i/o子產品。
m1:指定該vdc隻能包含m1子產品。
m1-xl:指定該vdc隻能包含m1-xl子產品。
f1:指定該vdc隻能包含f1子產品。
f2:指定該vdc隻能包含f2子產品。
m2xl:在該vdc中啟用m2型子產品。
預設vdc是limit-resource module-type f1 m1 m1-xl m2-xl (default):預設vdc在vdc中啟用了混合的 m1、m1-xl 和 f1 子產品,例 1-12 解釋了建立 vdc 并将資源子產品類型限定為f1子產品的方式。
例1-12 建立vdc子產品類型
注:配置vdc子產品類型時,滿足以下條件時将出現下述結果:沖突子產品将被置于“suspended(挂起)”狀态。利用oir(online insertion and removal,線上插拔)機制,在帶電狀态下,雖然該子產品處于ok狀态,但是無法對這些接口進行配置,隻能對這些接口進行vdc配置設定。也就是說,将f1接口從m1-only vdc遷移到f1或混合模式vdc。
nexus 7000引入nx-os 5.2.1之後,就可以對f1系列i/o子產品建立fcoe存儲vdc。如果要在 f2 和 f2-e 上支援 fcoe,那麼必須部署 supervisor-2 或 supervisor-2e 以及nx-os 6.1.1及更高版本。存儲vdc可以實作傳統fc(fibre channel,光纖通道)san拓撲結構:fabric a與fabric b分離。目前僅支援單個存儲vdc,不能将預設 vdc 設定成存儲vdc。為了保持目前運作模式,存儲vdc可以将lan管理者與san管理者的工作職責分離。存儲vdc在nexus 7000中建立了具有以下功能特性的“虛拟”mds。
作為完整的fcf參與網絡。
分區、fc别名、fcdomains、ivr、矩陣綁定(fabric binding)等。
支援fcoe目标。
支援到其他交換機的fcoe isl:nexus 7000、5000和mds。
每個機箱隻有一個存儲vdc。
不需要進階許可證(vdc)。
計入 vdc 總數:目前每台 nexus 7000 在supervisor-1 情況下最多支援 4 個vdc,在supervisor-2的情況下支援4+1 個vdc,在supervisor-2e情況下支援8+1個vdc。
共享接口,通常一個接口隻能位于一個vdc中,共享接口是該規則的例外情況。共享接口的概念适用于伺服器中安裝了cna的f1、f2和f2e子產品。流量基于二層ethertype(以太網類型),以太網vdc“擁有”該接口,存儲vdc也能看見該接口。
作為唯一的例外情況,共享接口允許兩個 vdc 共享同一個接口。當 f1 接口連接配接了運作fcoe的cna(converged network adapter,融合網絡擴充卡)時就支援共享接口,根據二層ethertype資訊可以實作流量分離。fcoe包括兩類元件,這兩類ethertype隻會被引導到運作了fcoe的存儲vdc中,其他ethertype都會被引導到以太網vdc(非存儲vdc)中:
1.控制平面,fip(fcoe initialization protocol,fcoe初始化協定)ethertype值為0x8914。
2.資料平面,fcoe ethertype值為0x8906。
圖 1-6給出了共享接口的概念。其中,連接配接nexus 7000 f系列子產品上的伺服器中安裝了can。
nexus 7000對共享接口的要求如下:
最低軟體版本為nx-os 5.2(1);
接口必須是f1、f2或f2e i/o子產品;
在預設 vdc 與存儲vdc之間共享;
在非預設vdc與存儲vdc之間共享;
必須将該接口配置設定給以太網vdc;
必須在以太網vdc中将共享接口配置為802.1q中繼接口;
必須将 asic 上的兩個端口都配置為共享接口,并将共享接口配置設定給存儲vdc。
例1-13顯示了在nexus 7000上配置共享接口的方式。
例1-13 在nexus 7000上配置共享接口
由于每個 vdc 都相當于一台交換機,因而為了實作 vdc 之間的通信,必須滿足以下條件:
必須使用前面闆端口進行vdc之間的通信,目前還不支援軟交叉連接配接或背闆進行vdc之間的通信;
存儲共享端口;
前面闆端口的安全模型必須保持一緻,以確定qos、acl、netflow等資源;
l2/l3或線卡型号沒有限制;
在vdc之間使用vpc或vpc+時,必須確定域id的唯一性。
本節将讨論vdc的建立過程。建立了 vdc之後,還要為vdc配置設定資源。nx-os始終從預設的admin vdc(管理vdc,即vdc 1)開始建立vdc。
注:目前每台配置了supervisor-1的nexus 7000機箱最多可支援4個vdc:預設vdc(vdc 1)和3個附加vdc。可以用supervisor-2或supervisor-2e配置附加vdc;而supervisor-2支援4個vdc和1個admin vdc,supervisor-2e支援8個vdc和1個admin vdc。不能為admin vdc配置設定任何資料平面接口,admin vdc中隻能有mgmt0接口。
例1-14在egypt上配置了名為core的vdc。
例1-14 在egypt上配置名為core的vdc
建立了 vdc 之後,必須為 vdc 配置設定相應的實體資源。根據交換機中安裝的以太網子產品,支援的接口配置設定情況如下。
對于32端口10ge子產品(n7k-m132xp-12和n7k-m132xp-12l)來說,以端口組(port-group)為基礎配置設定接口資源,一共8個端口組。例如,端口組1的接口是e1、e3、e5、e7,端口組2的接口是e2、e4、e6、e8。
m2子產品可以在vdc或機箱内與m1/f1子產品共同使用。
nexus 7000機箱安裝的硬體子產品不同,相應的接口配置設定方式也有所不同。下面将詳細讨論每種硬體子產品及其接口配置設定情況。
1.接口配置設定:n7k-m132xp-12和n7k-m132xp-12l
以每個vdc為基礎配置設定接口,而且不能跨vdc共享接口。将接口配置設定給vdc之後,該vdc的後續配置就完成了。n7k-m132xp-12和n7k-m132xp-12l要求以4端口的端口組方式配置設定接口,以保持asic資源的一緻性:
以每個vdc為基礎配置設定接口,而且不能跨vdc共享接口;
将接口配置設定給vdc之後,該vdc的後續配置就完成了;
n7k-m132xp-12和n7k-m132xp-12l要求以4端口的端口組方式配置設定接口,以保持asic資源的一緻性。
圖1-17顯示了n7k-m132xp-12和n7k-m132xp-12l子產品的接口配置設定情況。
2.接口配置設定:n7k-f132xp-15
以每個vdc為基礎配置設定接口,而且不能跨vdc共享接口(除非有fcoe)。将接口配置設定給vdc之後,該vdc的後續配置就完成了。n7k-f132xp-15要求以2端口的端口組方式配置設定接口,以保持asic資源的一緻性:
以每個vdc為基礎配置設定接口,而且不能跨vdc共享接口(除非有fcoe);
n7k-f132xp-15要求以2端口的端口組方式配置設定接口,以保持asic資源的一緻性。
圖1-18顯示了n7k-f132xp-15子產品的接口配置設定情況。
3.接口配置設定:n7k-m108x2-12l
以每個vdc為基礎配置設定接口,而且不能跨vdc共享接口。将接口配置設定給vdc之後,該vdc的後續配置就完成了。n7k-m108x2-12l上的每個端口都有自己的asic:
n7k-m108x2-12l上的每個端口都有自己的asic。
圖1-19顯示了n7k-m108x2-12l子產品的接口配置設定情況。
4.接口配置設定:10/100/1000子產品
以每個vdc為基礎配置設定接口,而且不能跨vdc共享接口。将接口配置設定給vdc之後,該vdc的後續配置就完成了。m1 48端口線卡有4個12端口的端口組:
m1 48端口線卡有4個12端口的端口組;
建議将同一端口組的所有成員都配置設定給同一個vdc。
圖 1-20 顯示了 n7k-m148gs-11 和n7k-m148gs-11l 以及 n7k-m148gt-11 和n7k-m148gt-11l子產品的接口配置設定情況。
讀者遇到的一個常見問題就是“nexus 7000 i/o子產品的器件編号(part number)是什麼意思?”例如,器件編号n7k-m108x2-12l意義如下。
n7k:nexus 7000 i/o子產品。
m1:m1轉發引擎。
08:子產品上的接口号。
x2:光接口類型。
1:子產品h/w版本。
2:需要兩個交換矩陣,無n+1交換矩陣備援。
l:xl版本,需要xl許可證。
器件編号n7k-f132xp-15意義如下。
f1:交換矩陣子產品。
32:子產品上的接口數量。
xp:光接口類型sfp+。
5:需要5個交換矩陣,無n+1交換矩陣備援。
5.m2子產品的接口配置設定
對m2子產品來說,端口是以vdc為基礎進行配置設定的,而且不能跨vdc共享端口。
注:不能虛拟化實體接口之後将虛拟化後的邏輯接口關聯到不同的vdc。支援的配置方式是虛拟化實體接口并将虛拟化後的邏輯接口關聯到不同的vrf或不同的vlan。預設情況下,所有的實體端口都屬于預設vdc。
例1-15解釋了将接口配置設定給vdc的方式。
例1-15 将接口配置設定給vdc
為了驗證接口的配置設定情況,可以使用指令show vdc membership(如例1-16所示)。
例1-16 驗證配置設定給vdc的接口
除了接口之外,還可以将其他實體資源配置設定給 vdc,包括ipv4路由記憶體、ipv6路由記憶體、端口通道以及span會話等。需要配置這些資源的配置設定值,以免單個vdc獨占所有的系統資源。例1-17解釋了這些系統資源的配置方式。
例1-17 配置設定系統資源
在vdc配置子模式下還可以定義 vdc 的 ha 政策。利用指令ha-policy即可為vdc定義相應的ha政策(如例1-18所示)。
例1-18 更改vdc的ha政策
ha政策取決于使用場景或vdc的角色。例如,如果nexus 7000安裝了雙控制引擎子產品,或者 vdc 角色是開發/測試,那麼 vdc ha政策可能就是直接關閉該vdc。如果 vdc角色是核心層或彙聚層用例,那麼ha政策可能就應該是切換。