vSphere環境を構築する場合は、通常はIPv4が一般的ですが、IPv6に対応しているため、どの程度IPv6で構築が可能なのか試してみました。
構成
- vCenter 7.0U3
- ESXi 7.0U3 (Nested ESXi)
- Windows 2019 (AD)
IPv6とは
IPv6は、IPv4の後継のインターネットプロトコルで。128ビットのアドレス空間を持つことで、膨大な数のデバイスにユニークなアドレスを割り当て可能です。
アドレスの構造は、 2001:0DB8:AC10:FE01:0000:0000:0000:0001
といった8つの16ビットセグメントで構成され、コロン「:」で区切られた形式を採用しています。0が連続する場合は、 ::
でまとめることができ、 2001:DB8:AC10:FE01::1
とも表現できます。
アドレスの種類は、ユニキャスト、マルチキャスト、エニーキャストが利用できます。ブロードキャストが廃止され、マルチキャストが利用されています。
IPアドレスの自動設定は、IPv4ではDHCPv4でしたが、ネットワーク内でデバイスが自動的にIPアドレスを取得するStateless Address Autoconfiguration (SLAAC) 、DHCPv6が利用されています。
IPv4とIPv6が共存する期間をサポートするための共存技術(デュアルスタック、トランスレーター、トンネリングなど)が考案されています。IPv4とIPv6の共存環境で、DNSからAレコードとAAAAレコードが返ってきた場合、IPv4とIPv6のどちらで接続するかはアプリケーションの実装にゆだねられており、先に接続に成功したほうのプロトコルで接続するHappy Eyeballsという仕組みが標準化されてます。
IPv6のアドレス体系について
IPv6のアドレス体系として、基本的な分類は以下のようなものがあります。
アドレス範囲 | アドレスの種類 | 用途や特徴 |
---|---|---|
::/128 |
未定義アドレス | デバイスがIPアドレスをまだ取得していない状態を示す。 |
::1/128 |
ループバックアドレス | 自デバイス内で通信を行うためのアドレス。 |
2000::/3 |
グローバルユニキャスト | インターネットで利用されるグローバルなアドレス。 |
fc00::/7 |
ユニークローカルアドレス(ULA) | プライベートネットワーク内で利用するアドレス。fc00::/8は将来の定義用で、fd00::/8を利用。 |
fe80::/10 |
リンクローカルアドレス | 同一リンク内の通信に限定される自動生成アドレス。 |
ff00::/8 |
マルチキャストアドレス | 複数のノードに同時に通信を送るためのアドレス。 |
2001:db8::/32 |
ドキュメント用アドレス | ドキュメントや学習資料で使用される予約済みアドレス。 |
リンクローカルアドレスは、同一リンク内でのみ使われますが、EUI-64というフォーマットを使用して自動生成されます。
48ビットのMACアドレスをもとに、16ビットのFFFEを追加して、64ビットに拡張することで、インターフェイスIDを生成します。プレフィックス長は/64になります。
仮想マシンを起動すると、インターフェイスに、自身のMACアドレスをもとに fe80::
から始まるIPアドレスが自動生成されます。
$ ip a 2: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether 00:50:56:88:6e:22 brd ff:ff:ff:ff:ff:ff altname enp11s0 inet6 fe80::250:56ff:fe88:6e22/64 scope link valid_lft forever preferred_lft forever
利用するアドレスの検討
vSphere環境で利用するアドレスについて検討してみます。
homelabの利用で、インターネットには出ないことを想定して、ユニークローカルアドレスを利用します。
ユニークローカルアドレスは、fc00::/8は将来の定義用のため、fd00::/8の範囲で利用します。
全体のネットワークに /48
、VLAN用に /56
、VLANIDごとに /64
のプレフィックスを割り当てを行います。/48から/56のプレフィックスが256個、/56から/64のプレフィックスが256個作成することができます。(/48から/64は65,536個作成できます。)
fd00::/8はグローバルにユニークであることが保証されませんが、RFC 4193に従い40ビットのランダムなグローバル識別子をつけて利用します。
- 2001:db8:1000::/48 ネットワーク全体
- 2001:db8:1000:1000::/56 VLAN用
- 2001:db8:1000:1000:1::/64 VLANID: 1の場合
vSphere環境向けに以下のアドレスの割り当てを行います。
- 2001:db8:1000:1000:1::5/64 vCenter
- 2001:db8:1000:1000:1::11/64 Nested ESXi
- 2001:db8:1000:1000:1::20/64 Windows 2019 (AD)
- 2001:db8:1000:1000:1::30/64 Ubuntu 22.04
ADの設定
今回の環境は他のネットワークからリーチャビリティのない環境となっており、
vCenterのデプロイと操作、DNSサーバーを利用するために、WindowsサーバーにADをインストールしておきます。
DNSマネージャーにvCenterとESXiのDNSレコードをAAAAレコードで登録しておきます。
vCenterのデプロイ
お手軽にインストールするために、WindowsのGUI版のインストーラーでデプロイを行います。
vCenter Serverのデプロイターゲットは、デプロイ先のESXiの情報を入力しておきます。
デプロイサイズはTinyを指定し、データストアの選択ではThin Disk Modeにチェックを入れておきます。
ネットワークの設定では、以下のように設定します。
- IPバージョン: IPv6
- FQDN: DNSサーバーに登録した値
- IPアドレス: 2001:db8:1000:1000:1::5
- サブネットマスクまたはプリフィックス長: 64
- DNSサーバー: 2001:db8:1000:1000:1::20
ブラウザから、IPアドレスで接続できるか確認してみます。
IPv6で接続する場合は、ブラウザに https://[2001:db8:1000:1000:1::5]
と []
をつけて入力します。
はじめにの画面が表示されることを確認します。
FQDNで接続できるか、ブラウザに https://vCenter FQDN
を入力しはじめにの画面が表示されることを確認します。
各種設定の確認
VAMIの設定画面がどのようになっているか、 https://vCenter FQDN:5480
にログインして確認してみます。
IPv6のアドレスのみ表示されることが分かります。
続いて、vCenterにログインし、ESXiホストの登録を行い、ESXiの管理画面がどのようになっているか確認してみます。
IPv4は設定せずに、IPv6を固定で設定した場合は、固定のIPアドレスと、リンクローカルアドレスの2つが表示されます。
ゲストOSでのDualStack
vSphere環境でのIPv6化ができたため、ゲストOSにUbuntuを利用し、ゲストOSからvCenterへの接続ができるか試してみます。
netplanに以下の設定を行います。
$ vi /etc/netplan/50-cloud-init.yaml network: ethernets: ens192: dhcp4: true addresses: - 2001:db8:1000:1000:1::30/64 nameservers: addresses: - 2001:db8:1000:1000:1::20 routes: - to: default via: 2001:db8:1000:1000:1::1 version: 2
vCenterにアクセス可能か確認します。
$ ping 2001:db8:1000:1000:1::5 PING 2001:db8:1000:1000:1::5(2001:db8:1000:1000:1::5) 56 data bytes 64 bytes from 2001:db8:1000:1000:1::5: icmp_seq=1 ttl=63 time=0.830 ms 64 bytes from 2001:db8:1000:1000:1::5: icmp_seq=2 ttl=63 time=0.898 ms