5.5. VLAN 透過性の有効化
Red Hat OpenStack Services on OpenShift (RHOSO) 環境では、仮想マシン (VM) インスタンス間で VLAN タグ付きトラフィックを送信する必要がある場合、VLAN 透過性を有効にすることができます。VLAN 透過ネットワークでは、RHOSO Networking サービス (neutron) で VLAN を設定せずに、仮想マシンで直接 VLAN を設定できます。
前提条件
-
ワークステーションに
ocコマンドラインツールがインストール済みである。 -
cluster-admin権限を持つユーザーとして、RHOSO コントロールプレーンにアクセスできるワークステーションにログオン済みである。 - ローカル、VLAN、VXLAN、または GENEVE タイプのプロバイダーネットワーク。フラット種別のプロバイダーネットワークのデプロイメントでは、VLAN の透過性を使用しないでください。
- 両方の VLAN において、外部スイッチが ethertype 0x8100 を使用する 802.1q VLAN スタックをサポートするようにします。OVN VLAN の透過性は、0x88A8 または 0x9100 に設定された外部プロバイダー VLAN ethertype を使用する 802.1ad QinQ をサポートしません。
手順
YAML ファイルを作成し、次のコンテンツを追加します。
apiVersion: core.openstack.org/v1beta1 kind: OpenStackControlPlane metadata: name: openstack-control-plane spec: neutron: template: customServiceConfig: | [DEFAULT] vlan_transparent = true更新された
OpenStackControlPlaneCR 設定を適用します。$ oc apply -f <control_plane_update.yaml>-
<control_plane_update.yaml>を、更新が含まれる YAML ファイルの名前に置き換えます。
-
Red Hat OpenShift Container Platform (RHOCP) が
OpenStackControlPlaneCR に関連するリソースを作成するまで待機します。コントロールプレーンのデプロイのステータスを確認します。$ oc get openstackcontrolplane -n OPENSTACK出力例
NAME STATUS MESSAGE openstack-control-plane Unknown Setup startedステータスが "Setup complete" であれば、OpenStackControlPlane リソースが作成されています。
ヒントデプロイメントの進行状況を追跡するには、
getコマンドに-wオプションを追加します。ワークステーションから OpenStackClient Pod のリモートシェルにアクセスします。
$ oc rsh -n openstack openstackclientNetworking サービスが
vlan_transparentエクステンションを正常にロードしたことを確認します。$ openstack extension list --network --max-width=72 \ | grep vlan-transparent出力例
Networking サービスが
vlan_transparentエクステンションを正常にロードした場合、次のような出力が表示されます。| Vlantransparent | vlan-transparent | Provides Vlan | | | | Transparent Networks |--transparent-vlan引数を使用してネットワークを作成します。例
$ openstack network create <network-name> --transparent-vlan- <network-name> を、作成するネットワークの名前に置き換えます。
openstackclientPod を終了します。$ exit参加するそれぞれの仮想マシンに 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ワークステーションから OpenStackClient Pod のリモートシェルにアクセスします。
$ oc rsh -n openstack openstackclient仮想マシンポートに
--allowed-addressを設定します。許可されたアドレスを、仮想マシン内の VLAN インターフェイスで作成した IP アドレスに設定します。オプションで、VLAN インターフェイスの MAC アドレスを設定することもできます。
注記許可するアドレスペアを設定する代わりに、
port set --disable-port-securityコマンドを使用してポートのポートセキュリティーを無効にすることもできます。例
次の例では、ポート
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-56w7sf476mm0openstackclientPod を終了します。$ exit
検証
-
前の手順で設定した VLAN インターフェイス名 IP アドレス (例:
vlan50) を使用して、VLAN 上の 2 つの仮想マシン間で ping を実行します。 -
eth0でtcpdumpを使用して、VLAN タグが付いたままパケットが到達するかどうかを確認します。