0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

一文分析VLAN和VxLAN網(wǎng)絡(luò)虛擬技術(shù)

h1654155282.3538 ? 來源: 弱電干貨 ? 作者:弱電干貨 ? 2021-03-21 10:42 ? 次閱讀

本文將對VLAN(VirtualLocalAreaNetwork,虛擬局域網(wǎng))和VxLAN(VirtualeXtentialLAN,虛擬可拓展局域網(wǎng))進(jìn)行探究。值得一提的是,雖然VLAN和VxLAN這兩個名字非常接近,不過其解決的問題范疇是不同。

純物理的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)具有良好的性能,但是這種寫死在電路里的拓?fù)浣Y(jié)構(gòu)不易修改,所能承載的業(yè)務(wù)需求也非常有限,因此有必要通過軟件化的方式來對網(wǎng)絡(luò)拓?fù)溥M(jìn)行改良,賦予其靈活性。

在設(shè)計(jì)物理網(wǎng)絡(luò)拓?fù)鋾r,很難把需求一一對應(yīng)到拓?fù)湓O(shè)計(jì)中,即使花了大力氣按業(yè)務(wù)需求或組織架構(gòu)把網(wǎng)絡(luò)搭建起來,未來也非常大概率需求會發(fā)生變化或組織架構(gòu)發(fā)生變化。這時候如果單一依靠物理網(wǎng)絡(luò)拓?fù)渚吞y為網(wǎng)絡(luò)架構(gòu)師了。

如上圖所示,在網(wǎng)絡(luò)搭建之初,通過交換機(jī)堆疊或級聯(lián)方式形成了一個大的二層網(wǎng)絡(luò),里面包含了PCwitheth0-1~8共8個主機(jī);后來業(yè)務(wù)需求發(fā)生了變化,同時為了安全和性能上的考慮,需要把這些連接在同一個二層網(wǎng)絡(luò)的機(jī)器區(qū)分開來,比如把eth0-1,6,7,8劃分為vlan-1子網(wǎng),把eth0-2,3,4,5劃分為vlan-2子網(wǎng)。當(dāng)eth0-1發(fā)送訊息時,它首先向交換機(jī)獲取節(jié)點(diǎn)列表,這時候交換機(jī)返回給它的是eth0-6,7,8三個節(jié)點(diǎn),其他的eth0-2~5則不會返回;也就是說,雖然這8個節(jié)點(diǎn)是連接在同一個物理層面的二層交換機(jī)群,但是邏輯上已經(jīng)被分成了兩個交換機(jī)網(wǎng)絡(luò),即兩個VLAN網(wǎng)絡(luò)。

那么,如何讓上圖中展示的vlan-1中的機(jī)器與vlan-2中的節(jié)點(diǎn)互相通信呢?既然已經(jīng)可以看做是兩個分離的交換機(jī)網(wǎng)絡(luò)了,必須通過設(shè)定IP并配置網(wǎng)關(guān)的方式才能讓這兩個子網(wǎng)里的節(jié)點(diǎn)連通。

從原理上,可以把VLAN中節(jié)點(diǎn)的互通按照同一個交換機(jī)互通和跨交換機(jī)互通分別討論。

在一臺未設(shè)置任何VLAN的二層交換機(jī)上,任何廣播幀都會被轉(zhuǎn)發(fā)給除接收端口外的所有其他端口(Flooding)。為了實(shí)現(xiàn)VLAN,

①我們可以寫一個配置文件,直接告訴交換機(jī)哪些端口屬于VLAN-1,哪些端口屬于VLAN-2。如果交換機(jī)比較高級,

②我們還可以通過Mac地址、IP地址或其他用戶信息來動態(tài)劃分VLAN,告訴交換機(jī)根據(jù)掛載到端口的節(jié)點(diǎn)的某個信息來動態(tài)地調(diào)整哪些節(jié)點(diǎn)屬于VLAN-1,哪些節(jié)點(diǎn)屬于VLAN-2。

如果僅是同一個交換機(jī),因?yàn)榕渲眯畔⒍紝懭肓讼到y(tǒng)存儲,決策哪個端口屬于哪個VLAN是非常方便的。但是,一旦涉及到跨交換機(jī),問題就變成了在多個大腦參與決策的情況下,如何實(shí)現(xiàn)信息的同步的問題。比如PCwitheth0-2向交換機(jī)-a詢問vlan-2網(wǎng)絡(luò)里的機(jī)器列表時,交換機(jī)-a除了要返回自己身上掛載的節(jié)點(diǎn)外,還需要告知交換機(jī)-b它期望得到vlan-2網(wǎng)絡(luò)里的節(jié)點(diǎn)(而不是所有連通到交換機(jī)-b的節(jié)點(diǎn))。換句話說,勢必要通過某種方式把得到vlan-2網(wǎng)絡(luò)里的節(jié)點(diǎn)而不是所有節(jié)點(diǎn)這個信息在各交換機(jī)之間同步,否則就談不上vlan-2是虛擬局域網(wǎng)了。(題外話,此刻應(yīng)該能感受到合作的首要條件是信息同步?。。。?/p>

進(jìn)一步地,

①我們可以在每當(dāng)多劃分出一個VLAN網(wǎng)絡(luò)時各交換機(jī)之間就多拉出一條線出來(通過交換機(jī)上的訪問連接);比如在交換機(jī)-a與交換機(jī)-b之間拉起兩條線,一條專門用于彼此獲取vlan-1的節(jié)點(diǎn)列表,另一條專門用于彼此獲取vlan-2的節(jié)點(diǎn)列表。這種方式對交換機(jī)的要求比較低,不過顯然可擴(kuò)展性低,試想如果我們此刻多了一個vlan-3網(wǎng)絡(luò),那豈不是還要再多拉一條線。因此有了另一種方式,

②通過匯聚鏈接(只需一條線)把各個交換機(jī)連通起來,在不同交換機(jī)間獲取節(jié)點(diǎn)列表時只需把特定vlan的信息加上;比如交換機(jī)-a向交換機(jī)-b發(fā)請求前,在請求中添加一個標(biāo)識,標(biāo)明當(dāng)前請求索要的是vlan-1的節(jié)點(diǎn),當(dāng)交換機(jī)-b接收到請求后,看到標(biāo)識位是vlan-1,于是向所有的vlan-1中的節(jié)點(diǎn)發(fā)起廣播,從而只給交換機(jī)-a傳回vlan-1中的節(jié)點(diǎn)列表。

對于多臺交換機(jī)之間的VLAN的實(shí)現(xiàn),業(yè)界有兩個具有代表性的協(xié)議:1)一個是IEEE802.1Q,俗稱“DotOneQ”,是經(jīng)過IEEE認(rèn)證的對數(shù)據(jù)幀附加VLAN識別信息的協(xié)議;2)另一個是ISL(InterSwitchLink),是Cisco產(chǎn)品支持的一種與IEEE802.1Q類似的、用于在匯聚鏈路上附加VLAN信息的協(xié)議。(可以看出來為啥Cisco牛x了吧,有實(shí)力制定底層基礎(chǔ)設(shè)施的協(xié)議?。┚唧w協(xié)議的實(shí)現(xiàn)細(xì)節(jié)大家可以自行去搜索,這里就不詳細(xì)描述了。

十年前對云計(jì)算的論道,BAT三家給出了不同的看法,并且各家在各自的執(zhí)念中成長與發(fā)展(基于此是否可以認(rèn)為一個人未來變成什么樣子與Ta能向前看多遠(yuǎn)有正相關(guān)的關(guān)系?);其實(shí)更早時間,Amazon已經(jīng)發(fā)力在做云計(jì)算的產(chǎn)品并被業(yè)界視為典范了。那么什么是云計(jì)算呢?

假如我想自己搭建一個網(wǎng)站,于是隨便到一家云計(jì)算平臺(Amazon、阿里云、華為云、騰訊云,等等)購買一臺2CPU核1G內(nèi)存的主機(jī);云計(jì)算平臺在我下單后馬上就給了我一臺云主機(jī),而且CPU、內(nèi)存、網(wǎng)絡(luò)、磁盤等都是購物單子里填好的參數(shù)!我上線了網(wǎng)站以后,發(fā)現(xiàn)流量比較大,覺得有必要再擴(kuò)一臺主機(jī)來承載業(yè)務(wù),于是又買了一臺4CPU核8G內(nèi)存的主機(jī),交完錢立馬就獲得了另一個期望配置的云主機(jī),CPU、內(nèi)存、網(wǎng)絡(luò)、磁盤都是預(yù)期的配置,尤其新機(jī)器的網(wǎng)絡(luò)與我的第一臺主機(jī)在同一個網(wǎng)段里,方便我讓兩臺主機(jī)之間進(jìn)行耦合。后來有一天,云計(jì)算平臺電源故障,我的其中一個云主機(jī)正好在故障的物理機(jī)柜上面,云計(jì)算平臺的運(yùn)維第一時間聯(lián)系到我,跟我說已經(jīng)把我的云主機(jī)遷移到了另一個機(jī)房,理論上服務(wù)不會感知到,可能部分請求會出現(xiàn)超時。

上面描述的就是云計(jì)算的一種應(yīng)用場景了。

云計(jì)算能夠提供穩(wěn)定的服務(wù),給客戶非常好的體驗(yàn)。不過云主機(jī)動態(tài)實(shí)例化并且能夠幾近零故障地在物理機(jī)上漂來漂去,它的網(wǎng)絡(luò)該如何架構(gòu)才能滿足需求呢?

既然我們已經(jīng)知道是通過虛擬技術(shù)實(shí)現(xiàn)的,那么可以畫一張上圖所示的架構(gòu)圖示意云計(jì)算中的網(wǎng)絡(luò)架構(gòu);其中物理層就是《夢回課堂——重溫基礎(chǔ)網(wǎng)絡(luò)拓?fù)湓怼芬约氨疚摹熬W(wǎng)絡(luò)虛擬技術(shù)——VLAN”涉及到的技術(shù)所在的層(雖然VLAN也是一種虛擬技術(shù),不過它確實(shí)在物理層工作),虛擬層是云主機(jī)所在的層,也就是云計(jì)算平臺給客戶的交付物。

假如vm-1和vm-2是我申請到的兩臺云主機(jī),從圖上可以看到它們兩個是運(yùn)行在不同的宿主機(jī)上面的(前者在host-1上面,后者在host-2上面)。那么當(dāng)vm-1上的服務(wù)想要訪問vm-2上的服務(wù)的時候,網(wǎng)絡(luò)應(yīng)該怎么走呢?必然要基于物理網(wǎng)絡(luò)來實(shí)現(xiàn)!也就是圖中紅色虛線所示意的網(wǎng)路:vm-1《=》host-1《=》交換機(jī)+路由器《=》host-3《=》vm-2。從圖中還可以看到,vm-1的IP被分配為172.0.1.1/24,vm-2的IP被分配為172.0.1.2/24,假如這個時候host-1出現(xiàn)了故障,vm-1漂到了host-2到了vm-1‘的位置,網(wǎng)路變成了vm-1’《=》host-2《=》交換機(jī)+路由器《=》host-3《=》vm-2,但是為了保證云主機(jī)上服務(wù)的正常,需要保證vm-1‘的IP依然為172.0.1.1/24。

由上面的描述可以知道,在虛擬層里的云主機(jī)是感知不到物理層的存在的,這樣才能保證自己的完整性;也就是說,上圖(虛擬網(wǎng)絡(luò)架構(gòu)圖)中的vm-1只能看到網(wǎng)路中存在一個vm-2,但是無法知道自己運(yùn)行在哪一臺宿主機(jī)上,更不知道宿主機(jī)在什么樣的網(wǎng)絡(luò)環(huán)境中。業(yè)界把能夠滿足這種網(wǎng)絡(luò)需求的技術(shù)叫做overlay網(wǎng)絡(luò),而VxLAN是overlay網(wǎng)絡(luò)的一種具體的技術(shù)實(shí)現(xiàn),所以VxLAN也沒什么神秘的。

不過既然物理層是透明的,那么虛擬層勢必要在自己的層虛擬出交換機(jī)、路由器等基礎(chǔ)設(shè)置,也就是上圖中虛擬層基礎(chǔ)設(shè)施層所包含的組件,從而保證虛擬層中的虛擬機(jī)集群正常工作。我們可以想象,這不是一件簡單的工程實(shí)現(xiàn)。不過既然協(xié)議是分層的,那么我們可以參考OSI模型以及TCP/IP協(xié)議族的實(shí)現(xiàn)方式,給虛擬機(jī)之間的網(wǎng)絡(luò)請求再封裝一層VxLAN的協(xié)議來實(shí)現(xiàn)這一切。

pIYBAGBWstyANvxTAAM0b8eh3dI419.png

如果對TCP/IP協(xié)議比較熟悉,從報文里可以比較容易地看出來VxLAN的實(shí)現(xiàn)原理。這里我以虛擬網(wǎng)絡(luò)架構(gòu)圖中vm-1與vm-2之間的通信為例描述一下數(shù)據(jù)封包的過程:1)vm-1向vm-2發(fā)起請求,由于二者在同一個虛擬網(wǎng)段中,因此vm-1與vm-2互相知道彼此的IP地址和MAC地址,因此原始請求(假設(shè)為A)中包含了這些信息。2)由于vm-1與vm-2是運(yùn)行在虛擬層的云主機(jī),其請求歸根結(jié)底還是要通過底層的物理網(wǎng)絡(luò)進(jìn)行傳輸?shù)?,因此請求A是無法進(jìn)行傳遞的;但為了實(shí)現(xiàn)信息傳遞,在請求A經(jīng)過時,虛擬層基礎(chǔ)設(shè)施層勢必會去一個全局的表里查找vm-1與vm-2各自對應(yīng)的宿主機(jī)信息,并根據(jù)這個信息以及宿主機(jī)具體的網(wǎng)絡(luò)環(huán)境把請求A在物理層的網(wǎng)路“畫”出來,給請求A封裝一層VxLAN的協(xié)議,然后就拋給物理層去處理了。3)物理層根據(jù)VxLAN協(xié)議封裝的信息把請求轉(zhuǎn)發(fā)到對應(yīng)的宿主機(jī)host-3,然后經(jīng)過虛擬層基礎(chǔ)設(shè)施層解包后,把請求A發(fā)給vm-2。vm-2回復(fù)vm-1時會走一遍相似的過程,如此vm-1與vm-2便實(shí)現(xiàn)了通信。

從上面的描述來看,虛擬層基礎(chǔ)設(shè)施層是VxLAN中的關(guān)鍵實(shí)現(xiàn)。如果我們拋開物理層的細(xì)節(jié),把物理層抽象成為多臺物理機(jī),那么虛擬層基礎(chǔ)設(shè)施層需要在這些物理機(jī)上面重新實(shí)現(xiàn)一套二層網(wǎng)絡(luò)(交換機(jī)所在層)。同時由于這個網(wǎng)絡(luò)需要整合所有物理機(jī)的資源,因此虛擬層基礎(chǔ)設(shè)施層需要對所有的物理機(jī)擁有管理權(quán)限,至少有所有物理機(jī)的特定狀態(tài)的知情權(quán)。

舉個例子,當(dāng)vm-1與vm-2添加到同一個網(wǎng)段的時候,理論上他們需要獲取彼此的MAC信息,這個時候vm-1發(fā)起廣播,這個時候就需要虛擬層基礎(chǔ)設(shè)施層用“魔法”把廣播的信息發(fā)送到vm-2去。更實(shí)際一點(diǎn),假如這個時候虛擬層基礎(chǔ)設(shè)施層還不知道該怎么傳遞信息,它將不得不給所有的物理機(jī)發(fā)送請求,遍歷所有物理機(jī)上的所有虛擬機(jī)直到找到需要的所有虛擬機(jī)的列表為止(當(dāng)然為了避免未來做重復(fù)的事情,或許會有緩存機(jī)制)。

再舉個例子,由于虛擬機(jī)可能運(yùn)行在任何一臺物理機(jī)上面,因此虛擬層基礎(chǔ)設(shè)施層中的網(wǎng)關(guān)需要有權(quán)限獲取所有的物理機(jī)上的虛擬機(jī)信息,這樣才能在對的時間把請求路由到對的虛擬機(jī)。這也隱含著另外一層信息,假如虛擬層基礎(chǔ)設(shè)施層需要把虛擬層以及物理層的復(fù)雜拓?fù)浣Y(jié)構(gòu)保存起來,存儲數(shù)據(jù)的地方應(yīng)該是一個集中化的數(shù)據(jù)庫(比如ETCD),這樣的話它的性能及穩(wěn)定性就要考慮了。

本文對VLAN和VxLAN技術(shù)進(jìn)行了探究。VLAN技術(shù)的實(shí)現(xiàn)主要依托于交換機(jī),在物理的二層網(wǎng)絡(luò)上虛擬出邏輯上的二層網(wǎng)絡(luò);VxLAN技術(shù)則在物理的三層和四層網(wǎng)絡(luò)上虛擬出邏輯上的二層網(wǎng)絡(luò)。了解完這兩個概念及其原理以后,后面再去探究Docker以及Kubernetes的網(wǎng)絡(luò)模型應(yīng)該就不難了。
責(zé)任編輯人:CC

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • VLAN
    +關(guān)注

    關(guān)注

    1

    文章

    262

    瀏覽量

    35443
  • 網(wǎng)絡(luò)虛擬
    +關(guān)注

    關(guān)注

    0

    文章

    5

    瀏覽量

    6595
  • VxLAN
    +關(guān)注

    關(guān)注

    0

    文章

    23

    瀏覽量

    3804
收藏 人收藏

    評論

    相關(guān)推薦

    提升工業(yè)網(wǎng)絡(luò)安全與性能:VLAN技術(shù)詳解

    網(wǎng)絡(luò)技術(shù)的不斷發(fā)展之下,VLAN虛擬局域網(wǎng))作為種重要的網(wǎng)絡(luò)分割和管理技術(shù),早已得到了廣泛
    的頭像 發(fā)表于 06-21 18:08 ?2364次閱讀
    提升工業(yè)<b class='flag-5'>網(wǎng)絡(luò)</b>安全與性能:<b class='flag-5'>VLAN</b><b class='flag-5'>技術(shù)</b>詳解

    虛擬局域網(wǎng)(VLAN)路由配置手冊

    虛擬局域網(wǎng)(VLAN)路由配置手冊 虛擬局域網(wǎng)(VLAN) 當(dāng)前在我們構(gòu)造企業(yè)網(wǎng)絡(luò)時所采
    發(fā)表于 04-01 14:00 ?1397次閱讀
    <b class='flag-5'>虛擬</b>局域網(wǎng)(<b class='flag-5'>VLAN</b>)路由配置手冊

    虛擬局域網(wǎng)vlan的好處及優(yōu)點(diǎn)分析

    本文開始介紹了什么是虛擬局域網(wǎng)與虛擬局域網(wǎng)的組建,其次介紹了虛擬局域網(wǎng)分類及虛擬局域網(wǎng)的優(yōu)點(diǎn),最后分析
    發(fā)表于 02-11 09:24 ?3.2w次閱讀
    <b class='flag-5'>虛擬</b>局域網(wǎng)<b class='flag-5'>vlan</b>的好處及優(yōu)點(diǎn)<b class='flag-5'>分析</b>

    讀懂VLANVXLAN技術(shù)

    Trunk是在兩個網(wǎng)絡(luò)設(shè)備之間承載多于VLAN的端到端的連接,將VLAN延伸至整個網(wǎng)絡(luò)。沒有VLAN
    發(fā)表于 02-01 07:54 ?2.2w次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>文</b>讀懂<b class='flag-5'>VLAN</b>和<b class='flag-5'>VXLAN</b><b class='flag-5'>技術(shù)</b>

    IP百科知識之VXLAN

    VXLAN是大二層網(wǎng)絡(luò)中廣泛使用的隧道技術(shù),在源網(wǎng)絡(luò)設(shè)備與目的網(wǎng)絡(luò)設(shè)備之間建立條邏輯
    的頭像 發(fā)表于 09-13 09:29 ?2887次閱讀

    VXLAN是什么,VXLAN 解決了??什么問題

    VXLAN種封裝協(xié)議,它使用隧道技術(shù)在底層第 3 層網(wǎng)絡(luò)上擴(kuò)展第 2 層連接,從而提供數(shù)據(jù)中心連接。在數(shù)據(jù)中心,VXLAN 是最常用的
    發(fā)表于 03-05 10:47 ?1500次閱讀

    詳解VXLAN網(wǎng)關(guān)技術(shù)

    VXLANVLAN擴(kuò)展方案草案,是NVo3中的網(wǎng)絡(luò)虛擬技術(shù)。采用MAC in UDP封裝
    發(fā)表于 11-14 10:27 ?1926次閱讀

    VXLAN和GENEVE:隧道協(xié)議之爭

    隨著IT環(huán)境的不斷變化以及新技術(shù)的快速發(fā)展,新的客戶需求下,新的隧道協(xié)議也隨之被引入進(jìn)來。從GRE到VXLAN、GENEVE,網(wǎng)絡(luò)虛擬技術(shù)
    的頭像 發(fā)表于 12-02 15:24 ?3113次閱讀

    虛擬局域網(wǎng)(VLAN)是什么?有什么功能?

    虛擬局域網(wǎng)(VLAN)是種將個局域網(wǎng)劃分為多個邏輯上獨(dú)立的虛擬網(wǎng)絡(luò)
    的頭像 發(fā)表于 06-30 14:35 ?3327次閱讀
    <b class='flag-5'>虛擬</b>局域網(wǎng)(<b class='flag-5'>VLAN</b>)是什么?有什么功能?

    什么是VXLAN?為什么需要VXLAN

    什么是VXLAN?為什么需要VXLAN? VXLAN(Virtual Extensible LAN)是網(wǎng)絡(luò)
    的頭像 發(fā)表于 12-07 09:23 ?823次閱讀

    VXLAN如何滿足虛擬機(jī)動態(tài)遷移時對網(wǎng)絡(luò)的要求?VXLANVLAN有何不同?

    VXLAN如何滿足虛擬機(jī)動態(tài)遷移時對網(wǎng)絡(luò)的要求?VXLANVLAN之間有何不同? VXLAN
    的頭像 發(fā)表于 12-07 09:23 ?639次閱讀

    什么是VXLAN中的VTEP和VNI?VXLAN隧道是如何建立的?

    什么是VXLAN中的VTEP和VNI?VXLAN隧道是如何建立的? VXLAN(Virtual Extensible LAN)是虛擬化擴(kuò)
    的頭像 發(fā)表于 12-07 09:32 ?1910次閱讀

    VXLAN網(wǎng)關(guān)有哪些種類?VXLAN網(wǎng)絡(luò)中報文是如何轉(zhuǎn)發(fā)的?

    VXLAN網(wǎng)關(guān)有哪些種類?VXLAN網(wǎng)絡(luò)中報文是如何轉(zhuǎn)發(fā)的? VXLAN(Virtual Extensible LAN)是
    的頭像 發(fā)表于 12-07 09:32 ?592次閱讀

    VXLAN相比VLAN有什么優(yōu)勢?靜態(tài)vlan和動態(tài)vlan區(qū)別

    VXLAN相比VLAN有什么優(yōu)勢?靜態(tài)vlan和動態(tài)vlan區(qū)別? VXLAN(Virtual Extensible LAN)是
    的頭像 發(fā)表于 12-19 14:26 ?789次閱讀

    VLAN是什么技術(shù) wlan常用的vlan技術(shù)包括哪些

    VLAN(Virtual Local Area Network)是虛擬局域網(wǎng)技術(shù),它允許在物理網(wǎng)絡(luò)基礎(chǔ)設(shè)施上創(chuàng)建多個邏輯上獨(dú)立的
    的頭像 發(fā)表于 01-22 14:48 ?1607次閱讀