11.2. ML2/OVN デプロイメントでの VLAN 透過性の有効化
仮想マシン (VM) インスタンス間で VLAN タグ付けされたトラフィックを送信する必要がある場合は、VLAN の透過性を有効にします。VLAN 透過ネットワークでは、neutron で VLAN を設定するのではなく、直接仮想マシンで設定することができます。
前提条件
- メカニズムドライバーとして ML2/OVN を使用する Red Hat OpenStack Platform 16.1 以降のデプロイメント
- 種別 VLAN または Geneve のプロバイダーネットワーク。フラット種別のプロバイダーネットワークのデプロイメントでは、VLAN の透過性を使用しないでください。
- 両方の VLAN において、外部スイッチが ethertype 0x8100 を使用する 802.1q VLAN スタックをサポートするようにします。OVN VLAN の透過性は、0x88A8 または 0x9100 に設定された外部プロバイダー VLAN ethertype を使用する 802.1ad QinQ をサポートしません。
手順
アンダークラウドノードの環境ファイルで、
EnableVLANTransparencyパラメーターをtrueに設定します。たとえば、次の行をovn-extras.yamlに追加します。parameter_defaults: EnableVLANTransparency: trueこの環境ファイルをご自分の環境に該当するその他の環境ファイルと共に
openstack overcloud deployコマンドに追加して、オーバークラウドをデプロイします。$ openstack overcloud deploy \ --templates \ … -e <other_overcloud_environment_files> \ -e ovn-extras.yaml \ …
<other_overcloud_environment_files>を既存のデプロイメントに含まれる環境ファイルの一覧に置き換えます。--transparent-vlan引数を使用してネットワークを作成します。例
$ openstack network create network-name --transparent-vlan
参加するそれぞれの仮想マシンに VLAN インターフェイスを設定します。
VLAN の透過性に必要な追加のタグ付けに対応するために、インターフェイスの MTU を下層のネットワークの MTU より 4 バイト少ない値に設定します。たとえば、下層のネットワークの MTU が 1500 の場合は、インターフェイスの MTU を 1496 に設定します。
次のコマンド例では、MTU が 1496 の VLAN インターフェイスを
eth0に追加します。VLAN は 50 で、インターフェイス名はvlan50です。例
$ ip link add link eth0 name vlan50 type vlan id 50 mtu 1496 $ ip link set vlan50 up $ ip addr add 192.128.111.3/24 dev vlan50
仮想マシンポートに
--allowed-addressを設定します。許可されたアドレスを、手順 4 で VM 内の VLAN インターフェイス上に作成した IP アドレスに設定します。オプションで、VLAN インターフェイスの MAC アドレスを設定することもできます。
例
次の例では、ポート
fv82gwk3-qq2e-yu93-go31-56w7sf476mm0で、IP アドレスを192.128.111.3に設定し、オプションの MAC アドレス00:40:96:a8:45:c4 を設定します。$ openstack port set --allowed-address ip-address=192.128.111.3,mac-address=00:40:96:a8:45:c4 fv82gwk3-qq2e-yu93-go31-56w7sf476mm0
検証
- vlan50 の IP アドレスを使用して VLAN 上の 2 つの仮想マシン間で ping を送信します。
-
eth0でtcpdumpを使用して、VLAN タグが付いたままパケットが到達するかどうかを確認します。
関連情報
- Advanced Overcloud Customization の Environment files
- Advanced Overcloud Customization ガイドの Including environment files in overcloud creation