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.