VirtualBoxの仮想マシンがNATネットワークを使用すると、ホストと通信できますが、ホストは仮想マシンと通信できません(たとえばping)。どうやってこれができますか? iptablesの設定ですか?
仮想マシンを見ip a
てみましたeth0 10.0.2.15/24
。私のホストはこのネットワークへのインターフェースを持っていません。それでは、コミュニケーションはどのように可能か疑問に思います。なぜ一方向だけがあるのでしょうか?
もう一つの質問は関連があると思います(そうでない場合はお知らせください。別の記事を作成します)。ホストマシンには、デフォルトのdocker0ブリッジに接続されている実行中のdockerコンテナがあります。 IPは、172.17.0.2
上記と同じ仮想マシン(Virtualbox、NAT)でpingしたいと思います。仮想マシンにもdockerがインストールされているため、ホストマシンのdocker0と同じネットワークCIDRを持つdocker0ブリッジもあります。次に、次のpingを使用します
ping -I eth0 172.17.0.2
。これは、私が知っている限り、ホストに接続されているVMのeth0を介してトラフィックを強制する必要があります(自分のホストを自由にpingできるからです)。すべてのパケットが失われます。なぜそんなことですか?
ベストアンサー1
この仮想NATネットワークに対してポート転送が設定されていないと、VMにアクセスできません。問題を解決する簡単な方法は、ネットワークアダプタをブリッジアダプタに変更することです。
ネットワークアダプタのモードを変更すると、仮想マシンはネットワーク上の他のデバイスのように動作してアクセスできます。
私が許すこここのトピックに関する文書とそれを理解するための小さな表:
NAT対応の仮想マシンは、ルータを介してインターネットに接続されている物理コンピュータと非常によく似ています。この場合、ルータは、仮想マシンとのトラフィックを透過的にマッピングするOracle VM VirtualBoxネットワーキングエンジンです。 Oracle VM VirtualBoxでは、ルータは各仮想マシンとホストマシンの間に配置されます。この分離は、基本的に仮想マシンが互いに通信できないため、セキュリティを最大化します。
NATモードの欠点は、ルーターの背後にあるプライベートネットワークのように仮想マシンが見えず、外部インターネットからアクセスできないことです。ポート転送が設定されていない場合、この方法でサーバーを実行する方法はありません。 」