[轉]OpenStack Neutron解析

來源:互聯網
上載者:User

標籤:

1.為什麼還需要linux bridge的部署方式?
2.哪一個橋接器起著交換器的作用?
3.neutron如何?私人網路的隔離

==================================================

很久之前寫了一篇關於OpenStack Neutron解析的文章,那時只是粗略的寫了一下把Neutorn的整體架構分析了一下,後來一直忙於其他事情,也就忘了去詳細分析一下Neutron的架構。這次這篇算是完成未完之事,同時也是對之前的一個知識的總結及恢複。

OpenStack的Neutron自從由nova-network從Nova中分離出來之後,一直感覺十分的不穩定,而且初期其結構也是十分的複雜。很多人剛剛接觸Neutron,甚至剛剛接觸OpenStack的時候,都是被困在Neutron異常複雜的機制。尤其當我們部署了一套由Neutron管理網路的OpenStack環境時,會發現很多時候都是在解決各種莫名奇妙的問題,但我們糾察問題時,總是會涉及Neutron。所以,我總是一直認為在實際的生產環境中,如果不是對於網路真的有著很特殊的需求,直接部署OpenStack的Essex版本,別人問我,我也是如是的回答。但是,我們如果是想研究OpenStack的話,Neturon的可玩性還是很大的,尤其是其支援SDN等一些很前瞻性的特性。所以,對於Neturon我們有必要深入的研究一番。
接著上次的那篇文章,我們再來重新回顧一下Neutron的架構,從物理上劃分的話,我們的Neutron主要部署在兩類節點上:Compute節點和Network節點,而至於Controller節點,那不是主要的所在,因為幾乎所有的組件都要在部署一個server服務在Controller節點上。從網路分層上來看,主要分為二層網路L2-Agent,三層網路L3-Agent,以及DHCP-Agent。借用官網上幾張圖片,按照物理劃分的方式,大致分析一下Neutron架構。


Compute節點


這張圖摘自官網,為Compute節點的網路架構及流程分析圖。這張圖中,我們可以清楚的看到網路相關的一些裝置(其實就是一些進程或者系統介面)被分為四類:TAP device,veth pair,Linux Bridge,Open vSwitch,這裡其實用的Open vSwitch的方式部署Neutron,而我之前也一直使用Open vSwitch部署的,但是這裡卻也是有著Linux Bridge的,正如之前文章所言,這個是為了實現安全性群組功能,但Open vSwitch暫不支援OpenStack的實現方式,所以只好用Linux Bridge實現qbr橋接器作為一個折衷方案。接下來就是最為大頭的Open vSwitch,它在Neutron中構建了一個虛擬交換器,而這個虛擬交換器由L2-Agent控制著,最終所有Compute節點中的虛擬交換器統一構成一個巨大的虛擬交換器,統一控制虛擬機器在二層網路的資料交換和接入功能。我們可以看出每個Compute節點有兩個Open vSwitch橋接器,其實br-int才是真正扮演交換器角色的,而br-eth1則是通過GRE通道在所有節點之間構成一個統一的通訊層,實現各個Compute節點上虛擬機器之間的通訊。


Network節點
接下來就是看看Network節點上的情況,下面的是Network節點的原理圖:


這張圖上,我們可以清楚看到Network節點被分為三大部分:Configured by L2-Agent,Configured by L3-Agent,Configured by DHCP-Agent,而L2-Agent那部分和我們在Compute節點討論的是一致的,所以此處就忽略了。接著我們看L3-Agent,在Neutron中,出現了私人網路這一概念,當然也是實際存在的。而依據以前的nova-network,是無法實現這一功能的,nova-network頂多能使用VLAN技術實現網路隔離,而無法實現真正的私人網路。在物理網路中,我們要想實現一個私人網路,那麼就必須有個路由器才行,而L3-Agent正是Neutron中實現這個路由器而存在的(事實上,我們在Havana版本中部署的環境中,網路拓撲圖中就很形象的顯示了這些routers),L3-Agent的底層實現採用的是Linux系統內建的iptables技術,通過動態組建組態iptables規則,實現網路的路由功能以及floatip功能。而每個使用者都要一個私人網路的話,一個路由肯定是不夠用的,接著就是Linux中namespace技術的用武之地了,事實上,Neutron為每個私人網路都配置一個router和dnsmasq,而這個就是依靠namespace進行規則和配置的隔離。如所示:


現在,每個私人網路可以建立了,但是我們總不能為每個虛擬機器手動設定私人ip的,所以這時候DHCP-Agent就顯示了其用處,DHCP-Agent通過控制dnsmasq實現了DHCP功能,這樣每個虛擬機器在啟動的時候就可以動態擷取私人ip了。

 

-----------------

轉載自:

http://www.aboutyun.com/thread-8716-1-1.html

http://panpei.net.cn/2014/05/22/openstack-neutron-analyse/

[轉]OpenStack Neutron解析

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.