昨天為讀者介紹目前 OpenStack 中算是最核心的元件,Keystone,今天來介紹 OpenStack 筆者認為最複雜的原件,Neutron,也是 OpenStack 提供網路服務的元件。
Table of Contents
Neutron 架構
OpenStack Networking (neutron) 允許您創建網路介面 (network interface) 並接上其他 OpenStack 元件管理的服務 (如 Nova VM),使其能夠連接到網絡。可以透過不同的後端 plugin 去因應不同的網絡設備和軟體,為 OpenStack 架構和部署提供靈活性。
它包括以下組件:
Neutron-server
接受 API 請求並將其路由到適當的 OpenStack Networking 插件以進行操作。
OpenStack Networking 後端 plug-ins 和 agents
插入和拔除端口,創建網絡或子網路,並提供 IP 位置。這些 plug-ins 和 agents 根據不同的雲中使用的供應商和技術而異。常見的 plug-ins 為 OVS, Linux Bridge 和 OVN,後續會介紹其架構。
常見的 agents 有 L3(第 3 層)、DHCP(動態主機 IP 尋址)和 plug-in agent。
Message Queue
就如同 Nova 和其他大多數服務一樣,元件中的溝通是透過 Message Queue,OpenStack Networking 透過它來在 neutron-server 和各種 agents 之間交換路由訊息。還充當資料庫來存儲特定 plug-in 的網絡狀態。
OpenStack Networking 主要與 OpenStack Compute 一起使用,為其 Instance (Nova VM) 提供網路連線。
Neturon 提供的服務
Neutron 提供了網路虛擬化的服務,在 OpenStack 上建置一個 overlay network 的功能,主要提供以下服務
- 交換器:提供同一網段的 VM L2 的連通性
- 路由器:提供 L3 網路功能,SNAT, DNAT 等
- 防火牆:提供基本防火牆,port blocking 等
- 負載平衡:提供 load balancer,不過這個功能目前已經轉移到透過 Octavia 實現,在 Queens 版本已經被標記為 deprecated。
其概念主要跟一般實體設備一樣,不過在 OpenStack 中透過軟體達成的。
小結
本次介紹了 Neutron 其中的元件以及提供的功能,下一篇將會介紹 Neutron 中的一些基本概念和名詞。
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.