Назад | Перейти на главную страницу

Настройте Zeroconf для трансляции нескольких имен

Я хочу транслировать несколько имен хостов в локальной сети только из одного экземпляра Ubuntu Server 10 с Zeroconf или чем-то подобным. Он должен быть zeroconf или аналогичным, потому что он будет использоваться в конфигурации виртуальной машины и будет скопирован, поэтому я не могу зависеть от внешнего DNS-сервера. Я собрал ряд ресурсов, но не смог разобраться. Есть ли способ сделать это?

Вот некоторые ресурсы, которые я собрал: http://bit.ly/l5W4ab

EDIT: также было бы хорошо настроить VirtualBox в качестве DNS-сервера.

Вот небольшая служба systemd, которая позволяет вам указать псевдоним для вашей текущей машины, например test.local в дополнении к hostname.local (если ваша машина называется hostname).

Настроить

Сначала установите avahi-utils, если вы еще этого не сделали:

sudo apt-get install avahi-utils

Затем поместите следующее в /etc/systemd/system/avahi-alias@.service

[Unit]
Description=Publish %I as alias for %H.local via mdns

[Service]
Type=simple
ExecStart=/bin/bash -c "/usr/bin/avahi-publish -a -R %I $(avahi-resolve -4 -n %H.local | cut -f 2)"

[Install]
WantedBy=multi-user.target

(The avahi-resolve используется для получения текущего IP-адреса, который уже публикуется для имени хоста)

Использовать

Затем, чтобы сделать текущую машину доступной как test.local в дополнение к текущему hostname.local, вы должны включить службу с помощью:

sudo systemctl enable --now avahi-alias@test.local.service

Вы можете включить несколько псевдонимов, запустив несколько служб, например avahi-alias@test1.local.service и avahi-alias@test2.local.service, который использует функции нескольких экземпляров systemd:

sudo systemctl enable --now avahi-alias@test1.local.service
sudo systemctl enable --now avahi-alias@test2.local.service

Естественно, вы также можете отключить каждый псевдоним независимо, используя:

sudo systemctl disable --now avahi-alias@test2.local.service

Наслаждайтесь!

Вы можете настроить Авахи публиковать произвольные имена хостов, используя /etc/avahi/hosts, но вам нужно указать точный IP-адрес для сопоставления имени хоста. Похоже, что нет способа опубликовать несколько имен хостов для IP-адресов, обнаруженных Avahi. Вы можете написать сценарий запуска, который заполняет /etc/avahi/hosts после обнаружения IP-адреса виртуальной машины.

Я использовал небольшой проект под названием avahi-aliases раньше его не было в репозитории debian, и, похоже, он не поддерживается. Также на github здесь https://github.com/airtonix/avahi-aliases

Почему бы просто не настроить свой сервер ubuntu в качестве сервера DNS и DHCP и не беспокоиться о zeroconf? Сначала настройте DHCP-сервер на выдачу адресов в некотором диапазоне, достаточном для ваших нужд. Затем настройте на машине сервер имен пересылки. Эти инструкции очень похожи на то, что вы хотите сделать. По сути, вы разрешаете DHCP-серверу менять ваш DNS-сервер на лету. Затем, когда подключаются другие виртуальные машины в сети, они отправляют свои предварительно настроенные имена на DHCP-сервер. Сервер DHCP, в свою очередь, устанавливает эти имена в DNS для вашего локального домена.

Другой очень простой вариант - настроить что-то вроде DNSmasq. DNSmasq может читать файл сервера / etc / hosts и передавать эти записи через DNS на другие машины в вашей сети. Таким образом, в этом сценарии вы должны поддерживать большой файл hosts на сервере со всеми именами виртуальных машин, и машина снова будет автоматически обслуживать эти имена через DNS. В этом случае вы все равно захотите использовать dhcp, чтобы виртуальные машины могли автоматически получать адреса в вашей сети, но это более простой подход, чем настройка BIND для dns.

Я подозреваю, что dhcp + dnsmasq, вероятно, сработает для вас, если вы не пытаетесь запустить большое количество виртуальных машин.