版權聲明:轉載請註明出處 JmilkFan:http://blog.csdn.net/jmilk
目錄
前文列表
Openstack組件部署 — Overview和前期環境準備
Openstack組建部署 — Environment of Controller Node
Openstack組件部署 — Keystone功能介紹與認證實現流程
Openstack組件部署 — Keystone Install & Create service entity and API endpoints
Openstack組件部署 — keystone(domain, projects, users, and roles)
Openstack組件實現原理 — Keystone認證功能
Openstack組建部署 — Glance Install
Openstack組件實現原理 — Glance架構(V1/V2)
Openstack組件部署 — Nova overview
Openstack組件部署 — Nova_安裝和配置Controller Node
Openstack組件部署 — Nova_Install and configure a compute node
Openstack組件實現原理 — Nova 體系結構
Openstack Networking serivce
OpenStack Networking (neutron) allows you to create and attach interface devices managed by other OpenStack services to networks. Plug-ins can be implemented to accommodate different networking equipment and software, providing flexibility to OpenStack architecture and deployment.
OpenStack Networking service,項目代號Neutron,能夠讓我們創建、插入接口設備,這些接口設備由其他的OpenStack service來管理。Plug-ins(插件式)的實現可以容納多種不同的網絡設備和軟件,爲OpenStack架構與部署提供了靈活性。
Neutron包含有以下組件:
neutron-server:接收和路由API request到合適的OpenStack Network Plug-ins,以達到預想的目的。
OpenStack Networking plug-ins and agents(網絡插件和代理):創建網絡和子網、提供IP地址、插拔端口,這些Plug-ins和agents都根據不同的供應商和技術而不同。基於Plug-ins和agents的OpenStack network,爲Cisco虛擬交換機或物理交換機、NEC OpenFlow產品、Open vSwitch、Linux bridging以及VMware NSX產品創造了關聯的可能性。
Messaging queue消息隊列:大多數的OpenStack Networking安裝都會應用消息隊列的功能,用於在neutron-server和各種各樣的agents進程之間進行信息的路由。也爲某些特定的插件扮演臨時數據庫的角色,以此來存儲網絡狀態。
OpenStack networking service主要和OpenStack compute service進行交互,以提供compute service連接到虛擬機實例所需要的網絡條件。
Neutron體系結構圖
neutron-server能夠接受並通過Message-queue來轉發APIs給對應的Plug-ins
neutron-server還能夠應用軟件定義的網絡服務(Software Defined Networking Service)將REST風格的APIs轉發給Plug-ins。
基本的Neutron概念
Neutron用於管理OpenStack雲計算平臺中所有網絡方面的虛擬網絡基礎設施(VNI)和物理網絡基礎設施(PNI)的接入層。它允許Tenant創建包括Firewall(防火牆)、Load Balancer(負載均衡)、virtual private network(***)等高級網絡拓撲。還爲Openstack Networking提供了networks、subnets、routers等抽象對象的概念。每個抽象對象都擁有自己獨特的功能,可以模擬各自對應的物理網絡設備。
Neutron的抽象對象
其中networks包含了subnets,routers負責在不同的networks和subnets之間實現路由轉發功能。每個router都有一個連接到network的Getway,router還有很多連接到subnet中的interface。所以一個subnet下的虛擬機可以訪問連接到同一個router中的其他subnet下的虛擬機。
網絡networks
Neutron networks目的是爲了讓OpenStack更靈活地劃分物理網絡,在多租戶環境下能夠爲每個租戶提供獨立的網絡環境。另外,Neutron還提供API來實現這個目標。Neutron networks是一個可以被用戶創建的抽象對象,如果要和物理網絡環境的概念進行映射的話,這個抽象對象相當於一個巨大的交換機,可以擁有無數個動態可創建和銷燬的虛擬端口。而這些端點都會連接到networks中的subnets。
子網subnets
簡單地說,subnets是由一組相同網段的IP地址組成的地址池。不同subnet間的通信需要routers的支持。Neutron中的subnets隸屬於networks。
路由器routers
和物理網絡環境下的路由器類似,Neutron中的routers也是一個路由選擇和轉發功能組件。只不過在Neutron中,routers是可以創建和銷燬的軟件組件。
端口
在物理網絡環境中,端口是用於連接設備進入網絡的地方。Neutron中的端口起着類似的功能,它是routers和虛擬機掛接網絡的着附點。
Neutron的Public外部網絡和Private內部網絡
任何給定的Networking都需要設置至少有一個Public外部網絡,Public外部網絡與其他的網絡不同,它不僅僅是一個虛擬網絡。更重要的是它表示了OpenStack Netowrking能被外部物理網絡接入並訪問的視圖。
注意:Public外部網絡的IP地址只能被外部接入的物理網絡所訪問。因爲Public外部網絡僅僅代表了進入Internet的一個視圖,實際上它的DHCP是關閉的。
Public外部網絡之上,擁有一個或多個Private內部網絡。這些由軟件定義的Private內部網絡能夠直接連接到虛擬機。但只能是Private內部網絡自身所包含的虛擬機或者是那些在通過Interface連接到同一個router的subnet上的虛擬機才能夠被連接。即,不相連的Private內部網絡之間是互相隔離的。
Neutron的security groups安全組
Neutron同樣也支持 security groups(安全組)。安全組允許管理員實現防火牆規則的定義。一個虛擬機可以屬於一個或多個安全組,Neutron爲這個虛擬機配置這些安全組中的規則,例如:阻止或者開啓端口,端口範圍或者通信類型。
虛擬機如何連接到Internet外網
如果希望從Internet外網訪問虛擬機,那麼Openstack Networking中必須至少存在一個虛擬路由器。而且每個路由器至少配有一個能夠連接到networks和Interface的Getway,而且這些Interface必須連接着subnet。通過這樣一連串的網絡配置,才能夠保證能成功從外網連接到一個虛擬機。反之亦然。
如同物理路由器一樣,subnet中的虛擬機可以訪問連接到同一個路由器中的其他subnet的虛擬機,虛擬機也可以通過該路由器的網關訪問外網。
Public、Private、路由器、虛擬機的關係示例圖:
另外,你可以將Public外部網絡的IP地址分配給Private內部網絡的端口。這樣的話一旦有什麼連接到subnet,那麼這個連接就叫做一個端口。你可以通過這個端口把外部網絡IP地址分給虛擬機。