VMware Workstation Player で IPv6

(2016.11.1 新規作成.)

私の自宅で使っている ISP は IPv6 に対応している。ここでは、VMware Workstation Player上のVM から IPv6を使うための設定を書きます。

ホストOS: Windows 10
ゲスト1: Fedora 24 Linux
ゲスト2: FreeBSD 11.0-RELEASE

VMware のバージョンは, VMware Workstation 12 Player バージョン12.5.0

1. ホストからIPv6が使えるか

これが使えないと話にならない。

ホストOS (Windows 10) でPowerShell を開き、ipconfig します。

プロバイダ (ISP) がIPv6に対応していれば, 何もしなくても、この機械のIPv6アドレスが設定されています。

一時IPv6アドレス (temporary address) が、インターネット側に接続する場合の, インターネット側から見えるアドレスです。

Webブラウザで GoogleのIPv6版にアクセスしてみます。

  • https://ipv6.google.com/

IPv6接続状況を調べるサイトも見てみます。あなたの IPv6 をテストしましょう。

ちなみに, 今どきは Linux機でもデフォルトでIPv6が有効になっており, 接続するだけでIPv6が使えます。

2. ブリッジ

次のような構成です。

IPv6は NATを使わないようになっています。

ゲストVM の仮想マシン設定 > ハードウェア > ネットワークアダプタの"ネットワーク接続"を、"ブリッジ"にしましょう。

ゲストOSを再起動すれば、ルータであるホーム・ゲイトウェイからIPv6アドレスが広告されます。

DHCPがなくても、IPアドレスは自動設定されます。 -- IPv6 stateless address autoconfiguration (IPv6ステートレスアドレス自動設定; RFC 4862).

静的アドレスにする方法は、それぞれのゲストOSによります。

VM でWebブラウザを開き、上の例の, IPv6のサイトにアクセスできるか試してみます。OK?

3. NAT

NATだと、次のように VMnet8 がルータになります。

結論から書くと、VMware NATモードでは、IPv6でのインターネットへの接続はまともに動きませんでした。LAN内はやり取り可能。

一応、手順を書いておきます。

VMware の設定ファイル上, NATモードでは IPv6はデフォルトで無効になっています。 C:\ProgramData\VMware\vmnetnat.conf ファイルを管理者権限で開きます。

# Controls if enable ipv6 for NAT mode
natIp6Enable = 0

# Controls if set ipv6 prefix for NAT mode
#natIp6Prefix = fd15:4ba5:5a2b:1008::/64

修正後は、ホストOSの再起動が必要。

ゲストVMの"ネットワーク接続"がNATの場合, この設定ファイルに従います。

natIp6Enable が 0の場合, ゲストOSには fe80::/10 のリンク・ローカル・アドレスだけが生成されます。

1にすると、グローバルアドレスが生成されます。しかしこれが曲者で, natIp6Prefix をコメントアウトしていても, IPv4 のNATのように外側のアドレスと関係ないアドレスを生成します。natIp6Prefix を指定した場合は, そのprefix で ゲストのIPv6アドレスを生成します。

ゲストOSで, ifconfig コマンドを叩き, IPv6グローバルアドレスがあることを確認します。

http://test-ipv6.com/ にアクセスすると, MTUの設定がおかしい、と表示されました。

ゲストOS (Linux) で、次のように, パケットサイズを変えながら ping が通るか確認します。

$ ping6 -s 1500 au.kddi.com

$ ping6 -s 1280 au.kddi.com

そうすると, 1500バイトだと反応がなく, 1280バイトだと通りました。ゲストOS のMTUを小さくします。

# ifconfig ens33 mtu 1280

ゲストOSのMTUの大きさを小さくすると、いったん治ったように見えます。しかしすぐ、また不通になります。今度は 1280バイトでも ping が通りません。

どうやら、VMnet8 NAT のバグか何かで、IPv6 で通るパケットサイズがどんどん小さく縮んでしまうようです。

ホスト (Windows) でVMnet8 の設定を変更する方法があるのかもしれませんが、これ以上は分かりませんでした。

この辺りのページ IPv6 の MTU で, Windows のMTUを変更する方法が紹介されていますが、これも効果ありませんでした。