状況
ESXiをホスティングするにあたりvCenterを内向きのネットワークに建てることがあると思います。そういう状況ではセキュリティ上の問題からVPN経由で接続することが一般的です。しかしながら何故か自宅のネットワーク環境下にのみおいてWireguardのVPNを経由した上でvCenterに接続しようとすると接続できませんでした。
本記事が必要になると想定される人
- Wireguard経由で特定のWebページが見れない
- 何らかのVPN経由でvCenterが見れない
- その両方
解決方法
Wireguardの設定にMTUを追加する。
[Interface]
PrivateKey = hogehoge
Address = 10.10.0.1/32
DNS = 8.8.8.8
+ MTU = 1372
筆者の環境では上記方法で正常にvCenterが見れるようになりました。Wireguard以外でも似たような設定を探してみてください。しかしながら、これで必ず見れるようになるかはわからないため、以下に解決方法の手順を記します。
解決方法の詳細
pingを試す
まずは当然ですがpingが通るかを確認します。
ping vcenter.hoge.fuga
PING vcenter.hoge.fuga (xxx.xxx.xxx.xxx): 56 data bytes
64 bytes from xxx.xxx.xxx.xxx: icmp_seq=0 ttl=63 time=10.825 ms
64 bytes from xxx.xxx.xxx.xxx: icmp_seq=1 ttl=63 time=9.950 ms
64 bytes from xxx.xxx.xxx.xxx: icmp_seq=2 ttl=63 time=11.367 ms
64 bytes from xxx.xxx.xxx.xxx: icmp_seq=3 ttl=63 time=10.235 ms
64 bytes from xxx.xxx.xxx.xxx: icmp_seq=4 ttl=63 time=10.024 ms
64 bytes from xxx.xxx.xxx.xxx: icmp_seq=5 ttl=63 time=10.798 ms
(Ctrl+Cで抜ける)
pingにオプションをつけてどのサイズのMTUだとみれるか確認する
ping -c 5 -s 1472 vcenter.hoge.fuga
PING vcenter.hoge.fuga (xxx.xxx.xxx.xxx): 1472 data bytes
ping: sendto: Message too long
ping: sendto: Message too long
Request timeout for icmp_seq 0
ping: sendto: Message too long
Request timeout for icmp_seq 1
ping: sendto: Message too long
Request timeout for icmp_seq 2
ping: sendto: Message too long
Request timeout for icmp_seq 3
--- vcenter.hoge.fuga ping statistics ---
5 packets transmitted, 0 packets received, 100.0% packet loss
ping -c 5 -s 1364 vcenter.hoge.fuga
PING vcenter.hoge.fuga (xxx.xxx.xxx.xxx): 1364 data bytes
1372 bytes from xxx.xxx.xxx.xxx: icmp_seq=0 ttl=63 time=10.430 ms
1372 bytes from xxx.xxx.xxx.xxx: icmp_seq=1 ttl=63 time=10.145 ms
1372 bytes from xxx.xxx.xxx.xxx: icmp_seq=2 ttl=63 time=10.643 ms
1372 bytes from xxx.xxx.xxx.xxx: icmp_seq=3 ttl=63 time=10.890 ms
1372 bytes from xxx.xxx.xxx.xxx: icmp_seq=4 ttl=63 time=312.043 ms
--- vcenter.hoge.fuga ping statistics ---
5 packets transmitted, 5 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 10.145/70.830/312.043/120.607 ms
-c
のオプションは回数、-s
のオプションが通信バイトサイズを指定できます。
本来であれば通信パッケージを分割しないように-D
のオプションをつけることを推奨しますが、筆者の環境ではなぜかうまく動きませんでした。
何故指定した値と異なるバイトが送信されているかというと、ヘッダ分が+28される。なのだが、何故か数が+8しかされていない。
今回1372バイトで送信できていたのでその値を設定しました。
MTUとは
一回に送るデータサイズのこと。通信契約やネットワークの状況によって異なります。
今回VPNを経由したことやネットワークの通信形態の影響でこのデータサイズの値が不整合だった様子です。詳細な原因は不明ですが、何らかの状況でこうなってしまった人はお試しください。