資深網絡工程師對於vlan和vxlan應該可以區別開,可是剛入行、或者平時不太關注技術棧的網工們對於vlan和vxlan經常混淆,甚至都沒有聽過vxlan,那麼今天我帶着你們來剖析一下這兩種技術,相信你們可以看得懂!安全
以太網是一種基於CSMA/CD(Carrier Sense Multiple Access/Collision Detect,載波偵聽多路訪問/衝突檢測)的共享通信介質的數據網絡通信技術,當主機數目較多時會致使衝突嚴重、廣播氾濫、性能顯著降低甚至使網絡不可用等問題。經過交換機實現LAN互聯雖然能夠解決衝突(Collision)嚴重的問題,但仍然不能隔離廣播報文。在這種狀況下出現了VLAN(Virtual Local Area Network,虛擬局域網)技術,這種技術能夠把一個LAN劃分紅多個邏輯的LAN——VLAN,每一個VLAN是一個廣播域,VLAN內的主機間通訊就和在一個LAN內同樣,而VLAN間則不能直接互通,這樣,廣播報文被限制在一個VLAN內。網絡
對於規模較大的組網場景,廣播報文的泛濫對於網絡通訊將會形成較大的影響。VLAN技術爲這一問題提供瞭解決方案,VLAN將同一網絡劃分爲多個邏輯上的虛擬子網,並規定當收到廣播報文時,僅僅在其所在VLAN中進行廣播從而防止廣播報文氾濫。VLAN技術在鏈路層的層次中實現了廣播域的隔離。架構
一、虛擬化技術的發展促使大數據、雲計算技術公司採用單個物理設備虛擬多臺虛擬機的方式來進行組網,所以對於支持VLAN的數量要求也在提高,加上VLAN技術最多支持4094個VLAN,所以已經沒法知足需求。負載均衡
二、公有云提供商的業務要求將實體網絡租借給多個不一樣的用戶,這些用戶對於網絡的要求有所不一樣,而不一樣用戶租借的網絡有很大的可能會出現IP地址、MAC地址的重疊,傳統的VLAN僅僅解決了同一鏈路層網絡廣播域隔離的問題,而並無涉及到網絡地址重疊的問題,所以須要一種新的技術來保證在多個租戶網絡中存在地址重疊的狀況下依舊能有效通訊的技術。ide
三、虛擬化技術的出現增長了交換機的負擔,對於大型的數據中心而言,單臺交換機必須支持數十臺以上主機的通訊鏈接才足以知足應用需求,而虛擬化技術使得單臺主機能夠虛擬化出多臺虛擬機同時運行,而每臺虛擬機都會有其惟一的MAC地址。這樣,爲了保證集羣中全部虛機能夠正常通訊,交換機必須保存每臺虛機的MAC地址,這樣就致使了交換機中的MAC表異常龐大,從而影響交換機的轉發性能。工具
基於以上需求,VXLAN技術被提出。性能
英文全稱爲Virtualextensible Local Area Network
,中文意思即虛擬擴展局域網。學習
VXLAN是一種基於IP網絡構建邏輯拓撲、採用「MAC in UDP」封裝方式的二層***技術。大數據
VXLAN可以爲分散的物理站點提供二層和三層互聯,並能爲不一樣用戶提供業務隔離服務。雲計算
VLAN能支持的二層網絡數量有限。VLAN Tag總共4個字節,其中有12bit用來標識不一樣的二層網絡,這樣總共是4000多個。而VXLAN header有8個字節,有24bit用來標識不一樣的二層網絡,這樣總共是1600多萬個。
數據中心的虛擬化給網絡設備帶來的最直接影響就是:以前TOR(Top Of Rack)交換機的一個端口鏈接一個物理主機對應一個MAC地址,但如今交換機的一個端口雖然仍是鏈接一個物理主機可是可能進而鏈接幾十個甚至上百個虛擬機和相應數量的MAC地址。傳統交換機是根據MAC地址表實現二層轉發。以下圖所示,交換機在收到一個數據幀以後,根據VLAN和目的MAC地址,查找到相應的交換機端口,再將數據幀從相應的端口發出。
這個MAC地址表是經過交換機的flood-learn學習並記錄在交換機的內存。交換機的內存比較寶貴,因此MAC地址表的大小一般是有限的。如今由於虛擬化,整個數據中心的MAC地址多了幾十倍,那相應的交換機裏面的MAC地址表也須要擴大幾十倍。若是交換機不支持這麼大的MAC地址表,那麼就會致使MAC地址表溢出。溢出以後,交換機不能將新的MAC地址學習到本身的MAC地址表。若是交換機收到這些MAC地址的數據幀,由於不能經過查錶轉發,會flood到全部的端口。這不但增長了交換機的負擔,還增長了網絡中其餘設備的負擔。爲了不這個問題,能夠用一些更大容量的交換機,可是相應的成本也要上升,並且還不能從根本上解決這個問題。
若是使用VXLAN,虛擬機的Ethernet Frame被VTEP封裝在UDP裏面,一個VTEP能夠被一個物理主機上的全部虛擬機共用。從交換機的角度,交換機看到的是VTEP之間在傳遞UDP數據。一般,一個物理主機對應一個VTEP,因此交換機的MAC地址表,只須要記錄與物理主機數量至關條目就能夠了,虛擬化帶來的MAC地址表暴增的問題也不存在了。這是VXLAN能解決的,而現有的VLAN沒有辦法迴避的問題。
爲了保證VXLAN機制通訊過程的正確性,rfc7348標準中規定,涉及到VXLAN通訊的IP報文一概不容許分片,這就要求物理網絡的鏈路層實現中必須提供足夠大的MTU值,保證VXLAN報文的順利傳輸,這一點能夠理解爲當前VXLAN技術的侷限性。
VLAN已用於解決不一樣的問題,例如第2層網絡隔離,泛洪和用做路由接口。VLAN支持功能現已在大多數系統和網絡設備(如以太網交換機,路由器和防火牆)中提供。可是,本文的比較主要集中在VLAN標記上。爲了實現不一樣VLAN之間的通訊,VLAN標記是必不可少的部分。
如上所述,VLAN標記使用協議IEEE 802.1Q或ISL(交換機間連接)來標記流經不一樣VLAN的幀。用此方法標記的幀只有一個標記。
可是,與VLAN相比,QinQ技術更加靈活。一方面,它能夠有選擇地將標籤添加到傳入的幀或數據包。另外一方面,外部VLAN標記解決了VLAN ID受限的問題。獨特的內部標籤避免了專用VLAN ID和公用VLAN ID之間的衝突,從而爲小型或大型企業網絡提供了簡單的第2層***解決方案。
注意:VLAN屬於公共網絡
對於VXLAN,它在某種程度上提供了與QinQ相同的功能,但其工做層具備更高的可擴展性。
VXLAN經過MAC-in-UDP封裝數據包,極大地擴展了第2層網絡。衆所周知,隨着雲計算的發展,租戶對網絡建設(尤爲是虛擬數據中心)的要求愈來愈高,這增長了對第2層網絡的需求。
MAC-in-UDP支持使用24位VIND,這使數據中心能夠容納多個租戶並打破物理距離限制和部署。這就是爲何近年來VXLAN在雲計算和虛擬化數據中心變得愈來愈流行的緣由。
可是,與VLAN和QinQ相比,VXLAN技術更昂貴,更復雜。所以,並不是全部的VLAN交換機都支持此功能。
儘管VXLAN要複雜一些,提出的晚一些,普及率也要低一些,可是隨着數據中心規模的發展和虛擬化的普及,VXLAN逐漸成爲構建數據中心網絡的趨勢。
不過理智點看,VXLAN有這麼多優勢,在能夠預見的將來,仍是不能徹底替代VLAN。首先VXLAN是一種overlay網絡,不能獨立存在,必須依賴underlay網絡,而在構建underlay網絡時,仍是須要藉助VLAN。其次,這裏介紹的VXLAN的優點,都是在大規模環境下,若是你的數據中心的規模,不論虛機仍是物理的,就百十臺的樣子,那直接用VLAN也能夠了,不必上VXLAN。
VXLAN最可能是在構建數據中心時的一個選項,而不是惟一的選項。套用馬斯洛的「工具法則」:當你只有一個錘子時,任何東西看起來都像是個釘子。在設計數據中心網絡時,也應該避免用一種方法解決全部問題,VXLAN,VLAN,BGP,E***,OpenStack應該綜合考慮。