参考
https://www.amazon.co.jp/%E3%82%AA%E3%83%BC%E3%83%97%E3%83%B3%E3%82%BD%E3%83%BC%E3%82%B9%E3%83%BB%E3%82%AF%E3%83%A9%E3%82%A6%E3%83%89%E5%9F%BA%E7%9B%A4-OpenStack%E5%85%A5%E9%96%80-%E6%A7%8B%E7%AF%89%E3%83%BB%E5%88%A9%E7%94%A8%E6%96%B9%E6%B3%95%E3%81%8B%E3%82%89%E5%86%85%E9%83%A8%E6%A7%8B%E9%80%A0%E3%81%AE%E7%90%86%E8%A7%A3%E3%81%BE%E3%81%A7-%E4%B8%AD%E4%BA%95%E6%82%A6%E5%8F%B8/dp/4048660675www.amazon.co.jp
機能と役割
・仮想L2ネットワークの提供
・仮想ルーターの提供
・セキュリティグループ管理
・IPアドレス管理とDHCP機能の提供
※インスタンスのIPアドレスはOpenStackに制御対象であるため、インスタンスのOS側でIPアドレスを変更すると接続できなくなる。
・外部ネットワークからのアクセスを中継
プロセス
プロセス名 | 説明 |
---|---|
neutron-server | REST API提供 |
neutron-linuxbridge-agent | Linux BridgeでL2ネットワーク機能を制御 |
neutron-openvswitch-agent | Open vSwitchでL2ネットワーク機能を制御 |
neutron-l3-agent | L3ネットワーク機能を制御 |
neutron-dhcp-agent | DHCP機能を制御 |
neutron-metadata-agent | metadataサーバへのアクセスを中継 |
neutron-ns-metadata-proxy | metadataサーバへのアクセスを中継 |
【neutron-server】
論理ネットワークの構成情報をDBに書き込み、メッセージングサーバ経由で構成変更をエージェントに依頼
停止しても仮想マシンの通信に影響はない。構成変更ができなくなるだけ。
【neutron-linuxbridge-agent, neutron-openvswitch-agent】
L2仮想ネットワーク機能を実現する。
現在の主流は、neutron-openvswitch-agent。
linuxbridgeにopenvswitchどちらの場合も実現することは以下。・
①同一テナント内の仮想マシン間の通信が可能
②同一テナント内の仮想マシン間の通信は物理的に異なるサーバ上に配置されていても可能
③異なるテナントの通信は、それぞれ独立し混在しない
上記の実現内部実装が、エージェントにより異なる
neutron-linuxbridge-agentの場合、テナント毎にブリッジ作成&VLANを分けて、異テナント間の通信の混在を避ける。
neutron-openvswitch-agentの場合、統合スイッチ(br-int)に全テナントの仮想マシンを接続しvlan & フローテーブルで異テナント間の通信の混在を避ける。
【neutron-l3-agent】
仮想ネットワークのルーティング機能。ネットワークネームスペース機能により実現
外部から接続可能なフローティングIPの割当
冗長化は他コンポーネントのように出来ない(書籍執筆時点では手法なし)
【neutron-dhcp-agent】
仮想サブネットが定義された仮想ネットワーク毎にDHCP機能を提供するdnsmasqが起動
Open vSwitchのポートに割り当てたIPアドレスをdnsmasqがListenすることで実装
DHCPだが一度割り当てられたIPは、その仮想マシンが再起動しても固定で割り当てられる。これは以下フローで実現
①仮想マシン起動しdnsmasqがIP割当
②neutron-dhcp-agentが仮想マシンのMACアドレス情報と割り当てたIPアドレス情報を取得し、dnsmasqに対し、固定割り当てするよう設定をする。
【neutron-metadata-agent、neutron-ns-metadata-proxy】
Novaの提供するMetadataサーバへのアクセスを補助
neutron-metadata-agentは仮想ルーター上でhttp://169.254.169.254で待ち受け、必要な情報を付加した上で、Metadataサーバに中継
neutron-ns-metadata-proxyは仮想ルーターがないNWで動作する仮想マシンが、Metadataサーバと連携するためのもの。仮想ルーターがないNWで、neutron-ns-metadata-proxyが起動してneutron-metadata-agentへのアクセスを中継する。結果、Metadataサーバと通信が可能になる。
メモ
Neutron設定ポイント
①物理サーバが、どのNICを通じて外部ネットワークと接続するか?
②外部ネットワークとの接続形式(Trunk? AccessPort等)
stackoverflow.com
この情報より以下がわかる。
・複数の外部ネットワークを利用可能になり、以下両方が可能
インスタンスを物理NWに直接つなげる(プロバイダNW利用)
ユーザー定義のセルフサービスNW両方につなげる(セルフサービスNW利用)
Using multiple external networks in OpenStack Neutronvirtuallylg.wordpress.com
Odd Bits
http://www.marcoberube.com/archives/248
Multiple floating IP pools - OpenStack Networking Guide - current
上記の手法で複数の外部ネットワークを作成可能
※external_network_bridgeは空にする