proxmoxで管理インターフェースにVLANを使用する

はじめに

仮想化環境では、ネットワークを分けて管理したいことがあり、その際にVLANを構築するケースが多くあります。
これは proxmox でも同様で、私は今まで192.168.0.1/24の家庭内ネットワークにそのままproxmoxを構築してクラスタを組んでいたため、セキュリティ面に多分に問題がある状態でした。

今回、ちゃんとさせようと思い、VLANにてネットワークを論理的に分割する設計で構築することとしました。

構成案

構成1 NICを2本以上

VLANを使用する方法の構成はいくつかあり、最もスタンダードなものは、インターフェースを2つ以上用意する方法です。
NIC1:管理ネットワーク (VLAN無し、ポートVLANがある場合もある)
NIC2:一般ネットワーク (VLAN有り)

NICを分ける理由は主に2つ
①セキュリティの問題。これは言わずもがなです。物理的に管理画面は分離しておいた方が良いためです。
②そして最重要な点が通信の安定性です。proxmoxはマイグレーションの際に管理ネットワークを使用するため、1つのNICに集約してしまうと、一般のネットワーク(大抵はサービスのトラフィックがある)の遅延、スピード低下などパフォーマンスに影響するためです。

また、管理ネットワークをVLAN無しにしている点の理由もいくつかあります。
①まず、インストールの際に設定できないこと。構築後に別途設定する手間がかかります。
②次に、トラブル時にリモートから接続できなくなるなどトラブルシュートの厄介さ。物理接続する端末のドライバーの種類によってはVLANを使用できない場合があったり、設定できても面倒だったりします。
③最後に他機器のサポート有無。管理ネットワークには他の機器の管理ポートを接続することもありますが、VLANを使用できない機器があるためVLAN無しにしてしまうケースが多いです。

これらにより、物理的にネットワークを分け、VLAN無しの設定を使用するケースが多い傾向にあります。

参考まで、VMwareなどの場合はNIC4本構成(管理/マイグレーション/ストレージ/一般)を推奨しており、管理ネットワークを一般ネットワークと混合しようとすると警告が表示されたりします。
とはいえ、4本は家庭用にはちょっと大規模すぎるかなという印象です。ケーブル何本も這わせるの大変ですしね・・・
業務で使用する場合はこの構成が良いです。業務用サーバーにNICが何本もあるのはこれが理由です。

NIC2本以上の構成とする場合は、通常通りProxmoxをセットアップ後、WebUIからNIC2にVLANを設定すれば良いです。
手順は以下参照。

構成2 NICを1本

2つ目は1つのNICに全てのネットワークを集約してしまう方法です。
NIC1:管理・一般混合ネットワーク

このメリットはホスト側にNICを追加しなくて良い、スイッチを半減できる、ケーブリングも半減、スイッチの電気代が半減など、コスト面のメリットが大きいです。
それ以外の点では構成1に劣ります。

本格的に運用するなら構成1の方が良いのですが、自宅や検証環境でproxmoxを使用する場合はこちらの方が良いと思います。

今回はこちらの構成2で作成します

機材

サーバー

ヤフオクで買ってきた中古PCです。NICが1本あります。

スイッチ

スイッチはTP-LinkのTL-SG108Eを使用することにしました。VLANを使用できる激安スイッチです。
https://www.amazon.co.jp/dp/B00JKB63D8

手順

NICの設定

管理ネットワークのVLANは CLI から設定します。
※ 設定変更後にVLANタグ無しでは接続できなくなるため注意

/etc/network/interfaces を次のように書き換えます。

例:

auto lo
iface lo inet loopback

iface eno1 inet manual

auto vmbr0.10
iface vmbr0.10 inet static
        address  10.10.1.1/16
        gateway  10.10.0.1

auto vmbr0
iface vmbr0 inet manual
        bridge-ports eno1
        bridge-stp off
        bridge-fd 0
        bridge-vlan-aware yes
        bridge-vids 2-4094

<参考>
VLAN on the Host
https://pve.proxmox.com/wiki/Network_Configuration#sysadmin_network_vlan
→ Example: Use VLAN 5 for the Proxmox VE management IP with VLAN aware Linux bridge

vmbr0.10の「10」がVLAN IDです。
vmbr0.100に変更すれば VLAN 100 を使用する意味になります。

また、bridge-vlan-aware にて VLANを使用できるように変更し、bridge-vids にて VLANID 2~4094まで通す設定とします。

※ 注意:管理IP(addressの項目)は変更しないことを勧めます。この設定ファイルだけ更新すれば反映するわけではないためです。
IPアドレスも変更する場合は、以下のページを参照して変更するか、セットアップし直すことを勧めます。後者推奨

変更後は「ifreload -a」で読み込みができます。

ifreload -a

ただ、rebootの方が推奨のようです。

reboot

接続元端末のVLAN IDを10に設定すれば、proxmoxの管理画面に接続できます。

VMの設定

上記設定によって、VLAN ID の 2~4094 までを対応させているため、ほぼすべての VLAN を使用できるようになっています。
しかしながら、これだけでは通過させるだけのため、どこかで VLAN を解除(アンタグ)する必要があります。
メジャーな方法としては、VM のネットワークインターフェースを使用する方法があります。

手順は次の通りです。
1. VM を選択
2. Hardware > Network Device
3. VLAN Tag に使用する VLAN を入力してOK
※ ここでは VLAN 20 に設定しています。

このようにすることで、OS側では VLAN を意識することなく使用できます。
なお、ここで VLAN Tag を設定せず、VM の中の OS 内の NIC で VLAN タグを設定する方法もあります。

スイッチの設定

スクショを忘れてしまったのですが、私は上位にL3を用意したため、スイッチのポートは全てタグVLANに設定しました。
TP-Linkを使用される場合は以下のページをご参考に。

How to configure 802.1Q VLAN on TP-Link Easy Smart/Unmanaged Pro Switches
How to configure 802.1Q VLAN on TP-Link Easy Smart/Unmanaged Pro Switches

結果

これで接続できるようになっていると思います。

端末にVLANの設定(Windowsの場合はNICのドライバーで設定することが多い)を行えば接続できます。

以上

コメント

タイトルとURLをコピーしました