TL;DR
VagrantゲストOSとの接続をプライベートネットワークとするときに、指定してはいけないアドレスがあるという話
本文
TL;DRにある通りですが、指定してはいけないアドレスがあります。以前はまったことを思い出したので、メモしておきます。
前提
VagrantゲストOSとの間にプライベートネットワークを構築するときは、以下のようになります。(経験則上のものなので違ってたらごめんなさい・・・)
- ネットワークアドレス長は24
- ホストOSが持つIPアドレスの第4オクテットは固定で1
本題、指定してはいけないアドレス
ホストOSが属しているネットワークと同じネットワークアドレスになるようなアドレス
うまいことやってくれないかなーと期待しましたが、だめでした。
- 条件
- ローカルPCが属するネットワークは192.168.11
- Vagrantfileの記述は
config.vm.network "private_network", ip: "192.168.11.50"
vagrant upの結果はこちら
The specified host network collides with a non-hostonly network!
This will cause your specified IP to be inaccessible. Please change
the IP or name of your host only network so that it no longer matches that of
a bridged or non-hostonly network.
Bridged Network Address: '192.168.11.0'
Host-only Network 'Intel(R) Ethernet Connection I218-LM': '192.168.11.0'
メッセージを読んでみれば致命的なのは明らかですが、特に[ERROR]とかわかりやすい表示もなく、ひっそりとvagrant upが終了してしまうので、見落としてしまうとはまるかもしれません。
第4オクテットが1のアドレス
前述の「前提」にあるように、第4オクテット1は、ホストOSが使います。なのでだめです。
この場合、なんだかいびつな状況になります。
- vagrant ssh は通ります
- ゲストOSから外部ネットワークへの接続もなぜか可能です。
- ホストOS、ゲストOSともに、同一のIPアドレスが設定されています。(ぉぃ
- できないことは多分、ホストOSからゲストOSへsshクライアントで接続すること、くらいでしょうか。
私はこれをやって「ssh接続だけなぜかできないな・・・まあいいか」という状態で仮想OSをしばらく使ってました。その後偶然、IPアドレスの重複に気づきました。
あとがき
見当たらなかったけど、VirtualboxかVagrantの資料のどこかに書いてあるのかなあ・・・