ICTインフラソリューション部のグエンです。前回は、Glanceについて説明しました。
今回は、NeutronというOpenstackのネットワークを管理するサービスを説明しようと思います。
Neutronとは
Neutronは、他のOpenStackサービスによって管理されるインターフェースデバイスをネットワークに作成し、接続することを可能にします。
プラグインを実装することで、さまざまなネットワーク機器やソフトウェアに対応でき、OpenStackのアーキテクチャと展開に柔軟性を提供します。
Neutronの主要機能
主要機能 |
説明 |
---|---|
ネットワークの抽象化と管理 |
Neutronは、物理ネットワークを抽象化し、仮想ネットワークを簡単に作成、管理するためのAPIを提供します。これにより、ユーザーは物理ネットワークの詳細を気にすることなく、仮想ネットワークを柔軟に設定できます。 |
IPアドレスの管理 |
Neutronは、仮想マシンに自動的にIPアドレスを割り当てるための機能を提供します。これには、DHCPサービスやフローティングIP(Floating IP)の管理が含まれます。 |
ネットワーク分離とセキュリティ |
Neutronは、仮想ネットワーク間のトラフィックを分離し、セキュリティグループを使用してネットワークトラフィックを制御します。これにより、高度なセキュリティとトラフィック管理が可能となります。 |
プラグインとエージェントのサポート |
Neutronは、さまざまなネットワーキング技術やプロバイダーをサポートするために、プラグインとエージェントを使用します。これにより、ネットワーキングの柔軟性と拡張性が確保されます。 |
nova-networkとNeutronの違い

OpenStack には 2 つのネットワークモデルがあります。nova-networkとNeutronです。
nova-networkは、OpenStackの初期のネットワークコンポーネントで、仮想マシンのネットワーク管理を行うサービスです。nova-networkは nova(Compute プロジェクト)の一部であるサブプロセスとして機能します。
ネットワーク標準化やネットワーク統合を進める際、nova-networkでは対応できない部分が出てくることがあります。そのような場合、Neutronが提供する高度なネットワーク機能を利用することで、解決策を提供することが可能です。nova-networkとNeutronの違いについて、以下の表に示します。
nova-network |
Neutron |
|
---|---|---|
アーキテクチャ |
シンプルなアーキテクチャで、初期のOpenStackリリースから利用されています。ネットワーキング機能はnovaコンポーネントに統合されています。 |
モジュラーでプラグインベースのアーキテクチャを持ち、様々なネットワーク技術やベンダーソリューションをサポートしています。ネットワークサービスは独立したコンポーネントとして提供され、より高度なネットワーク機能を実現します。 |
機能 |
基本的なネットワーク機能(フラットネットワーク、VLANなど)のみを提供し、スケーラビリティや複雑なネットワークトポロジーに対応するのが難しいです。 |
高度なネットワーク機能(ロードバランシング、ファイアウォール、VPNなど)を提供し、柔軟でスケーラブルなネットワーク構成が可能です。 |
拡張性とプラグイン |
拡張性が限られており、特定のネットワーク技術やベンダーに依存します。 |
拡張性が高く、プラグインを使用して様々なネットワーク技術(Open vSwitch、Linuxブリッジ、Cisco、VMwareなど)をサポートできます。 |
将来 |
開発が停止され、徐々に廃止される予定です。 |
継続的に開発・改善されており、将来的なOpenStackのネットワーキング標準として推奨されています。 |
現在は、より高度な機能を持つNeutronに置き換えられ、nova は非推奨となっています。
Neutronのコンポーネント
Neutronサービスには以下の主要なコンポーネントがあります。
●neutron-server:
APIリクエストを受け取り、適切なプラグインにルーティングします。これにより、ネットワークの作成や管理が実行されます。
●OpenStack Networkingプラグインとエージェント:
・L2エージェント: コンピュートノード上で動作し、新しいデバイスの接続と配線を管理します。OVS(Open vSwitch)エージェントが一般的に使用されます。
・L3 エージェント: ルーターサービスを提供し、異なるネットワーク間のルーティングを処理します。外部ネットワークとの接続(Floating IPsの管理)やSNAT/DNATを実施します。
・DHCP エージェント: テナントのネットワークに対してDHCPサービスを提供し、インスタンスに自動的にIPアドレスを割り当てます。
●メッセージングキュー:
多くのOpenStack Networkingインストールで使用され、neutron-serverと各種エージェント間の情報ルーティングに使用されます。また、特定のプラグインのネットワーク状態を保存するデータベースとしても機能します。
●neutron-database:
ネットワーク設定やステータス情報を保存するためのデータベースです。neutron-serverはこのデータベースとやり取りを行い、ネットワークの状態を管理します。

ネットワーク作成例
プライベートネットワークの作成、ルーターの作成、フローティングIPの確保について説明します。Neutronを使用して、ネットワーク、ルーター、フローティングIP、セキュリティグループを作成できます。
★ネットワーク作成
Step 1: 「プロジェクト」 > 「ネットワーク」 > 「ネットワーク」に移動し、「ネットワークの作成」をクリックします。

Step 2: ネットワーク作成
ネットワーク名: これはネットワークの名前です。この例では、ネットワーク名に network1 を設定します。
管理状態有効: これによりネットワークが有効になります。チェックしたままにします。
共有: ネットワークを他のプロジェクトと共有する場合はチェックします。
サブネットの作成: サブネットを作成するために、チェックしたままにします。
アベイラビリティゾーン ヒント: このオプションのデフォルト設定で十分です。

Step 3: サブネット作成
サブネット名: サブネットの名前を指定します。この例ではsubnet1に設定されます。
ネットワークアドレス: CIDR表記でネットワークを選択します。この例では192.168.19.0/24を使用します。
IPバージョン: IPv4/ IPv6
ゲートウェイIP: 任意でこのネットワークのゲートウェイIPを選択します。ゲートウェイIPを入力しない場合、Neutronサービスによって選択されます。
「サブネットの詳細」タブについて、ネットワークとサブネットを作成するためにはこのタブを入力する必要はありません。この手順では、ここで止めますが、このStep ではDHCPの有効化または無効化、特定のIPアドレスの割り当て、DNSネームサーバーの設定、ホストルートの設定が可能です。

Step 4: 作成したネットワークの確認

★ルーター作成
Step 1: 「プロジェクト」 > 「ネットワーク」 > 「ルーター」に移動し、「ルーターの作成」ボタンをクリックします。

Step 2: ルーター作成
ルーター名: ルーターの名前を選択します。この例ではルーターをrouter1に設定されます。
管理状態有効: ルーターを有効にするためにチェックされたままにします。
外部ネットワーク: 外部ネットワークを使用します。
アベイラビリティゾーン ヒント: このオプションのデフォルト設定で十分です。
ルーターは外部ネットワーク、つまりプロバイダーネットワークに接続する必要があります。この手順では、publicという名前のネットワークを使用します。

Step 3: 作成したルーターの確認

Step 4: ルーターをプライベートネットワークに接続する
ネットワークトポロジーで確認すると、router1 がpublicネットワークとnetwork1ネットワークと通信できません。ルーターがpublicとnetwork1と通信できるようにするためには、network1を接続する必要があります。ルーターをネットワークに接続することをインターフェースの追加と呼びます。

まず、Horizonの「ネットワーク」 > 「ルーター」を選択します。このルーターにインターフェースを追加するため、ルーターの名前(この例では、router1)をクリックします。

右上にある「インターフェースの追加」ボタンをクリックします。

次の画面で、ルーターに接続するためのサブネットとしてsubnet1を選択し、任意でインターフェースのIPアドレスを指定します。IPアドレスを指定しない場合は、サブネットのゲートウェイIPが使用されます。

Step 5: ネットワーク接続のを確認
インターフェースをルーターに追加すると、publicとnetwork1ネットワークが接続されます。

★フローティングIP
OpenStackにおけるフローティングIPは、公開可能なルーティング可能なIPアドレスで、インスタンスにアタッチしたりデタッチしたりすることができます。たとえば、プライベートネットワークに関連付けられたインスタンスがインターネットからアクセスする必要がある場合、フローティングIPをインスタンスに関連付けることで、インターネットからの通信を可能にします。
フローティングIPの確保
「ネットワーク」 > 「Floating IP」 > 「Floating IPの確保」をクリックします。

「Floating IPの確保」画面上で必要な情報を入力します。

IPはpublicネットワークから取得されます。フローティングIPはこのネットワークからのみ確保されます。
IPが追加されると、フローティングIPリストに表示されます。

このフローティングIPアドレスは、将来的にインスタンスへのSSHアクセスに使用されます。具体的には、インスタンスにアクセスできるために、確保したフローティングIPを選択し、「割り当て」ボタンをクリックします。
IPを割り当てるポートに、作成したインスタンスを選択し、「割り当て」ボタンをクリックすると、そのインスタンスにフローティングIPを割り当てます。つまり、そのIPを使用してSSHでインスタンスにアクセスできます。

Neutronの設定に関するCLIでのコマンド
Horizonで設定を行うこともできますが、Neutronの設定はCLIでも可能です。
ネットワークの作成
openstack network create mynet |
サブネットの追加(一般的な方法)
openstack subnet pool list //サブネットプールは事前に存在している必要あり openstack subnet create --subnet-pool <プール> --network mynet mysubnet |
サブネットの追加(IPアドレス範囲を制御する方法)
openstack subnet create --subnet-range 10.100.100.0/24 --network mynet mysubnet |
ルーターの作成
openstack router create myrouter |
ルーターをpublic と新しいネットワークに接続
openstack router set --external-gateway public myrouter openstack router add subnet myrouter mysubnet |
作成されたポートの確認
openstack port list --router myrouter |
ポートの詳細
openstack port show <ポートID> |
ルーターの詳細
openstack router show myrouter --fit-width |
サブネットの詳細
openstack subnet show mysubnet |
第7回は以上となります。次回、Cinder、Swiftを説明します。
OpenStack導入サービス

OpenStackを仮想基盤としてサービスの包括的な技術支援を提供します。製品の検討段階から設計、PoC、構築、運用、技術支援まで行い、効率的でセキュアなクラウド基盤の構築をサポート致します。
詳細を⾒る