誠之和:OpenStack云平臺的網(wǎng)絡模式及其工作機制是什么

OpenStack云平臺的網(wǎng)絡模式及其工作機制是什么,針對這個問題,這篇文章詳細介紹了相對應的分析和解答鹅龄,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

網(wǎng)絡亭畜,是OpenStack的部署中最容易出問題的扮休,也是其結構中難以理清的部分。經(jīng)常收到關于OneStack部署網(wǎng)絡方面問題和OpenStack網(wǎng)絡結構問題的郵件拴鸵。下面根據(jù)自己的理解玷坠,談一談OpenStack的虛擬網(wǎng)絡蜗搔、網(wǎng)絡拓撲和網(wǎng)絡流。個人理解有限八堡,僅拋磚引玉樟凄,有問題請指正,謝謝兄渺。

一缝龄、相關概念和要點(可跳過)

1、OpenStack中nova-network的作用

OpenStack平臺中有兩種類型的物理節(jié)點溶耘,控制節(jié)點和計算節(jié)點二拐。控制節(jié)點包括網(wǎng)絡控制凳兵、調(diào)度管理百新、api服務、存儲卷管理庐扫、數(shù)據(jù)庫管理饭望、身份管理和鏡像管理等,計算節(jié)點主要提供nova-compute服務形庭∏Υ牵控制節(jié)點的服務可以分開在多個節(jié)點,我們把提供nova-network服務的節(jié)點稱為網(wǎng)絡控制器萨醒。

OpenStack的網(wǎng)絡由nova-network(網(wǎng)絡控制器)管理斟珊,它會創(chuàng)建虛擬網(wǎng)絡,使主機之間以及與外部網(wǎng)絡互相訪問富纸。

OpenStack的API服務器通過消息隊列分發(fā)nova-network提供的命令囤踩,這些命令之后會被nova-network處理,主要的操作有:分配ip地址晓褪、配置虛擬網(wǎng)絡和通信堵漱。

區(qū)分以下兩個概念:控制節(jié)點和網(wǎng)絡控制器

在最簡單的情況下,所有服務都部署在一個主機涣仿,這就是all-in-one勤庐;

稍微復雜點,除了nova-compute外所有服務都部署在一個主機好港,這個主機進行各種控制管理愉镰,因此也就是控制節(jié)點(本文把2個或以上節(jié)點的部署都稱為“多節(jié)點”);

但是钧汹,很多情況下(比如為了高可用性)岛杀,需要把各種管理服務分別部署在不同主機(比如分別提供數(shù)據(jù)庫集群服務、消息隊列崭孤、鏡像管理类嗤、網(wǎng)絡控制等)。這個時候網(wǎng)絡控制器(運行nova-network)只是控制節(jié)點群中的一部分辨宠。

2遗锣、OpenStack中network的2種ip、3種管理模式

Nova有固定IP和浮動IP的概念嗤形。固定IP被分發(fā)到創(chuàng)建的實例不再改變精偿,浮動IP是一些可以和實例動態(tài)綁定和釋放的IP地址。

Nova支持3種類型的網(wǎng)絡赋兵,對應3種“網(wǎng)絡管理”類型:Flat管理模式笔咽、FlatDHCP管理模式、VLAN管理模式霹期。默認使用VLAN摸式叶组。

這3種類型的網(wǎng)絡管理模式,可以在一個ОpenStack部署里面共存历造,可以在不同節(jié)點不一樣甩十,可以進行多種配置實現(xiàn)高可用性。

簡要介紹這3種管理模式吭产,后面再詳細分析侣监。

Flat(扁平): 所有實例橋接到同一個虛擬網(wǎng)絡,需要手動設置網(wǎng)橋臣淤。

FlatDHCP: 與Flat(扁平)管理模式類似橄霉,這種網(wǎng)絡所有實例橋接到同一個虛擬網(wǎng)絡,扁平拓撲邑蒋。不同的是姓蜂,正如名字的區(qū)別,實例的ip提供dhcp獲人露(nova-network節(jié)點提供dhcp服務)覆糟,而且可以自動幫助建立網(wǎng)橋。

VLAN: 為每個項目提供受保護的網(wǎng)段(虛擬LAN)遮咖。

二滩字、3種網(wǎng)絡模式的工作機制

Flat模式

1)指定一個子網(wǎng),規(guī)定虛擬機能使用的ip范圍御吞,也就是一個ip池(

分配ip不會超過這個范圍麦箍,也就是配置里面的fixed_range,比如10.0.0.1/27陶珠,那么可用ip就有32個挟裂;

這個網(wǎng)絡是可以改變的,比如配置好節(jié)點nova.conf和interfaces后揍诽,nova-manage network delete 10.0.0.1/27 1 32诀蓉;nova-manage network create192.168.1.0/24 1 255

2)創(chuàng)建實例時栗竖,從有效ip地址池接取一個IP,為虛擬機實例分配渠啤,然后在虛擬機啟動時候注入虛擬機鏡像(文件系統(tǒng))狐肢;

3)必須手動配置好網(wǎng)橋(br100),所有的系統(tǒng)實例都是和同一個網(wǎng)橋連接沥曹;網(wǎng)橋與連到網(wǎng)橋的實例組成一個虛擬網(wǎng)絡份名,nova-network所在的節(jié)點作為默認網(wǎng)關。比如flat_interface=eth2;eth2的ip為10.0.0.1妓美,其它網(wǎng)絡ip在10.0.0.1/27內(nèi)僵腺。flat interface-->br100-->flat network

4)此后,網(wǎng)絡控制器(nova-network節(jié)點)對虛擬機實例進行NAT轉換壶栋,實現(xiàn)與外部的通信辰如。

注意:目前好像配置注入只能夠?qū)inux類型的操作系統(tǒng)實例正常工作,網(wǎng)絡配置保存在/etc/network/interfaces文件委刘。

Flat DHCP模式

與Flat模式一樣丧没,從ip池取出ip分配給虛擬機實例,所有的實例都在計算節(jié)點中和一個網(wǎng)橋相關锡移。不過呕童,在這個模式里,控制節(jié)點做了更多一些的配置淆珊,嘗試和以太網(wǎng)設備(默認為eth0)建立網(wǎng)橋夺饲,通過dhcp自動為實例分配flat網(wǎng)絡的固定ip,可以回收釋放ip施符。

1)網(wǎng)絡控制器(運行nova-network服務的節(jié)點)運行dusmasq作為DHCP服務器監(jiān)聽這個網(wǎng)橋往声;

2)實例做一次dhcp discover操作,發(fā)送請求戳吝;

3)網(wǎng)絡控制器把從一個指定的子網(wǎng)中獲得的IP地址響應給虛擬機實例浩销;

4)實例通過網(wǎng)絡控制器與外部實現(xiàn)互相訪問。

VLAN網(wǎng)絡模式

OpenStack的默認網(wǎng)絡管理模式听哭,沒有設置--network_manager=nova.network.manager.FlatDHCPManager或者FlatManager的時候默認為vlan慢洋。為了實現(xiàn)多臺機器的安裝,VLAN網(wǎng)絡模式需要一個支持VLAN標簽(IEEE 802.1Q)的交換機(switch)陆盘。

在這個模式里普筹,為每個項目創(chuàng)建了VLAN和網(wǎng)橋。所有屬于某個項目的實例都會連接到同一個VLAN隘马,必要的時候會創(chuàng)建Linux網(wǎng)橋和VLAN太防。

每個項目獲得一些只能從VLAN內(nèi)部訪問的私有IP地址,即私網(wǎng)網(wǎng)段酸员。每個項目擁有它自己的VLAN蜒车,Linux網(wǎng)橋還有子網(wǎng)讳嘱。被網(wǎng)絡管理員所指定的子網(wǎng)都會在需要的時候動態(tài)地分配給一個項目。

1)網(wǎng)絡控制器上的DHCP服務器為所有的VLAN所啟動醇王,從被分配到項目的子網(wǎng)中獲取IP地址并傳輸?shù)教摂M機實例呢燥。

2)為了實現(xiàn)用戶獲得項目的實例,訪問私網(wǎng)網(wǎng)段寓娩,需要創(chuàng)建一個特殊的VPN實例(代碼名為cloudpipe,用了創(chuàng)建整數(shù)呼渣、key和vpn訪問實例)棘伴。

3)計算節(jié)點為用戶生成了證明書和key,使得用戶可以訪問VPN屁置,同時計算節(jié)點自動啟動VPN焊夸。

4)vpn訪問。

Flat與vLAN的比較

在兩種Flat模式里蓝角,網(wǎng)絡控制器扮演默認網(wǎng)關的角色阱穗,實例都被分配了公共的IP地址(扁平式結構,都在一個橋接網(wǎng)絡里)使鹅。

vLAN模式功能豐富揪阶,很適合提供給企業(yè)內(nèi)部部署使用。但是患朱,需要支持vLAN的switches來連接鲁僚,而且相對比較復雜,在小范圍實驗中常采用FlatDHCP模式裁厅。

三冰沙、詳解FlatDHCP模式(Flat模式類似,只是少了dhcp的部分而已执虹,就略過了)

可以有多種部署方式拓挥,比如為了實現(xiàn)高可用性,可以使用多網(wǎng)卡袋励、外部網(wǎng)關侥啤、multi_host 等方法。這里主要介紹基本的部署方式(一個控制節(jié)點插龄,或者說一個網(wǎng)絡控制器)愿棋。

1、網(wǎng)卡與節(jié)點

由于網(wǎng)卡和節(jié)點數(shù)的不同均牢,可以簡單分為:單節(jié)點(all-in-one)單網(wǎng)卡糠雨、多節(jié)點單網(wǎng)卡、多節(jié)點單網(wǎng)卡徘跪、多節(jié)點多網(wǎng)卡

單節(jié)點的情況下甘邀,網(wǎng)絡控制器(運行nova-network)與計算(運行nova-compute琅攘,或者更確切的說,運行虛擬機實例)部署在一個主機松邪。這樣就不需要控制節(jié)點與計算節(jié)點之間的通信坞琴,也就少了很多網(wǎng)絡概念,這也是入門者常用的方式逗抑。

多節(jié)點時剧辐,網(wǎng)絡控制器與計算節(jié)點分別在不同主機,普通部署方式下(不是multi_host)邮府,只有nova-network控制網(wǎng)絡荧关,而它僅僅在控制節(jié)點運行。因此褂傀,所有計算節(jié)點的實例都需要通過控制節(jié)點來與外網(wǎng)通信忍啤。

單網(wǎng)卡時,網(wǎng)卡需要作為public網(wǎng)絡的接口使用仙辟,也需要作為flat網(wǎng)絡的接口同波,因此需要處于混雜模式。不過建立的網(wǎng)絡與雙網(wǎng)卡類似叠国,都分為flat網(wǎng)絡和public網(wǎng)絡未檩。

使用單網(wǎng)卡,需要在nova.conf中使public_interface和flat_interface都為eth0煎饼。

2讹挎、網(wǎng)絡流

如上面分析,在普通部署方式下吆玖,只有一個控制節(jié)點(或網(wǎng)絡控制器)筒溃,dhcp和外網(wǎng)訪問都需要經(jīng)過它。

dhcp時:

1)網(wǎng)絡控制器(運行nova-network服務的節(jié)點)一直運行dusmasq作為DHCP服務器監(jiān)聽網(wǎng)橋(br100)沾乘;

2)實例做一次dhcp discover操作怜奖,發(fā)送請求;

3)網(wǎng)絡控制器把從一個指定的子網(wǎng)中獲得的IP地址響應給虛擬機實例翅阵。

實例訪問外網(wǎng)時:

1)實例經(jīng)過所在主機的flat_interface(這是一個flat網(wǎng)絡)歪玲,連接到nova-network所在的主機(控制節(jié)點);

2)網(wǎng)絡控制器對外出網(wǎng)絡流進行轉發(fā)掷匠。

外網(wǎng)訪問實例時:

1)網(wǎng)絡控制器對floating ip進行nat滥崩;

2)通過flat網(wǎng)絡將流入數(shù)據(jù)路由給對應的實例。

下圖1讹语、圖2可以比較單網(wǎng)卡和雙網(wǎng)卡的網(wǎng)絡流(traffic)情況钙皮,圖2、圖3可以比較單節(jié)點和多節(jié)點的網(wǎng)絡流。

圖1:雙網(wǎng)卡多節(jié)點OpenStack網(wǎng)絡流

圖3:單網(wǎng)卡單節(jié)點OpenStack網(wǎng)絡流

3短条、多節(jié)點時控制節(jié)點和計算節(jié)點的工作原理

控制節(jié)點:

1)在主機上創(chuàng)建一個網(wǎng)橋(br100)导匣,把網(wǎng)關ip賦給這個橋;如果已經(jīng)有ip茸时,會自動把這個ip賦給網(wǎng)橋作為網(wǎng)關贡定,并修復網(wǎng)關;

2)建立dhcp server可都,監(jiān)聽這個網(wǎng)橋缓待;并在數(shù)據(jù)庫記錄ip的分配和釋放,從而判定虛擬機釋放正常關閉dhcp汹粤;

3)監(jiān)聽到ip請求時命斧,從ip池取出ip,響應這個ip給實例嘱兼;

4)建立iptables規(guī)則,限制和開放與外網(wǎng)的通信或與其它服務的訪問贤徒。

計算節(jié)點:

1)在主機上建立一個對應控制節(jié)點的網(wǎng)橋(br100)芹壕,把其上實例(虛擬機)橋接到一個網(wǎng)絡(br100所在的網(wǎng)絡);

2)此后接奈,這個橋踢涌、控制節(jié)點的橋和實例的虛擬網(wǎng)卡都在同一虛擬網(wǎng)絡,通過控制節(jié)點對外訪問序宦。

可見睁壁,這種方式有以下特點:

1)所有實例與外網(wǎng)通信都經(jīng)過網(wǎng)絡控制器,這也就是SPoF(單故障點)互捌;

2)控制節(jié)點提供dhcp服務潘明、nat、建立子網(wǎng)秕噪,作為虛擬網(wǎng)絡的網(wǎng)關钳降;

3)計算節(jié)點可以沒有外網(wǎng)ip,同其上的實例一樣腌巾,可以把控制節(jié)點作為網(wǎng)關對外訪問遂填;

4)實例與外網(wǎng)通信太多,會造成控制節(jié)點網(wǎng)絡的堵塞或者高負載澈蝙。

四吓坚、VLAN模式的特點

VLAN模式的目的是為每個項目提供受保護的網(wǎng)段,具有以下特點:

NAT實現(xiàn)public ip

除了public NAT外沒有其它途徑進入每個lan

受限的流出網(wǎng)絡灯荧,project-admin可以控制

受限的項目之間的訪問礁击,同樣project-admin控制

所以實例和api的連接通過vpn

vLAN模式了解較少,借用OpenStack文檔里的一個圖供對比了解:

need-to-insert-img

圖4:VLAN模式OpenStack網(wǎng)絡結構

五、網(wǎng)絡部署

1客税、網(wǎng)絡配置

apt-get install bridge-utils

安裝bridge-utils就是為了建立虛擬網(wǎng)橋况褪,實現(xiàn)虛擬網(wǎng)絡。OpenStack會自動的創(chuàng)建br100這個網(wǎng)橋更耻,所以不用自己創(chuàng)建测垛。

--network_manager=nova.network.manager.FlatDHCPManager

設置網(wǎng)絡管理模式,一般使用FlatDHCP秧均,還可以配合multi_host實現(xiàn)高可用食侮。

#?Network?Configuration--dhcpbridge_flagfile=/etc/nova/nova.conf--dhcpbridge=/usr/bin/nova-dhcpbridge--flat_network_bridge=br100--flat_interface=eth2--flat_injected=False--public_interface=eth0

dhcpbridge_flagfile指定配置文件,flat_injected實現(xiàn)ipv6地址的注入目胡,因此關閉锯七。

flat_network_bridge指定網(wǎng)橋。

flat_interface指定網(wǎng)卡誉己,這個主機節(jié)點(一般就是控制節(jié)點)用來建立橋眉尸,橋接實例和虛擬網(wǎng)絡以及public網(wǎng)絡。單網(wǎng)卡是設為eth0巨双,與public的同一個噪猾。

#Block?of?IP?addresses?that?are?fixed?IPs--fixed_range=10.0.0.1/27

指定ip池的范圍袱蜡,文中多次提到的從指定的ip池取出ip分配給實例,就是這個ip池敏晤。

2、OpenStack中網(wǎng)絡的高可用性(HA)

在基本的網(wǎng)絡管理方式中,所有實例的網(wǎng)絡流都要經(jīng)過網(wǎng)絡控制器扶平。當網(wǎng)絡控制器出現(xiàn)問題時,網(wǎng)絡就出現(xiàn)故障,網(wǎng)絡控制器是一個SPoF(單故障點)。《構建OpenStack的高可用性(HA惑惶,High Availability)》簡單介紹了4種方法和未來的Quantum香到。

主要的部署方式是FlagDHCP + multi_host:

1)雷绢、每個計算節(jié)點安裝nova-network蔽氨,設置multi_host為true宇立。這樣,每個計算節(jié)點上flat_interface作為網(wǎng)橋润脸,提供dhcp、dns,作為其上所有實例的網(wǎng)關(gateway)骤宣。實例不再都從控制節(jié)點經(jīng)過展运,控制節(jié)點出現(xiàn)問題不會影響網(wǎng)絡蔗候。

2)、每個計算節(jié)點的flat_interface提供switch連接,實現(xiàn)實例之間的虛擬網(wǎng)絡的傳輸和通信。

3)、每個計算節(jié)點有個public_interface,與外網(wǎng)連接。

4)、為每個實例分配floating ip,作為實例的第二個虛擬ip,與外網(wǎng)通信。

也就是發(fā)生了如下的變化:

圖5:multi_host部署方式時的OpenStack網(wǎng)絡流

未來的Quantum和Melarge提供更好的網(wǎng)絡服務,值得期待奋救。Quantum項目實現(xiàn)二層網(wǎng)絡相關的功能岭参,如創(chuàng)建和管理虛擬網(wǎng)絡、端口等尝艘。Melange負責三層網(wǎng)絡相關演侯,它的主要任務是IP地址管理(IPAM)、DHCP背亥、NAT甚至負載均衡秒际。不過由于其實現(xiàn)需要一定的時間,需要多個階段狡汉,現(xiàn)在還是需要了解以上的各種網(wǎng)絡模式和部署娄徊。

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市盾戴,隨后出現(xiàn)的幾起案子寄锐,更是在濱河造成了極大的恐慌,老刑警劉巖尖啡,帶你破解...
    沈念sama閱讀 217,907評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件锐峭,死亡現(xiàn)場離奇詭異,居然都是意外死亡可婶,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評論 3 395
  • 文/潘曉璐 我一進店門援雇,熙熙樓的掌柜王于貴愁眉苦臉地迎上來矛渴,“玉大人,你說我怎么就攤上這事惫搏【呶拢” “怎么了?”我有些...
    開封第一講書人閱讀 164,298評論 0 354
  • 文/不壞的土叔 我叫張陵筐赔,是天一觀的道長铣猩。 經(jīng)常有香客問我,道長茴丰,這世上最難降的妖魔是什么达皿? 我笑而不...
    開封第一講書人閱讀 58,586評論 1 293
  • 正文 為了忘掉前任天吓,我火速辦了婚禮,結果婚禮上峦椰,老公的妹妹穿的比我還像新娘龄寞。我一直安慰自己,他們只是感情好汤功,可當我...
    茶點故事閱讀 67,633評論 6 392
  • 文/花漫 我一把揭開白布物邑。 她就那樣靜靜地躺著,像睡著了一般滔金。 火紅的嫁衣襯著肌膚如雪色解。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,488評論 1 302
  • 那天餐茵,我揣著相機與錄音科阎,去河邊找鬼。 笑死钟病,一個胖子當著我的面吹牛萧恕,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播肠阱,決...
    沈念sama閱讀 40,275評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼票唆,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了屹徘?” 一聲冷哼從身側響起走趋,我...
    開封第一講書人閱讀 39,176評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎噪伊,沒想到半個月后簿煌,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,619評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡鉴吹,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,819評論 3 336
  • 正文 我和宋清朗相戀三年姨伟,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片豆励。...
    茶點故事閱讀 39,932評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡夺荒,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出良蒸,到底是詐尸還是另有隱情技扼,我是刑警寧澤,帶...
    沈念sama閱讀 35,655評論 5 346
  • 正文 年R本政府宣布嫩痰,位于F島的核電站剿吻,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏串纺。R本人自食惡果不足惜丽旅,卻給世界環(huán)境...
    茶點故事閱讀 41,265評論 3 329
  • 文/蒙蒙 一椰棘、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧魔招,春花似錦晰搀、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,871評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽疚颊。三九已至磅摹,卻和暖如春秧骑,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背蠕蚜。 一陣腳步聲響...
    開封第一講書人閱讀 32,994評論 1 269
  • 我被黑心中介騙來泰國打工尚洽, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人靶累。 一個月前我還...
    沈念sama閱讀 48,095評論 3 370
  • 正文 我出身青樓腺毫,卻偏偏與公主長得像,于是被迫代替她去往敵國和親挣柬。 傳聞我的和親對象是個殘疾皇子潮酒,可洞房花燭夜當晚...
    茶點故事閱讀 44,884評論 2 354

推薦閱讀更多精彩內(nèi)容