本文轉載于 http://www.aboutyun.com/forum.php?mod=viewthread&tid=9523&highlight=Neutron%2B%2B%C8%EB%C3%C5
問題導讀:
1.Neutron的網絡是否可以創建
2.Neutron的端口、路由器、子網該如何理解?
3.如何解釋Neutron網絡的一種典型結構?
4.管理員在Neutron網絡中是否可以創建外網?
5.可以如何搭建自己的網絡?
Neutron是OpenStack核心項目之一,提供云計算環境下的虛擬網絡功能。Neutron的功能日益強大,并在Horizon面板中已經集成該模塊。作為Neutron的核心開發者之一,個人覺得Neutron完全代替Nova Network模塊作為云計算網絡管理中心是必然趨勢。要使用好OpenStack,了解Neutron概念及其相應操作就顯得格外重要。為此目的,這篇博客主要講述Neutron網絡的一些基本概念,網絡規劃和Horizon中如何使用Neutron中的網絡功能。
Neutron基本概念
網絡
在普通人的眼里,網絡就是網線和供網線插入的端口,一個盒子會提供這些端口。對于網絡工程師來說,網絡的盒子指的是交換機和路由器。所以在物理世界中,網絡可以簡單地被認為包括網線,交換機和路由器。當然,除了物理設備,我們還有軟的物件:IP地址,交換機和路由器的配置和管理軟件以及各種網絡協議。要管理好一個物理網絡需要非常深的網絡專業知識和經驗。
Neutron網絡目的是(為OpenStack云更靈活地)劃分物理網絡,在多租戶環境下提供給每個租戶獨立的網絡環境。另外,Neutron提供API來實現這種目標。Neutron中“網絡”是一個可以被用戶創建的對象,如果要和物理環境下的概念映射的話,這個對象相當于一個巨大的交換機,可以擁有無限多個動態可創建和銷毀的虛擬端口。
端口
在物理網絡環境中,端口是用于連接設備進入網絡的地方。Neutron中的端口起著類似的功能,它是路由器和虛擬機掛接網絡的著附點。
路由器
和物理環境下的路由器類似,Neutron中的路由器也是一個路由選擇和轉發部件。只不過在Neutron中,它是可以創建和銷毀的軟部件。
子網
簡單地說,子網是由一組IP地址組成的地址池。不同子網間的通信需要路由器的支持,這個Neutron和物理網絡下是一致的。Neutron中子網隸屬于網絡。
Neutron網絡的一種典型結構
有這么多的基本概念,使用起來是不是很麻煩?其實只要我們好好梳理一下,neutron的基本操作還是很簡單的。
首先我們規劃一下我們的網絡。Neutron典型的網絡結構如下圖所示:
在這個圖中,我們有一個和互聯網(互聯網可以由其它網絡代替,比如辦公網絡)連接的外部網絡。這個外部網絡是租戶虛擬機訪問互聯網或者互聯網訪問虛擬機的途徑。外部網絡有一個子網,它是一組在互聯網上可尋址的IP地址。一般情況下,外部網絡只有一個(neutron是支持多個外部網絡的),且由管理員創建。租戶網絡可由租戶任意創建。當一個租戶的網絡上的虛擬機需要和外部網絡以及互聯網通信時,這個租戶就需要一個路由器。路由器有兩種臂,一種是gateway網關臂,另一種是interfaces接口臂。網關臂只有一個,連接外部網。接口臂可以有多個,連接租戶網絡的子網。經過這樣的網絡規劃,我們有下面的步驟來實施:
首先管理員拿到一組可以在互聯網上尋址的IP地址,并且創建一個外部網絡和子網
租戶創建一個網絡和子網
租戶創建一個路由器并且連接租戶子網和外部網絡
租戶創建虛擬機
Horizon上操作網絡
現在我們規劃好了網絡,我們就可以在Horizon上進行操作了。
管理員創建外網
我們說過外網要由管理員創建。假設我們拿到的外部網絡的IP地址是20.0.2.0/24,可用的地址段是20.0.2.10-20.0.2.20,網關是20.0.2.1。我們現在就以管理員的身份在horzion上創建一個外網和子網:
以管理員身份登錄后,選擇管理員面板,點擊’Networks’項后顯示當前網絡列表:
在上圖中點擊“Create Network”按鈕彈出“Create Network”窗口:
在上面的彈出窗口中,填入網絡名:ExternalNet,而且勾選External Network然后點擊“Create Network”。
下面是我們剛才創建好的網絡:
現在我們點擊“ExternalNet”查看這個網絡的詳細情況:
在網絡詳細情況頁面中,我們點擊“Create Subnet”彈出窗口創建外部網絡的子網:
這是一個多標簽頁面,在上面的“Subnet”頁面中填入子網名,子網CIDR(Network Address)。在下面的“Subnet Detail”頁中填入地址范圍:
注意:因為外部網絡不掛接虛擬機,可以不選澤“Enable DHCP“。最后點擊子網創建窗口上的“Create”完成子網的創建。
租戶demo創建租戶網絡
我們現在以普通租戶登錄horizon,并點擊“Netowrks”項:
點擊上圖的“Create Network”彈出租戶網絡創建窗口:
顯然,這是一個多Tab的界面,和我們先前管理員創建網絡的界面不一樣。在這個界面里,我們可以一氣完成網絡和子網的創建。我們在“Network”頁中填入網絡名,在“Subnet”頁中填入CIDR (Network Address):
“Subnet Datail”頁面可以讓我們填入IP地址池,缺省情況是Neutron使用整個CIDR規定的地址范圍。所以我們不關心“Subnet Datail”頁面。我們點擊“Create”按鈕完成租戶子網的創建。
租戶創建路由器
選擇“Routers”項,系統顯示如下頁面:
創建路由器
點擊右面的“Create Router”彈出路由器創建對話框:
這個對話框及其簡單,我們只需輸入所有的路由器的名字,然后點擊“Create Router”創建路由器。
配置網關臂
路由器創建出來之后,會顯示在路由器列表中:
我們點擊“Set Gateway”來設置這個路由器的網關臂:
如上圖所示,我們選擇管理員創建好的外部網絡“ExternalNet”,然后點擊“Set Gateway”。
配置接口臂
下圖顯示了租戶剛才創建的路由器及其網關臂:
現在我們點擊路由器名字查看路由器詳情:
為了設置路由器的接口臂,我們點擊“Add Interface”按鈕彈出“Add Interface”窗口:
上圖顯示的窗口,我們只需選擇我們所要連接的子網,然后點擊“Add Interface”。
現在這個租戶的路由器以及連接了外網和租戶的子網,接下來這個租戶可以創建虛擬機,這個虛擬機借助路由器就可以訪問外部網絡甚至互聯網。
租戶創建虛擬機
這里不想詳述創建虛擬機的過程,我們著重敘述一下這個過程中如何選擇網絡:
從上面的圖中我們可以看出,租戶可以選擇的網路包括了租戶剛才創建的網絡。點擊網絡右邊的“+”符號,或者拖拽這個網絡進入“Selected Networks”框中,租戶所創建的虛擬機就會使用這個網絡。
租戶查看網絡拓撲
最后我想要說的是Horizon工程師費盡心思實現的網絡拓撲圖:
從這個拓撲圖可以看到我們前面所有操作的結果:
綠色的是管理員創建的外部網絡
跨在外部網絡和租戶網絡上的是具有網關臂和接口臂的路由器
藍色的是租戶網路及其子網
最后是租戶創建的虛擬機
點擊拓撲圖上的虛擬機圖像,我們可以使用VNC訪問虛擬機的控制臺,如下圖所示:
我們可以看出,這個虛擬機從租戶網絡中獲取到了IP地址:10.0.1.3。它通過租戶自己的路由器能訪問互聯網。
總結
是不是有了Neutron就不需要物理網絡的網絡工程師了呢?不是的。虛擬網絡的負載最終還需要跑到物理網絡上去傳遞,Neutron只不過是把部分傳統網絡管理的功能推到了租戶方,比如租戶可以創建一個虛擬網絡及其子網,創建一個路由器等等,這個從上面的操作中可以看出來。在虛擬網絡功能的幫助下,基礎物理網絡就可以向外提供額外的網絡服務了,比如租戶完全可以創建一個屬于自己的類似于數據中心網絡的虛擬網絡。
Neutron提供了比較完善的多租戶環境下的虛擬網絡模型以及API。像部署物理網絡一樣,使用Neutron創建虛擬網絡時也需要做一些基本的規劃和設計。