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版にアクセスしてみます。

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を変更する方法が紹介されていますが、これも効果ありませんでした。