Я пытаюсь изучить некоторые базовые вещи по развертыванию .NET в реальном мире (используя Web Deploy, удаленную отладку), заставляя приложение hello-world работать на нескольких виртуальных серверах. Я хочу иметь виртуальную машину, называемую vbox-web
в сети только для хоста VirtualBox, где она будет доступна с хоста и других гостей в той же виртуальной сети, используя это имя хоста. (А позже добавьте еще одну ВМ, vbox-db
но это выходит за рамки этого вопроса.)
Что я сделал до сих пор:
- Сетевой адаптер только для хоста VirtualBox настроен на автоматическую настройку, сеть - 192.168.145.1/24, DHCP включен на .2, адреса раздачи начинаются с .101
- На виртуальной машине установлен Windows Server 2016 с включенными ролями DNS и IIS, дальнейшая настройка к ним отсутствует. Сетевой адаптер только для хоста в виртуальной машине также настроен на статическое использование 192.168.145.100 в качестве IP-адреса и DNS-сервера. (Любопытно, что если этот адаптер получает адрес через DHCP, он не работает - он просто получает локальный адрес автоматической ссылки.) Имя компьютера также установлено на
vbox-web
. - Сетевой адаптер хоста настроен на получение адреса через DHCP, получает адрес 192.168.145.1, как и ожидалось. Я также настроил его на использование 192.168.145.100 в качестве DNS-сервера.
Что это меня заводит:
- В браузере на виртуальной машине я могу открыть домашнюю страницу IIS по умолчанию через http: // localhost / , а также http: // vbox-web /
- В браузере на хосте я могу открыть ту же самую домашнюю страницу, используя http://192.168.145.1/ , но не используя http: // vbox-web / - то есть то, что я хочу сделать здесь.
nslookup - localhost
в виртуальной машине сообщает мне, что время ожидания DNS-запроса истекло; кажется, что DNS-сервер даже не работает?
Это означает, что проблема не в возможности подключиться к гостю; Мне не хватает той части головоломки, которая заставляет DNS работать правильно.
Обходные пути меня не интересуют:
- Использование IP-адресов напрямую - я хочу несколько реалистичную настройку, никто в здравом уме не вставляет прямые IP-адреса в строки подключения.
- Использование
/etc/hosts
- см. Выше, есть причина, по которой DNS существует. - Используя мостовую сеть и позволяя DNS-маршрутизатору Wi-Fi справиться с этим - это не будет работать в сети на рабочем месте; а также то, что может сделать прошивка Wi-Fi роутера, должно быть выполнимо с использованием полной ОС.
- Автоматическое сетевое взаимодействие с Docker - мне нужно, чтобы VirtualBox работал для других рабочих задач, для Docker для Windows потребовалось бы включить HyperV и тем самым отключить другие гипервизоры.
Я подозреваю, что ваш DNS-сервер действительно даже не работает. Вы сказали, что не настраивали его каким-либо образом; откуда он знает, какие имена обслуживать? Виртуальная машина знает свое собственное имя хоста, поэтому она может подключиться к себе, используя имя.
—
Йохан Мирен
Я экстраполирую то, как маршрутизатор Wi-Fi знает, как разрешать имена для устройств в сети - очевидно, есть некоторые механизмы, с помощью которых хосты в сети объявляют о своем присутствии с помощью имени, поэтому мне интересно, как это включить?
—
миллимус
Тем не менее, с тех пор мне удалось получить кое-что работающее с помощью автоматического мастера, предоставляемого в Windows Server Essentials, который, кажется, по умолчанию упорядочивает все детали, но я только еще не ответил на это.
—
миллимус
Механизм, с помощью которого машины Windows объявляют свои имена в сети, - Link Local Multicast Name Resolution (LLMNR). Это децентрализованный, безсерверный механизм, который отделен от DNS. Как следует из названия, LLMNR работает только по локальной сети, сообщения не проходят через маршрутизаторы. LLMNR доступен в зависимости от типа сети, установленной в Windows, он отключен, если сеть «общедоступна».
—
Йохан Мирен