Problemas de DNS de BIND e uma solicitação para opinião de configuração

2

Sou muito novo na configuração do BIND e estou tendo alguns problemas com a configuração que estou usando. Já pesquisei por uma semana, e ou não consigo descobrir os termos de pesquisa adequados para usar ou estou recebendo informações conflitantes. Eu estou querendo saber se qualquer guru de DNS por aí pode olhar através da minha configuração (colado abaixo) e ver se há A) uma solução óbvia para meus dois problemas listados, e B) alguma coisa que você vê que está configurada incorretamente? Estou no CentOS 6.4 x64 e estou usando o BIND 9.8.2. Deveria ser óbvio que eu substituí example.com por nosso verdadeiro nome de domínio no texto abaixo.

Problemas

  1. Gostaria que os clientes internos resolvessem example.com to www.example.com (nosso site exibido externamente). No entanto, não estou claro sobre como fazer isso, quando esse é o domínio raiz de meus clientes internos. Isso é possível? Por enquanto, acabei de dizer aos funcionários que eles devem usar www.example.com para acessar nosso site externo de dentro de nossa rede.

O arquivo de zona para example.com se parece com isto:

$ORIGIN .
$TTL 600        ; 10 minutes
example.com     IN SOA  ns1.example.com. root.example.com. (
                                5          ; serial
                                604800     ; refresh (1 week)
                                86400      ; retry (1 day)
                                2419200    ; expire (4 weeks)
                                604800     ; minimum (1 week)
                                )
                        NS      ns1.example.com.
                        A       10.2.2.44
$TTL 3600       ; 1 hour
                        MX      1 ASPMX.L.GOOGLE.COM.
                        MX      5 ALT1.ASPMX.L.GOOGLE.COM.
                        MX      5 ALT2.ASPMX.L.GOOGLE.COM.
                        MX      10 ASPMX2.GOOGLEMAIL.COM.
                        MX      10 ASPMX3.GOOGLEMAIL.COM.
$ORIGIN example.com.
$TTL 600        ; 10 minutes
myserver                A       10.2.2.5
test                    A       10.2.2.45
www                     A       123.12.34.32 // externally hosted www server
    
por sbgoodwin 01.05.2013 / 21:25

2 respostas

2

I'd like internal clients to be able to resolve example.com to www.example.com (our externally served web site).

A maneira como isso geralmente é feito é criar um registro A para example.com e tornar www.example.com a CNAME que aponta para esse registro A .
Também é aceitável fazer com que ambos os registros A apontem para o mesmo endereço IP.

Se você tiver uma versão Interna e Externa da zona example.com , deverá duplicar os endereços externos em seu arquivo de zona interno (ou apontar esses registros para seus endereços IP internos / privados).

Note que você não pode CNAME do domínio base ( example.com ), por RFC 1912 :

2.4 CNAME records

   A CNAME record is not allowed to coexist with any other data.  In
   other words, if suzy.podunk.xx is an alias for sue.podunk.xx, you
   can't also have an MX record for suzy.podunk.edu, or an A record, or
   even a TXT record.  Especially do not try to combine CNAMEs and NS
   records like this!:


           podunk.xx.      IN      NS      ns1
                           IN      NS      ns2
                           IN      CNAME   mary
           mary            IN      A       1.2.3.4


   This is often attempted by inexperienced administrators as an obvious
   way to allow your domain name to also be a host.  However, DNS
   servers like BIND will see the CNAME and refuse to add any other
   resources for that name.  Since no other records are allowed to
   coexist with a CNAME, the NS entries are ignored.  Therefore all the
   hosts in the podunk.xx domain are ignored as well!

   If you want to have your domain also be a host, do the following:

           podunk.xx.      IN      NS      ns1
                           IN      NS      ns2
                           IN      A       1.2.3.4
           mary            IN      A       1.2.3.4

   Don't go overboard with CNAMEs.  Use them when renaming hosts, but
   plan to get rid of them (and inform your users).  However CNAMEs are
   useful (and encouraged) for generalized names for servers -- 'ftp'
   for your ftp server, 'www' for your Web server, 'gopher' for your
   Gopher server, 'news' for your Usenet news server, etc.

   Don't forget to delete the CNAMEs associated with a host if you
   delete the host it is an alias for.  Such "stale CNAMEs" are a waste
   of resources.
    
por 01.05.2013 / 22:14
-1

Para o problema 1, adicione um nome canônico.

# cat /var/named/db.example.com

$ORIGIN .
$TTL 600        ; 10 minutes
example.com     IN SOA  ns1.example.com. root.example.com. (
                                6          ; serial
                                604800     ; refresh (1 week)
                                86400      ; retry (1 day)
                                2419200    ; expire (4 weeks)
                                604800     ; minimum (1 week)
                                )
                        NS      ns1.example.com.
                        A       10.2.2.44
$TTL 3600       ; 1 hour
                        MX      1 ASPMX.L.GOOGLE.COM.
                        MX      5 ALT1.ASPMX.L.GOOGLE.COM.
                        MX      5 ALT2.ASPMX.L.GOOGLE.COM.
                        MX      10 ASPMX2.GOOGLEMAIL.COM.
                        MX      10 ASPMX3.GOOGLEMAIL.COM.
$ORIGIN example.com.
$TTL 600        ; 10 minutes
myserver                A       10.2.2.5
test                    A       10.2.2.45
example.com.            A       123.12.34.32 // externally hosted www server
www                     CNAME   example.com.

Problema 2: não tem 100% de certeza Em seu arquivo /etc/named.conf, as diretivas "IN" parecem estranhas. Não tenho certeza se isso é legal ou não, você poderia tentar tirá-los.

Algo mais que eu não vi antes, em /var/named/db.2.2.10.in-addr.arpa é sua segunda linha NS da parte inferior. Acho que o arquivo deve ficar mais parecido com isso:

;
; BIND data file for example.com
;
$TTL 10m
@  IN  SOA ns1.example.com. root.example.com. (
            2           ; Serial
            604800      ; Refresh
            86400       ; Retry
            2419200     ; Expire
            604800 )    ; Negative Cache TTL

                        IN      NS      ns1.example.com.
;
;
;
5                       IN      PTR     myserver.example.com.
    
por 01.05.2013 / 21:52