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

Несовместимые доменные имена от имени хоста -f и имени домена

Я настраиваю почтовый сервер Postfix, имя хоста "письма", для обработки почты для домена "example.net". Я попытался установить имя домена букв для example.net с помощью nis, но получаю несогласованные выходные данные от имени хоста -f ('letter.stuff.comcast.net') и имени домена ('example.net'). Как мне установить имя домена так, чтобы команда hostname -f сообщала 'example.net'? Насколько это важно для правильной работы Postfix?

Письма хоста работают под управлением Ubuntu и подключаются к Интернету с помощью кабельного модема к Comcast через маршрутизатор openwrt. Сервер имен для домена example.net находится на удаленном компьютере Debian, который еще не был настроен для создания хоста или псевдонима для писем.

Я предполагаю, что имя домена в выходных данных имени хоста отражает имя домена, полученное от сервера comcast клиентом dhcp коробки, и отражает идею, что ящик является клиентом в этой сети. Есть ли решение создать хост с буквами на сервере имен для example.net? Требует ли для этого добавления этого сервера имен к списку в файле resolv.conf букв?

Убедитесь, что ваш /etc/hosts (или NIS) записи верны.

Я собирался попытаться объяснить это, но справочная страница лучше рассказывает историю:

THE FQDN
    You can't change the FQDN (as returned by hostname --fqdn) or  the  DNS
    domain  name (as returned by dnsdomainname) with this command. The FQDN
    of the system is the name that the resolver(3)  returns  for  the  host
    name.

    [..]

    Therefore  it  depends on the configuration (usually in /etc/host.conf)
    how you can change it. Usually (if the hosts file is parsed before  DNS
    or NIS) you can change it in /etc/hosts.

Я столкнулся с этой проблемой вчера, когда работал над обновлением сервера, запущенным кем-то другим ... В выводе hostname -f никогда не было правильного конечного домена (отсутствует .org).

# hostname foobar.example.org
# hostname -f
foobar.example
#

# cat /etc/hosts
10.20.11.244    foobar.example foobar

Решение:

Доменная часть имени хоста -f, похоже, взята из записи / etc / hosts для этого хоста. После того, как я исправил имя хоста в / etc / hosts, hostname -f возвращал правильный домен:

# hostname foobar
# hostname
foobar
# hostname -f
foobar.example.org

YMMV.

Если ваш IP-адрес не является статическим, тогда /etc/hosts не будет работать у вас (или будет работать только временно, пока вы не получите новый IP). Я не уверен, что это сработает, но вот что нужно попробовать:

  1. настройте ваш dhcp-клиент так, чтобы он не запрашивал доменное имя с DHCP-сервера. Или просто скажите ему, чтобы он вообще не трогал resolv.conf, что вы, возможно, уже сделали, если у вас есть собственные серверы имен.
  2. Установите для своего домена example.net в /etc/resolv.conf
  3. убедитесь, что ваш сервер имен может разрешить letters.example.net, Я думаю, вам нужно будет использовать какую-то динамическую службу DNS, поскольку это решение предназначено для нестатических IP-адресов.

Это может означать, что я просто отвечу на ваш вопрос «да».

Это часто неправильно понимаемая проблема с "доменным именем". Вот верхняя часть страницы руководства в моей системе Mac OS X, но ваша будет похожа:

DOMAINNAME(1)             BSD General Commands Manual            DOMAINNAME(1)

NAME
     domainname -- set or print the name of the current NIS domain

Эта команда не используется для настройки DNS!