溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何分析Neutron網絡

發(fā)布時間:2021-12-30 11:31:03 來源:億速云 閱讀:119 作者:柒染 欄目:云計算

如何分析Neutron網絡,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

  CL210考試環(huán)境

  筆者在今年參加了OpenStack CL210培訓。但是對培訓過程中實驗環(huán)境的網絡拓撲當時沒有弄明白,后來看了一些資料,總算有了大概的了解。

如何分析Neutron網絡

  書上實驗的拓撲圖見上圖。乍一看,是不是有點復雜?

  在實驗中,每個人分配了一個臺式機,臺式機是一個RHEL操作系統。通過里面的KVM虛擬化,虛擬出了兩個虛擬機Server-a和Server-b。Server-a有兩個網卡:eth2和eth3。后來我們做的事情,是在Server-a上以All-in-one的方式安裝OpenStack,第二個實驗是將ServerB作為Nova-Compute加入到OpenStack中。

  當server-a上的openstack安裝好以后,創(chuàng)建的虛擬機實例就是基于servera RHEL中的KVM做的。也就是說,最終我們創(chuàng)建的openstack實例,實際上的三層嵌套虛擬化。

  談到OpenStack的網絡,很多人不是很了解細節(jié),但vSphere的網絡大家都比較了解,下面我們先上一張熟悉的圖:

如何分析Neutron網絡

  • 一個標準的虛擬機交換機,可以有上行鏈路或者沒有上行鏈路(Uplink)。這取決于這個VSS是否要對外通訊。而一個VSS實際是一個虛擬的二層橋接設備。

  • 一個VSS可以接多個VM,通過不同的PortGroup可以區(qū)分vLAN。

  • 在一個esxi上的VSS的通訊,是在VMKernel完成的。而在不同esxi上的VSS,是通過物理網絡來通訊的。

  • 在vSphere中,物理網卡叫Nic,虛擬網卡叫vNIC。

  接下來,我們看下面這張圖:

如何分析Neutron網絡

  在上圖中,最右邊的Instance,也就是是三層嵌套下的OpenStack實例。這這個實例,要實現對完通訊,需要有幾個步驟。

  第一步:虛擬機發(fā)出網絡包。虛擬機實例有一個虛擬網卡,叫eth0。數據包從eth0出來以后,首先連接到vnet0上。vnet0是一個tap設備。那么,什么是tap呢?

  Tap實現連接作用,實現二層包通訊。在上圖中,tap連接了qbr和實例中的eth0。我們可以理解成tap將虛擬機的虛擬網卡和qbr設備連接到了一起。

  第二步:網絡包到達qbr。

  那么qbr是什么呢?

  qbr是一個Linux網橋。這個網橋存在于server-a上。從qbr到br-ex經過了兩個設備:qvo和qvb。這兩個設備是成對出現的,用于連接linux bridge和OVS bridge。qvb位于bridge側,qvo位于OVS bridge側。

  第三步:網絡包到達br-int。

  那么,什么是br-int呢?br-int是由OVS虛擬出來的網橋,它的作用和vSphere中的VSS是類似的。(實際上,OVS在作為網橋功能的時候,本身與Linux Bridge類似)。Br-int的作用,就是將本KVM Hypervisor上的所有虛擬機實例都連接到這個虛擬交換機上。

  我們知道,在vSphere的VSS上,可以通過portgroup區(qū)分vLAN。同樣,br-int的port也有這個功能。

  Port的一個重要的方面就是VLANConfiguration,有兩種模式:

  • trunk port

  • access port

  第四步:網絡包到達Router1

  我們接著看,br-int向右連接到了qdhcp上,它的作用就是為虛擬網絡提供dhcp功能的。

  br-int向左連接到了router1上,而router1又連接到了br-ex上。Br-init與路由器的連接,經過了qr設備,qr提供的是從二層虛擬網絡到三層虛擬網絡的連接。

  router1實現的是路由功能,它也是由OVS提供的。它里面包含的內容是一系列的路由表,作用是為不同子網提供路由功能。路由器中還有NAT的表,負責給實例分配浮動IP。

  第五步:網絡包通過br-ex發(fā)出去到物理網絡:

  br-ex也是一個OVS虛擬網橋,br-ex實際上是混雜模式加載在物理網卡上,實時接收著網絡上的數據包。

  那么有人會問,在OpenStack架構中,既然有OVS提供bridge,為何還要用Linux網橋?為什么不讓虛擬機實例中的eth0(vnet0)直接連接到br-int上呢?

  答案如下:

  也就是說,理想情況下,本來虛擬機虛擬網卡連接設備tap0,直接連接br-ini應該是可以的。但由于Openstack的安全組使用的是iptables,而OVS不支持iptables,因此才在vnet0和br-int上放了一個linux bridge,用于存放iptables規(guī)則。這算是一個折中方案。

  需要指出的是,目前Neutron支持的網絡分為兩大類型,Provider Network和Self Network。

  Provider network:管理員創(chuàng)建的和物理網絡有直接映射關系的虛擬網絡。使用Provider Network,虛擬機對外通訊不需要走Neutron中的Router。

如何分析Neutron網絡

如何分析Neutron網絡

  Tenant network:租戶普通用戶創(chuàng)建的網絡,物理網絡對創(chuàng)建者透明,其配置由 Neutron根據管理員在系統中的配置決定。這種網絡下,虛擬機對完通訊需要經過Router。而Router也可以隔離租戶。

  如何分析Neutron網絡

  無論哪種方式,對于我們在分析內部虛擬網絡的網絡包走向,區(qū)別不是很大,那么,在下圖中(Provider network),實例中的虛擬機如何將網絡包傳出到物理網絡呢?

如何分析Neutron網絡

  有兩個虛擬機instance1、instance2位于同一個Hypervisor,它們的網卡在兩個vLAN中。instance1的網絡包發(fā)送的物理網絡需要如下幾個步驟:

  第一步:網絡包離開instance1

  第二步:網絡包到達qbr,也就是linux bridge

  第三步:網絡包到達qvo以后,qvo給網絡包打上內部的vlan tag。(Provider network才需要內部和外部vLAN的轉換)

  第四部:網絡包到達br-ex(br-eth2),內部的vlan tag被換成真實的vlan tag。

  第五步:網絡包通過eth2傳送到物理網絡。

  上面的例子中,hypervisor都是一個,如果多個nova節(jié)點,顯然用一個br-int已經無法連接兩個服務器上的VM。怎么辦呢?

  在物理交換機上,可以通過級聯線級聯。在OVS bridge中則通過br-tun進行級聯,讓各個物理服務器上的br-int構成一個統一的通信層。

如何分析Neutron網絡

  Openvswitch支持三類Tunnel

  • gre

  • vxlan

  看到vxlan,可能很多同學眼睛一亮。是的,目前業(yè)內大多數大二層網絡的實現,都是通過vxlan協議。而大二層又通常是“雙活數據中心”這個高大上名詞的基礎。

  在NSX中,VXLAN的封包和解包是通過ESXi上的VTEP(A Virtual Tunnel End Point)完成的:

如何分析Neutron網絡

  我們看一下下面這個圖:兩個實例屬于同一個子網,但是在不同的物理服務器上,那么就需要br-tun來進行通訊。

如何分析Neutron網絡

  在Neutron中,可以實現對VXLAN的封包和解包的功能。但如果想提高性能,也可以與物理網絡設備進行配合。

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業(yè)資訊頻道,感謝您對億速云的支持。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI