2.6. Modular Layer 2 (ML2) によるネットワーク
ML2 とは、OpenStack Havana リリースで導入された OpenStack Networking コアプラグインです。以前のモノリシックなプラグインのモデルに置き換わる、ML2 モジュラー型設計により、複数のネットワーク技術を組み合わせた操作を同時に実行できます。モノリシックな Open vSwitch および Linux Bridge プラグインは非推奨となり、削除されました。これらの機能は、ML2 メカニズムドライバーにより実装されるようになりました。
ML2 はデフォルトの OpenStack Networking プラグインで、OVN がデフォルトのメカニズムドライバーとして設定されています。
2.6.1. ML2 が導入された理由 リンクのコピーリンクがクリップボードにコピーされました!
以前は、OpenStack Networking のデプロイでは、実装時に選択したプラグインしか使用することができませんでした。たとえば、Open vSwitch (OVS) プラグインを実行するデプロイは、OVS プラグインだけを使用する必要がありました。モノリシックなプラグインでは、linuxbridge 等の別のプラグインを同時に実行することはサポートされませんでした。この制約により、複数の異なる要件を伴う環境では、ニーズを満たすことが困難となっていました。
2.6.2. ML2 ネットワーク種別 リンクのコピーリンクがクリップボードにコピーされました!
ML2 ネットワーク種別では、複数のネットワークセグメントタイプを同時に操作することができます。また、これらのネットワークセグメントは、ML2 のマルチセグメントネットワークに対するサポートを利用して相互接続することが可能です。ポートは接続されているセグメントに自動的にバインドされ、特定のセグメントにバインドする必要はありません。メカニズムドライバーに応じて、ML2 は、以下のネットワークセグメントタイプをサポートします。
- flat
- GRE
- local
- VLAN
- VXLAN
- Geneve
ml2_conf.ini ファイルの ML2 セクションで、タイプドライバーを有効にします。以下に例を示します。
[ml2] type_drivers = local,flat,vlan,gre,vxlan,geneve
[ml2]
type_drivers = local,flat,vlan,gre,vxlan,geneve
2.6.3. ML2 メカニズムドライバー リンクのコピーリンクがクリップボードにコピーされました!
共通のコードベースを使用するメカニズムとして、プラグインが実装されました。このアプローチにより、コードの再利用が可能になる上、コードのメンテナーンスとテストにおける複雑性が大幅に軽減されます。
デフォルトのメカニズムドライバーは OVN です。Orchestration サービス (heat) パラメーター NeutronMechanismDrivers
を使用して、メカニズムドライバーを有効にします。heat カスタム環境ファイルの例を以下に示します。
parameter_defaults: ... NeutronMechanismDrivers: ansible,ovn,baremetal ...
parameter_defaults:
...
NeutronMechanismDrivers: ansible,ovn,baremetal
...
メカニズムドライバーを指定する順番が重要です。上記の例で、ベアメタルメカニズムドライバーを使用してポートをバインドする場合は、ansible
の前に baremetal
を指定する必要があります。この順番で指定しないと、ansible ドライバーがポートをバインドします。NeutronMechanismDrivers
の値の一覧では、ansible が baremetal
に優先するためです。