2023年12月12日火曜日

仮想マシンにのNICにVLANトランクを設定する方法

ネットワーク関連の仮想アプライアンスなど、複数のネットワークを持たせた仮想マシンを構成することがあるかと思います。AHVの場合、「AHV-20230302.207」バージョンの場合、1つの仮想マシンに対して、仮想NICの搭載は15個が最大とされています。

なお、15を超えるNICを仮想マシンに追加することは、Prismの画面上可能なのですが、仮想マシンのパワーオンに時間がかかります(NICの数に応じて30秒を超える)。

コンパチビリティを考えてもNICの数は15個以内に収めておきたいところですが、Firewall的な動作をする仮想マシンなどNICを15個以上必要とする場合があるかと思います。

このような場合、仮想マシンの仮想NICに対して、TAGVLANをそのまま仮想NICに流す、トランクモードの設定を行うことが出来ます。

今回は、AHV環境において仮想マシンにVLAN Trunkを渡すNICの作成方法をご紹介します。

まずは、Prism画面から普通通り仮想マシンを作成します。この際、NICは搭載せずNICなしの仮想マシンとして作成してください。


次に、acliで、仮想NICの割当を行います。

acli vm.nic_create [仮想マシン名] vlan_mode=kTrunked trunked_networks=[通信させたいVLAN-IDをカンマ区切りで記入] network=[UNTAGで割り当てるNIC]

仮想マシンに対して、UNTAGのネットワーク(いわゆるNativeVLAN)を割り当てたくない場合であっても、「network」の定義は必須となります。
(UNTAG側で通信をさせたくない場合は利用しないVLANを作成し、そのVLANを割り当ててください)

では、仮想マシン側ではどのように設定をするかもご紹介します。

まずは、Windows Serverの場合です。

サーバーマネージャーのNICチーミング機能を有効化します。


まずは、チームから「チームの新規作成」をクリックします。


チーミング設定を行います。とはいえ、NICは1本しかありませんの、1本のNICを選択します。1本のNICですからバランシングもできません。仮想マシンの場合は、チーミングモードを「スイッチに依存しない」、負荷分散モードを「アドレスのハッシュ」を選択します。(それ以外のオプションを選択した場合、チーミングNICは作成できません)

プライマリ チームインターフェースは、このNICに対して割り当てるVLANをNativeVLAN以外にする場合は、こちらのオプションで「特定のVLAN」で、指定したいVLAN-IDを入力します。


作成が完了すると、アダプターとインターフェースの部分に、作成したNICが表示されます。

ここからさらに違うVLAN用にNICを作成する必要がありますが、「アダプターとインターフェース」の「タスク」メニューから「新しいチームに追加」がクリックできません。
わかりにくいのですが、「チームインターフェース」を選択し、再度「タスク」をクリックすることで、「新しいチームを追加する」がクリックできるようになります。


▼チームインターフェースを選択


こちらのインターフェースの追加をクリックすることで、別のVLANを割り当てたNICを作成することができます。


ネットワーク接続の画面から見ると、物理のNIC(こちらは、IPアドレスなどの設定をしないでください)と、チーミングされた2つのNICが見えています。IPアドレスの付与や各種設定は、このチーミングされたNICに設定を行います。



LinuxOSの場合もご紹介します。

Rocky Linux 9.3での設定方法を見てみましょう。(他のRHEL互換OSである、Alma Linuxなども同様の設定となります)

最初に、「ip addr」で、既存NICの情報を確認します。

[root@rocky93master admin]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever

2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 50:6b:8d:86:5c:7d brd ff:ff:ff:ff:ff:ff
    altname enp0s3
    inet 10.168.1.70/24 brd 10.168.1.255 scope global dynamic noprefixroute ens3

       valid_lft 28434sec preferred_lft 28434sec
    inet6 fe80::526b:8dff:fe86:5c7d/64 scope link noprefixroute
       valid_lft forever preferred_lft forever

この場合、VLAN用にNICを作成する元NICが、「ens3」であることがわかります。このNICをもとにVLAN401のNICを作成してみます。

シェル画面で「nmtui」を実行し、「接続の編集」をクリックします。

新規NICを作成するので、「追加」を選択します。

作成したNICは「VLAN」を選択します。


プロファイル名はわかりやすい名称にします。デバイス名も管理しやすいデバイス名にしておきます。
親は、VLAN通信をする元NICになります。先ほど事前に調査したNIC「ens3」を入力します。VLAN idには、通信させたいVLAN IDを入力します。IPv4設定等は、状況に応じてIPアドレス付与を行います。

作成されたVLAN NICができたことを確認し、「戻る」を選択します。


nmtuiを終了します。


シェル画面から、「ip addr」コマンドで再度、NICの状態を確認します。

[root@rocky93master admin]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 50:6b:8d:86:5c:7d brd ff:ff:ff:ff:ff:ff
    altname enp0s3
    inet 10.168.1.70/24 brd 10.168.1.255 scope global dynamic noprefixroute ens3
       valid_lft 27267sec preferred_lft 27267sec
    inet6 fe80::526b:8dff:fe86:5c7d/64 scope link noprefixroute
       valid_lft forever preferred_lft forever
5: ens401@ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 50:6b:8d:86:5c:7d brd ff:ff:ff:ff:ff:ff
    inet 10.14.254.75/16 brd 10.14.255.255 scope global dynamic noprefixroute ens401
       valid_lft 5878sec preferred_lft 5878sec
    inet6 fe80::442a:a590:abec:e8a0/64 scope link noprefixroute
       valid_lft forever preferred_lft forever

追加したNICである、「ens401」が追加され、この場合、DHCPを使ってIPアドレスが取得できていることがわかります。

その他仮想アプライアンスの場合は、そのアプライアンスの指示に従いVLANインターフェースの作成が可能かと思いますので、利用したい製品でのVLANインターフェース作成方法をご参照ください。






0 件のコメント:

コメントを投稿