私は、hello-worldアプリケーションを複数の仮想サーバーで実行することにより、基本的な現実世界のような.NETデプロイメントのもの(Webデプロイ、リモートデバッグを使用)を学習しようとしています。私が欲しいのはvbox-web
、VirtualBoxホストオンリーネットワークで呼び出される仮想マシンを持ち、そのホスト名を使用して、同じ仮想ネットワーク上のホストおよび他のゲストからアクセスできるようにすることです。(そして後で別のVMを追加しますがvbox-db
、それはこの質問の範囲外です。)
これまでにやったこと:
- VirtualBoxホストオンリーネットワークアダプターは自動的に構成するように設定され、ネットワークは192.168.145.1/24、DHCPは.2で有効、アドレスは.101から始まります
- VMにはWindows Server 2016がインストールされており、DNSおよびIISの役割が有効になっていますが、これらに対する追加の構成はありません。VMのホスト専用ネットワークアダプターも、IPアドレスおよびDNSサーバーとして192.168.145.100を静的に使用するように設定されています。(奇妙なことに、そのアダプターがDHCP経由でアドレスを取得すると、機能しません。自動リンクローカルアドレスを取得するだけです。)コンピューター名もに設定され
vbox-web
ます。 - ホストネットワークアダプターは、DHCP経由でアドレスを取得するように設定されており、アドレス192.168.145.1を期待どおりに受け取ります。また、DNSサーバーとして192.168.145.100を使用するように設定しました。
これが私を得るもの:
- VMのブラウザーで、http:// localhost /およびhttp:// vbox-web /を介してデフォルトのIISホームページを開くことができます。
- ホストのブラウザで、http://192.168.145.1/を使用して同じホームページを開くことができますが、http:// vbox-web / は使用しません。つまり、ここで達成したいことです。
nslookup - localhost
VMで、DNS要求がタイムアウトになったことがわかります。DNSサーバーが実行されていないようです。
これは、問題はゲストに接続できることではないことを意味します。ここでは、DNSが正しく機能するようにするパズルの一部がありません。
回避策:私は興味がありません:
- IPを直接使用する-多少現実的な設定が必要です。接続文字列にまっすぐなIPを挿入する人はいません。
- 使用
/etc/hosts
-上記を参照して、DNSが存在する理由があります。 - ブリッジネットワークを使用し、wifiルーターのDNSにこれを処理させます-これは職場のネットワークでは機能しません。また、wifiルーターのファームウェアでできることは、フルOSを使用して実行可能でなければなりません。
- Docker自動魔法ネットワーキング-VirtualBoxを他の作業に使用する必要があります。Dockerfor Windowsでは、HyperVを有効にして他のハイパーバイザーを無効にする必要があります。
DNSサーバーは実際には実行されていないと思われます。あなたはそれを決して設定しなかったと言いました。どの名前を提供するかをどのように知っていますか?VMは独自のホスト名を知っているため、名前を使用してVMに接続できます。
—
ヨハンMyréen17年
私はwifiルーターがネットワーク上のデバイスの名前を解決する方法を知っているから外挿しています-明らかにネットワーク上のホストが名前で自分の存在をアナウンスするメカニズムがいくつかあるので、それを有効にする方法は疑問です?
—
ミリムース
つまり、Windows Server Essentialsに用意されている自動ウィザードを使用して、デフォルトですべての部品を順序付けするように動作するようになったので、これについてはまだ答えていません。
—
ミリムース
Windowsマシンがネットワーク上で名前をアナウンスするメカニズムは、Link Local Multicast Name Resolution(LLMNR)です。これは、DNSとは別の分散型のサーバーレスメカニズムです。名前が示すように、LLMNRはローカルネットワーク上でのみ機能し、メッセージはルーターを通過しません。LLMNRは、Windowsで設定されたネットワークの種類に応じて使用できます。ネットワークが「パブリック」の場合、LLMNRは無効になります。
—
ヨハンMyréen17年