Я настраиваю несколько выделенных серверов, и у меня проблемы с правильной настройкой серверов имен. Один из них - это LEMP-сервер (LAMP с nginx вместо Apache), а другой будет работать исключительно как почтовый сервер, на котором запущен антиспам exim / dovecot / ASSP (без Apache). Сервер LEMP - это CentOS 5.5 без панели управления, а почтовый сервер - тоже CentOS 5.5 с cPanel / WHM.
Итак, у меня возникли проблемы с правильной настройкой DNS. У меня есть два домена, каждый из которых указывает на один из этих серверов. Серверы имен правильно зарегистрированы у регистратора доменов, и IP-адреса серверов имен также введены правильно. Я разговаривал с техподдержкой у регистратора, и они подтверждают, что с их стороны все настроено. Не зная много о DNS, я гуглил серверы имен и DNS, пока чуть не ослеп, и часами возился с конфигурацией.
В конце концов, я получил DNS-сервер LEMP, работающий правильно (без cPanel). Довольный этим триумфом, я пытаюсь имитировать эту конфигурацию и повторять процесс с почтовым сервером, но этого просто не происходит. Сервер имен запускается и останавливается, но домен не разрешается.
Вещи, которые я пробовал
Выполнение стандартных процедур для настройки DNS в WHM. Очистка всей информации DNS, удаление BIND, затем повторная установка всего этого и повторное выполнение процедур WHM для настройки DNS. Очистка всей информации DNS и настройка BIND через оболочку (полностью за пределами cPanel) используя мои файлы конфигурации и зоны с сервера LEMP в качестве шаблона
named работает нормально, но ничего не решает. Когда я «копаю любой example.com», я получаю сообщение SERVFAIL. Nslookups не возвращает никакой информации.
Вот мои файлы конфигурации и зоны.
named.conf
controls {
inet 127.0.0.1 allow { localhost; }
keys { coretext-key; };
};
options {
listen-on port 53 { any; };
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
// Those options should be used carefully because they disable port
// randomization
// query-source port 53;
// query-source-v6 port 53;
allow-query { any; };
allow-query-cache { any; };
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
view "localhost_resolver" {
match-clients { 127.0.0.0/24; };
match-destinations { localhost; };
recursion yes;
//zone "." IN {
// type hint;
// file "/var/named/named.ca";
//};
include "/etc/named.rfc1912.zones";
};
view "internal" {
/* This view will contain zones you want to serve only to "internal" clients
that connect via your directly attached LAN interfaces - "localnets" .
*/
match-clients { localnets; };
match-destinations { localnets; };
recursion yes;
zone "." IN {
type hint;
file "/var/named/named.ca";
};
// include "/var/named/named.rfc1912.zones";
// you should not serve your rfc1912 names to non-localhost clients.
// These are your "authoritative" internal zones, and would probably
// also be included in the "localhost_resolver" view above :
zone "example.com" {
type master;
file "data/db.example.com";
};
zone "3.2.1.in-addr.arpa" {
type master;
file "data/db.1.2.3";
};
};
view "external" {
/* This view will contain zones you want to serve only to "external" clients
* that have addresses that are not on your directly attached LAN interface subnets:
*/
match-clients { any; };
match-destinations { any; };
recursion no;
// you'd probably want to deny recursion to external clients, so you don't
// end up providing free DNS service to all takers
allow-query-cache { none; };
// Disable lookups for any cached data and root hints
// all views must contain the root hints zone:
//include "/etc/named.rfc1912.zones";
zone "." IN {
type hint;
file "/var/named/named.ca";
};
zone "example.com" {
type master;
file "data/db.example.com";
};
zone "3.2.1.in-addr.arpa" {
type master;
file "data/db.1.2.3";
};
};
include "/etc/rndc.key";
db.example.com
$TTL 1D
;
; Zone file for example.com
;
; Mandatory minimum for a working domain
;
@ IN SOA ns1.example.com. contact.example.com. (
2011042905 ; serial
8H ; refresh
2H ; retry
4W ; expire
1D ; default_ttl
)
NS ns1.example.com.
NS ns2.example.com.
ns1 A 1.2.3.4
ns2 A 1.2.3.5
example.com. A 1.2.3.4
localhost A 127.0.0.1
www CNAME example.com.
mail CNAME example.com.
;
db.1.2.3
$TTL 1D
$ORIGIN 3.2.1.in-addr.arpa.
@ IN SOA ns1.example.com contact.example.com. (
2011042908 ;
8H ;
2H ;
4W ;
1D ;
)
NS ns1.example.com.
NS ns2.example.com.
4 PTR hostname.example.com.
5 PTR hostname.example.com.
;
Также обратите внимание: оба этих сервера управляются. Техподдержка очень отзывчива и практически бесполезна. Проходят часы, когда они задают мне вопросы, чтобы сузить круг вопросов, а затем они передают билет технику в следующую смену, который игнорирует все, что уже произошло, и проводит всю свою смену, задавая все те же вопросы, которые задавал последний парень.
Итак, в итоге:
Любая помощь была бы замечательной. Я изменил домены и IP-адреса в файлах на общие, но дайте мне знать, если вам нужно знать этот домен.
Спасибо!
ОБНОВИТЬ
Я обнаружил, что у меня нет 127.0.0.1 в /etc/resolv.conf, поэтому я добавил его вместе с двумя моими общедоступными IP-адресами, которые я назвал прослушиванием.
resolv.conf
search www.example.com example.com
nameserver 127.0.0.1
nameserver 7.8.9.10 ;Was in here by default, authoritative nameserver of hosting company
nameserver 1.2.3.4 ;Public IP #1
nameserver 1.2.3.5 ;Public IP #2
Теперь, когда я DIG example.com с хоста, он разрешается. Если я попытаюсь выполнить DIG с другого моего сервера (в том же центре обработки данных) или из Интернета, время истечет или я получу SERVFAIL.
Я бы начал с проверки того, что ваш сервер работает:
netstat -an | grep ^udp | grep 53
Должна появиться линия, похожая на
udp 0 0 0.0.0.0:53 0.0.0.0:*
Если named не запускается, остановите его (просто для очистки), затем запустите и посмотрите, что он записывает в файлы журнала (/ var / log / messages, /var/ named/data/ named.run). Возможна опечатка, мешающая успешному запуску демона.
Затем я убирал все, что мог, из named.conf. Минимальная базовая конфигурация должна упростить устранение неполадок. Затем я бы добавил записи по крупицам, чтобы увидеть, какая запись заставляет сервер блокироваться.
Также попробуйте отдельно разрешить проблемы локально с сервера и с клиента снаружи. Надеюсь, ты поймешь, в чем дело.
"Example.com" вашего ns1.example.com
то же, что и example.com в вашем www.example.com
?
Если да, то whois example.com
перечислить IP-адреса ваших намсерверов? Если нет, вам необходимо, чтобы ваш регистратор установил «склеивающие записи» с IP-адресами ваших серверов имен, поскольку никто не может спросить ns1.example.com
для IP-адреса ns1.example.com
если они не знают, какой IP уже есть.
Кроме того, чтобы убедиться, что вы не настроили блокировку брандмауэра или что-то в этом роде, попробуйте dig www.example.com @1.2.3.4
(1.2.3.4 - IP-адрес ns1.example.com) откуда-то еще и посмотрите, работает ли это.