hidemium's blog

日々学んだことをアウトプットする。

IPv6でvSphere環境の構築を試してみる

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が利用されています。

IPv4IPv6が共存する期間をサポートするための共存技術(デュアルスタック、トランスレーター、トンネリングなど)が考案されています。IPv4IPv6の共存環境で、DNSからAレコードとAAAAレコードが返ってきた場合、IPv4IPv6のどちらで接続するかはアプリケーションの実装にゆだねられており、先に接続に成功したほうのプロトコルで接続する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のデプロイ

お手軽にインストールするために、WindowsGUI版のインストーラーでデプロイを行います。

vCenter Serverのデプロイターゲットは、デプロイ先のESXiの情報を入力しておきます。

デプロイサイズはTinyを指定し、データストアの選択ではThin Disk Modeにチェックを入れておきます。

ネットワークの設定では、以下のように設定します。

ブラウザから、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

参考