У меня есть следующий файл зоны BIND, указывающий веб-сервер на yyy.yyy.yyy.yyy, а серверы имен и почтовый сервер на xxx.xxx.xxx.xxx:
$TTL 300
@ 86400 IN SOA ns1.domain.com. admin.gmail.com. (
2016012708 ; serial, todays date+todays
86400 ; refresh, seconds
7200 ; retry, seconds
3600000 ; expire, seconds
86400 ) ; minimum, seconds
domain.com. 86400 IN NS ns1.domain.com.
domain.com. 86400 IN NS ns2.domain.com.
ns1.domain.com. IN A xxx.xxx.xxx.xxx
ns2.domain.com. IN A xxx.xxx.xxx.XXX
domain.com. IN A yyy.yyy.yyy.yyy
localhost.domain.com. IN A 127.0.0.1
domain.com. IN MX 0 mail.domain.com.
mail.domain.com. IN A xxx.xxx.xxx.xxx
domain.com. IN TXT "v=spf1 +a +mx +ip4:xxx.xxx.xxx.xxx ~all"
www IN CNAME domain.com.
ftp IN A yyy.yyy.yyy.yyy.
Запись MX должна разрешить xxx.xxx.xxx.xxx
для почтового сервера, но вместо этого возвращает xxx.xxx.xxx.xxx.domain.com
. Я пробовал использовать «mail» вместо «mail.domain.com» в записи A, и я пробовал комбинации конечных точек и отсутствие конечных точек, думая, что относительные пути или абсолютные пути могут быть проблемой. Но все это безрезультатно. Есть ли что-то очевидное в синтаксисе, которого мне здесь не хватает?
Я обнаружил проблему после попытки перезапуска BIND, из-за которой сервер полностью отключился. Это побудило меня запустить named-checkzone, который указал на ошибочный "." после записи ftp (см. «yyy.yyy.yyy.yyy.» в исходном сообщении). Это приводило к игнорированию файла при каждой перезагрузке конфигурации. После исправления этого файл зоны был успешно загружен, и теперь запросы DNS возвращают "mail.domain.com" для записи MX, как и предполагалось. Спасибо Law29 и Хокану Линдквисту за то, что помогли мне обдумать это.