回覆列表
-
1 # 愛慕甄甄
-
2 # 修遠123
Neuton元件有一個主要服務程序Neutron-server,它運行於控制節點上,對外提供OpenStack網路API作為訪問Neutron的入口,收集請求後呼叫外掛(Plugin) 進行處理,最終由計算節點和網路節點上的各種代理(Agent) 完成請求。
網路提供者(Netvork Provider)是指提供者OPenStack網路服務的虛報機或者物理網路裝置,如Linux Bridge、Open vSwitch或者其他支援neutron的物理交換機。與其他服務一樣,Neutron的各個元件服務之間需要相互協調通訊,Neutron-server、外掛、代理之問透過訊息佇列(預設用RabbitMQ實現)進行通訊和相互協調。
、Neutron功能
1. 二層交換
Neutron支援多種虛擬交換機,一般使用Linux Bridge和Open vSwitch建立傳統的VLAN網路,以及基於隧道技術的Overlay網路,如VxLAN和GRE(Linux Bridge 目前只支援 VxLAN)。
2. 三層路由
Neutron從Juno版開始正式加入的DVR(Distributed Virtual Router)服務,它將原本集中在網路節點的部分服務分散到了計算節點上。可以透過namespace中使用ip route或者iptables實現路由或NAT,也可以透過openflow給OpenvSwitch下發流表來實現。
3. 負載均衡
LBaaS 支援多種負載均衡產品和方案,不同的實現以 Plugin 的形式整合到 Neutron,透過HAProxy來實現。
4. 防火牆
Neutron有兩種方式來保障instance和網路的安全性,分別是安全組以及防火牆功能,均可以透過iptables來實現,前者是限制進出instance的網路包,後者是進出虛擬路由器的網路包。
三、Network
1. Local
Local網路,本地的一個Linux Bridge,除了虛擬機器的虛擬網絡卡不連線其他的網路裝置,實際場景很少使用,可以忽略。
2. Flat
Flat網路,不帶vlan tag的網路,相當於Local網路的Linux Bridge連線到一個物理網絡卡,該網路中的instance能與同網路的instance通訊,且可以跨多個節點,實際場景也很少用到。
3. VLAN
VlAN網路,可以跨節點,目前是私有云網路應用較多。
4. VXALN
VXLAN網路,是基於隧道技術的 overlay 網路,透過唯一的VNI區分於其他 vxlan 網路。vxlan中資料包透過VNI封裝成UPD包進行傳輸,因為二層的包透過封裝在三層傳輸,能夠克服vlan和物理網路基礎設施的限制。
5. GRE
GRE網路,與vxlan類似的一種overlay網路,使用IP包進行封裝。
四、Neutron架構
Neutron採用分散式架構,由多個元件共同對外提供網路服務,如下圖所示:
由上圖可以看到Neutron有以下元件構成:
Neutron Server:對外提供OpenStack網路API,接收請求,並呼叫Plugin處理請求。
Plugin:處理Neutron Server發來的請求,維護OpenStack邏輯網路的狀態,並呼叫Agent處理請求。
Agent:處理Plugin的請求,負責在Network Provider上真正實現各種網路功能。
Network Provider:提供網路服務的虛擬或者物理網路裝置,比如Linux Bridge,OpenVSwitch或者其他支援Neutron的物理交換機。
Queue:Neutron Server,Plugin和Agent之間透過Messaging Queue通訊和呼叫。
Database:存放OpenStack的網路狀態資訊,包括Network,Subnet,Port,Router等。