Modular Layer 2 (ML2) プラグインは、 OpenStack Networking で、複雑な実世界のデータセンターで使われている様々な L2 ネットワーク技術を同時に利用できるようにするフレームワークです。 ML2 フレームワークでは 2 種類のドライバーが区別されています。
タイプドライバー
OpenStack ネットワークがどの技術で実現されているかを定義します。例: VXLAN
利用可能なネットワークタイプはそれぞれ ML2 タイプドライバーにより管理されます。タイプドライバーはネットワークタイプ固有の必要な情報を管理します。プロバイダーネットワークではタイプ固有の情報の検証を行い、テナントネットワークの場合は空きセグメントの割り当てを行います。
メカニズムドライバー
あるタイプの OpenStack ネットワークを実現する仕組みを定義します。例: Open vSwitch メカニズムドライバー。
メカニズムドライバーは、タイプドライバーが設定した情報を受け取り、有効化になっているそれぞれのネットワーク機構にその情報を適切に適用する役割を持ちます。
メカニズムドライバーは、 (RPC 経由で) L2 エージェントを活用したり、外部のデバイスやコントローラーと直接やり取りしたりできます。
同じ仮想ネットワークのいろいろなポートを扱うために、複数のメカニズムドライバーやタイプドライバーを同時に使用できます。
タイプドライバー / メカニズムドライバー |
Flat | VLAN | VXLAN | GRE |
---|---|---|---|---|
Open vSwitch | はい |
はい |
はい |
はい |
Linux ブリッジ |
はい |
はい |
はい |
はい |
SRIOV | はい |
はい |
いいえ |
いいえ |
macvtap |
はい |
はい |
いいえ |
いいえ |
L2 population | いいえ |
いいえ |
はい |
はい |
注釈
L2 population は、 VXLAN や GRE のオーバーレイネットワークにおいて BUM (ブロードキャスト、不明な宛先アドレス、マルチキャスト) トラフィックを最適化するための特別なメカニズムドライバーです。 Linux ブリッジメカニズムドライバーか Open vSwitch メカニズムドライバーと組み合わせて使用する必要があり、単独のメカニズムドライバーとして使用することはできません。詳しい情報は、下記の メカニズムドライバー の節を参照してください。
ML2 プラグインでタイプドライバーを有効にするには、 /etc/neutron/plugins/ml2/ml2_conf.ini ファイルを編集します。
[ml2]
type_drivers = flat,vlan,vxlan,gre
詳しい情報は Configuration Reference を参照してください。
以下のタイプドライバーが利用できます。
プロバイダーネットワークは、プロジェクトネットワークと同じく接続性を適用しますが、管理権限を持ったユーザー (特権ユーザー) だけがこれらのネットワークを管理できます。プロバイダーネットワークは物理ネットワーク基盤と直接接続されるからです。プロバイダーネットワークについてのより詳しい情報は、 OpenStack Networking や OpenStack 管理者ガイド などの関連する節を参照してください。
Flat
管理者は、プロバイダーネットワークに使用できる物理ネットワーク名のリストを設定する必要があります。詳細は、 Configuration Reference を参照してください。
VLAN
管理者は、プロバイダーネットワークに使用できる物理ネットワーク名のリストを設定する必要があります。詳細は、 Configuration Reference を参照してください。
GRE
追加の設定はありません。
VXLAN
管理者は、使用すべき VXLAN マルチキャストグループを設定できます。
注釈
VXLAN マルチキャストグループの設定項目は Open vSwitch エージェントにはありません。
現時点では、この設定が Linux ブリッジエージェントでは使用されていません。 Linux ブリッジエージェントには、エージェント固有の設定項目があります。詳細は https://bugs.launchpad.net/neutron/+bug/1523614 を参照してください。
プロジェクトネットワークは、特定のプロジェクトのインスタンスに対して接続性を提供します。一般ユーザー (非特権ユーザー) は、管理者やオペレーターが定義した範囲内でプロジェクトネットワークを管理できます。プロジェクトネットワークやプロバイダーネットワークについてのより詳しい情報は、 OpenStack Networking や OpenStack 管理者ガイド などの関連する節を参照してください。
プロジェクトネットワークの設定は、 neutron サーバーの /etc/neutron/plugins/ml2/ml2_conf.ini ファイルで行われます。
VLAN
管理者は、プロジェクト (テナント) ネットワークへの割り当てに使用できる VLAN ID の範囲を設定する必要があります。詳細は、 Configuration Reference を参照してください。
GRE
管理者は、プロジェクト (テナント) ネットワークへの割り当てに使用できるトンネル ID の範囲を設定する必要があります。詳細は、 Configuration Reference を参照してください。
VXLAN
管理者は、プロジェクト (テナント) ネットワークへの割り当てに使用できる VXLAN ID の範囲を設定する必要があります。詳細は、 Configuration Reference を参照してください。
注釈
プロジェクト (テナント) ネットワークへのフラットネットワークの割り当てはサポートされていません。フラットネットワークはプロバイダーネットワークでのみ使用できます。
ML2 プラグインでメカニズムドライバーを有効にするには、 neutron サーバーの /etc/neutron/plugins/ml2/ml2_conf.ini ファイルを編集します。
[ml2]
mechanism_drivers = ovs,l2pop
詳しい情報は Configuration Reference を参照してください。
Linux ブリッジ
メカニズムドライバーに関する追加の設定は不要です。追加のエージェント設定が必要です。詳細は下記の L2 エージェント の節を参照してください。
Open vSwitch
メカニズムドライバーに関する追加の設定は不要です。追加のエージェント設定が必要です。詳細は下記の L2 エージェント の節を参照してください。
SRIOV
管理者は、 OpenStack が使用してよい PCI ハードウェアのリストを定義する必要があります。詳細は、 Configuration Reference を参照してください。
macvtap
メカニズムドライバーに関する追加の設定は不要です。追加のエージェント設定が必要です。関連する節を参照してください。
L2 population
管理者は、追加でいくつかのオプションを設定できます。詳細は、 Configuration Reference の関連する節を参照してください。
個別事項
オープンソース
neutron 組み込みの参照実装以外にも、オープンソースドライバーがあります。これらのドライバーの設定はこのドキュメントの対象外です。例:
プロプライエタリティ (ベンダー)
neutron 組み込みの参照実装以外に、様々なベンダーからメカニズムドライバーが提供されています。
これらのドライバーの設定はこのドキュメントの対象外です。
L2 エージェントは、OpenStack リソースに対してレイヤー 2 (Ethernet) ネットワークの接続性を提供します。通常は、ネットワークノードとコンピュートノードで実行されます。
Open vSwitch エージェント
Open vSwitch エージェントは Open vSwitch の設定を行い、OpenStack リソース用の L2 ネットワークを実現します。
Open vSwitch エージェントの設定は通常 openvswitch_agent.ini 設定ファイルで行われます。エージェント開始時にこの設定ファイルを引数として指定してください。
設定オプションの詳細な一覧は、 Configuration Reference の関連する節を参照してください。
Linux ブリッジエージェント
Linux ブリッジエージェントは Linux ブリッジの設定を行い、OpenStack リソース用の L2 ネットワークを実現します。
Linux ブリッジエージェントの設定は通常 linuxbridge_agent.ini 設定ファイルで行われます。エージェント開始時にこの設定ファイルを引数として指定してください。
設定オプションの詳細な一覧は、 Configuration Reference の関連する節を参照してください。
SRIOV NIC スイッチエージェント
SRIOV NIC スイッチエージェントは、 OpenStack インスタンス用の L2 ネットワークを実現するための PCI 仮想ファンクション (VF) の設定を行います。ルーター、DHCP などのその他のリソースのネットワーク接続には対応していません。
SRIOV NIC スイッチエージェントの設定は通常 sriov_agent.ini 設定ファイルで行われます。エージェント開始時にこの設定ファイルを引数として指定してください。
設定オプションの詳細な一覧は、 Configuration Reference の関連する節を参照してください。
macvtap エージェント
macvtap エージェントは、 OpenStack インスタンス用の L2 ネットワークを実現するために、カーネルの macvtap デバイスを使用します。ルーター、DHCP などのその他のリソースのネットワーク接続には対応していません。
macvtap エージェントの設定は通常 macvtap_agent.ini 設定ファイルで行われます。エージェント開始時にこの設定ファイルを引数として指定してください。
設定オプションの詳細な一覧は、 Configuration Reference の関連する節を参照してください。
L3 エージェントは、仮想ルーターや Floating IP などの高度な L3 サービスを提供します。 L2 エージェントもあわせて動作させる必要があります。
L3 エージェントの設定は通常 l3_agent.ini 設定ファイルで行われます。エージェント開始時にこの設定ファイルを引数として指定してください。
設定オプションの詳細な一覧は、 Configuration Reference の関連する節を参照してください。
DHCP エージェントは、 DHCP (Dynamic Host Configuration Protocol) と RADVD (Router Advertisement Daemon) サービスを担当します。 L2 エージェントもあわせて動作させる必要があります。
DHCP エージェントの設定は通常 dhcp_agent.ini 設定ファイルで行われます。エージェント開始時にこの設定ファイルを引数として指定してください。
設定オプションの詳細な一覧は、 Configuration Reference の関連する節を参照してください。
メタデータエージェントは、 cloud-init メタデータやユーザーデータにインスタンスがネットワーク経由でアクセスできるようにします。同じノードで L2 エージェントを実行する必要があります。
メタデータエージェントの設定は通常 metadata_agent.ini 設定ファイルで行われます。エージェント開始時にこの設定ファイルを引数として指定してください。
設定オプションの詳細な一覧は、 Configuration Reference の関連する節を参照してください。
L3 メータリングエージェントは L3 トラフィック計測を可能にします。同じノードで L3 エージェントを実行する必要があります。
メータリングエージェントの設定は通常 metering_agent.ini 設定ファイルで行われます。エージェント開始時にこの設定ファイルを引数として指定してください。
設定オプションの詳細な一覧は、 Configuration Reference の関連する節を参照してください。
L2 エージェントはいくつかの重要なセキュリティー機能を持ちます。
セキュリティーグループ
詳細は、 Configuration Reference の関連する節を参照してください。
ARP 詐称防止
L2 エージェント 設定により決まります。
この節では、メカニズムドライバーと L2 エージェントの組み合わせを「参照実装」と呼びます。以下の表はこうした実装の一覧です。
メカニズムドライバー |
L2 エージェント |
---|---|
Open vSwitch | Open vSwitch エージェント |
Linux ブリッジ |
Linux ブリッジエージェント |
SRIOV | SRIOV NIC スイッチエージェント |
macvtap |
macvtap エージェント |
L2 population | Open vSwitch エージェント、 Linux ブリッジエージェント |
以下の表に、どの参照実装でどの L2 以外の neutron エージェントが使用できるかを示します。
参照実装 |
L3 エージェント |
DHCP エージェント |
メタデータエージェント |
L3 メータリングエージェント |
---|---|---|---|---|
Open vSwitch & Open vSwitch エージェント |
はい |
はい |
はい |
はい |
Linux ブリッジ & Linux ブリッジエージェント |
はい |
はい |
はい |
はい |
SRIOV & SRIOV NIC スイッチエージェント |
いいえ |
いいえ |
いいえ |
いいえ |
macvtap & macvtap エージェント |
いいえ |
いいえ |
いいえ |
いいえ |
注釈
L2 population は、独立して動作するメカニズムドライバーではないため、この表には記載されていません。他のエージェントが使用できるかは、ポートのバインド時に使用される、組み合わせて使うメカニズムドライバーにより決まります。
L2 population についての詳しい情報は OpenStack マニュアル を参照してください。
ここでは、現在存在する L2 参照実装の特徴を説明します。
Open vSwitch メカニズムドライバーと Open vSwitch エージェント
インスタンスのネットワーク接続にも、ルーターや DHCP などの他のネットワークリソースの接続にも使用できます。
Linux ブリッジメカニズムドライバーと Linux ブリッジエージェント
インスタンスのネットワーク接続にも、ルーターや DHCP などの他のネットワークリソースの接続にも使用できます。
SRIOV メカニズムドライバーと SRIOV NIC スイッチエージェント
インスタンスのネットワーク接続 (device_owner = compute) のみに使用できます。
OVS や Linux ブリッジなどの他のメカニズムドライバーや L2 エージェントと組み合わせて使用します。 PCI Virtual Function (VF) 経由でインスタンスからネットワークアダプターへの直接アクセスが可能です。インスタンスは、ハードウェア機能を直接利用でき、高性能なネットワークを得られます。
クラウドの利用者は、インスタンスが通常の OVS ポートか SRIOV ポートのどちらを使うかを、 neutron API の VNIC_TYPE 属性で指定できます。
直接アクセスを行うため、 SRIOV を使う場合、利用できない機能があります。例えば、 DVR、セキュリティーグループ、マイグレーションなどです。
詳しい情報は SR-IOV 機能を使用する を参照してください。
macvtap メカニズムドライバーと macvtap エージェント
インスタンスのネットワーク接続 (device_owner = compute) のみに使用でき、ルーターや DHCP などの他のネットワークリソースの接続には使用できません。
内向きのデプロイメントでの、コンピュートノードの Open vSwitch や Linux ブリッジの代替という位置付けです。
macvtap を使うと、インスタンスとアダプター間を非常に小さいオーバーヘッドで直接接続できます。性能が非常に重要なネットワーク接続が必要な場合、コンピュートノードで macvtap エージェントを使用できます。 (SRIOV の場合のように) 特別なハードウェアは必要としません。
直接アクセスを行うため、コンピュートノードで macvtap を使う場合、利用できない機能があります。例えば、 DVR、セキュリティーグループ、 ARP 詐称防止などです。
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.