天天看點

《私有雲計算整合、虛拟化和面向服務的基礎設施》一2.5Layer-2演化

深入研究光纖子產品之前,讓我們想一下目前的優化技術已經克服了以往哪些dc技術缺陷,而目前dc技術還存在哪些可被優化的地方,顯然後者比前者更重要,因為它将帶來更好的技術效率和改善性能。有一個需要注意的問題是,備援l2設計方案時生成樹協定(spanning tree protocol,stp)的副作用。盡管對stp(可以回溯到1985年)已經做了某些優化,但是這些優化仍然未能解決兩個基本的l2設計問題:

stp不支援特定vlan下的l2多路徑,同樣每vlan負載平衡允許使用接入層交換機的兩條上行鍊路,但要求使用者自己配置。之是以沒有其他好的替換方案,是因為資料平面的stp要求必須這樣做以防止産生回路。

為了形成生成樹拓撲使得資料平面對stp産生依賴,将導緻收斂時延,并帶來諸如網絡泛洪、鍊路飽和等潛在危險。

說明:stp的優化措施包括快速生成樹協定(rapid spanning tree protocol,rstp)、每vlan生成樹(per-vlan spanning tree,pvst)、快速每vlan生成樹改進(shengrapid per-vlan spanning tree plus,rapid pvst+)以及多生成樹協定(multiple spanning tree protocol)等。

圍繞這些問題的解決方法之一是部署無回路l2接入拓撲,經典的l2回路拓撲中每個接入層交換機擁有一個上行鍊路。其他都是備援鍊路或處在斷開狀态的鍊路。與經典l2回路拓撲相比,無回路拓撲沒有生成樹斷開端口。圖2-12展示了一個無回路l2接入設計方案,也稱為無回u型以及無回反u型拓撲,兩種方案在l2/l3分界之處有細微差别。

無回路u型拓撲設計方案提供了一條主上行鍊路,通過接入層交換機之間的内部交換機鍊路實作備援,在每個接入層交換機,接入層交換機與相應的802.1q上行鍊路間,802.1q内部交換機鍊路上都配置了vlan,但是彙聚層交換機沒有配置vlan以避免産生回路拓撲。由于系統中不存在回路,是以生成樹不會阻塞端口。該方案主要不利之處為無法在接入對之外擴充vlan,某些故障也有可能會産生黑洞。而如果采用在接入對之外擴充vlan的方案,将形成一個通過彙聚層的回路,啟動stp後,就會回到帶阻塞鍊路的四點回路拓撲上。

《私有雲計算整合、虛拟化和面向服務的基礎設施》一2.5Layer-2演化

在無回路反u型拓撲中,在每個接入層交換機以及相應的802.1q上行鍊路上都配置了vlan,此外還擴充到彙聚層交換機之間。此時,為了防止回路,vlan不會擴充到接入層交換機間。無回路反u型拓撲允許所有上行鍊路都作為主鍊路,為vlan與彙聚層交換機連接配接提供支援,也支援vlan擴充經過接入層,這種拓撲的不利之處在于當彙聚層交換機或者接入層交換機上行鍊路出現故障時,系統沒有提供備用路徑,因而可能形成黑洞或者是不可通路的伺服器。

盡管在兩種拓撲結構中都采用了無回路設計,為了確定安全,仍然需要運作stp以防止在發生線纜或配置錯誤時産生回路降低整個網絡的性能。

雖然“u”型方案聽起來比較新鮮,但該方案的影響以及局限性将使我們重新考慮傳統的解決途徑—l2回路接入拓撲。如圖2-13所示,回路接入拓撲由一個三角形(也即v型)和一個正方形組成。

《私有雲計算整合、虛拟化和面向服務的基礎設施》一2.5Layer-2演化

l2回路接入拓撲與l2設計方案在stp上擁有一樣的問題—網絡越大,收斂時間越長,同時缺乏l2多路徑支援。使用端口通道可以保留資料平面的邏輯生成樹,同時也不會使備援性及負載平衡受到影響,盡管這一方法能夠克服stp的局限性,但是僅有鍊路彙聚也無法建成一個完全備援的dc,因為它無法處理單個交換機故障。cisco公司的虛拟交換系統(virtual switching system,vss)和虛拟端口通道(virtual port channel,vpc)通過建立一個能夠在兩個不同實體交換機上分布的l2端口通道接口解決了上述問題。端口通道的優化特性也足夠讓整個dc擺脫對stp的依賴。本書隻讨論了vpc,由于vss及vpc技術差不多,更多有關vpc的詳細内容,請參考2.5.1節。

借助在l2層對幀路由、多連結半透明互聯(transparent interconnection of lots of link,trill[21])是能夠完全突破經典基于生成樹幀轉發的上司性技術之一。ietf希望通過trill與中間系統到中間系統(intermediate system to intermediate system,is-is[22])的網絡路由協定一起能夠替代stp,從l2角度,實作一種更靈活、可擴充性更好的未來dc設計方案。借助trill,所有處于像is-is轉發狀态的鍊路都能計算轉發表,去除stp後,系統中再也不存在被阻塞的端口,有助于l2多路徑(l2 multipath,l2mp)轉發,增加了系統等分帶寬[23],使得負載偏低的路徑能夠轉發對延遲敏感的幀。

由于is-is屬于鍊路狀态路由協定,是以其收斂時間遠小于stp,借助内部域(級别1)與外部域(級别2)路由變量的概念,網絡泛洪的可能性也大大降低。此外,也更容易發現成本效益最高的路徑來轉發幀,到達目的地的中間跳的次數也減少了,進而縮短了整體時延。trill提供了一種獲得“stp-less”dc的途徑,而vpc則提供了一條到trill的轉換路徑。目前,trill依然還處于研究階段,更多有關trill的讨論則已經超出了本書的範圍。

借助vpc可以使實體連接配接兩個不同交換機之間的鍊路,在第三方下行裝置看起來就像一個單一裝置一樣,并使其成為一個端口通道的一部分。第三方裝置可以是交換機、伺服器或任意其他支援802.3ad端口通道的網絡裝置。隻是這裡概念與vss中稍有不同,此時兩個交換機仍然是互相獨立的,擁有不同的控制及轉發平面。本節讨論的vpc均在cisco nexus 7000(nx7k)以及cisco nexus 5000(nx5k)系列交換機上實作。

簡而言之,vpc有助于對彙聚/核心層交換機進行整合/虛拟化,使它們成為一個單一邏輯實體。更多有關vpc的配置樣例請參考9.6節的相關内容。

vpc要點

vpc設定包括以下部分:

vpc域:一個vpc域組合了兩個vpc對等交換機,每一個vpc擁有一個唯一的域id。

vpc對等交換機:vpc對等交換機是兩個作為對等裝置通過對等鍊路互相連接配接在一起的交換機,它們為vpc建立了一個單一邏輯終端,盡管隻有兩個交換機能夠參與到對等連接配接中,但是這一簡單特性已經足夠克服經典stp的局限。

vpc對等鍊路:vpc對等鍊路是vpc交換機之間的鍊路,通常稱作多機箱以太通道(multichassis etherchannel,mec)鍊路,該鍊路屬于标準的ieee 802.3ad端口通道,帶有一個被修改的stp權重。對等鍊路的功能包括同步對等交換機之間的mac位址,為多點傳播傳輸提供必要的支援,并負責孤立端口間的通信。

vpc成員端口:vpc成員端口是vpc中對等交換機的實體端口,一個運作中的vpc執行個體要求每個對等交換機上的vpc成員端口至少擁有一個端口通道。

孤立端口:vpc拓撲将非vpc節點上的端口連接配接裝置稱為孤立端口。

vpc對等心跳鍊路:對等心跳鍊路是一個運作在帶外管理網絡(不使用對等鍊路)上的邏輯鍊路,它提供了一個l3通信路徑,用于輔助檢測,确定遠端peer工作是否正常。通過vpc對等心跳鍊路發送的幀(心跳消息),可以探測源交換機工作是否已經啟動,vpc是否開始運作。資料或同步資訊不會通過vpc對等心跳鍊路傳送。系統使用對等心跳鍊路來處理雙活故障(即vpc peer之間的peer 鍊路發生故障)。

cisco光纖服務(cisco fabric service,cfs)協定:cfs協定協定是為支援快速狀态配置消息傳送及同步而設計的一種可靠消息協定,vpc借助cfs來傳遞系統配置副本,完成mac和兩個vpc對等交換機之間的internet管理協定(internet group management protocol,igmp)狀态資訊的對比及同步處理。cfs協定同時還能夠驗證vpc成員端口的相容性以建立端口通道,并監測vpc成員端口的狀态。

如圖2-14所示,sw01和sw02是兩個vpc對等交換機(可以為nx7k或nx5k交換機),由它們組建了一個vpc域,通過普通的端口通道配置,将接入層交換機sw03和sw04以及伺服器h2均連接配接到vpc對等交換機處在vpc拓撲中,負責連接配接非vpc節點中的裝置到vpc拓撲的端口被稱為孤立端口,連接配接到孤立端口的伺服器被稱為單宿主伺服器,圖2-14中的伺服器h1和h3都屬于單宿主伺服器類型。h2、sw03、sw04均連接配接到vpc成員端口上。

說明:推薦所有接入層交換機均采用雙重連接配接模式與vpc peer連接配接,如果不這樣,那麼那些隻與一個vpc peer連接配接的交換機或主機将會占用對等鍊路寶貴的帶寬資源,而在對等鍊路或vpc peer發生故障時,也會使得這些交換機或主機成為與網絡隔離的孤立點。

stp不說再見

盡管vpc克服了stp的缺點,但并不能完全代替stp,vpc對運作在對等交換機上的生成樹主要做了如下兩方面改進:

vpc確定了對等鍊路不會間斷轉發行為,而備份vpc對等交換機也會将對等鍊路看成至主vpc對等交換機的根端口。

vpc確定了隻有主vpc對等交換機才會轉發vpc上的橋接協定資料單元(bridge protocol data unit,bpdu),使得從生成樹角度出發,在其他連接配接到vpc系統或拓撲中的接入層交換機看來,兩台對等交換機如同一個單一實體。這樣的改變隻适合vpc成員端口,當vpc成員端口上的備份vpc對等交換機接收到bpdu後,它們将通過把資料對等鍊路轉發給主vpc對等交換機處理。

《私有雲計算整合、虛拟化和面向服務的基礎設施》一2.5Layer-2演化

如果某個端口通道成員發生了故障,vpc方法會采用用端口通道恢複機制而非stp,這一做法在很大程度上減少了整體收斂時間。

說明:非vpc端口或孤立端口(通常為單宿主而非雙宿主)的操作與普通端口一樣,采用标準stp協定,包括mstp及快速pvst+等。vpc專有功能僅适用于vpc成員端口。

本節從設計角度簡要讨論如下vpc概念及元件:

vpc角色及權限

vpc對等鍊路

vpc對等心跳

vpc初始化

vpc及hsrp

必須調用“feature vpc”指令,才能在系統中使用vpc功能,配置vpc時,首先要确定域的id(1~1000)及主從交換機角色,角色優先級為16位整數,預設值為32 767。在vpc系統中,隻有一台vpc對等交換機被确定為主交換機,另外一台交換機将會根據優先級被定義成從交換機。主對等交換機的值比從交換機的值低,因為較低的值優先級更高。代碼清單2.4展示了一個vpc域及優先級配置模闆。

《私有雲計算整合、虛拟化和面向服務的基礎設施》一2.5Layer-2演化

說明:建構vpc系統的兩個對等交換機其域id必須比對。

對等鍊路為連接配接對等交換機的端口通道,負責所有使用者自定義接入vlan。同時,對等鍊路還負責傳送諸如bpdu、熱備份路由協定(hot standby router protocol,hsrp[24])的hello消息以及對等交換機間mac位址同步等控制資訊。如果需要實作高可用性ha,必須将對等鍊路配置成備援模式。nx7k交換機中,該端口通道必須被配置成特定的能跨越兩個獨立10千兆以太網線卡的10千兆以太網接口模式。代碼清單2.5給出了一個vpc對等鍊路配置模闆。

《私有雲計算整合、虛拟化和面向服務的基礎設施》一2.5Layer-2演化

說明:連接配接vpc peer的端口通道(對等鍊路)隻負責支援vpc成員端口需要的vlan傳輸,如果孤立端口使用的vlan也運作在同一鍊路上,一旦對等鍊路發生故障,孤立端口之間的通信就受到破壞。為了避免這一問題,推薦采用雙重連接配接的伺服器,一條端口通道為vpc成員端口服務,另一條端口通道連接配接到單個對等交換機上。

vpc管理系統借助心跳消息來确定對等鍊路及遠端對等交換機是否發生了故障。如果遠端交換機工作狀态正常(即雙活模式下,即使對等鍊路發生故障,依然可以通過帶外對等心跳鍊路響應心跳消息),vpc備份對等交換機将關閉其vpc成員端口,如果收不到對等心跳消息,系統會認為遠端對等交換機出現了故障,此時,心跳消息的發起者将假定隻有自己這方的對等交換機狀态正常并負責資料轉發。當對等鍊路或遠端交換機故障解除後,系統會對在故障中獲得的mac位址重新進行同步處理并按正常狀況轉發。

不建議在與對等鍊路相關的vlan上傳遞心跳消息,推薦通過路由基礎設施(l3雲)發送心跳資訊。心跳資訊包括目标ip位址(遠端)、源ip位址(本地)以及負責對等鍊路傳輸的vrf[25]。代碼清單2.6給出了一個vpc對等心跳鍊路的配置模闆。

《私有雲計算整合、虛拟化和面向服務的基礎設施》一2.5Layer-2演化

說明:當使用備援監測器時,nx7k交換機每一時刻對給定vpc peer上隻有一個活動管理接口,是以在兩個nx7k對等交換機的管理接口之間不要采用直接背靠背連接配接,因為很難确定在某個給定時刻哪個監測器是活動的。對于帶外連接配接,推薦通過槽5上的監測器及槽6上的監測器的mgmt0接口,将每個nx7k對等交換機連接配接到管理網絡(l3雲)上。

在對等交換機上,如果調用“vpc”指令,vpc将被配置成普通端口通道,對等交換機上的成員端口(轉發端口)也會與vpc關聯,vpc對等交換機之間可以交換vpc序号,兩個單獨的本地端口通道配置也将被vpc對等交換機綁定到分布式vpc虛拟端口上。

如果vpc及對等鍊路能夠實作靜态鍊路彙聚,推薦使用鍊路彙聚控制協定(link aggregation control protocol,lacp)以避免發生配置錯誤,也能提供更精确的故障恢複控制。有了lacp,因配置錯誤而産生的不比對端口之間将無法建立端口通道,此時,這些端口将被歸到單個(individual,i)狀态,運作正常生成樹。

lacp是由ieee 802.3ad引入到基于标準的機制,通過lacp兩個交換機之間能夠協商建立端口通道。使用“channel-group”指令可以完成lacp配置,接口配置參數為“active”或“passive”。為了啟動通道協商,至少有一方的端口通道連接配接必須設定成主動模式。代碼清單2.7給出了vpc及vpc成員端口的配置模闆。

《私有雲計算整合、虛拟化和面向服務的基礎設施》一2.5Layer-2演化

說明:vpc序号不一定要與端口通道序号一緻,不過為了便于管理,推薦将它們設定成一樣的值。

vpc和hsrp

nx7k上的hsrp具有一個值得一提的獨特功能,假定兩端的對等交換機均為nx7k,将其中一個配置成主hsrp peer,另外一個配置成從hsrp peer。優化後,主hsrp peer以及從hsrp peer的轉發引擎都能進行本地l3轉發,這樣一來不需要對現有hsrp配置做任何更改,就能在實際上得到主/主hsrp配置。hsrp控制協定依然按照主/從對模式工作,隻有一個主hsrp peer響應位址解析協定(address resolution protocol,arp)請求。如果來自伺服器的(雙重連接配接模式,一個端口通道連接配接到vpc成員端口,另一個連接配接到對等交換機)某個arp到達從hsrp peer,将通過對等鍊路轉發給主hsrp peer。相關對等交換機上的兩個hsrp接口(主/從)都可以轉發可路由網絡傳輸。如果從hsrp peer接收到了源自同一伺服器的網絡流,将直接轉發給下一跳(假設下一跳為合法位址)裝置,不需要再通過對等鍊路将該網絡流轉發給主hsrp。

說明:推薦保留vpc主peer上的預設網關,為此,需要将該vpc主peer配置成所有vlan的主hsrp peer。

在大多數nx1kv設計方案中,要求端口通道能跨越多個接入層交換機,為了友善在交換機之間的跨越,nx1kv交換機提供了兩種配置方式,這兩種方法都不要求在上行交換機中配置端口通道:

vpc主機模式(vpc hm)

mac綁定

vpc主機模式

在vpc-hm模式中,nx1kv交換機上配置的端口通道被分成子群(更小的邏輯端口通道),每一個子群代表一條或多條連接配接一個上行實體交換機的上行鍊路(eth接口),系統采用輪叫機制将vem上的每個veth接口(更多細節請參考2.3.3節的“vem 交換機端口分類”中的内容)映射到一個或兩個子群上。相應地,所有來自veth接口的網絡傳輸都通過給定子群完成,如果某個給定子群發生故障,剩下的子群也不能再使用該veth接口,但如果最初的指定子群恢複工作,網絡傳輸将重新轉移到該子群上。

圖2-15展示了兩個vpc-hm樣例,圖的左邊為兩個nic共用一條端口通道。其中兩個nic都是端口通道1的一部分,配置成vpc-hm模式,分别連接配接到兩個上行交換機,兩個nic共用一個上行鍊路配置檔案,通過源mac位址雜湊演算法,将vm的負載平衡分布到兩條上行鍊路中。

《私有雲計算整合、虛拟化和面向服務的基礎設施》一2.5Layer-2演化

說明:nx1kv交換機支援17種雜湊演算法來平衡經過端口通道實體接口的負載。這些算法分成兩類:基于源的散列和基于流的散列。基于源的雜湊演算法確定不管端口通道中有多少條鍊路,一個mac位址隻會向下沿着其中一條鍊路進行傳送。

圖2-15的右邊為4個nic共用兩條端口通道,每一個端口通道都擁有一個鍊路連接配接到上行交換機。此時,每一個vpc-hm子群都擁有一條單獨的鍊路,是以不需要在上行交換機對端口通道進行配置,在該樣例中,負載平衡處理依然采用了源mac位址雜湊演算法。

如果上行交換機支援cdp消息,則可以通過上行交換機傳回到cdp消息,将端口通道中連接配接到同一上行交換機的eth接口自動綁定在同一子群内。如果上行交換機不支援cdp消息,或者系統需要覆寫cdp消息,也可以通過接口級配置,人為地把接口配置設定到特定子群中。

當多個上行鍊路都彙聚在nx1k交換機中的同一子群時,上行鍊路需要一個端口通道被配置成能夠将所有這些鍊路綁定在一起,該端口必須要選用“mode on”指令參數。圖2-16展示了另一個vpc-hm樣例,這一次是4個nic帶1個端口通道,這個單獨的基于vpc-hm的端口通道部署形式為将vm的負載分布到盡可能多的nic上。此設計方案的主要優勢在于vm資料傳輸可以利用所有4個nic,并且能夠靈活地支援基于流的雜湊演算法。如果使用了基于流的散列,每一個上行交換機就必須配置一個端口通道,不過如果使用基于源的雜湊演算法,就不要求采用這種配置。

《私有雲計算整合、虛拟化和面向服務的基礎設施》一2.5Layer-2演化

說明:基于流的散列可以使來自單個mac位址的網絡流同時分布到端口通道内多個鍊路上,提供了一種更精确的負載平衡方法。增加了vm可得帶寬,提高了端口通道中上行鍊路的利用效率。

mac綁定将所有來自伺服器的上行鍊路(eth接口)都當做單獨的鍊路處理,并以輪詢方式為這些鍊路配置設定來自不同eth接口的mac位址。如圖2-17左邊所示,mac綁定方法能夠確定上行交換機的多個接口均看不見vm的mac位址。如果某個上行鍊路發生故障,nx1kv交換機将發送一個免費arp[26]消息來通知上行交換機,告知它從之前eth接口所獲得的veth接口mac位址将會被重新綁定到另外一個eth接口上。該過程的說明如圖2-17的右邊部分所示。有了mac綁定,vem(或eth接口)在連接配接上行交換機時可以不必再配置上行資訊。

《私有雲計算整合、虛拟化和面向服務的基礎設施》一2.5Layer-2演化

繼續閱讀