openstack neutron專案用來提供虛擬網路功能。neutron中的網路主要有:
1)物理網路
虛擬網路底層需要物理網路來實現,就像虛擬機器最終由物理cpu還執行一樣。一台物理機器通過多塊網絡卡可以接入多個物理網路。
2)虛擬網路
虛擬網路由openstack管理員(admin)或使用者(user)建立,用來實現不同的網路拓撲結構。
provider虛擬網路
虛擬網路的一種,通常由openstack admin建立。與系統中的物理網路對應,針對乙個物理網路,管理員會建立乙個provider網路。provider網路可以利用物理網路實現對外通訊。如果物理網路可以訪問internet,則該provider網路就可以訪問internet,同時所有接入該provider網路的虛擬機器就可以訪問外部網路。
tenant虛擬網路
虛擬網路的一種,通常由openstak使用者自行建立。乙個使用者通常會有多台虛擬機器,就可以建立乙個tenant網路連線這些虛擬機器。一個使用者也可以建立多個tanant網路,每個tenant接入不同的虛擬機器。一台虛擬機器也可以接入多個tenant網路。
tenant網路預設只能連線同在乙個計算節點上的虛擬機器。如果有2臺虛擬機器執行在不同的計算節點上,即使把他們加入了同乙個tenant網路,他們也是不能通訊的。為了聯通這2臺虛擬機器,需要把這個tenant網路連入乙個provider網路,同時這個provider網路所對應的物理網路連線了這2個計算節點。
連線provider網路和tenant網路在neutron中,可以通過乙個路由器完成(openstack中定義的虛擬router)。
openstack中還有另外2個關於網路的概念:
管理網路(management network)
管理網路是乙個物理網路:所有構成openstack系統的所有節點(物理機器,上面執行了不同的openstack服務,如計算節點,控制節點,網路節點等)都連入這個網路;只有openstack相關服務才會使用這個網路,如rest api呼叫,rpc呼叫,資料庫訪問等。
資料網路(或者業務網路)
分2層:上層是虛擬網路,及前面說的tenant網路。虛擬機器中執行的各種應用都通過相應的tenant網路對外通訊。下層是物理網路,為上層虛擬網路提供底層物理連線。通常這個物理網路和前邊的管理網路是兩個不同的網路,以避免管理和業務流量互相影響。
虛擬路由器(router)
和物理路由器類似,用來連線不同的tenant網路。
openstack中定義的網路拓撲結構:
local:只能連線乙個計算節點上的虛擬機器。僅作為開發除錯使用。
flat:
這種結構相當於只有乙個provider網路,所有的虛擬機器都接入這個網路。不同tenant之間的虛擬機器沒有隔離,可以通訊。
vlan:
和物理網路中的vlan概念一致。每個tenant網路就是乙個vlan,預設不同的tenant之間無法通訊。為了實現tenant網路之間互通,需要把它們加入到同乙個虛擬路由器中。
gre:
類似與vlan的概念,可以實現tenant網路之間的隔離。和vlan的區別是:vlan最多只能有4096個,而gre沒有網路個數的限制。gre底層是通過隧道方式(ip tunnel)來實現,即在ip層(l3)上傳輸資料鏈路層(l2)資料。gre在傳輸資料時有大量的額外開銷,效能上會有影響。
vxlan:
也是採用l2隧道技術來解決vlan的個數限制問題,和gre的方法不同。還沒有仔細學習過。
通過上述幾種基本拓撲結構和虛擬路由器的設定,可以實現更為複雜的網路拓撲結構,滿足不同使用者的需求。openstack的官方文件中給出了一些典型的參考拓撲。
neutron中還支援floating ip功能。openstack可以給乙個虛擬機器分配乙個外部可訪問的ip位址(如internet ipv4位址),如虛擬機器中執行乙個web伺服器,外部使用者可以通過該ip訪問這個web服務。floating ip指乙個ip位址可以動態的分配給任意一台虛擬機器。比如這個web伺服器如果執行中出現了故障,則使用者可以將這個虛擬機器遷移到其他節點上從新執行,並把之前的ip位址分配給這個新的虛擬機器。
neutorn只定義了虛擬網路的拓撲,而真正實現這些拓撲的是neutrong中各種不同的plugin。常用的兩種是linux bridge和openvswitch。openvswitch功能上要比linux bridge更為強大,支援gre。openvswitch還支援遠端管理,支援openflow協議。目前openstack並沒有使用openvswitch的遠端管理功能。使用openvswitch的遠端管理,可以監控整個虛擬網路的執行狀態。類似於物理交換機上的遠端管理功能。
neutron應該是(or將是)openstack中最為複雜的專案。虛擬機器中執行的各種業務,儲存裝置中的各種資料,最終都將通過網路展現給終端使用者,而網路的管理都通過neutron來實現。從目前網上的資訊看,neturon專案似乎還不是很穩定,似乎還沒有商業使用者採用。
OpenStack網路元件Neutron
nova network nova network是openstack的核心元件。功能如下 1 ip位址分配 虛擬主機分配私有 固定 和浮動ip位址 2 網路模型與管理 虛擬網路使虛擬主機之間以及與外部網路通訊。3 安全控制 通過ebtables和iptables來實現 網路模型分為三種 1 扁平網...
openstack O版 Neutron網路服務
重新配置 etc nova nova.conf,配置這步的目的是讓compute節點能使用上neutron網路 將dhcp option force 26,1450寫入 etc neutron dnsmasq neutron.conf 4.建立連線並建立keystone使用者 root localh...
基於SDN的Neutron應用
一千個人心中,就有一千個sdn。本篇所說的sdn,就是傳統老牌裝置廠商推出的sdn方案。基於sdn的應用場景 上圖所描述的應用場景,可以說是sdn浪潮大背景下的運營商與傳統老牌裝置商心照不宣各取所需的 創新 方案。運營商一直以來都被各個裝置廠商提供的形態各異 紛繁複雜的管理介面所深深 傷害 一直期望...