bind: qual é a gramática SOA RR do arquivo de zona?

1

Faz alguns dias que estou fazendo o meu melhor para entender corretamente a documentação oficial do bind9: link

Existem muitos tutoriais bind9 por aí. No entanto, tenho muitos problemas em conciliar as soluções propostas com qualquer definição oficial de RR de SOA que eu possa encontrar.

Entre outros, eu também verifiquei: link
link
link

E apesar de tudo isso, ainda estou muito confuso sobre o formato adequado para um SOA RR.

Muitos tutoriais parecem oferecer uma sintaxe semelhante a esta:

example.com. 43200 IN SOA ns1.example.com. other.example.com. (
 2011090302 ;Serial Number
 86400 ;refresh
 7200 ;retry
 1814400 ;expire
 86400 ;minimum
 )

Eu não explico a presença dos dois domínios antes da abertura do parêntese. No entanto, sem o segundo, reclamou o nome-checkzone.

No entanto, este site em particular:
link
oferece um arquivo de zona com um RR SOA assim:

@   SOA ns1 (   ; ns1.basiczone.com is the primary server for basiczone.com
      postmaster  ; contact email for basiczone.com is [email protected]
      2004041700  ; Serial ID in reverse date format
      21600   ; Refresh interval for slave servers
      1800    ; Retry interval for slave servers
      604800    ; Expire limit for cached info on slave servers
      900 )   ; Minimum Cache TTL in zone records

Observe a ausência da classe IN. Além disso, apenas um domínio (ns1) está presente antes do parêntese de abertura.

Então, a questão principal é: qual é a gramática precisa, oficial ou mais recomendada para uma SOA RR? Onde esta gramática é definida com mais precisão?

Finalmente, quando usar um registro SOA? Meu entendimento é que eu preciso de um registro SOA para qualquer domínio que eu queira hospedar e para o qual eu quero ser um servidor de nomes autoritativo.

    
por augustin 22.01.2012 / 04:48

1 resposta

6

O primeiro nome após a palavra SOA é MNAME , o nome do servidor que é autoritativo para a zona - por exemplo, o nome do seu próprio servidor de nomes.

O segundo nome, RNAME , parece um nome de domínio, mas não é. É a string que você recebe se você substituir o caractere "@" por "." no endereço de e-mail da pessoa responsável pela zona. (Espero que o seu endereço de e-mail não tenha um "." Antes do "@").

Para esses dois nomes (e outros em arquivos de zona), o próprio nome da zona é implicitamente anexado, a menos que o nome termine em um período: foo significa foo.example.com , enquanto foo. significa foo . Um erro comum é escrever foo.example.com , que liga para o mundo como foo.example.com.example.com , quando você deveria ter escrito foo.example.com. .

Os parênteses permitem que você escreva um registro de recurso que abranja várias linhas em seu arquivo de texto. Um dos exemplos que você forneceu coloca o parêntese de abertura entre o MNAME e o RNAME , enquanto o outro o coloca após o RNAME , mas não há diferença funcional.

"IN" especifica a classe "internet", que é o padrão, então você pode deixar de fora.

Gramática recomendada: siga o exemplo da wikipedia e use uma ferramenta como dig ou dnsq para mostrar o que seu servidor de nomes está realmente dizendo ao mundo, em vez de gastar muito esforço para adivinhar como o bind está analisando seu arquivo de zona.

Gramática precisa: código-fonte BIND. (Só se você estiver realmente tentando ser pedante - não é necessário se você está apenas tentando fazer seu arquivo de zona funcionar).

Gramática oficial (ou pelo menos o equivalente online do oficial):

  • link (seção 5.1, "Formato")

Toda zona deve ter um SOA. Se você atender a essa zona ("autoritativo" ou não), deverá ter SOA junto com todos os outros registros na zona. Praticamente falando, se você está escrevendo um arquivo de zona, coloque um SOA lá - e se você está copiando o arquivo de zona inteiro de outra pessoa, então você obterá o SOA dessa maneira, então você não precisa se preocupe com isso.

    
por 22.01.2012 / 09:05

Tags