Estou configurando alguns servidores dedicados e tendo problemas para configurar meus servidores de nomes corretamente. Um deles é um servidor LEMP (LAMP com nginx no lugar do Apache), e o outro funcionará apenas como um servidor de e-mail, executando o exim / dovecot / ASSP antispam (sem Apache). O servidor LEMP é o CentOS 5.5, sem painel de controle, enquanto o servidor de e-mail é o CentOS 5.5 também, com cPanel / WHM.
Então, tive problemas para configurar o DNS corretamente. Eu tenho dois domínios, cada um apontando para um desses servidores. Os servidores de nomes são registrados corretamente com o registrador de domínio e os IPs do servidor de nomes também são inseridos corretamente. Falei com o suporte técnico no registrador e eles confirmaram que tudo está configurado no final. Sem saber muito sobre DNS, pesquisei servidores de nomes e DNS até quase ficar cego e passei horas mexendo na configuração.
Eventualmente, eu tenho o DNS do servidor LEMP funcionando corretamente (sem cPanel). Satisfeito com este triunfo, estou tentando imitar essa configuração e repetir o processo com o servidor de e-mail, e isso simplesmente não está acontecendo. O servidor de nomes inicia e pára, mas o domínio não resolve.
Coisas que tentei
Passando por procedimentos padrão para configurar o DNS no WHM
Limpar todas as informações de DNS, desinstalar o BIND, reinstalar tudo isso e, novamente, passar pelos procedimentos de WHM para configurar o DNS
Limpar todas as informações de DNS e configurar o BIND via shell (completamente fora do cPanel) usando meus arquivos de configuração e de zona do servidor LEMP como um modelo
chamado corre muito bem, mas nada está resolvendo. Quando "digito qualquer exemplo.com", recebo uma mensagem SERVFAIL. Nslookups não retornam informações.
Aqui estão os meus arquivos de configuração e zona.
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.
;
Além disso, os dois servidores são gerenciados. O suporte técnico é muito responsivo e em grande parte inútil. Horas passam com eles me fazendo perguntas para diminuir o que poderia estar errado, então eles passam o ingresso para o técnico no próximo turno, que ignora tudo o que já aconteceu e passa seu turno inteiro fazendo as mesmas perguntas que o último cara perguntou.
Então, em resumo:
- Os servidores de nomes, com IPs, estão registrados corretamente no registro de domínios
- o nome está configurado e em execução ... e não deve ser configurado
- corretamente, porque nada resolve.
Qualquer ajuda seria ótima. Eu mudei domínios e IPs nos arquivos para genéricos, mas deixe-me saber se você precisa saber o domínio em questão.
Obrigado!
UPDATE
Descobri que eu não tinha 127.0.0.1 em /etc/resolv.conf, então eu adicionei, junto com meus dois IPs públicos que eu nomeei ouvindo.
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
Agora, quando eu DIG example.com do host, ele resolve. Se eu tentar DIG do meu outro servidor (no mesmo datacenter), ou da internet, o tempo limite ou eu recebo SERVFAIL.