OpenStack Neutronとは何か?:いま覚えておくべきOpenStack Neutronの基本(1)(3/3 ページ)
オープンなIaaSプラットフォーム構築の本命といわれるOpenStack。そのネットワーク部分の管理を担うコンポーネントであるNeutronはどのようなものでしょうか。基本的な構成や内部の動作、実践的なネットワークの構成方法を解説します。
Neutronの動作(2)インスタンスから外部ネットワークへの通信
次に、インスタンスからパッケージのアップデートなどで外部ネットワークへアクセスする際のNeutronの動作を見てみます。
OpenStackからNeutronへネットワーク作成が指示されると、Neutronのプロセス「neutron-l3-agent」がルーター用のNamespaceを作成します。さらに作成したNamespace内でiptablesやip forwardingを設定/実行します。また、インスタンスと一対一でひも付いたNAT用のグローバルIPアドレス(floating IP)が割り当てられます。これは外部ネットワークのゲートウェイとなるインターフェースのエイリアスとして付与されます。これでルーターの作成と設定は完了です。
インスタンスが外部ネットワークへアクセスする際の動作は以下の通りです。
- インスタンスが外部ネットワークに向けて通信を開始します
- インスタンスのOSに設定されたdefault gatewayは10.0.0.1なので、ルーターnamespaceに転送されます。このdefault gatewayはインスタンスの起動時にDHCPサーバーが設定したものです
- ルーターnamespace内のdefault gatewayは192.168.1.1なので、外部ネットワークに転送されます
- この時、送信元IPアドレスは133.1.1.2(floating IP)となるようにNAT接続されており、戻りのパケットはそこに返されることになります
Neutronの動作(2)外部ネットワークからインスタンスへの通信
次に、起動したインスタンスでWebサーバーなどを立ち上げて外部からアクセスさせるケースを見てみましょう。外部接続用のルーターは既に上記で作成していますので割愛します。
これも動作は非常に単純です。
- 外部ネットワークからインスタンスへのアクセスは、floating IPである133.1.1.2に向けて行われます
- ルーターnamespace内で宛先IPアドレスが10.0.0.3となるようNATされます
- ルーターnamespace内の経路設定に従って、インスタンスに転送されます
Neutronのマルチテナント構成
上記の三つのケースを通じて、Neutronを構成するソフトウェアと基本的な動作をご理解いただけたかと思います。
ここからは、複数のテナントを構成する場合に、どのような実装になるのかを表したのが下図です。テナントAとテナントBを作成しています。
注目していただきたいのは、下記の三点です。
- 外部ネットワークに繋がる外部ブリッジのbr-exは複数テナントで共有されます。複数のグローバルIPセグメントを使用する場合のみ、複数のbr-exが作成されます
- ルーターnamespace、DHCPサーバーnamespaceはテナントごとに作成されます
- 二つのテナントの内部ネットワークアドレスが同一であるにもかかわらず、内部ブリッジであるbr-intは両テナントで共有されています。内部ブリッジはVLAN tagに対応しており、テナントごとに別のVLAN IDが割り振られているため、テナントA/Bのネットワークは分割されています。このように、テナント間のネットワーク分割は、Network NamespaceとVLANによって実現されています
Neutronのマルチノード構成
最後に、OpenStackマルチノード構成の場合を見てみましょう。マルチノード構成の場合は大きく二点が変更になります。
まず、インスタンスが動作するコンピュートノードで行われていたネットワーク処理が専用物理サーバー(ネットワークノード)に集約されます。コンピュートノードとネットワークノードのbr-intがGREやVXLANなどのL3トンネリングプロトコルを介して接続されます。その詳細を表しているのが下図です。接続のためにブリッジ「br-tun」が作成され、br-tunの間が(この図では)GREトンネリングで結ばれているのがお分かりいただけるかと思います。
終わりに
今回はNeutronに求められる要件とその実装について解説しました。次回はあなた自身に擬似的にNeutronになっていただきます。Neutronが行っている操作をコマンドラインレベルで再現し、より深い理解を目指しましょう。
Copyright © ITmedia, Inc. All Rights Reserved.