При подготовке новых серверов Ubuntu Precise (12.04) имя хоста, которое они получают, создается с помощью пути поиска DNS, а не обратного просмотра имени хоста.

Возьмите следующую конфигурацию

BIND настроен с именем хоста и обратным именем

Нормальная зона $ TTL 600 $ ORIGIN srv.local.net.

@ IN SOA ns0.local.net.  hostmaster.local.net. (
        2014082101
        10800
        3600
        604800
        600 )

@               IN      NS      ns0.local.net.
@               IN      MX      5   mail.local.net.

my-new-server           IN      A       10.32.2.30

И обратный @ IN SOA ns0.local.net. hostmaster.local.net. (2014082101 10800 3600 604800 600)

@ IN NS ns0.local.net.

$ORIGIN 32.10.in-addr.arpa.

30.2  IN  PTR my-new-server.srv.local.net.

Затем DHCPD настроен на выдачу статической аренды на основе MAC-адресов, например

subnet 10.32.2.0 netmask 255.255.254.0 {
    option subnet-mask 255.255.254.0;
    option routers 10.32.2.1;
    option domain-name-servers 10.32.2.1;
    option domain-name "util.of1.local.net of1.local.net srv.local.net";

    site-option-space "pxelinux";
    option pxelinux.magic f1:00:74:7e;
    if exists dhcp-parameter-request-list {
        option dhcp-parameter-request-list = concat(option dhcp-parameter-request-list,d0,d1,d2,d3);
    }

    group {

        option pxelinux.configfile "pxelinux.cfg/pxeboot";

        host my-new-server {
            fixed-address my-new-server.srv.local.net;
            hardware ethernet aa:aa:aa:bb:bb:bb;
        }
    }
}

Таким образом, имя хоста должно быть my-new-server.srv.local.net , однако при сборке узла Ubuntu 12.04 имя хоста заканчивается как my-new-server.util.of1.local.net

При сборке хостов Lucid (10.04) имя хоста будет правильным, проблема возникает только на узлах Precise/12.04.

Выполнение нормального и обратного поиска на хосте и IP возвращает правильный результат

Sams-MacBook-Pro:~ sam$ host my-new-server
my-new-server.srv.local.net has address 10.32.2.30
Sams-MacBook-Pro:~ sam$ host my-new-server.srv.local.net
my-new-server.srv.local.net has address 10.32.2.30
Sams-MacBook-Pro:~ sam$ host 10.32.2.30
30.2.32.10.in-addr.arpa domain name pointer my-new-server.srv.local.net.

Содержимое файла hosts тоже неверно

127.0.0.1       localhost
127.0.1.1       my-new-server.util.of1.local.net of1.local.net srv.local.net       my-new-server

Таким образом, похоже, что когда он создает файл hosts, он помещает все содержимое пути поиска DNS в локальный адрес, поэтому полное доменное имя в соответствии с сервером - это короткое имя хоста, как определено, а затем первый домен в пути поиска.

Есть ли способ обойти это поведение или исправить это, чтобы он правильно получал имя хоста? Он берет первую часть имени хоста, а остальное не так.

1 ответ1

0

Исправьте это в вашем /etc/hosts , вот где это неправильно. Имена в файле hosts переопределяют то, что находится в DNS. Относительно того, где он обнаружил util.of1.local.net во время установки, он прямо в вашей конфигурации DHCP:

опция доменного имени "util.of1.local.net of1.local.net srv.local.net";

Вы можете видеть это застряло, что дословно в файл /etc/hosts , пробелы и все ...

Имейте в виду, что опция domain-name по определению должна содержать только одно доменное имя, домен по умолчанию. Но здесь все становится сложнее. На более старых платформах Linux, как показано здесь, она будет брать строку в параметре имени домена и слепо вставлять ее в такие места, как /etc/hosts , а также помещать ее в /etc/resolv.conf для параметра поиска, который эффективно дал вам список поиска. Правильный способ передать это сегодня - использовать опцию domain-search , например:

опция поиска домена "util.of1.local.net", "of1.local.net", "srv.local.net";

К сожалению, это будет проигнорировано более старой версией 12.04 и не даст вам список поиска.

Так что я думаю, что вы застряли в том, чтобы просто исправлять то, что находится в /etc/hosts после каждой установки, так как это единовременное касание.

И вы, вероятно, знаете это, но последняя версия Ubuntu LTS - 14.04.1 на момент написания этой статьи. В этом выпуске LTS есть множество исправлений ошибок по сравнению с 12.04, вам действительно следует использовать 14.04.1, если это вообще возможно. Вы можете настроить DHCP-клиент (в /etc/dhcp/dhclient.conf), чтобы он запрашивал параметр поиска домена и делал все правильно.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .