Visite também: Br-Linux ·  VivaOLinux ·  LinuxSecurity ·  Dicas-L ·  NoticiasLinux ·  SoftwareLivre.org ·  [mais]
Voltar   Under-Linux.org Fóruns > UnderLinux Wiki
Wiki Classificados Galeria Reviews Jogos Comunidades RSS Feeds FAQ Termos de Uso Sobre
Cadastre-se FotosBlogs Lista de Membros Calendário Pesquisar Mensagens de Hoje Marcar Fóruns Como Lidos

Ferramentas pessoais
Publicidade

From UnderLinux Wiki

Instalando o MySQL no Slackware


Tabela de conteúdo

Nota de tradução

O Autor faz pequenos comentários uteis chamados de "Tips" que ao pé da letra seriam como 'boas gorjetas', ou seja, Dicas (-;b. Existe o TIP HOWTO um documento com várias dicas úteis para o Linux. Aviso: Esta tradução não está relacionada com o Projeto de Documentação do Linux (LDP) que no Brasil é representada pela LDP-BR em , este material é uma tradução técnica e básica somente para auxiliar os colegas com a leitura em português.

Outros documentos você pode obter em:

HOWTO para diminuir o tempo de admin do DNS.

Preâmbulo

Keywords: DNS, bind, named, dialup, ppp, slip, Internet, domain, name, hosts, resolving

Materiais legais

(C)opyright 1995 Nicolai Langfeldt. Não modifique se alterar registre, distribua livremente mas mantenha esta mensagem protegida por direitos autorais.

Créditos e pedidos para ajuda.

Eu quero agradecer a Arnt Gulbrandsen que leu os rascunhos para este trabalho por tempos incontáveis e por ter indicado muitas sugestões úteis. Eu também quero agradecer as pessoas que enviaram e-mail com sugestões, e lhes agradecer as notas. Obrigado! Vocês me ajudam a continuar.

Este documento nunca será terminado, por favor envie-me e-mail com seus problemas e sucessos, para aperfeiçoar este HOWTO. Então por favor envie dinheiro, comentários e/ou perguntas a janl@math.uio.no. Se você for enviar e-mail por favor tenha certeza que o endereço de retorno esteja correto, eu recebo muitos e-mail. Também, por favor leia a seção de ``FAQ antes de remeter algum e-mail.

Se você quizer traduzir este HOWTO notifique-me assim eu posso manter um rastro de que idiomas foi publicado :-).

Dedicação

Este HOWTO é dedicado a Anne Line Norheim. Embora ela provavelmente nunca ira ler isto desde que ela não seja este tipo de menina.

Introdução.

O que isto é e não é.

Para conhecedores, DNS é o Sistema de Nome de Domínio. As regras que nomeiam máquinas e software que transformam estes nomes para números de IP. Este documento HOWTO define tais cartografias que se usam num sistema de Linux. Uma cartografia é simplesmente uma associação entre duas coisas, neste caso uma máquina nomeada, como ftp.linux.org, e as máquinas que o IP numeram, 199.249.150.4.

DNS é, para o 'uninitiated' (você ;-), um das áreas mais opacas da administração de rede. Este HOWTO tenta fazer algumas coisas leve. Descreve como montar um simples servidor de nome DNS. Começando com um caching só de servidor e indo montar um servidor de DNS primário para um domínio. Para ligações mais complexas você pode confirir a seção de "FAQ" deste documento. Se não for descrito lá você deve ler a Documentação Real. Eu voltarei sobre a Documentação Real consiste ``no último capítulo.

Antes de começar você deve configurar sua máquina de forma que possa acessar o telnet por fora, e possa fazer com sucesso qualquer tipo de conexões com a rede, devendo ser capaz especialmente de fazer um telnet para 127.0.0.1 e acessar a sua própria máquina (teste isto agora!). Você também precisa de um bom /etc/host.conf (ou /etc/nsswitch.conf), /etc/resolv.conf e /etc/hosts estes arquivos dão o ponto de partida, desde que eu não explique como eles funcionam aqui.

Se você não tem tudo isso configurado e funcionando o HOWTO networking/NET-2 explica como configurar. Leia-o.

Se você está usando SLIP ou PPP você precisará por em funcionamento. Se não leia o HOWTO PPP.

Quando eu digo "sua máquina" eu quero dizer a máquina que você está tentando montar o DNS.

Qualque outra máquina que você poderia usar não é envolvido em seu esforço de networking.

Eu irei assumir que você não está atrás de qualquer tipo de firewall que bloqueia pedidos de nome.

Se você precisa de uma configuração especial, veja a seção de``FAQ.

No Unix um servidor de nomes é um programa chamado named. É uma parte do pacote do bind o qual é coordenado por Paul Vixie para o Consórcio de Software para a Internet.

O Named é incluído na maioria das distribuições do Linux e normalmente é instalado como /usr/sbin/named. Se você tem um named provavelmente poderá usa-lo; se você não o tem adquira o binário para Linux no Site de ftp do Linux, ou adquire um mais recente e com uma maior fonte em ftp.vix.com:/pub/bind no sub-diretório de release ou testing (lançamento ou em teste), qualquer tipo de ajuste é do seu melhor estilo de vida.

DNS é um banco de dados net-wide. Tome cuidado sobre o que você puser nele. Se você pôs algo jogue fora, você, e outros adquirirão isto. Mantenha o seu DNS limpo e consistente e você obterá um bom serviço.

Aprenda a usa-lo, admin, e depura-lo pois você será outro bom admin impedindo que a rede caia de joelhos sobrecarregados por 'mismanagement'.

Neste documento eu declaro um par de coisas que não são completamente verdadeira (elas são pelo menos meia verdades). Tudo no interesse de simplificação. Coisas que vão (provavelmente ;-) trabalhar se você acredita no que eu digo.

Tip: Faça copias auxiliares de todos os arquivos que eu ensinar e que você venha a usar, assim se depois nada funcionar você pode voltar para o seu velho, Estado da Arte de trabalho.

Um caching somente para o Servidor de nomes

A primeira punhalada na configuração do DNS, é muito útil para usuários de dialup. Um caching somente para o Servidor de nomes ele achará a resposta para nomear as questões e se lembrará da resposta da próxima vez que precisar.

Primeiro precisamos de um arquivo chamado "/etc/named.boot". Ele é lido quando o named começa. No momento ele deve conter simplesmente isto:

;  Arquivo de Boot somente para o servidor de nomes
;
directory /var/named
;
; type          domain                       source file or host
; tipo          dominio                   fonte do arquivo ou do host
cache           .                               root.cache
primary         0.0.127.in-addr.arpa            pz/127.0.0

MUITO IMPORTANTE: Em algumas versões deste documento os conteúdos de arquivo listado aqui terá um par de espaços ou um Tab antes do primeiro nome. Não é suposto que estão no arquivo. Apague qualquer espaço principalmente nos arquivos que você cortou e colou deste HOWTO.

A linha 'Directory' indica ao named onde procurar os arquivos. Todos os arquivos do named subseqüentemente será relativo a ele. "/var/named" é o diretório correto de acordo com o Padrão de Sistemas de Arquivo do Linux. Assim pz é um diretório debaixo de "/var/named', i.e., "/var/named/pz".

O arquivo named "/var/named/root.cache" é named nisto. O arquivo "/var/named/root.cache" deve conter:


   .       518400  NS      D.ROOT-SERVERS.NET.
   .       518400  NS      E.ROOT-SERVERS.NET.
   .       518400  NS      I.ROOT-SERVERS.NET.
   .       518400  NS      F.ROOT-SERVERS.NET.
   .       518400  NS      G.ROOT-SERVERS.NET.
   .       518400  NS      A.ROOT-SERVERS.NET.
   .       518400  NS      H.ROOT-SERVERS.NET.
   .       518400  NS      B.ROOT-SERVERS.NET.
   .       518400  NS      C.ROOT-SERVERS.NET.
  ;
  D.ROOT-SERVERS.NET.     3600000 A       128.8.10.90
  E.ROOT-SERVERS.NET.     3600000 A       192.203.230.10
  I.ROOT-SERVERS.NET.     3600000 A       192.36.148.17
  F.ROOT-SERVERS.NET.     3600000 A       192.5.5.241
  G.ROOT-SERVERS.NET.     3600000 A       192.112.36.4
  A.ROOT-SERVERS.NET.     3600000 A       198.41.0.4
  H.ROOT-SERVERS.NET.     3600000 A       128.63.2.53
  B.ROOT-SERVERS.NET.     3600000 A       128.9.0.107
  C.ROOT-SERVERS.NET.     3600000 A       192.33.4.12

Lembre-se do que eu disse sobre espaços principalmente!

Este arquivo descreve os servidores de nome de raiz no mundo. Ele é mudado com o passar do tempo e deve ser mantido. Veja a seção de ``manutenção para manter este arquivo atualizado. Este arquivo é descrito na página man named, mas é, IMHO, melhor compreendido por pessoas que já entendem de named.

A próxima linha em named.boot é a linha primária. Eu explicarei seu uso num capítulo mais recente, no momento coloque somete isto no arquivo "127.0.0.0" no subdiretório pz:

  @           IN      SOA     ns.linux.bogus. hostmaster.linux.bogus. (
                                  1       ; Serial
                                  28800   ; Refresh
                                  7200    ; Retry
                                  604800  ; Expire
                                  86400)  ; Minimum TTL
                          NS      ns.linux.bogus.
  1                       PTR     localhost.

Logo, você precisa de um "/etc/resolv.conf" que se parece com algo assim:

  search sub_dominio.seu-domínio.edu  seu-domínio.edu
  nameserver 127.0.0.1

A linha 'Search' especifica que os domínios deve ser procurados para qualquer nome de host que queremos conectar. A linha 'Nameserver' especifica o endereço do seu nameserver, neste caso sua própria máquina desde que o seu named rode. Se você quer listar alguns servidores de nomes coloque uma linha de `Nameserver' para cada um. (Nota: Nunca o named lê este arquivo, o resolver é que usa o named.)

Para ilustrar o que este arquivo faz: Se um cliente tenta observar foo, foo.sub_dominio.seu-dominio.edu é primeiro experimentado, então foo.seu-domínio.edu, finalmente foo. Se um cliente tenta observar sunsite.unc.edu, sunsite.unc.edu.sub_dominio.seu-dominio.edu é experimentado primeiramente (sim, é tolo, mas este é o modo e que seja assim), então sunsite.unc.edu.seu-domínio.edu, e finalmente sunsite.unc.edu. Você pode não querer pôr muitos domínios na linha de procura, pois leva muito tempo para procurar por eles.

O exemplo assume que você pertence ao domínio sub_domínio.seu-domínio.edu, sua máquina então, provavelmente é chamado sua-maquina.sub_domínio.seu-domínio.edu. A linha de procura não deveria conter o seu TLD (Nivel do Topo de Domínio, `Edu' neste caso). Se você freqüentemente precisa conectar aos hosts em outro domínio podemos somar aquele domínio para a linha de procura:

  search subdominio.seu-domínio.edu  seu-domínio.edu.edu outro-domínio.com

e assim por diante. Obviamente você precisa pôr o domínio real de nomes. Por favor note a falta de períodos ao término dos nomes de domínio.

Logo, ou dependendo de sua versão de libc você precisa configurar o "/etc/nsswitch.conf" ou "/etc/host.conf". Se você já tem nsswitch.conf que é o qual configuraremos, se não, nós configuraremos o host.conf.

/etc/nsswitch.conf

Este é um arquivo longo que especifica onde adquirir tipos diferentes de dados, de arquivos ou banco de dados. Normalmente contém comentários úteis ao topo que você deve considerar, agora. Depois de achar a linha que começa com `Hosts:', deverá conter:

  hosts:      files dns

Se não há nenhuma linha que começa com 'Hosts: ' então ponha uma acima. Este arquivo diz que os programas devem olhar primeiro no arquivo de "/etc/hosts", e então, confirir o DNS de acordo com o resolv.conf.

/etc/host.conf

Contém várias linhas provavelmente, e deve começar com ORDER e deve aparecer com:

  order hosts,bind

Se não houver nenhum linha de 'order' você deve colocar. Ela conta ao host de nomes quem soluciona as rotas para usar primeiro em /etc/hosts, então pergunta ao servidor de nomes (o qual você disse no resolv.conf que está em 127.0.0.1). Estes dois arquivos são documentados mais recentemente na páginas do man resolv(8) (use `man 8 resolv') na maioria das distribuições de Linux. Aquela página de man é IMHO legível, e todo mundo, especialmente admins de DNS, deveriam ler. Faça agora, se você diz a si "eu farei depois" você nunca ira adquirir conhecimento sobre isto.

Inicializando o named

Afinal de contas esta na hora de começar o named. Se você está usando uma conexão dialup conecte primeiro. Digite 'ndc start', e pressione return, não há opções. Se for back-fires tente "/usr/sbin/ndc start". Se isso parte do back-fire veja a seção 'FAQ'. Agora você pode testar a sua configuração.

Se você ver o seu arquivo de mensagem de syslog (normalmente chamado de "/var/adm/messages", mas pode estar em outro diretório olhe em /var/log e o outro arquivo é o syslog) enquanto começa o named (tail -f /var/adm/messages) você deve ver algo como:

Jun 30 21:50:55 roke named[2258]: starting.  named 4.9.4-REL Sun
Jun 30 21:29:03 MET DST 1996


janl@roke.slip.ifi.uio.no:/var/tmp/bind/named
  Jun 30 21:50:55 roke named[2258]: cache zone "" loaded (serial 0)
  Jun 30 21:50:55 roke named[2258]: primary zone
"0.0.127.in-addr.arpa" loaded (serial 1)

Se há qualquer mensagem sobre erros então há um engano. Nomei o arquivo de named (um de named.boot e root.cache, eu espero :-) Mate o named e volte para conferir os arquivos.

Agora é a hora para começar o nslookup para examinar seu handywork.

   $ nslookup
       Default Server:  localhost
       Address:  127.0.0.1
       >

Se isto ocorrer então o named está rodando. É o que esperamos. Qualquer outra coisa, volte e confira tudo. Toda vez que mudar o arquivo named.boot precisa ser reiniciado o named usando o comando ndc restart.

Agora podemos entrar numa questão. Provar que observa alguma máquina perto de você. pat.uio.no está perto de mim, na Universidade de Oslo:

       > pat.uio.no
       Server:  localhost
       Address:  127.0.0.1

       Name:    pat.uio.no
       Address:  129.240.2.50

O nslookup perguntou agora ao seu named para procurar a máquina pat.uio.no. Ele então contacta um das máquinas do servidor de nomes do named no seu arquivo root.cache, e perguntou ao seu modo. Poderia levar minutos enquanto adquirimos o resultado como procurar todos os domínios que usamos no named em /etc/resolv.conf.

Se tentarmos novamente iremos receber:

       > pat.uio.no
       Server:  localhost
       Address:  127.0.0.1

       Non-authoritative answer:
       Name:    pat.uio.no
       Address:  129.240.2.50

Note a resposta na linha `Non-authoritative answer:' que adquirimos. Isto significa que o named não saiu da rede para perguntar, ao invés disto olhou no cache e achou lá. Mas o cache informou que poderia ser obsoleto (ultrapassado). Assim você está sendo informado de um perigo (muito leve) por isto é dito `Non-authoritative answer:'. Quando o nslookup respondeu levou segundos que você pediu ao host é um sinal seguro que o cache do named está trabalhando. Você pode sair do nslookup dando o comando `exit'.

Se você usa dialup (ppp, slip) como usuário por favor leia a seção de "conexões", há um pouco de conselho lá para você.

Agora que sabemos um caching de named. Beba uma cerveja, leite, ou qualque coisa com ao qual você prefere celebrar.

Um domínio simples

Como montar o seu próprio domínio.

Mas primeiro alguma teoria básica

Antes de começarmos esta seção vou apresentar alguma teoria de como o DNS trabalha. E você vai ler isto porque é importante. Se você for um `Wanna' você deve ler isto rapidamente. Pare quando encontrar o arquivo named.boot.

DNS é um sistema hierárquico. O topo é escrito com "." e pronunciado `Root'. Debaixo de "." há vários Nivéis de Topo de Domínios(TLDs), os conhecidos são ORG, COM, EDU e NET, mas há muitos.

Quando procura-se uma máquina a questão procede recursivamente na hierarquia que começa no topo. Se você quer achar o endereço de prep.ai.mit.edu seu servidor de nome tem que achar um servidor de nomes que serve ao edu. Pergunta por um servidor "." (já sabe que os servidores "." estão no seu arquivo de root.cache), o servidor "." dá uma lista de servidores edu:

       $ nslookup
       Default Server:  localhost
       Address:  127.0.0.1

Começa a perguntar há um servidor na raiz.

       > server c.root-servers.net.
       Default Server:  c.root-servers.net
       Address:  192.33.4.12

Define o tipo de questão para NS (servidor de registro nomes).

> set q=ns

Pergunta sobre edu.

> edu.

O "." aqui é significante, conta ao servidor que estamos perguntando há aquele edu sobre o que esta abaixo dele (assim estreita a nossa procura um pouco).

       edu     nameserver = A.ROOT-SERVERS.NET
       edu     nameserver = H.ROOT-SERVERS.NET
       edu     nameserver = B.ROOT-SERVERS.NET
       edu     nameserver = C.ROOT-SERVERS.NET
       edu     nameserver = D.ROOT-SERVERS.NET
       edu     nameserver = E.ROOT-SERVERS.NET
       edu     nameserver = I.ROOT-SERVERS.NET
       edu     nameserver = F.ROOT-SERVERS.NET
       edu     nameserver = G.ROOT-SERVERS.NET
       A.ROOT-SERVERS.NET      internet address = 198.41.0.4
       H.ROOT-SERVERS.NET      internet address = 128.63.2.53
       B.ROOT-SERVERS.NET      internet address = 128.9.0.107
       C.ROOT-SERVERS.NET      internet address = 192.33.4.12
       D.ROOT-SERVERS.NET      internet address = 128.8.10.90
       E.ROOT-SERVERS.NET      internet address = 192.203.230.10
       I.ROOT-SERVERS.NET      internet address = 192.36.148.17
       F.ROOT-SERVERS.NET      internet address = 192.5.5.241
       G.ROOT-SERVERS.NET      internet address = 192.112.36.4

Isto nos diz que *.root-servers.net serve ao edu., assim nós podemos ir em c é perguntar. Agora nós queremos saber quem serve ao próximo nível do domínio nomes: mit.edu.:

        > mit.edu.
       Server:  c.root-servers.net
       Address:  192.33.4.12

       Non-authoritative answer:
       mit.edu nameserver = STRAWB.mit.edu
       mit.edu nameserver = W20NS.mit.edu
       mit.edu nameserver = BITSY.mit.edu

       Authoritative answers can be found from:
       STRAWB.mit.edu  internet address = 18.71.0.151
       W20NS.mit.edu   internet address = 18.70.0.160
       BITSY.mit.edu   internet address = 18.72.0.3

steawb, w20ns e bitsy são servidores do mit, selecionaremos um e buscaremos sobre ai.mit.edu:

  > server W20NS.mit.edu.

Nomes de anfitrião não são nenhum caso sensível, mas eu uso o meu mouse para cortar e colar assim é copiado como o da tela.

       Server:  W20NS.mit.edu
       Address:  18.70.0.160

       > ai.mit.edu.
       Server:  W20NS.mit.edu
       Address:  18.70.0.160

       Non-authoritative answer:
       ai.mit.edu      nameserver = WHEATIES.AI.MIT.EDU
       ai.mit.edu      nameserver = ALPHA-BITS.AI.MIT.EDU
       ai.mit.edu      nameserver = GRAPE-NUTS.AI.MIT.EDU
       ai.mit.edu      nameserver = TRIX.AI.MIT.EDU
       ai.mit.edu      nameserver = MUESLI.AI.MIT.EDU

       Authoritative answers can be found from:
       AI.MIT.EDU      nameserver = WHEATIES.AI.MIT.EDU
       AI.MIT.EDU      nameserver = ALPHA-BITS.AI.MIT.EDU
       AI.MIT.EDU      nameserver = GRAPE-NUTS.AI.MIT.EDU
       AI.MIT.EDU      nameserver = TRIX.AI.MIT.EDU
       AI.MIT.EDU      nameserver = MUESLI.AI.MIT.EDU
       WHEATIES.AI.MIT.EDU     internet address = 128.52.32.13
       WHEATIES.AI.MIT.EDU     internet address = 128.52.35.13
       ALPHA-BITS.AI.MIT.EDU   internet address = 128.52.32.5
       ALPHA-BITS.AI.MIT.EDU   internet address = 128.52.37.5
       GRAPE-NUTS.AI.MIT.EDU   internet address = 128.52.32.4
       GRAPE-NUTS.AI.MIT.EDU   internet address = 128.52.36.4
       TRIX.AI.MIT.EDU internet address = 128.52.32.6
       TRIX.AI.MIT.EDU internet address = 128.52.38.6
       MUESLI.AI.MIT.EDU       internet address = 128.52.32.7
       MUESLI.AI.MIT.EDU       internet address = 128.52.39.7

Assim weaties.ai.mit.edu é um nameserver para ai.mit.edu:

        > server WHEATIES.AI.MIT.EDU.
       Default Server:  WHEATIES.AI.MIT.EDU
       Addresses:  128.52.32.13, 128.52.35.13

Agora irei mudar o tipo de questão, nós achamos o servidor de nome que nós somos indo perguntar por tudo wheaties sobre prep.ai.mit.edu.

  > set q=any
  > prep.ai.mit.edu.
  Server:  WHEATIES.AI.MIT.EDU
  Addresses:  128.52.32.13, 128.52.35.13

  prep.ai.mit.edu CPU = dec/decstation-5000.25    OS = unix
  prep.ai.mit.edu
          inet address = 18.159.0.42, protocol = tcp
           #21 #23 #25 #79
  prep.ai.mit.edu preference = 1, mail exchanger = life.ai.mit.edu
  prep.ai.mit.edu internet address = 18.159.0.42
  ai.mit.edu      nameserver = alpha-bits.ai.mit.edu
  ai.mit.edu      nameserver = wheaties.ai.mit.edu
  ai.mit.edu      nameserver = grape-nuts.ai.mit.edu
  ai.mit.edu      nameserver = mini-wheats.ai.mit.edu
  ai.mit.edu      nameserver = trix.ai.mit.edu
  ai.mit.edu      nameserver = muesli.ai.mit.edu
  ai.mit.edu      nameserver = count-chocula.ai.mit.edu
  ai.mit.edu      nameserver = life.ai.mit.edu
  ai.mit.edu      nameserver = mintaka.lcs.mit.edu
  life.ai.mit.edu internet address = 128.52.32.80
  alpha-bits.ai.mit.edu   internet address = 128.52.32.5
  wheaties.ai.mit.edu     internet address = 128.52.35.13
  wheaties.ai.mit.edu     internet address = 128.52.32.13
  grape-nuts.ai.mit.edu   internet address = 128.52.36.4
  grape-nuts.ai.mit.edu   internet address = 128.52.32.4
  mini-wheats.ai.mit.edu  internet address = 128.52.32.11
  mini-wheats.ai.mit.edu  internet address = 128.52.54.11
  mintaka.lcs.mit.edu     internet address = 18.26.0.36

Começando assim em "." nós achamos os servidores de nome sucessivos para o próximo nível de domínio de nomes. Se você tivesse usado seu próprio servidor de DNS ao invés de usar todos estes servidores, seu named iria no cache para obter todas as informações que perguntarmos novamente durante algum tempo.

Um muito menos falado, mas da mesma maneira que domínio importante é in-addr.arpa.

Também é aninhado como os domínios `normais'. in-addr.arpa nos permite adquirir os nomes dos hosts quando temos um endereço. Um coisa importante aqui é notar aquele ip#s é escrito em ordem inversa in-addr.arpa domínio. Se você tem o endereço de uma máquina: 192.128.52.43 o named processa igualmente para prep.ai.mit.edu

exemplo: ache os servidores arpa .. find servidores in-addr.arpa., find servidores 192.in-addr.arpa. , find servidores 128.192.in-addr.arpa. , find servidores 52.128.192.in-addr.arpa. . O find precisou de registros para 43.52.128.192.in-addr.arpa. Huh inteligente? (Diga `Sim'.) A reversão dos números podem estar confundindo nos primeiros 2 anos.

Eu contei há pouco uma mentira. DNS não trabalha no modo literal pouco há pouco lhe falei. Mas é o bastante e fim.

Nosso próprio domínio

Agora iremos definir o nosso próprio domínio. Iremos criar o domínio linux.bogus e definir as máquinas. Eu uso um domínio falso no named para ter certeza que não iremos perturbar ninguem lá fora.

Nós já começamos esta parte com esta linha no named.boot:

  primary         0.0.127.in-addr.arpa            pz/127.0.0

Por favor note a falta de `.' ao término dos nomes de domínio neste arquivo. Os primeiros nomes de linha no arquivo pz/127.0.0 como definindo 0.0.127.in-addr.arpa. Nós já configuramos este arquivo, veja:

  @           IN      SOA     ns.linux.bogus. hostmaster.linux.bogus. (
                                  1       ; Serial
                                  28800   ; Refresh
                                  7200    ; Retry
                                  604800  ; Expire
                                  86400)  ; Minimum TTL
                          NS      ns.linux.bogus.
  1                       PTR     localhost.

Por favor note o `.' ao término de todo o domínio de nomes neste arquivo, em contraste com o arquivo de named.boot. Algumas pessoas gostam começar cada arquivo de zona com uma diretiva $ORIGIN, mas isto é supérfluo. O origin(onde na hierarquia de DNS pertence) de um arquivo de zona é especificado no `Domain ' coluna do arquivo de named.boot, neste caso é 0.0.127.in-addr.arpa.

Esta 'zona de arquivo' contém 3 `Registro de Resolução' (RRs): A SOA RR. A NS RR e A PTR RR. SOA é um pequeno começo de autoridade. O `@' é um anotação especial que significa a origem, e desde o `Domain ' coluna para este arquivo realmente diz 0.0.127.in-addr.arpa a primeira linha significa

        0.0.127.IN-ADDR.ARPA. EM SOA...

NS é o Servidor de Nome RR, conta para o DNS que máquina é a servidora de nomes do domínio. E finalmente o registro de PTR diz que 1 (iguala 1.0.0.127.IN-ADDR.ARPA, i.e. 127.0.0.1) é named do localhost.

O registro de SOA é o preâmbulo a toda zona de arquivo, e deveria haver exatamente um em cada arquivo de zona, o primeiro registro. Descreve a zona de onde vem (uma máquina chamada linux.bogus), que é responsável para seus conteúdos ( hostmaster@linux.bogus), e que versão do arquivo de zona é usado (consecutivo: 1), e outras coisas que têm que fazer com o cache e servidores de DNS secundários. Para o resto dos campos ,refresh, tente novamente, expiração e uso mínimo (refresh, retry, expire e minimum) que os números usaram neste HOWTO e você deve estar seguro.

O registro de NS nos fala quem faz o DNS que serve para 0.0.127.in-addr.arpa, é ns.linux.bogus. O registro de PTR nos fala que 1.0.0.127.in-addr.arpa (aquie 127.0.0.1) é conhecido como localhost.

Agora reinicie o seu named (o comando é ndc restart) e usa o nslookup para examinar o que você fez:

       $ nslookup

       Default Server:  localhost
       Address:  127.0.0.1

       > 127.0.0.1
       Server:  localhost
       Address:  127.0.0.1

       Name:    localhost
       Address:  127.0.0.1

assim consegue obter localhost de 127.0.0.1, bom. Agora para nosso principal tarefa, o domínio de linux.bogus, insira uma linha primária nova no named.boot:

  primary               linux.bogus                     pz/linux.bogus

Note a falta continua do fim `.' no nome de domínio no arquivo named.boot.

No arquivo de zona linux.bogus poremos alguns dados falsos:

  ;
  ; Zone file for linux.bogus
  ; Arquivo de zona para linux.bogus
  ; Mandatory minimum for a working domain
  ; Mínimo obrigatório para um domínio funcionando
  @       IN      SOA     ns.linux.bogus. hostmaster.linux.bogus. (
                          199511301       ; serial, todays date + todays
serial #
                          28800           ; refresh, seconds
                          7200            ; retry, seconds
                          3600000         ; expire, seconds
                          86400 )         ; minimum, seconds
                  NS      ns.linux.bogus.
                  NS      ns.friend.bogus.
                  MX      10 mail.linux.bogus   ; Primary Mail Exchanger
(Correio Primário Exchanger)
                  MX      20 mail.friend.bogus. ; Secondary Mail Exchanger
(Correio Secundário)

  localhost       A       127.0.0.1
  ns              A       127.0.0.2
  mail            A       127.0.0.4

Devem ser notadas duas coisas sobre o registro de SOA. ns.linux.bogus deve ser uma máquina atual com um registro A. Não é legal ter um registro CNAME porque ele é uma máquina mencionada no registro de SOA. Não é necessario que o nome seja `Ns', poderia ser qualquer nome de anfitrião legal. Logo, hostmaster.linux.bogus deveria ser lido como hostmaster@linux.bogus, este deveria ser pseudônimo de um correio, ou uma caixa postal onde o mantedor do DNS deveriam ler o correio freqüentemente. Qualquer correio relativo ao domínio será enviado ao endereço listado aqui. A necessidade de nome não ser `Hostmaster', pode ser qualquer um endereço de e-mail, mas o endereço de e-mail `Hostmaster ' é esperado.

Há um RR novo digitado neste arquivo, o MX, ou eXchanger de Correio RR. Conta para sistemas de correio onde enviar correio para quem é enviado someone@linux.bogus, isto é também mail.linux.bogus ou mail.friend.bogus.

O número antes de cada nome de máquina é a priorida do RRs do MX. O RR com o mais baixo número (10) é o um correio deve ser enviado principalmente. Se ele falhar pode ser enviado a um com um número mais alto, um manipulador de correio secundário, i.e. mail.friend.bogus que tem prioridade 20 aqui.

Reinicie o named execute ndc restart. Examine os resultados com o nslookup:

        $ nslookup
       > set q=any
       > linux.bogus
       Server:  localhost
       Address:  127.0.0.1

       linux.bogus
               origin = linux.bogus
               mail addr = hostmaster.linux.bogus
               serial = 199511301
               refresh = 28800 (8 hours)
               retry   = 7200 (2 hours)
               expire  = 604800 (7 days)
               minimum ttl = 86400 (1 day)
       linux.bogus     nameserver = ns.linux.bogus
       linux.bogus     nameserver = ns.friend.bogus
       linux.bogus     preference = 10, mail exchanger =
mail.linux.bogus.linux.bogus
       linux.bogus     preference = 20, mail exchanger = mail.friend.bogus
       linux.bogus     nameserver = ns.linux.bogus
       linux.bogus     nameserver = ns.friend.bogus
       ns.linux.bogus  internet address = 127.0.0.2
       mail.linux.bogus        internet address = 127.0.0.4

Num exame cuidadoso você descobrirá um bug. A linha

        linux.bogus     preference = 10, mail exchanger =
mail.linux.bogus.linux.bogus

é todo o mal. Deveria ser

        linux.bogus     preference = 10, mail exchanger =
mail.linux.bogus

Eu cometi um engano deliberadamente para que você pudesse aprender :-) Olhando no arquivo de zona achamos que a linha

       @ MX 10 mail.linux.bogus; Correio Primário Exchanger

está perdendo um período. Ou tem muitos 'linux.bogus'. Se um nome de máquina não terminar em um período num arquivo de zona a origem é somada ao fim. Então:

  @ MX 10 mail.linux.bogus.    ; Correio primário Exchanger
 ou

<pre.

 @               MX      10 mail                 ; Primary Mail Exchanger

</pre>

está correto. Eu prefiro a forma posterior, é menos para digitar. Em uma zona ou arquivo de domínio deveria ser escrito e deveria ser terminado com um `.' ou não deveria ser incluído nada em qual deixa de comparecer a origem. Eu tenho que grifar isto no arquivo de named.boot não deveria haver `.'s depois dos nomes de domínio. Você não tem nenhuma idéia quantas vezes um `.' ou muitos estragaram coisas.

Assim o novo arquivo de zona no meu ponto de vista, com alguma informação extra tambem, como:

  ;
  ; Zone file for linux.bogus
  ; Arquivo de zona para o linux.bogus
  ;
  ; Mandatory minimum for a working domain
  ;
  @       IN      SOA     ns.linux.bogus. hostmaster.linux.bogus. (
                          199511301       ; serial, todays date + todays
serial #
                          28800           ; refresh, seconds
                          7200            ; retry, seconds
                          604800          ; expire, seconds
                          86400 )         ; minimum, seconds

                  NS      ns              ; Inet Address of name server
                  NS      ns.friend.bogus.
                  MX      10 mail         ; Primary Mail Exchanger
                  MX      20 mail.friend.bogus. ; Secondary Mail Exchanger

  localhost       A       127.0.0.1
  ns              A       127.0.0.2
  mail            A       127.0.0.4
  ;
  ; Extras
  ;
  @               TXT     "Linux.Bogus, Seu consultor de DNS"

  ns              MX      10 mail
                  MX      20 mail.friend.bogus.
                  HINFO   "Pentium" "Linux 1.2"
                  TXT     "RMS"
  richard         CNAME   ns
  www             CNAME   ns

  donald          A       127.0.0.3
                  MX      10 mail
                  MX      20 mail.friend.bogus.
                  HINFO   "i486"  "Linux 1.2"
                  TXT     "DEK"

  mail            MX      10 mail
                  MX      20 mail.friend.bogus.
                  HINFO   "386sx" "Linux 1.0.9"

  ftp             A       127.0.0.5
                  MX      10 mail
                  MX      20 mail.friend.bogus.
                  HINFO   "P6" "Linux 1.3.59"

Você poderia querer mover o primeiro três registros A de forma que eles sejam colocados próximo aos outros registros respectivos deles, ao invés do de cima.

Há vários RRs novos aqui: HINFO (Informação sobre o HOST) tem duas partes, é hábito citar. A Primeira parte é o hardware ou CPU da máquina, e a segunda parte do software ou SO da máquina. ns tem um Pentium CPU e roda o Linux 1.2. O registro TXT é um registro de texto de divulgação que você pode usar para qualquer coisa que você queira. CNAME (Nome Canônico) é um modo para dar há cada máquina vários nomes.

Assim richard e www é um pseudônimo para ns. É importante a nota que A MX, CNAME e registro de SOA nunca deveriam se referir a um registro de CNAME, eles, só devem se referir a algo com um registro A, assim prejudicaria.

  foobar  CNAME   richard                 ; NÃO!
 mas o correto era ter
  foobar  CNAME   ns                      ; Sim!

Também é importante a nota que um CNAME não é um nome de host legal para um endereço de e-mail: webmaster@www.linux.bogus é um e-mail ilegal de endereçamento acima. Você pode esperar que vários admins de correio lá fora obrigar esta regra até mesmo trabalhar para você. O modo para evitar é usar registros A (e talvez alguns outros também, como um registro MX) ao invés:

  www     A       127.0.0.2

Paul Vixie, o mago do named primário, recomenda não usar CNAME. Assim considere não usar isto muito seriamente.

Carregue o banco de dados novo executando o ndc reload, isto faz com que o named leia os seus arquivos novamente.

       $ nslookup
       Default Server:  localhost
       Address:  127.0.0.1

       > ls -d linux.bogus
 Significa que todos os registros devem ser listados.
  [localhost]
   linux.bogus.                   SOA   ns.linux.bogus
hostmaster.linux.bogus. (199511301 28800 7200 604800 86400)
   linux.bogus.                   NS    ns.linux.bogus
   linux.bogus.                   NS    ns.friend.bogus
   linux.bogus.                   MX    10   mail.linux.bogus
   linux.bogus.                   MX    20   mail.friend.bogus
   linux.bogus.                   TXT   "Linux.Bogus, seu consultor de
DNS"
   localhost                      A     127.0.0.1
   mail                           A     127.0.0.4
   mail                           MX    10   mail.linux.bogus
   mail                           MX    20   mail.friend.bogus
   mail                           HINFO 386sx       Linux 1.0.9
   donald                         A     127.0.0.3
   donald                         MX    10   mail.linux.bogus
   donald                         MX    20   mail.friend.bogus
   donald                         HINFO i486        Linux 1.2
   donald                         TXT   "DEK"
   www                            CNAME ns.linux.bogus
   richard                        CNAME ns.linux.bogus
   ftp                            A     127.0.0.5
   ftp                            MX    10   mail.linux.bogus
   ftp                            MX    20   mail.friend.bogus
   ftp                            HINFO P6          Linux 1.3.59
   ns                             A     127.0.0.2
   ns                             MX    10   mail.linux.bogus
   ns                             MX    20   mail.friend.bogus
   ns                             HINFO Pentium     Linux 1.2
   ns                             TXT   "RMS"
   linux.bogus.                   SOA   ns.linux.bogus
hostmaster.linux.bogus. (199511301 28800 7200 604800 86400)
 Isto é bom.  Confiramos o que diz só para www:
       > set q=any
       > www.linux.bogus.
       Server:  localhost
       Address:  127.0.0.1

       www.linux.bogus canonical name = ns.linux.bogus

  ns.linux.bogus

       linux.bogus     nameserver = ns.linux.bogus
       linux.bogus     nameserver = ns.friend.bogus
       ns.linux.bogus  internet address = 127.0.0.2

  e ns.linux.bogus tem o endereço 127.0.0.2. Isto é bom também.

Arejando abaixo

Claro que, este domínio é altamente falso, e assim é todos os endereços nisto, e infelizmente talvez confunda-o um pouco. Para um exemplo real de domínio veja na próxima seção.

Exemplo de um domínio real

Onde iremos listar alguns arquivos reais de zona

Os usuários sugeriram que eu inclui-se um exemplo real de domínio em funcionamento como minha explicação das diferenças entre um domínio que esteja funcionando e o exemplo falso que era um pouco obscuro.

Uma coisa sobre este exemplo: Não entre em seus servidores de nome! Só use para ler para referência. Se você quer experimentar faça isto com o falso exemplo. Eu uso este exemplo com a permissão de David Bullock de LAND-5. Estes arquivos eram atuais 24 de setembro de 1996, e podem diferenciar do que você achar se examinar os servidores de nomes do LAND-5's.

Também, lembre-se de: apaguar os espaços principais ;-)

===/etc/named.boot=== (ou /var/named/named.boot)

Aqui nós temos as linhas primárias para as duas zonas do contrário que precisamos: a rede 127.0.0, como também LAND-5's 206.6.177 subnet. E uma linha primária para land-5's zona land-5.com. Também note isso em vez de encher os arquivos em um diretório chamados pz, como eu faço neste HOWTO, ele, os põe em um diretório chamado zone.

  ;  Boot file for LAND-5 name server
  ;  Arquivo de boot para o servidor de nomes LAND-5

  directory /var/named
  ;
  ; type          domain                          source file or host
  cache           .                               root.cache
  primary         0.0.127.in-addr.arpa            zone/127.0.0
  primary         177.6.206.in-addr.arpa          zone/206.6.177
  primary         land-5.com                      zone/land-5.com

/var/named/root.cache

Se lembre de que este arquivo é dinâmico, e o que esta listado aqui é velho. Você pode conseguir um melhor produzindo agora.

  ; <<>> DiG 2.1 <<>>
  ;; res options: init recurs defnam dnsrch
  ;; got answer:
  ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 6
  ;; flags: qr rd ra; Ques: 1, Ans: 9, Auth: 0, Addit: 9
  ;; QUESTIONS:
  ;;      ., type = NS, class = IN

  ;; ANSWERS:
   .       518357  NS      H.ROOT-SERVERS.NET.
   .       518357  NS      B.ROOT-SERVERS.NET.
   .       518357  NS      C.ROOT-SERVERS.NET.
   .       518357  NS      D.ROOT-SERVERS.NET.
   .       518357  NS      E.ROOT-SERVERS.NET.
   .       518357  NS      I.ROOT-SERVERS.NET.
   .       518357  NS      F.ROOT-SERVERS.NET.
   .       518357  NS      G.ROOT-SERVERS.NET.
   .       518357  NS      A.ROOT-SERVERS.NET.

  ;; ADDITIONAL RECORDS:
  H.ROOT-SERVERS.NET.     165593  A       128.63.2.53
  B.ROOT-SERVERS.NET.     165593  A       128.9.0.107
  C.ROOT-SERVERS.NET.     222766  A       192.33.4.12
  D.ROOT-SERVERS.NET.     165593  A       128.8.10.90
  E.ROOT-SERVERS.NET.     165593  A       192.203.230.10
  I.ROOT-SERVERS.NET.     165593  A       192.36.148.17
  F.ROOT-SERVERS.NET.     299616  A       192.5.5.241
  G.ROOT-SERVERS.NET.     165593  A       192.112.36.4
  A.ROOT-SERVERS.NET.     165593  A       198.41.0.4

  ;; Total query time: 250 msec
  ;; FROM: land-5 to SERVER: default -- 127.0.0.1
  ;; WHEN: Fri Sep 20 10:11:22 1996
  ;; MSG SIZE  sent: 17  rcvd: 312

/var/named/zone/127.0.0

Há pouco nos fundamentos, o registro SOA é obrigatório, e um registro que define o 127.0.0.1 para localhost. São requeridos ambos. Nenhum mais deveria estar neste arquivo. Provavelmente nunca será preciso atualizar, a menos que seu nameserver ou hostmaster enviem mudanças.

  @               IN      SOA     land-5.com. root.land-5.com. (
                                  199609203       ; Serial
                                  28800   ; Refresh
                                  7200    ; Retry
                                  604800  ; Expire
                                  86400)  ; Minimum TTL
                          NS      land-5.com.

  1                       PTR     localhost.

/var/named/zone/land-5.com

Aqui nós vemos que o registro SOA é obrigatório, e os registros de NS. Nós podemos ver que ele tem um servidor de nome secundário que é ns2.psi.net. Como deve ser, sempre tenha um servidor secundário fora do local. Nós podemos também vêr que ele como um host mestre chamou land-5 que leva o cuidado de todos os serviços diferentes, e que ele é usa isto no CNAMEs (uma alternativa está usando registros A).

Como você vê o registro de SOA, o arquivo de zona origin do land-5.com, e a pessoa de contato é root@land-5.com. hostmaster é outro e usaram endereço para a pessoa de contato. O número de série é no formato de yyyymmdd habitual com número de série de dias juntos; esta é provavelmente a sexta versão de arquivo de zona no 20º dia de setembro de 1996. Lembre-se que o número de série tem que aumentar automaticamente, aqui há só um digito para todays consecuitivo #, assim depois da 9 edição ele tem que esperar até amanhã antes que possa editar o arquivo novamente. Considere usar dois digitos.

  @       IN      SOA     land-5.com. root.land-5.com. (
                          199609206       ; serial, todays date + todays
serial #
                          10800           ; refresh, seconds
                          7200            ; retry, seconds
                          10800           ; expire, seconds
                          86400 )         ; minimum, seconds
                  NS      land-5.com.
                  NS      ns2.psi.net.
                  MX      10 land-5.com.  ; Primary Mail Exchanger

  localhost       A       127.0.0.1

  router          A       206.6.177.1

  land-5.com.     A       206.6.177.2
  ns              CNAME   land-5.com.
  ftp             CNAME   land-5.com.
  www             CNAME   land-5.com.
  mail            CNAME   land-5.com.
  news            CNAME   land-5.com.

  funn            A       206.6.177.3
  illusions       CNAME   funn.land-5.com.
  @               TXT     "LAND-5 Corporation"

  ;
  ;       Workstations
  ;
  ws_177200       A       206.6.177.200
                  MX      10 land-5.com.   ; Primary Mail Host
  ws_177201       A       206.6.177.201
                  MX      10 land-5.com.   ; Primary Mail Host
  ws_177202       A       206.6.177.202
                  MX      10 land-5.com.   ; Primary Mail Host
  ws_177203       A       206.6.177.203
                  MX      10 land-5.com.   ; Primary Mail Host
  ws_177204       A       206.6.177.204
                  MX      10 land-5.com.   ; Primary Mail Host
  ws_177205       A       206.6.177.205
                  MX      10 land-5.com.   ; Primary Mail Host
  ; {Many repetitive definitions deleted - SNIP}
  ws_177250       A       206.6.177.250
                  MX      10 land-5.com.   ; Primary Mail Host
  ws_177251       A       206.6.177.251
                  MX      10 land-5.com.   ; Primary Mail Host
  ws_177252       A       206.6.177.252
                  MX      10 land-5.com.   ; Primary Mail Host
  ws_177253       A       206.6.177.253
                  MX      10 land-5.com.   ; Primary Mail Host
  ws_177254       A       206.6.177.254
                  MX      10 land-5.com.   ; Primary Mail Host

Outra coisa é notar que as estações de trabalho não têm o nome dos indivíduo, mas basta um prefixo seguido pelas duas últimas partes do números de IP.

Usando uma convenção que pode simplificar a manutenção significativamente, mas podendo ser um pouco impessoal.

/var/named/zone/206.6.177

Eu farei um comentário sobre este arquivo depois.

  @               IN      SOA     land-5.com. root.land-5.com. (
                                  199609206       ; Serial
                                  28800   ; Refresh
                                  7200    ; Retry
                                  604800  ; Expire
                                  86400)  ; Minimum TTL
                          NS      land-5.com.
                          NS      ns2.psi.net.
  ;
  ;       Servers
  ;
  1       PTR     router.land-5.com.
  2       PTR     land-5.com.
  3       PTR     funn.land-5.com.
  ;
  ;       Workstations
  ;
  200     PTR     ws_177200.land-5.com.
  201     PTR     ws_177201.land-5.com.
  202     PTR     ws_177202.land-5.com.
  203     PTR     ws_177203.land-5.com.
  204     PTR     ws_177204.land-5.com.
  205     PTR     ws_177205.land-5.com.
  ; {Many repetitive definitions deleted - SNIP}
  250     PTR     ws_177250.land-5.com.
  251     PTR     ws_177251.land-5.com.
  252     PTR     ws_177252.land-5.com.
  253     PTR     ws_177253.land-5.com.
  254     PTR     ws_177254.land-5.com.

A zona inversa é o pedaço do setup que parece causar o maior peso. É usado para achar o nome do host se você tem que numerar um IP de máquina. Exemplo: você é um servidor de irc e aceita conexões de clientes de irc. Porém você é um servidor de irc norueguês e assim você só quer aceitar conexões de clientes na Noruega e de outros Países escandinavos. Quando você obtém uma conexão de um cliente a biblioteca C pode lhe falar o número do IP da máquina conectando porque o IP númerado do cliente é contido em todos os pacotes e assim é passado na rede. Agora você pode chamar uma função chamada gethostbyaddr que observa o nome de um host dando o número de IP.

Gethostbyaddr perguntará um servidor de DNS que atravessará o DNS e então irá procurar a máquina. Supondo a conexão de cliente é de ws_177200.land-5.com. O numero do IP que a biblioteca de C provê ao servidor de irc é 206.6.177.200. Para descobrir o nome daquela máquina nós precisamos achar 200.177.6.206.in-addr.arpa. O servidor de DNS achará primeiro o servidor de arpa., então achará o servidor de in-addr.arpa., seguindo o rastro inverso por 206, então 6 e achado o servidor final para 177.6.206.in-addr.arpa zona é land-5. De qual vai finalmente adquir a resposta que para 200.177.6.206.in-addr.arpa temos um registro A 'PTR ws_177200.land-5.com ', significando que o nome com 206.6.177.200 são ws_177200.land-5.com. Como com a explicação de como prep.ai.mit.edu observaram, isto é ligeiramente fictício.

Voltando ao exemplo de servidor de irc. O servidor de irc só aceita conexões dos países escandinavos, i.e., *.no, *.se, *.dk, o nome ws_177200.land-5.com não emparelha nenhum desses claramente, o servidor negará a conexão. Se não havia nenhuma cartografia inversa de 206.2.177.200 pelo in-addr.arpa zona que o servidor teria sido impossibilitado achar o nome nada e teria que povoar comparando 206.2.177.200 com * .no, * .se e * .dk nenhum de que vem a inicialização.

Algumas pessoas irão lhe falar que as cartografias de lookup contrário são só importante para servidores, ou não são importante para nada. Não é assim: Muitos ftp, news, irc e até mesmo algum http (WWW) servidores não aceitarão conexões de máquinas que eles não podem achar o nome deles. Tão contrário a cartografias para máquinas são de fato obrigatórias.

Manutenção

Mantendo isto trabalhando.

Há uma tarefa de manutenção você tem que fazer no nameds, diferente de os mantendo executando. Isto é mantero arquivo de root.cache atualizado. O modo mais fácil é usar o dig, primeiro execute o dig sem argumentos, você, irá adquirir um root.cache de acordo com seu próprio servidor. Então pergunte há um dos servidores de raiz listados com o dig @rootserver . ns. Você notará a produção olhando terrivelmente para o arquivo de root.cache com exceção de um par de números extras. Esses números são inocentes. Salve para um arquivo (dig @e.root-servers.net. ns >root.cache.new) e substitui o velho root.cache.

Lembre-se de reiniciar o named depois de substituir o arquivo de cache.

Al Longyearenviou enviou-me este script para pode ser executado automaticamente a atualização do root.cache, instale uma linha no seu contrab para executar uma vez por mês e esqueça. O script assume que você tem correio e que trabalha com o pseudôminio-correio 'Hostmaster' que é definido. Você tem que colocar isto no seu setup.

  #!/bin/sh
  #
  # Update the nameserver cache information file once per month.
  # This is run automatically by a cron entry.
  # Atualiza o cache do nameserver este arquivo é criado uma vez por mês.
  # É executado automaticamente por uma entrada no cron.
  #
  (
   echo "To: hostmaster "
   echo "From: system "
   echo "Subject: Atualização automatica do arquivo de named.boot"
   echo

   export PATH=/sbin:/usr/sbin:/bin:/usr/bin:
   cd /var/named

   dig @rs.internic.net . ns >root.cache.new

   echo "O arquivo de named.boot foi atualizado para conte a seguinte
informação:"
   echo
   cat root.cache.new

   chown root.root root.cache.new
   chmod 444 root.cache.new
   rm -f root.cache.old
   mv root.cache root.cache.old
   mv root.cache.new root.cache
   ndc restart
   echo
   echo "O nameserver foi reiniciao para assegurar que a atualização está
completa."
   echo "O arquivo de root.cache antigo é chamado agora de
  /var/named/root.cache.old."
  ) 2>&1 | /usr/lib/sendmail -t
  exit 0

Alguns de você podem apanhar o arquivo de root.cache também no ftp da Internic. Por favor não use ftp para atualizar o root.cache, o método acima é muito mais amigável à rede.

Configuração automática para conexões de dialup.

Esta seção explica como eu montei coisas automatizando tudo. Meu modo pode não servir para nada, mas você pode adquirir uma idéia de algo que eu fiz. Também, eu uso ppp para dialup, enquanto muitos usam o slip ou cslip, quase tuda a sua ligação pode ser diferente da minha. Mas o programa dip de slip deveria poder fazer muitas das coisas sim.

Normalmente, quando eu não sou conectado à rede eu tenho um arquivo de resolv.conf contendo uma linha simplesmente

   domain uio.no

Isto assegura que eu não estou esperando pelo nome de hosts para solucionar a biblioteca que vou tentar conectar a um nameserver que não pode me ajudar. Mas quando eu conecto eu quero começar o named e tem um resolv.conf que olha como descrevi acima. Eu resolvi isto mantendo dois resolv.conf 'arquivos temporários' nomeados como resolv.conf.local e resolv.conf.connected. Olhe posteriormente como o resolv.conf descrito antes neste documento.

Conectar automaticamente à rede eu executo um script chamado 'ppp-in':

  #!/bin/sh
  echo chamando...
  pppd

pppd tem um arquivo com opções que contam com os particulares como é conectado. Uma vez que minha conexão de ppp começa o pppd um script chamado ip-up (isto é descrito na página do man pppd). Esta é o script:

  #!/bin/sh
  interface="$1"
  device="$2"
  speed="$3"
  myip="$4"
  upip="$5"
   ...
  cp -v /etc/resolv.conf.connected /etc/resolv.conf
   ...
  /usr/sbin/named

I.e. Eu começo o meu named lá. Quando ppp é pppd está desconectado rodo um script chamado ip-down:

  #!/bin/sh
  cp /etc/resolv.conf.local /etc/resolv.conf
  read namedpid 

Assim adquiro há configuração quando conectado (up) e desconfigurado quando desconectado (down).

Alguns programas, irc e talk vêm à mente, faça para alguns muitas suposições, e para irc caracteriza o dcc e talk para trabalhar direito você tem que fixar o seu arquivo de hosts. Eu insiro isto no meu script de ip-up:

  cp /etc/hosts.ppp /etc/hosts
  echo $myip  roke >>/etc/hosts
 hosts.ppp contém simplesmente
  127.0.0.1       localhost

e o echo insere o ip# i recebido pelo meu nome de host(roke). Você deve usar o nome do seu host se conhecer ao invés de por.

Isto pode ser achado com o comando de hostname.

Provavelmente não é inteligente executar o named quando você não está conectado a rede, isto é, porque o named tentará enviar questões à rede e tem um intervalo longo, e você tem que esperar por todo este intervalo de tempo para que algum programa tente solucinar um nome. Se você está usando dialup você deve começar o named quando conectando e mata-lo quando desconectando. Mas por favor veja a seção de ``FAQ para um tips.

Algumas pessoas gostam de usar uma diretiva forwarders em conexões lentas. Se seu provedor de internet tem servidores de DNS em 1.2.3.4 e 1.2.3.5 você possa inserir a linha

  forwarders 1.2.3.4 1.2.3.5

no arquivo de named.boot. E também deixar o arquivo root.cache vazio. Isto diminui a quantidade de tráfico de IP que seu host origina, qualquer, possivelmente coisas de velocidade acima. Isto é importante especialmente se você está pagando por byte que envia. Isto tem o valor somado se deixar você fora de um dever de manutenção você tem como um cache de named maintainer; você não tem que atualizar o arquivo de root.cache vazio.

FAQ

Nesta seção eu listo algumas das perguntas mais freqüentementes relacionado a DNS e este HOWTO. E as respostas :-) Por favor leia esta seção antes de remeter-me.

1-Como usar DNS de dentro de um firewall?

Várias sugestões: `Forwarders ', `Slave ', e tem um olhar no lista de literatura ao término deste HOWTO.

2-Como eu faço para DNS rotacionar pelos endereços disponíveis para um conserto, digo www.busy.site para obter uma efeito de leitura balanceada, ou semelhante?

Faça vários registros A para www.busy.site e use o bind 4.9.3 ou superior. Então o bind vai usar o round-robin para as respostas. Não trabalhe com versões mais recente do bind.

3-Eu quero fixar DNS em um intranet (fechada). O que faço eu?

Remova o arquivo de cache e divida o arquivo de zona. Que também tem meios de adquirir um arquivo novo cache todo o tempo.

4-Meu sistema não tem o programa de ndc. O que faço eu?

Seu sistema tem então um velho, um pouco obsoleto, bind instalado. Se segurança é importante a você: melhore o bind imediatamente. Se não, você pode viver com este. E em vez de ndc start execute named.

O ndc reload torna-se named.reload e o ndc start torna-se named.restart Todos estes programas devem estar provável em /usr/sbin.

5-Como eu monto um servidor de nome secundário?

Se o servidor primário tem endereço 127.0.0.1 que você pôs numa linha no arquivo de named.boot de seu secundario:

       secondary     linux.bogus             127.0.0.1
sz/linux.bogus

6-Eu quero executar o bind quando estou desconectado da rede.

Eu recebi este correio de Ian Clark < ic@deakin.edu.au> onde ele explica o modo dele de fazer isto:

Eu executo o named na minha maquina 'Masquerading' aqui. Eu tenho dois arquivos de root.cache, a pessoa chamado root.cache.real que contém o servidor real da raiz do named e o outro root.cache.fake chamado que contém...

  ; root.cache.fake
  ; this file contains no information

Quando eu estou fora da rede copio o root.cache.fake arquivo para o root.cache e reinicio o named. Quando estou acessando online eu copio root.cache.real para root.cache e reinicio o named. Isto é feito em ip-down e ip-up respectivamente. A primeira vez em que eu faço uma pergunta fora da rede em um nome de domínio o named não faz porque põe uma entrada assim em mensagens...

 Jan 28 20:10:11 hazchem named[10147]: No root nameserver for class IN


com o qual eu posso viver.

Parece trabalhar certo Eu posso usar o nameserver para máquinas locais enquanto fora da rede sem a demora de intervalo para domínio externo do named e enquanto na questões para domínios externo trabalham normalmente.

7-Onde o servidor de caching do named armazena o cache? Como eu posso contralar o tamanho?

O cached é completamente armazenado em memória, não é escrito em disco em qualquer momento. Toda vez que mata o named o cache é perdido. O cache não tem qualquer forma de controle. O named administra e o controla com algumas regras simples. Você não pode controlar o cache ou a classificação do cache segundo o tamanho e qualquer outra forma de razão. Se você pensa em ``fixar o cache estaria prejudicando o named. E isto não é recomendado.

8-O named salva o cache quando reiniciado? Eu posso salva-lo?

Não, o named não salva o cache quando é morto. Isto define que o cache é construído toda vez que você o mata e reinicia o named. Não há nenhum modo para fazer um arquivo de cache do named. Se você quer ``fixar o cache estaria prejudicando o named. E isto não é recomendado.

Como se tornar um bom admin de DNS

Documentação e Ferramentas.

Existe a Documentação Real. Online e impresso. A leitura de alguns destes são exigidos para fazer uma pequeno DNS e em tempo e em tempo uma grande admin. Impresso Standard book is DNS and BIND por C. Liu and P. Albitz from O'Reilly & Associates, Sebastopol, CA, ISBN 0-937175-82-X. Eu li, é excelente. Também há um seção em DNS in TCP/IP Network Administration DNS, por Craig Hunt de O'Reilly..., ISBN 0-937175-82-X. Outro bom para administração de DNS (ou bem qualquer coisa no que diz respeito ao assunto) é Zen e a Arte de Manutenção de Motocicleta por Robert M. Prisig: -) Disponível como ISBN 0688052304 e outros. Online você achará material em, ; A FAQ, uma referência do manual (BOG; Bind Operation Guide) com documentos e definições de protocolos e DNS curto (estes, e a maioria, se não tudo, do rfcs mencionado abaixo, são também contido na distribuição do bind). Eu não li a maioria deles, entretanto eu não sou um grande admin de DNS. Arnt Gulbrandsen por outro lado leu GOD e ele é execelente sobre isto :-). O newsgroup que comp.protocols.tcp-ip.domains fala sobre DNS. Além de vários RFCs sobre DNS, os mais importantes provavelmente são estes:

    RFC 2052
       A. Gulbrandsen, P. Vixie, A DNS RR for specifying the location
       of services (DNS SRV), October 1996
    RFC 1918
       Y. Rekhter, R. Moskowitz, D. Karrenberg, G. de Groot, E. Lear,
       Address Allocation for Private Internets, 02/29/1996.
    RFC 1912
       D. Barr, Common DNS Operational and Configuration Errors,
       02/28/1996.
    RFC 1713
       A. Romao, Tools for DNS debugging, 11/03/1994.
    RFC 1712
       C. Farrell, M. Schulze, S. Pleitner, D. Baldoni, DNS Encoding of
       Geographical Location, 11/01/1994.
    RFC 1183
       R. Ullmann, P. Mockapetris, L. Mamakos, C. Everhart, New DNS RR
       Definitions, 10/08/1990.
    RFC 1035
       P. Mockapetris, Domain names - implementation and specification,
       11/01/1987.
    RFC 1034
       P. Mockapetris, Domain names - concepts and facilities,
       11/01/1987.
    RFC 1033
       M. Lottor, Domain administrators operations guide, 11/01/1987.
    RFC 1032
       M. Stahl, Domain administrators guide, 11/01/1987.
    RFC 974
       C. Partridge, Mail routing and the domain system, 01/01/1986.


Nicolai Langfeldt janl@math.uio.no V1.3.2, 3 de junho de 1997.

Traduzido por: Bruno H. Collovini - buick@microlink.com.br

Tradução 8 de Julho de 1997.
Horários baseados na GMT -3. Agora são 10:39.


Powered by vBulletin®
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd
SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.