NTNX>日記

個人的な趣味による Nutanix Community Edition 日記。Japanese のみですみません。

Nutanix CE 管理ネットワークの VLAN ID を変更してみる。

AHV と CVM の管理ネットワークで、VLAN ID を変更してみます。例として使用している Nutanix CE のバージョンは 2020.09.16 です。

手順については、AHV のベスト プラクティス ガイドなどが参考になります。

https://portal.nutanix.com/page/documents/solutions/details?targetId=BP-2071-AHV-Networking:top_vlans_for_ahv_hosts_and_cvms.html

管理ネットワーク VLAN ID 変更の概要

AHV の VLAN ID は、仮想スイッチ(Open vSwitch によるブリッジ)のポートで設定されます。そのため、AHV ホストの物理ネットワーク ポートでの VLAN ID 設定は不要です。

一方、物理スイッチ側のポートでは、VLAN トランクとして AHV ホスト上で利用されるすべての VLAN ID を通すようにしておきます。

今回は、デフォルトの VLAN なし(VLAN ID が 0 / tag:0)の Nutanix CE 環境を設定変更して、管理ネットワークで VLAN ID 20 を利用できるようにします。

実際の変更箇所は、次の 2か所です。

  1. AHV の br0 ポート
  2. CVM の eth0 ポート(AHV 側では vnet0 ポート)

なお、あらかじめ物理ネットワークでは VLAN ID 20 のタグによる通信ができるようにしてあります。今回の作業とは関係しませんが、AHV / Prism で他にも VM 用のネットワークを作成する場合は、その VLAN ID も物理スイッチのトランク ポートに設定しておきます。

f:id:gowatana:20201202013339p:plain

設定変更前の Nutanix クラスタ停止

事前に AHV 上の ユーザ VM を停止して、Nutanix クラスタも停止(CVM で cluster stop)しておきます。ただし CVM でコマンド実行するので、CVM は起動したままにします。そして、VLAN ID 設定変更後は CVM と AHV それぞれの外部ネットワークとの疎通確認をしたうえで cluster start します。

なお、Nutanix CE は 1ノードクラスタのケースも多いと思いますが、実際のところその場合はユーザ VM や Nutanix クラスタは起動したままでも作業は可能です。(ただしエラー覚悟で)

AHV 管理ネットワークの VLAN ID 変更

まず、AHV 側の VLAN ID を変更します。ただし、実際には CVM と AHV は、どちらから VLAN ID 設定を変更してもかまいません。

ここからの VLAN ID の変更作業は、AHV にネットワーク アクセス不可になっても対処できるように、ディスプレイ直結、もしくは IPMI ポートのリモート コンソール経由で実施します。

AHV の管理ネットワークとしては、br0 ブリッジに接続された、br0 ポート(ブリッジと同名)の VLAN ID 変更します。

f:id:gowatana:20201202013403p:plain

まず、AHV にログインします。今回はネスト環境なので、ディスプレイのかわりに VM コンソールから作業しています。

AHV に、root ユーザでログインします。

f:id:gowatana:20201120010333p:plain

この時点では、まだ br0 ポートに VLAN ID は設定されていません。

[root@NTNX-d1d72885-A ~]# ovs-vsctl list port br0 | grep tag
tag                 : []

それでは、設定変更します。

[root@NTNX-d1d72885-A ~]# ovs-vsctl set port br0 tag=20

tag:20 が設定されました。

[root@NTNX-d1d72885-A ~]# ovs-vsctl list port br0 | grep tag
tag                 : 20

これで、AHV の管理ネットワークのアドレスが、外部ネットワークと通信可能になります。

CVM 管理ネットワークの VLAN ID 変更

次は CVM の 管理ネットワークの VLAN ID を変更します。対象のポートは、CVM のゲスト OS では eth0 として、AHV 側では(CVM の vNIC としては)vnet0 という名前のポートです。

VLAN ID を設定するのは AHV 側の Open vSwitch のポートなのですが、CVM 側から専用コマンドで変更します。作業のために、AHV から CVM に、内部仮想スイッチ(192.168.5.x のネットワーク)経由で SSH ログインします。

f:id:gowatana:20201202013427p:plain

まず、AHV から CVM(アドレスは全ノード共通で、必ず 192.168.5.2)に SSH ログインします。

[root@NTNX-d1d72885-A ~]# ssh nutanix@192.168.5.2

CVM の change_cvm_vlan コマンドで、VLAN ID 20 に設定変更します。確認メッセージでは、「yes」を入力します。

CVM$ change_cvm_vlan 20

ちなみに、実際のコマンド実行の様子です。

f:id:gowatana:20201120012451p:plain

これで CVM の管理ネットワークも、外部と通信できるようになります。

VLAN ID 変更後の様子

AHV / CVM それぞれの管理ネットワークが、外部と通信可能になっているはずです。

ちなみに、CVM だけ VLAN ID 変更すると、(AHV の VLAN 設定に関わらず)CVM だけ通信可能になるはずです。これは、VLAN の終端が物理ポートではなく、Open vSwitch に接続されているポート(br0 / vnet0)だからです。

f:id:gowatana:20201202013451p:plain

AHV の ovs-vsctl で確認した、VLAN ID 変更前後のポートの様子です。

変更前

[root@NTNX-d1d72885-A ~]# ovs-vsctl show
335765b9-f2fd-4e88-9de9-8c6d1839ac5b
    Bridge "br0"
        Port "br0-arp"
            Interface "br0-arp"
                type: vxlan
                options: {key="1", remote_ip="192.168.5.2"}
        Port "br0.u"
            Interface "br0.u"
                type: patch
                options: {peer="br.dmx.d.br0"}
        Port "eth0"
            Interface "eth0"
        Port "br0-dhcp"
            Interface "br0-dhcp"
                type: vxlan
                options: {key="1", remote_ip="192.168.20.42"}
        Port "br0" ★AHVのポート
            Interface "br0"
                type: internal
        Port "vnet0" ★CVMのポート
            Interface "vnet0"
        Port "vnet2"
            Interface "vnet2"
(省略)

変更後(ポートに tag:20 が付与されます)

[root@NTNX-d1d72885-A ~]# ovs-vsctl show
335765b9-f2fd-4e88-9de9-8c6d1839ac5b
    Bridge "br0"
        Port "br0-dhcp"
            Interface "br0-dhcp"
                type: vxlan
                options: {key="1", remote_ip="192.168.20.42"}
        Port "eth0"
            Interface "eth0"
        Port "br0-arp"
            Interface "br0-arp"
                type: vxlan
                options: {key="1", remote_ip="192.168.5.2"}
        Port "vnet2"
            Interface "vnet2"
        Port "br0" ★AHVのポート
            tag: 20
            Interface "br0"
                type: internal
        Port "br0.u"
            Interface "br0.u"
                type: patch
                options: {peer="br.dmx.d.br0"}
        Port "vnet0" ★CVMのポート
            tag: 20
            Interface "vnet0"
(省略)

以上。

元ファイル: https://1drv.ms/p/s!AnlE-3oEWaHsgbl5whr4fR59XC38CA?e=YuSOqC

©2020 gowatana
クリエイティブ・コモンズ・ライセンスこの 作品 は クリエイティブ・コモンズ 表示 4.0 国際 ライセンスの下に提供されています。