
與 OpenStack 其他服務一樣,Neutron 采用的是分布式架構,包括 Neutorn Server、各種 plugin/agent、database 和 message queue。
-
Neutron server 接收 api 請求。
-
plugin/agent 實現請求。
-
database 保存 neutron 網絡狀態。
-
message queue 實現組件之間通信。
metadata-agent 之前沒有講到,這里做個補充:
instance 在啟動時需要訪問 nova-metadata-api 服務獲取 metadata 和 userdata,這些 data 是該 instance 的定制化信息,比如 hostname, ip, public key 等。
但 instance 啟動時並沒有 ip,如何能夠通過網絡訪問到 nova-metadata-api 服務呢?
答案就是 neutron-metadata-agent
該 agent 讓 instance 能夠通過 dhcp-agent 或者 l3-agent 與 nova-metadata-api 通信
-
Neutron 通過 plugin 和 agent 提供的網絡服務。
-
plugin 位於 Neutron server,包括 core plugin 和 service plugin。
-
agent 位於各個節點,負責實現網絡服務。
-
core plugin 提供 L2 功能,ML2 是推薦的 plugin。
-
使用最廣泛的 L2 agent 是 linux bridage 和 open vswitch。
-
service plugin 和 agent 提供擴展功能,包括 dhcp, routing, load balance, firewall, vpn 等。
