導航:首頁 > 網路設置 > vxlan網路的mtu值多少

vxlan網路的mtu值多少

發布時間:2025-03-22 09:51:29

① VxLAN協議詳解


任何技術的產生,都有其特定的時代背景與實際需求,VXLAN正是為了解決雲計算時代虛擬化中的一系列問題而產生的一項技術。那麼我們先看看 VXLAN 到底要解決哪些問題。

對於同網段主機的通信而言,報文通過查詢MAC表進行二層轉發。伺服器虛擬化後,數據中心中VM的數量比原有的物理機發生了數量級的增長,伴隨而來的便是虛擬機網卡MAC地址數量的空前增加。一般而言,接入側二層設備的規格較小,MAC地址表項規模已經無法滿足快速增長的VM數量。

傳統「二層+三層」的網路在應對這些要求時變得力不從心,雖然通過很多改進型的技術比如堆疊、SVF、TRILL等可以構建物理上的大二層網路,可以將虛擬機遷移的范圍擴大。但是,構建物理上的大二層,難免需要對原來的網路做大的改動,並且大二層網路的范圍依然會受到種種條件的限制。

為了解決這些問題,有很多方案被提出來,VxLAN就是其中之一。VxLAN 是 VMware、Cisco 等一眾大型企業共同推出的,目前標准文檔在 RFC7348 。

在介紹完VxLAN要解決的問題也就是技術背景之後,接下來正式闡述一下VxLAN的定義,也就是它到底是什麼

VXLAN 全稱是 Virtual eXtensible Local Area Network ,虛擬可擴展的區域網。它是一種 Overlay 技術,採用L2 over L4(MAC-in-UDP)封裝方式,是NVO3(Network Virtualization over Layer 3)中的一種網路虛擬化技術,將二層報文用三層協議進行封裝,可實現虛擬的二層網路在三層范圍內進行擴展,同時滿足數據中心大二層虛擬遷移和多租戶的需求。RFC7348上的介紹是這樣的:

A framework for overlaying virtualized layer 2 networks over lay 3 networks.

針對大二層網路,VxLAN技術的出現很好的解決了雲計算時代背景下數據中心在物理網路基礎設施上實施伺服器虛擬化的隔離和可擴展性問題:

VxLAN主要用於數據中心網路。VxLAN技術將已有的三層物理網路作為Underlay網路,在其上構建出虛擬的二層網路,即Overlay網路。Overlay網路通過Mac-in-UDP封裝技術、利用Underlay網路提供的三層轉發路徑,實現租戶二層報文跨越三層網路在不同的站點間傳遞。對於租戶來說,Underlay網路是透明的,同一租戶的不同站點就像是工作在一個區域網中。同時,在同一個物理網路上可以構建多個VxLAN網路,每個VxLAN網路由唯一的VNI標識,不同VxLAN之間互不影響,從而實現租戶網路之間的隔離。

<img src="https://heriam.coding.net/api/share/download/3b7a1d98-ef3f-466b-8653-fc85c6c02c96" onerror="this.src='http://img.wandouip.com/crawler/article/2019420/'this.onerror=null"/>

如上圖所示,VxLAN的典型網路模型中主要包含以下幾個基本元素:

VXLAN是MAC in UDP的網路虛擬化技術,所以其報文封裝是在原始以太報文之前添加了一個UDP頭及VXLAN頭封裝:VTEP會將VM發出的原始報文封裝成一個新的UDP報文,並使用物理網路的IP和MAC地址作為外層頭,對網路中的其他設備只表現為封裝後的參數。也就是說,網路中的其他設備看不到VM發送的原始報文。

如果伺服器作為VTEP,那從伺服器發送到接入設備的報文便是經過封裝後的報文,這樣,接入設備就不需要學習VM的MAC地址了,它只需要根據外層封裝的報文頭負責基本的三層轉發就可以了。因此,虛擬機規模就不會受網路設備表項規格的限制了。

當然,如果網路設備作為VTEP,它還是需要學習VM的MAC地址。但是,從對報文進行封裝的角度來說,網路設備的性能還是要比伺服器強很多。

下圖是 VxLAN 協議的報文,白色的部分是虛擬機發出的原始報文(二層幀,包含了 MAC 頭部、IP 頭部和傳輸層頭部的報文),前面加了VxLAN 頭部用來專門保存 VxLAN 相關的內容,再前面是標準的 UDP 協議頭部(UDP 頭部、IP 頭部和 MAC 頭部)用來在物理網路上傳輸報文。

從這個報文中可以看到三個部分:

<img src="https://Heriam.coding.net/api/share/download/ad57c0e1-1648-4a4c-a8a1-e0c2f2f41e2a" onerror="this.src='https://download.huawei.com/mdl/imgDownload?uuid=.png'this.onerror=null"/>

VxLAN報文各個部分解釋如下:

從報文的封裝可以看出,VXLAN頭和原始二層報文是作為UDP報文的載荷存在的。在VTEP之間的網路設備,只需要根據Outer MAC Header和Outer IP Header進行轉發,利用UDP Source Port進行負載分擔,這一過程,與轉發普通的IP報文完全相同。這樣,除了VTEP設備,現網的大量設備無需更換或升級即可支持VXLAN網路。

VxLAN協議比原始報文多出50位元組的內容,這會降低網路鏈路傳輸有效數據的比例。此外,新增加的VXLAN報文封裝也引入了一個問題,即MTU值的設置。一般來說,虛擬機的默認MTU為1500 Bytes,也就是說原始乙太網報文最大為1500位元組。這個報文在經過VTEP時,會封裝上50位元組的新報文頭(VXLAN頭8位元組+UDP頭8位元組+外部IP頭20位元組+外部MAC頭14位元組),這樣一來,整個報文長度達到了1550位元組。而現有的VTEP設備,一般在解封裝VXLAN報文時,要求VXLAN報文不能被分片,否則無法正確解封裝。這就要求VTEP之間的所有網路設備的MTU最小為 1550位元組。如果中間設備的MTU值不方便進行更改,那麼設置虛擬機的MTU值為1450,也可以暫時解決這個問題。

VxLAN頭部最重要的是VNID欄位,其他的保留欄位主要是為了未來的擴展,很多廠商都會加以運用來實現自己組網的一些特性。

網路中存在多個VTEP,那麼這其中哪些VTEP間需要建立VXLAN隧道呢?如前所述,通過VXLAN隧道,「二層域」可以突破物理上的界限,實現大二層網路中VM之間的通信。所以,連接在不同VTEP上的VM之間如果有「大二層」互通的需求,這兩個VTEP之間就需要建立VXLAN隧道。換言之,同一大二層域內的VTEP之間都需要建立VXLAN隧道。

一般而言,隧道的建立不外乎手工方式和自動方式兩種。

這種方式需要用戶手動指定VXLAN隧道的源和目的IP地址分別為本端和對端VTEP的IP地址,也就是人為的在本端VTEP和對端VTEP之間建立靜態VXLAN隧道。以華為CE系列交換機為例,以上配置是在NVE(Network Virtualization Edge)介面下完成的。配置過程如下:

其中,vni 5000 head-end peer-list 2.2.2.2和vni 5000 head-end peer-list 2.2.2.3的配置,表示屬於VNI 5000的對端VTEP有兩個,IP地址分別為2.2.2.2和2.2.2.3。根據這兩條配置,VTEP上會生成如下所示的一張表:

根據上表中的Peer List,本端VTEP就可以知道屬於同一VNI的對端VTEP都有哪些,這也就決定了同一大二層廣播域的范圍。當VTEP收到BUM(Broadcast&Unknown-unicast&Multicast,廣播&未知單播&組播)報文時,會將報文復制並發送給Peer List中所列的所有對端VTEP(這就好比廣播報文在VLAN內廣播)。因此,這張表也被稱為「頭端復制列表」。當VTEP收到已知單播報文時,會根據VTEP上的MAC表來確定報文要從哪條VXLAN隧道走。而此時Peer List中所列的對端,則充當了MAC表中「出介面」的角色。在後面的報文轉發流程中,你將會看到頭端復制列表是如何在VXLAN網路中指導報文進行轉發的。

自動方式下VXLAN隧道的建立需要藉助於其他的協議,例如通過BGP/EVPN(Ethernet Virtual Private Network)或ENDP(Enhanced Neighbor Discovery Protocol)發現遠端VTEP後,自動在本端和遠端VTEP之間建立VXLAN隧道。

通過上節的內容,我們大致了解 VxLAN 報文的發送過程。概括地說就是虛擬機的報文通過 VTEP 添加上 VxLAN 以及外部的UDP/IP報文頭,然後發送出去,對方 VTEP 收到之後拆除 VxLAN 頭部然後根據 VNI 把原始報文發送到目的虛擬機。

這個過程是雙方已經知道所有通信所需信息的情況下的轉發流程,但是在第一次通信之前還有很多問題有解決:

要回答這些問題,我們還是回到 VxLAN 協議報文上,看看一個完整的 VxLAN 報文需要哪些信息。

總結一下,一個 VxLAN 報文需要確定兩個地址信息:目的虛擬機的 MAC 地址和目的 VTEP 的 IP 地址,如果 VNI 也是動態感知的,那麼 VTEP 就需要一個三元組:

(內層目的虛機MAC, VNI, 外層目的VTEP IP)

組成為控制平面的表來記錄對端地址可達情況。VXLAN有著與傳統乙太網非常相似的MAC學習機制,當VTEP接收到VXLAN報文後,會記錄源VTEP的IP、虛擬機MAC和VNI到本地MAC表中,這樣當VTEP接收到目的MAC為此虛擬機的MAC時,就可以進行VXLAN封裝並轉發。VXLAN學習地址的時候仍然保存著二層協議的特徵,節點之間不會周期性的交換各自的轉發表。對於不認識的MAC地址,VXLAN一般依靠組播或控制中心來獲取路徑信息。組播的概念是同個 VxLAN 網路的 VTEP 加入到同一個組播網路,如果需要知道以上信息,就在組內發送多播來查詢;控制中心的概念是在某個集中式的地方保存了所有虛擬機的上述信息,自動化告知 VTEP 它需要的信息。

每個多播組對應一個多播IP地址,vtep 建立的時候會通過配置加入到多播組(具體做法取決於實現),往這個多播IP地址發送的報文會發給多播組的所有主機。為什麼要使用多播?因為vxlan的底層網路是三層的,廣播地址無法穿越三層網路,要給vxlan 網路所有vtep發送報文只能通過多播。 通過組播的方式承載ARP的廣播報文可以實現整個VxLAN網路下的地址解析以及VSI的MAC地址學習,在這個過程中,只需要有一次多播,因為VTEP有自動學習的能力,後續的報文都是通過單播直接發送的。也可以看到,多播報文非常浪費,每次的多播其實只有一個報文是有效的,如果某個多播組的 vtep 數量很多,這個浪費是非常大的。但是多播組也有它的實現起來比較簡單,不需要中心化的控制,只要底層網路支持多播,只需配置好多播組就能自動發現了。因為並不是所有的網路設備都支持多播,再加上多播方式帶來的報文浪費,在實際生產中這種方式很少用到。綜上,VXLAN和傳統VLAN網路數據平面一樣,數據經過未知單播泛洪->MAC表項及ARP表項建立->單播轉發的過程,我們稱之為自學習模式。但自學習方式過於簡單,其大量的泛洪報文以及無法智能調整的缺點,使得這樣的控制平面構建方式不適合SDN網路。

<img src="https://Heriam.coding.net/api/share/download/a07e6d26-fd6b-438b-9ae3-b83469d61ee5" onerror="this.src='https://download.huawei.com/mdl/imgDownload?uuid=.png'this.onerror=null"/>

VTEP發送報文最關鍵的就是知道對方虛擬機的 MAC 地址和虛擬機所在主機的 VTEP IP 地址,如果實現知道這兩個信息,那麼就不需要多播了。SDN最大的特點就是轉控分離,集中控制。按照這個指導思想,將控制功能單獨剝離出來成為一個單獨的設備便是很自然的事了。這個設備就是 Controller。Controller可以是一個或者一組硬體設備,也可以是一套軟體。Controller與網路中所有設備建立連接,整個VXLAN網路的數據轉發都由Controller來管理。Controller與設備連接的介面稱為南向介面,可以使用OpenFlow、Netconf等協議;對用戶提供服務的介面稱為北向介面,也可以提供API以便與其他管理平台對接或進行深度開發。基於Controller的南向介面,可以通過OpenFlow或OVSDB協議的方式向VTEP設備下發遠端MAC地址表項。具體不在這里進行展開講述。

<img src="https://Heriam.coding.net/api/share/download/e450606f-05c2-4a06-a0b8-38e1b9479a0f" onerror="this.src='https://pic1.mg.com/80/v2-_1440w.jpg'this.onerror=null"/>

前面描述的報文轉發過程都是已知單播報文轉發,如果VTEP收到一個未知地址的BUM報文如何處理呢。與傳統乙太網BUM報文轉發類似,VTEP會通過泛洪的方式轉發流量。BUM(Broadcast, Unknown-unicast, Multicast)即廣播、未知單播、組播流量。根據對泛洪流量的復制方式不同可分為單播路由方式(頭端復制)和組播路由方式(核心復制)兩種。

在頭端復制方式下,VTEP負責復制報文,採用單播方式將復制後的報文通過本地介面發送給本地站點,並通過VXLAN隧道發送給VXLAN內的所有遠端VTEP。

如下圖所示,當VTEP 1上的VM 1發出BUM報文後,VTEP 1判斷數據所屬的VXLAN,通過該VXLAN內所有本地介面和VXLAN Tunnel轉發報文。通過VXLAN Tunnel轉發報文時,封裝VXLAN頭、UDP頭和IP頭,將泛洪報文封裝於單播報文中,發送到VXLAN內的所有遠端VTEP。

遠端VTEP收到VXLAN報文後,解封裝報文,將原始數據在本地站點的VXLAN內泛洪。為避免環路,遠端VTEP從VXLAN隧道上接收到報文後,不會再將其泛洪到其他的VXLAN隧道。

<img src="https://Heriam.coding.net/api/share/download/51d6cba1-24e0-4eb5-9266-ec3f20dc5af9" onerror="this.src='https://download.huawei.com/mdl/imgDownload?uuid=.png'this.onerror=null"/>

通過頭端復制完成BUM報文的廣播,不需要依賴組播路由協議。

組播路由方式的組網中同一個VXLAN內的所有VTEP都加入同一個組播組,利用組播路由協議(如PIM)在IP網路上為該組播建立組播轉發表項,VTEP上相應生成一個組播隧道。

與頭端復制方式不同,當VTEP 1上的VM 1發出BUM報文後,VTEP 1不僅在本地站點內泛洪,還會為其封裝組播目的IP地址,封裝後的報文根據已建立的組播轉發表項轉發到IP網路。

在組播報文到達IP網路中的中間設備時,該設備根據已建立的組播表項對報文進行復制並轉發。

遠端VTEP(VTEP 2和VTEP 3)接收到報文後,解封裝報文,將原始的數據幀在本地站點的指定VXLAN泛洪。為了避免環路,遠端VTEP從VXLAN隧道上接收到報文後,不會再將其泛洪到其他的VXLAN隧道。

由於泛洪流量使用了組播技術,所以整個組網中的網路設備需要支持組播路由協議(如PIM等)來建立組播路徑以便組播報文轉發。

閱讀全文

與vxlan網路的mtu值多少相關的資料

熱點內容
網路游戲公司最怕什麼舉報 瀏覽:122
電腦檢查不出無線網路驅動 瀏覽:664
蘋果手機升級後無法連接無線網路 瀏覽:49
網路船員是什麼意思 瀏覽:780
qq助手網路異常 瀏覽:67
學網路運營從哪裡開始 瀏覽:182
2018網路安全知識競賽 瀏覽:9
光貓自帶wifi無網路連接 瀏覽:360
共建網路安全共享網路文明通稿 瀏覽:628
網路版速達軟體安裝後點擊打開 瀏覽:48
海信手機手機卡數據網路選擇 瀏覽:154
平時網路挺好為什麼會特別卡 瀏覽:612
哪個網路能買口罩 瀏覽:670
金鏟鏟手游更新網路異常怎麼回事 瀏覽:301
無線網連接電腦網路總是斷網 瀏覽:971
小米八哪個是網路天線 瀏覽:435
電腦面板沒有網路共享中心 瀏覽:926
車貸不抵押哪個網路公司好 瀏覽:126
網路狗血小說常見主題類型有哪些 瀏覽:217
1080p看視頻需要多少網路 瀏覽:317

友情鏈接