named.conf Formato de arquivo para TCP/IP-BIND versão 9.4

Propósito

Define a configuração e o comportamento do daemon ' named.

Descrição

O arquivo " /etc/named.conf é o arquivo de configuração padrão para os daemons " named8 e " named9. Se o daemon ' named for iniciado sem especificar um arquivo alternativo, o daemon ' named lerá esse arquivo para obter informações sobre como configurar o servidor de nomes local.

O formato do arquivo " named.conf é diferente, dependendo da versão do servidor " named que estiver configurada. As informações de formato de arquivo para ' named8 e ' named9 podem ser encontradas abaixo.
Observação: O daemon ' named lê o arquivo de configuração somente quando o daemon ' named é iniciado ou quando o daemon ' named recebe um comando SRC ' refresh ou um sinal ' SIGHUP.

Os dados no arquivo ' named.conf especificam as características gerais de configuração do servidor de nomes, definem cada zona pela qual o servidor de nomes é responsável (suas zonas de autoridade) e fornecem outras informações de configuração por zona, possivelmente incluindo o arquivo de banco de dados DOMAIN de origem da zona.

Todos os arquivos de banco de dados referenciados no arquivo ' named.conf devem estar no formato Standard Resource Record Format. Esses arquivos de dados podem ter qualquer nome e qualquer caminho de diretório. No entanto, para facilitar a manutenção do banco de dados " named, eles recebem nomes no formato " /etc/named.extension. O formato geral dos arquivos de dados " named é descrito em DOMAIN Data File, DOMAIN Reverse Data File, DOMAIN Cache File e DOMAIN Local File.

Formato do arquivo ' named.conf ao configurar o named8

Geral

Os comentários no arquivo ' named.conf podem começar com um sinal de libra (#), com duas barras (//) ou podem ser incluídos nos caracteres de comentário no estilo C (/* comment text ' */).

As opções de configuração são linhas de texto que começam com uma palavra-chave, possivelmente incluindo algum texto de opção ou uma lista, e terminam em um ponto e vírgula (;).

O arquivo " named.conf está organizado em estrofes. Cada sub-rotina é um conjunto fechado de opções de configuração que definem características gerais do daemon ou uma configuração de zona. Determinadas definições de sub-rotina são permitidas apenas no nível superior, portanto, o aninhamento dessas sub-rotinas não é permitido As palavras-chave atuais da estrofe de configuração de nível superior são:

Outras informações de configuração podem ser incorporadas por meio da palavra-chave ' include no arquivo ' conf. Essa palavra-chave orienta o daemon a inserir o conteúdo do arquivo indicado na posição atual da diretiva ' include.

Definição da lista de controle de acesso (ACL)
acl acl-name {
    access-element;
    [ access-element; ... ]
};

Define uma lista de controle de acesso a ser referenciada em todo o arquivo de configuração por acl-name. Várias definições de acl podem existir dentro de um arquivo de configuração se cada acl-name for exclusivo Além disso, quatro listas de controle de acesso padrão são definidas:

  • any: Qualquer host é permitido.
  • none: Nenhum host é permitido.
  • localhost: Somente o localhost é permitido.
  • localnets: Somente hosts em uma rede que corresponda a uma interface de servidor de nomes são permitidos.
Tabela 1. opções de acl
Opção Valores Explicação
elemento de acesso IP-address IP-prefixo acl-reference Define uma origem como permitida ou desaprovada Vários elementos de acesso são permitidos dentro da estrofe acl.

Cada elemento pode ser um endereço IP em notação de ponto (por exemplo, 9.3.149.66), um prefixo IP em notação CIDR ou de barra (por exemplo, 9.3.149/24) ou uma referência a outra lista de controle de acesso (por exemplo, ' localhost).

Além disso, cada elemento indica se o elemento tem acesso permitido ou não permitido por meio de um! (ponto de exclamação) modificador prefixado ao elemento.

Por exemplo:

acl hostlist1 {
    !9.53.150.239;
    9.3.149/24;
};

Quando a lista de controle de acesso " hostlist1 é referenciada na configuração, ela implica permitir o acesso de qualquer host cujo endereço IP comece com 9.3.149 e não permitir o acesso do host da Internet 9.53.150.239.

Definição-chave
key key-name {
    algorithm alg-id;
    secret secret-string;
};

Define um algoritmo e uma chave secreta compartilhada a serem referenciadas em uma sub-rotina do servidor e usadas para autenticação por esse servidor de nome... Esse recurso é incluído para uso futuro e está atualmente não usado no servidor de nomes

Tabela 2. Opções de definição de chave
Opção Valores Explicação
Algoritmo Sequência alg-id Uma sequência entre aspas que define o tipo de algoritmo de segurança que é usado ao interpretar a sequência secreta. Nenhum é definido neste momento..
secret Sequência secret-string Uma sequência de aspas que é usada pelo algoritmo para autenticar o host.
Configuração de registro
logging {

    [ channel channel-name {
       ( file file-name
             [ versions ( num-vers | unlimited ) ]
             [ size size-value ]
       | syslog ( kern | user | mail | daemon |
                  syslog | lpr | news | uucp )
       | null );
       [ print-category ( yes | no ); ]
       [ print-severity ( yes | no ); ]
       [ print-time ( yes | no ); ]
      }; ... ]
    [ category category-name {
          channel-reference;
          [ channel-reference; ... ]
      }; ... ]
};

Nesta versão mais recente do servidor de nomes, o recurso de criação de log foi muito melhorado para permitir muita reconfiguração do mecanismo de criação de log padrão.. A estrofe " logging é usada para definir os canais de saída de registro e para associar as categorias de registro predefinidas aos canais de saída de registro predefinidos ou definidos pelo usuário.

Quando nenhuma estrofe de registro é incluída no arquivo ' conf, o servidor de nomes ainda registra mensagens e erros da mesma forma que nas versões anteriores. As mensagens informativas e algumas críticas são registradas por meio do recurso daemon syslog, e as informações de depuração e outras informações esotéricas são registradas no arquivo ' named.run quando o nível de depuração global (definido com a opção de linha de comando ' -d ) é diferente de zero.

Tabela 3. Opções de configuração de registro
Opção Valores Explicação
canal Define um canal de saída para ser referido posteriormente pelo identificador channel-name . Um canal de saída especifica um destino para mensagens de saída a serem enviadas, bem como algumas informações de formatação a serem usadas ao gravar a mensagem de saída. Mais de um canal de saída pode ser definido se cada channel-identifier for exclusivo.. Além disso, cada canal de saída pode ser referido a partir de várias categorias de criação de log.
Há quatro canais de saída predefinidos:
  • O canal de saída " default_syslog envia informações e mensagens de gravidade mais alta para o recurso de daemon do syslog.
  • O canal de saída " default_debug grava mensagens de depuração no arquivo " named.run, conforme especificado pelo nível de depuração global.
  • O canal de saída " default_stderr grava informações e mensagens de gravidade mais alta em " stderr.
  • O canal de saída " null descarta todas as mensagens.
Arquivo Sequência file-name Define um canal de saída como aquele que registra mensagens em um arquivo de saída. O arquivo usado para saída é especificado com a sequência file-name Além disso, a opção ' file permite controlar o número de versões do arquivo de saída que deve ser mantido e o limite de tamanho que o arquivo de saída não deve exceder.

Os caminhos de saída " file, " syslog e " null são mutuamente exclusivos.

versões num-versions ilimitado.. Especifica o número de arquivos de saída antigos que devem ser mantidos. Quando um arquivo de saída é reaberto, em vez de substituir um possível arquivo de saída existente, o arquivo de saída existente é salvo como um arquivo de saída antigo com uma extensão ' .value. Ao usar o valor num-versions, é possível limitar o número de arquivos de saída antigos a serem mantidos. No entanto, a especificação da palavra-chave ' unlimited indica o acúmulo contínuo de versões antigas do arquivo de saída. Por padrão, nenhuma versão antiga de qualquer arquivo de log é mantida
tamanho size-valor Especifica o tamanho máximo do arquivo de log utilizado pelo canal. Por padrão, o tamanho é ilimitado.. No entanto, quando um tamanho for configurado, quando size-value bytes forem gravados no arquivo, nada mais será gravado até que o arquivo seja reaberto.

Os valores aceitos para size-value incluem a palavra unlimited e números com modificadores ' k, ' m ou ' g especificando kilobytes, megabytes e gigabytes, respectivamente. Por exemplo, " 1000k e " 1m indicam mil kilobytes e um megabyte, respectivamente.

syslog daemon de correio do usuário kern auth syslog lpr news uucp Define um canal de saída como aquele que redireciona suas mensagens ao serviço syslog. As palavras-chave de valor suportadas correspondem aos recursos registrados pelo serviço syslog..

Em última análise, o serviço syslog define quais mensagens recebidas são registradas por meio do serviço; portanto, se definir um canal para redirecionar suas mensagens para o recurso " user do serviço syslog, isso não resultará em nenhuma mensagem registrada visivelmente se o serviço syslog não estiver configurado para emitir mensagens desse recurso.

Para obter mais informações sobre o serviço syslog, consulte o daemon ' syslogd.

Os caminhos de saída " file, " syslog e " null são mutuamente exclusivos.

nulo Define um canal de saída pelo qual todas as mensagens são descartadas. Todas as outras opções do canal de saída são inválidas para um canal de saída cujo caminho de saída é nulo..
gravidade informações de aviso de erro crítico depuração [ nível ] dinâmica Define um limite de gravidade da mensagem a ser registrada no canal de saída. Embora essas definições de severidade sejam como aquelas usadas pelo serviço syslog, para o servidor de nomes elas também controlam a saída por meio de canais de caminho de arquivo. As mensagens devem atender ou exceder o nível de gravidade a ser registrado através do canal de saída. A severidade ' dynamic especifica que o nível de depuração global do servidor de nomes (especificado quando o daemon é chamado com o sinalizador ' -d ) controla quais mensagens passam pelo canal de saída.

Além disso, a severidade ' debug pode especificar um modificador de nível que é um limite superior para mensagens de depuração sempre que o servidor de nomes tiver a depuração ativada em qualquer nível. Um nível de depuração inferior indica que menos informações devem ser registradas através do canal. Não é necessário que o nível de depuração global atenda ou exceda o valor do nível de depuração.

Se usado com o caminho de saída ' syslog, o recurso syslog controla, em última análise, quais gravidades são registradas pelo serviço syslog. Por exemplo, se o serviço syslog estiver configurado para registrar apenas mensagens " daemon.info e o servidor de nomes estiver configurado para canalizar todas as mensagens de depuração para o serviço syslog, o serviço syslog filtrará as mensagens de seu caminho de saída.

print-category print-severidade do tempo de impressão yes no Controla o formato da mensagem de saída quando ela é enviada pelo caminho de saída. Independentemente de qual, quantas ou em qual ordem essas opções são listadas dentro da sub-rotina do canal, a mensagem é pré-anexada com o texto em uma ordem de tempo, categoria e gravidade.

A seguir, um exemplo de uma mensagem com as três opções " print- ativadas:

28-Apr-1997 15:05:32.863 default: notice: Ready to answer queries.

Por padrão, nenhum texto extra é anexado a uma mensagem de saída.

Observação: Quando o serviço syslog registra mensagens, ele também acrescenta as informações de data e hora ao texto da mensagem. Assim, a ativação de ' print-time em um canal que usa o caminho de saída do syslog resultaria no registro de uma mensagem pelo serviço syslog com duas datas anexadas a ela.

Observe que

categoria A palavra-chave ' category define uma estrofe que associa uma categoria de registro ou de mensagens a canais de saída predefinidos ou definidos pelo usuário.
Por padrão, as seguintes categorias são definidas:
  • category default { default_syslog; default_debug; };
  • category panic { default_syslog; default_debug; };
nome da categoria consultas do analisador de configuração padrão lame-servers estatísticas panic update ncache xfer-in xfer-out db event-lib packet notify cname security os insistem na manutenção load response-checks O category-name especifica qual categoria de criação de log deve ser associada às referências de canallistadas. Isso resulta em qualquer texto de saída gerado pelo daemon do servidor de nomes para que a categoria de criação de log seja redirecionada por cada uma das referências de canal listadas.

A categoria " default define todas as mensagens que não estão listadas em uma das categorias específicas listadas. Além disso, as categorias " insist e " panic estão associadas a mensagens que definem uma inconsistência fatal no estado do servidor de nomes. As categorias restantes definem as mensagens geradas ao manipular funções específicas do servidor de nomes. Por exemplo, a categoria " update é usada para registrar erros ou mensagens específicas do tratamento de uma atualização de zona dinâmica, e a categoria " parser é usada para registrar erros ou mensagens durante a análise do arquivo " conf.

referência do canal Faz referência a um identificador de nome de canal definido anteriormente na estrofe de configuração ' logging. Portanto, cada mensagem associada ao category-name definido é registrada por meio de cada uma das referências de canal definidas.
Opções globais
options {
    [ directory path-string; ]
    [ named-xfer path-string; ]
    [ dump-file path-string; ]
    [ pid-file path-string; ]
    [ statistics-file path-string; ]
    [ auth-nxdomain ( yes | no ); ]
    [ fake-iquery ( yes | no ); ]
    [ fetch-glue ( yes | no ); ]
    [ multiple-cnames ( yes | no ); ]
    [ notify ( yes | no ); ]
    [ recursion ( yes | no ); ]
    [ forward ( only | first ); ]
    [ forwarders { ipaddr; [...] }; ]
    [ check-names
       ( master|slave|response )
       ( warn|fail|ignore ); ]
    [ allow-query { access-element; [...] }; ]
    [ allow-transfer { access-element; [...] ); ]
    [ listen-on [ port port-num ] { access-element; [...] }; ... ]
    [ query-source [ address ( ipaddr|* ) ] [ port ( port|* ) ]; ]
    [ max-transfer-time-in seconds; ]
    [ transfer-format ( one-answer | many-answers ); ]
    [ transfers-in value; ]
    [ transfers-out value; ]
    [ transfers-per-ns value; ]
    [ coresize size-value; ]
    [ datasize size-value; ]
    [ files size-value; ]
    [ stacksize size-value; ]
    [ clean-interval value; ]
    [ interface-interval value; ]
    [ statistics-interval value; ]
    [ topology { access-element; [...] }; ]
};

Define muitas opções disponíveis globalmente para modificar as características básicas do servidor de nome

Como algumas das opções dessa estrofe de configuração podem modificar o comportamento de como o daemon ' named lê e interpreta as seções posteriores do arquivo nomeado, é altamente recomendável que a estrofe ' options seja a primeira estrofe listada no arquivo de configuração.

Tabela 4. Opções globais
Opção Valores Padrão
diretório
Indica o diretório do qual todos os caminhos relativos estão ancorados. O parâmetro path-string deve ser uma sequência entre aspas. Por exemplo, para indicar que todos os arquivos de zona existem no ' /usr/local/named/data sem listar cada arquivo nas definições de zona, especifique o diretório de opção global como: options { ' directory “/usr/local/named/data”; ' };
cadeia de caracteres do caminho “.”
denominado-xfer
Especifica o caminho e o nome executável do comando " named-xfer usado para transferências de zona de entrada. O parâmetro path-string deve ser uma string entre aspas.
cadeia de caracteres do caminho “/usr/sbin/named-xfer”
dump-arquivo
Especifica um nome de arquivo para o qual o banco de dados na memória é despejado sempre que o daemon ' named recebe um sinal ' SIGINT.
cadeia de caracteres do caminho “/usr/tmp/named_dump.db”
pid-arquivo
Especifica o arquivo no qual o daemon ' named grava seu valor de PID.
cadeia de caracteres do caminho “/etc/named.pid”
estatísticas-arquivo
Especifica o arquivo ao qual o servidor de nomes anexa as estatísticas operacionais quando recebe o sinal SIGILL
cadeia de caracteres do caminho “/usr/tmp/named.stats”
auth-nxdomain
Controla se o servidor deve responder com autoridade ao retornar uma resposta " NXDOMAIN.
sim não yes
fake-iquery
Controla se o servidor deve responder a solicitações obsoletas " IQUERY.
sim não no
fetch-glue
Controla se o servidor deve procurar registros de cola para incluir na seção adicional de uma resposta de consulta.
sim não yes
vários cnames
Controla se o servidor permitirá vários registros ' CNAME para um nome de domínio em qualquer um de seus bancos de dados de zona. Essa prática é desencorajada, mas uma opção permanece para compatibilidade com versões anteriores.
sim não no
notify
Controla se o servidor de nomes enviará mensagens " NOTIFY para seus servidores de trabalho ao realizar alterações de zona. Como os servidores de trabalho respondem quase imediatamente à mensagem " NOTIFY com uma solicitação de transferência de zona, isso limita o tempo em que os bancos de dados ficam fora de sincronização no relacionamento entre o controlador e o trabalhador.
sim não yes
recorrência
Controla se o servidor tentará resolver nomes fora de seus domínios em nome do cliente. Se definido como ' no, o servidor de nomes retorna uma referência ao cliente para que ele continue pesquisando o nome. Usado com a opção " fetch-glue, é possível conter a quantidade de dados que cresce no cache de memória do servidor de nomes.
sim não yes
avançar
Controla como o encaminhamento é usado quando o encaminhamento é ativado Quando definido como " first, o servidor de nomes tenta procurar um nome sempre que o host encaminhado não fornece uma resposta. No entanto, quando definido como ' only, o servidor de nomes não tenta realizar esse trabalho extra.
só primeiro first
forwarders
Permite o uso de encaminhamento de consulta ao definir um Servidor de Nomes de Encaminhamento A lista de parâmetros ipaddr especifica os hosts para os quais a consulta deve ser encaminhada quando ela não puder ser resolvida a partir do banco de dados local Cada ipaddr é um endereço de Internet na notação de ponto padrão
ipaddr (empty list)
nomes de verificação
Controla como o servidor de nomes manipula nomes de host e nomes de domínio não compatíveis com RFC em cada um de seus domínios de operação.

A palavra-chave ' master especifica como lidar com nomes malformados em um arquivo de zona mestre. A palavra-chave " slave especifica como lidar com nomes malformados recebidos de um servidor controlador. A palavra-chave ' response especifica como lidar com nomes malformados recebidos em resposta a uma consulta.

ignore orienta o servidor a ignorar qualquer nome malformado e continuar o processamento normal. warn orienta o servidor a avisar o administrador por meio de registro, mas a continuar o processamento normal. fail direciona o servidor a rejeitar o nome completamente. Para as respostas às consultas, isso implica que o servidor retornará uma mensagem " REFUSED para o host da consulta original.

mestre ignorar mestre avisar mestre falhar escravo ignorar escravo escravo avisar escravo falhar resposta ignorar resposta resposta avisar falha master fail slave warn response ignore
Tabela 5. Continuação das opções globais
Opção Valores Padrão
permitir consulta
Limita o intervalo de hosts de consulta permitidos para acessar o sistema Cada access-element é especificado da mesma maneira que na sub-rotina acl definida anteriormente
elemento de acesso any
permitir transferência
Limita o intervalo de hosts de consulta que estão solicitando transferências de zona Cada access-element é especificado da mesma maneira que na sub-rotina acl definida anteriormente
elemento de acesso any
atender
Limita as interfaces disponíveis para o daemon do servidor de nome e controla qual porta usar para atender consultas. Por padrão, o servidor de nomes usa todas as interfaces no sistema, e atende na porta 53 Além disso, são permitidas várias definições de " listen-on dentro da estrofe " options.

Cada elemento de acesso é especificado da mesma maneira que na sub-rotina acl definida anteriormente O exemplo a seguir limita o servidor de nomes a usar apenas a interface com o endereço 9.53.150.239:

listen-on port 53 { 9.53.150.239; };
porta port-num access-element port 53 { localhost; }
origem da consulta
Modifica o endereço e a porta padrão dos quais as consultas serão originadas.
endereço ipaddr endereço * porta porta * address * port *
tempo máximo da transferência de entrada
Especifica a quantidade máxima de tempo que uma transferência de zona de entrada pode ser executada antes de ser interrompida. Isso é usado para controlar um evento no qual um processo-filho do servidor de nomes não é executado ou finalizado corretamente
segundos 120
formato de transferência
Controla o método no qual as transferências de zona integral são enviadas para os solicitantes O método " one-answer usa um pacote por registro de recurso de zona, enquanto o " many-answers insere o maior número possível de registros de recursos em um pacote. Embora o método " many-answers seja mais eficiente, ele só é compreendido pelas revisões mais recentes do servidor de nomes. Essa opção pode ser substituída na estrofe " server para especificar o método por servidor de nomes.
uma-resposta muitas-respostas many-answers
transferência de entrada
Especifica o número máximo de transferências de zona de entrada simultâneas Embora isso limite a quantidade de tempo em que cada zona escrava está fora de sincronização com o banco de dados do controlador, porque cada transferência de entrada é executada em um processo-filho separado, aumentar o valor também pode aumentar a carga no servidor do trabalhador.
valor 10
transferência de saída
Especifica o número máximo de transferências de zona de saída simultâneas para o servidor de nomes Essa opção não é usada atualmente no servidor, mas estará disponível posteriormente.
valor N/A
transferência por ns
Especifica a quantidade máxima de transferências de zona simultâneas de um servidor de nomes remoto específico. Embora isso limite a quantia de tempo que cada zona escrava está fora de sincronização com o banco de dados do controlador, aumentar esse valor pode aumentar a carga no servidor do controlador remoto.
valor 2
tamanho do núcleo
Configura alguns valores específicos do processo para o daemon.

Os valores padrão ou aqueles herdados pelo sistema e pelos recursos do sistema

Cada valor de tamanho pode ser especificado como um número ou como um número seguido pelos modificadores ' k, ' m e ' g, que indicam kilobytes, megabytes e gigabytes, respectivamente.

size-valor default
tamanho dos dados
Consulte o coresize.
size-valor default
arquivos
Consulte o coresize.
valor unlimited
tamanho da pilha
Consulte o coresize.
size-valor default
intervalo de limpeza
Controla os intervalos para as tarefas de manutenção periódicas do servidor de nomes

O " clean-interval especifica a frequência com que o servidor remove do cache os registros de recursos expirados. O ' interface-interval especifica a frequência com que o servidor faz nova varredura das interfaces no sistema. O " statistics-interval especifica a frequência com que o servidor de nomes produzirá dados estatísticos.

Um valor de minutos de zero indica que a tarefa de serviço deve ser executada somente quando o arquivo de configuração for lido novamente.

minutos 60
intervalo de interface
Consulte o clean-interval.
minutos 60
intervalo de estatísticas
Consulte o clean-interval.
minutos 60
cleandb-time
Especifica uma hora do dia em que o banco de dados é verificado e todos os registros dinâmicos cujo conjunto de registros de recursos ' SIG estejam todos expirados são removidos. Para uma zona dinâmica que tem " update-security definido como " presecured, apenas o " SIG KEY expirado permanece.

O padrão é nunca executar essa varredura Em vez disso, os registros expirados permanecem até o nome ser consultado.

a hora é especificada como ' HH:MM em um formato de 24 horas.

horário N/A
topologia
Especifica uma ordem de procura a ser usada para localizar uma preferência em uma lista de endereços correspondentes a um servidor de nomes Sempre que uma consulta é encaminhada ou uma consulta deve ser feita para outro servidor de nomes, pode ser necessário escolher um endereço em uma lista de endereços disponíveis.

Cada access-element, embora aparentemente semelhante àqueles especificados em uma sub-rotina acl , é interpretado por sua posição na lista Os primeiros elementos na lista são preferidos mais do que aqueles que os seguem. Elementos negados (aqueles especificados com o! (ponto de exclamação) modificador) são considerados menos desejáveis.

elemento de acesso localhost; localnets;
Opções específicas do servidor
server ipaddr
{
    [ bogus ( yes | no ); ]
    [ transfers value;
]
    [ transfer-format ( one-answer |
many-answers ); ]
}

Modifica o comportamento no qual o servidor de nomes remoto que corresponde ao endereço IP ipaddr especificado deve ser tratado

Tabela 6. Opções específicas do servidor
Opção Valores Explicação
bogus sim não Indica que o servidor de nomes identificado pela sub-rotina não deve ser usado novamente.. O valor padrão é no.
transfers valor Substitui a opção globalmente disponível ' transfers-per-ns. Especifica um valor máximo para o número de transferências de zona de entrada simultâneas do servidor de nomes estrangeiro identificado pela estrofe.
formato de transferência uma-resposta muitas-respostas Substitui a opção globalmente disponível ' transfer-format por um valor específico para o servidor especificado. A opção " transfer-format indica ao servidor de nomes como formar suas transferências de zona completa de saída. Por padrão, o valor é herdado da estrofe de opções (onde o padrão é ' many-answers). one-answer especifica que somente um registro de recurso pode ser enviado por pacote durante a transferência de zona, enquanto " many-answers indica que o pacote de saída deve ser totalmente preenchido com registros de recursos. O formato " many-answers só está disponível nas revisões mais recentes do servidor de nomes.
Definição de Zona
zone domain-string [ class ] {
    type ( hint | stub | slave | master );
    [ file path-string; ]
    [ masters { ipaddr; [...] }; ]
    [ check-names ( warn | fail | ignore ); ]
    [ allow-update { access-element; [...] }; ]
    [ update-security ( unsecured | presecured | controlled ); ]
    [ allow-query { access-element; [...] }; ]
    [ allow-transfer { access-element; [...] }; ]
    [ max-transfer-time-in seconds; ]
    [ notify ( yes | no ); ]
    [ also-notify { ipaddr; [...] }; ]
    [ dont-notify { ipaddr; [...] }; ]
    [ notify-delaytime seconds; ]
    [ notify-retrytime seconds; ]
    [ notify-retrycount value; ]
    [ dump-interval seconds; ]
    [ incr-interval seconds; ]
    [ deferupdcnt value; ]
    [ key-xfer ( yes | no ); ]
    [ timesync ( yes | no ); ]
    [ timesync-xfer ( yes | no ); ]
    [ save-backups ( yes | no ); ]
    [ ixfr-directory path-string; ]
    [ separate-dynamic ( yes | no ); ]
};

A sub-rotina de zona é usada para definir uma zona, seu tipo, local possível de dados e parâmetros operacionais. O domain-string é uma sequência entre aspas que especifica a zona, em que "." é usado para especificar a zona raiz.. O parâmetro class especifica a classe da zona como ' in, ' hs, ' hesiod ou ' chaos. Por padrão, presume-se que a classe seja ' IN.

Tabela 7. Definições de zona
Opção e Descrição Valores Padrão
tipo
Define o tipo da zona. as zonas hint, anteriormente consideradas como zonas de cache, descrevem apenas uma fonte de informações não contidas nas outras zonas definidas. Uma zona " stub é semelhante a uma zona " slave. Enquanto a zona " slave replica todo o banco de dados de seu controlador, a zona " stub replica apenas os registros de recursos " NS. A zona " master mantém um banco de dados no disco.

Com base na seleção do tipo de zona, algumas das outras opções são necessárias, enquanto outras podem ser impertinentes As zonas do tipo " hint e " master exigem a opção " file, enquanto as zonas do tipo " slave e " stub exigem a opção " masters. Além disso, a única outra opção disponível para uma zona de dicas é a opção " check-names.

hint stub escravo mestre N/A
Arquivo
Especifica o local para a origem de dados específicos para a zona Esse parâmetro é opcional apenas para as zonas ' stub e ' slave, onde sua inclusão indica que uma cópia salva localmente da zona remota pode ser mantida. O parâmetro path-string é uma string entre aspas que pode especificar o nome do arquivo não relativo ou relativo ao ' options da estrofe ' directory. Se o caminho for especificado em relação à raiz do servidor, a estrofe " options deverá ser especificada antes da estrofe da zona.
cadeia de caracteres do caminho N/A
mestres
Especifica uma lista de fontes que são referenciadas para uma zona " slave ou " stub para recuperar seus dados. Esta opção não é válida para qualquer outro tipo de zona e deve ser incluída para qualquer um desses dois tipos.
ipaddr N/A
nomes de verificação
Substitui a opção ' check-names na estrofe global ' options. O valor padrão é herdado da estrofe ' options, onde seu padrão é ' fail para zonas ' master e ' warn para zonas ' slave.
aviso falha ignorar
permitir atualização
Indica de quais endereços de origem uma zona aceita atualizações dinâmicas. os elementos de acesso são especificados da mesma forma que para a estrofe " acl. Devido à insegurança inerente de uma atualização dinâmica, o padrão desse valor é ' none. Se nenhum ' update-security for especificado, as atualizações dinâmicas deverão ser limitadas a um conjunto específico de máquinas protegidas.
elemento de acesso none
update-segurança
Válido somente quando a opção " allow-update especifica pelo menos um endereço de origem, " update-security define o tipo de mecanismo de atualização seguro usado pela zona. O método de segurança de atualização de zona atual é um método de duas chaves não padrão, mas é compatível com releases anteriores do servidor de nomes.

presecured indica que uma zona só aceita atualizações para as quais existem nomes e registros de recursos, a menos que a atualização seja assinada pela chave de autorização da zona. Normalmente, isso significa que a zona deve ser pré-preenchida com os nomes e registros que ela deve manter. controlled especifica uma zona na qual os nomes podem ser adicionados ao banco de dados sem a assinatura da chave de autorização da zona, mas os registros existentes não podem ser modificados sem serem assinados pela chave privada correspondente do registro de recurso ' KEY.

Observação: uma zona " presecured ou " controlled adequada deve conter um registro de recurso de zona " KEY.

Para obter mais informações sobre a segurança da atualização de zona, consulte a página de resolução de nomes TCP/IP.

não seguro pré-assegurado controlado unsecured
permitir consulta
Substitui a opção globalmente disponível ' allow-query. O padrão dessa opção é herdado da estrofe global ' options, em que seu padrão é ' any.
elemento de acesso NA
permitir transferência
Substitui a opção globalmente disponível ' allow-transfer. O padrão dessa opção é herdado da estrofe global ' options, em que seu padrão é ' any.
elemento de acesso NA
tempo máximo da transferência de entrada
Substitui a opção globalmente disponível ' max-transfer-time-in. O padrão dessa opção é herdado da estrofe global ' options, em que seu padrão é ' 120.
segundos
notify
Substitui a opção globalmente disponível ' notify. O padrão dessa opção é herdado da estrofe global ' options, em que seu padrão é ' yes.
sim não
também-notificar
O mecanismo padrão " NOTIFY notifica os servidores de trabalho sobre uma alteração no banco de dados DOMAIN para limitar o tempo em que o servidor de trabalho mantém uma zona fora de sincronização com o servidor controlador. A opção " also-notify permite a adição de endereços para o envio das notificações.
ipaddr N/A
dont-notificar
Especifica uma lista de endereços IP a serem removidos da lista padrão de destinatários " NOTIFY. Essa opção é útil se um servidor de nomes for conhecido por ser problemático ao receber solicitações " NOTIFY.
ipaddr N/A
notificar-tempo de atraso
Especifica um tempo estimado de atraso entre as notificações para vários servidores de nomes Como o recebimento de uma mensagem " NOTIFY geralmente aciona a solicitação imediata de uma transferência de zona, essa opção pode ajustar a latência na qual cada servidor responde com a solicitação da zona modificada.

O valor real usado é randomizado entre o número especificado de segundos e duas vezes esse valor.

segundos 30
notifique-retrytime
Especifica o número de segundos em que o servidor de nomes aguarda para retransmitir uma mensagem ' NOTIFY que não foi respondida.
segundos 60
notificar-retrycount
Especifica o número máximo de tentativas que o servidor de nomes faz para enviar mensagens " NOTIFY não respondidas a outros servidores de nomes.
valor 3
intervalo de dump
Especifica um intervalo no qual o servidor de nomes reescreve uma zona dinâmica na zona ' file. Nesse ínterim, todas as atualizações e outras transações são registradas no arquivo de log de transações por motivos de desempenho. Além desse dump de zona periódico, o arquivo de log de transações é descartado apenas e a zona é descartada apenas quando o servidor de nome é encerrado corretamente

Essa opção é válida somente para zonas nas quais a opção ' allow-update especifica pelo menos um acessório válido.

Observação: o nome do arquivo de registro de transações é o nome do arquivo de zona com uma extensão " .log anexada.
segundos 3600
incr-intervalo
Especifica um intervalo no qual o servidor de nomes aceita atualizações dinâmicas sem aumentar o nível de série do registro " SOA da zona. Como uma alteração no registro " SOA da zona instancia uma mensagem " NOTIFY, a limitação dessa ocorrência limita a quantidade de solicitações de transferência de zona à custa de diferenças mínimas de zona entre um servidor controlador dinâmico e seu servidor de trabalho.

Essa opção é válida somente para zonas nas quais a opção ' allow-update especifica pelo menos um acessório válido.

segundos 300
deferupdcnt
Especifica um valor limite para o número de atualizações aplicadas corretamente recebidas durante um intervalo " incr-interval. Se mais de uma atualização de valor for realizada durante o intervalo, o servidor de nomes modificará o nível serial SOA da zona e, posteriormente, NOTIFICARÁ cada um dos servidores de trabalho. Use esse valor para limitar as inconsistências de replicação de banco de dados em um ambiente no qual as atualizações de zona dinâmica ocorrem com pouca freqüência, mas em grande magnitude..

Essa opção é válida somente para zonas nas quais a opção ' allow-update especifica pelo menos um acessório válido.

valor 100
transferência de chaves
Especifica se o servidor deve transmitir registros de recursos ' KEY durante uma transferência de zona. Em um ambiente muito controlado em que as consultas " KEY são feitas somente ao servidor de nomes do controlador, a configuração dessa opção como " no economiza o tempo de transferência da zona e melhora o desempenho.
sim não yes
sincronização de tempo
Especifica que um servidor de nomes deve calcular o tempo de expiração real de um registro de recurso ' SIG usando seu próprio relógio, em vez de confiar no tempo de expiração definido por uma possível fonte de atualização. Isso remove as inconsistências envolvidas quando atualizadores de zona dinâmica têm seus relógios do sistema desalinhados do host do servidor de nomes. Como a ativação dessa opção modifica a saída e a interpretação de um registro de recurso ' SIG em um arquivo de banco de dados ' DOMAIN, pode ser necessário desativar essa opção ao transferir manualmente um arquivo de banco de dados ' DOMAIN para outro servidor de nomes.
sim não yes
sincronização de tempo-xfer
Especifica qual tempo de expiração do registro de recurso ' SIG é transferido durante uma transferência de zona. A ativação dessa opção só é válida quando a opção " timesync está ativada.
sim não yes
ixfr-diretório
Especifica um diretório no qual os arquivos de dados temporários estão contidos para uso com essa zona Os arquivos de dados contêm alterações incrementais de zona e são essenciais para o uso adequado do método Incremental Zone Transfer (IXFR). Como esses arquivos são criados e destruídos dinamicamente pelo servidor de nomes, não se deve especificar um diretório gravável globalmente.. Além disso, o diretório especificado deve ser exclusivo de outras opções ' ixfr-directory especificadas em outras zonas.

O valor padrão para esse diretório é derivado do nome " file ou do nome de domínio da zona. Por padrão, um diretório é criado em um diretório "ixfrdata" dentro do diretório padrão do servidor de nomes. Nesse diretório, haverá um subdiretório que corresponde ao nome base do nome " file ou do nome de domínio da zona.

Não é necessário especificar essa opção para o comportamento adequado do recurso ' IXFR.

cadeia de caracteres do caminho
salvar backups
Para calcular corretamente uma diferença de zona incremental entre chamadas do servidor, é necessário determinar as diferenças do banco de dados de zona antes do encerramento do servidor e após o carregamento do servidor Ativando essa opção, um backup do arquivo de zona é gravado e lido no carregamento do servidor de nomes para determinar quaisquer diferenças de zona

Embora seja necessário ativar essa opção para usar o método de transferência IXFR após uma transição de parada e reinicialização do servidor de nomes, não é necessário realizar diferenças de zona incrementais quando um arquivo de zona é modificado e sinalizado para recarregar por meio do comando SRC ' refresh ou do sinal ' SIGHUP.

sim não no
separado-dinâmico
Instrui o servidor de nomes a manter as referências ' $INCLUDE em uma zona dinâmica quando o arquivo de banco de dados ' DOMAIN for gravado no disco. O comportamento desse recurso implica que os registros de recursos que podem ser modificados por meio do mecanismo de atualização dinâmica existem no arquivo de banco de dados ' DOMAIN referenciado pela opção ' file, enquanto outros registros de recursos que não devem ser modificados por meio do mecanismo de atualização dinâmica estão contidos em arquivos incluídos (por meio da diretiva ' $INCLUDE ) pelo arquivo de banco de dados ' DOMAIN.
sim não no

Exemplos

Os exemplos a seguir mostram alguns dos vários métodos a serem usados para configurar um arquivo " named.conf simples. Nesses exemplos, duas redes são representadas: ' abc e ' xyz.

A rede " abc consiste em:

  • gobi.abc, o servidor de nomes do controlador para a rede ' abc, 192.9.201.2
  • mojave.abc, um computador host, 192.9.201.6
  • sandy.abc, um servidor de nomes de trabalho para a rede ' abc e o gateway entre ' abc e ' xyz, 192.9.201.3

A rede " xyz consiste em:

  • kalahari.xyz, servidor de nomes do controlador para a rede ' xyz, 160.9.201.4
  • lopnor.xyz, uma máquina host, 160.9.201.5
  • sahara.xyz, uma máquina host e servidor de nomes de dica para a rede ' xyz, 160.9.201.13
  • sandy.xyz, um servidor de nomes de trabalho para a rede ' xyz e gateway entre ' abc e ' xyz, 160.9.201.3
    Observação: ' sandy, um host de gateway, está em ambas as redes e também serve como servidor de nomes de trabalho para ambos os domínios.
  1. O arquivo ' /etc/named.conf para ' gobi.abc, o servidor de nomes do controlador para a rede ' abc, contém essas entradas:
    # # conf file for abc controller server - gobi.abc # server 192.9.201.3 { transfer-format many-answers; }; 
    zone “abc” in { type master; file “/etc/named.abcdata”; allow-update { localhost; }; }; 
    zone “201.9.192.in-addr.arpa” in { type master; file “/etc/named.abcrev”; allow-update { localhost; }; };
    zone “0.0.127.in-addr.arpa” in { type master; file “/etc/named.abclocal”; };
  2. O arquivo ' /etc/named.conf para ' kalahari.xyz, o servidor de nomes do controlador para a rede ' xyz, contém essas entradas:
     # # conf file for abc controller server - kalahari.xyz # acl xyz-slaves { 160.9.201.3; }; 
    options { directory “/etc”; allow-transfer { xyz-slaves; localhost; }; };
    zone “xyz” in { type master; file “named.xyzdata”; }; 
    zone “9.160.in-addr.arpa” in { type master; file “named.xyxrev”; };
    zone “0.0.127.in-addr.arpa” in { type master; file “named.xyzlocal”; };
  3. O arquivo ' /etc/named.conf para ' sandy, o servidor de nomes do controlador para as redes ' abc e ' xyz, contém as seguintes entradas:
    # # conf file for worker server for abc and xyz - sandy # options { directory “/etc”; };
    zone “abc” in { type slave; masters { 192.9.201.2; }; file “named.abcdata.bak”; };
    zone “xyz” in { type slave; masters { 160.9.201.4; }; file “named.xyzdata.bak”; }; 
    zone “201.9.192.in-addr.arpa” in { type slave; masters { 192.9.201.2; }; };
    zone “9.160.in-addr.arpa” in { type slave; masters { 192.9.201.4; }; }; 
     zone “0.0.127.in-addr.arpa” in { type master; file “named.local”; };
  4. O arquivo ' /etc/named.conf para ' sahara, um servidor de nomes de dicas para a rede ' xyz, contém as seguintes entradas:
    # # conf file for hint server for xyz - sahara # zone “.” in { type hint; file “/etc/named.ca”; };
    zone “0.0.127.in-addr.arpa” in { type master; file “/etc/named.local”; };

Formato do arquivo " named.conf ao configurar o " named9

Geral

Uma configuração do BIND 9 consiste em instruções e comentários As instruções terminam com um ponto e vírgula. Instruções e comentários são os únicos elementos que podem aparecer sem chaves de fechamento. Muitas instruções contêm um bloco de subinstruções, que também são finalizadas com um ponto e vírgula.

As seguintes instruções são suportadas:
Tabela 8. Declaração suportada
Item Descrição
acl Define uma lista de correspondência de endereço IP nomeada, para controle de acesso e outros usos
controls Declara os canais de controle a serem usados pelo utilitário rndc.
include Inclui um arquivo..
key Especifica as informações chave para uso na autenticação e autorização usando TSIG
logging Especifica o que o servidor registra e onde as mensagens de log são enviadas.
options Controla opções de configuração do servidor global e configura padrões para outras instruções.
server Define determinadas opções de configuração por servidor.
trusted-keys Define chaves DNSSEC confiáveis.
view Define uma visualização.
zone Define uma zona.

As instruções ' logging e ' options só podem ocorrer uma vez por configuração.

gramática da declaração acl
acl acl-name { 
    address_match_list 
};
definição e uso da declaração acl

A instrução ' acl atribui um nome simbólico a uma lista de correspondência de endereços. Ele obtém seu nome de um uso primário de listas de correspondência de endereços: Listas de Controle de Acesso (ACLs).

Observe que o nome de uma lista de correspondência de endereços deve ser definido com " acl antes de poder ser usado em outro lugar; não são permitidas referências futuras.

As ACLs a seguir são integradas:
Tabela 9. ACLs incorporadas
Item Descrição
any Corresponde a todos os hosts
none Não corresponde a nenhum host
localhost Corresponde aos endereços IPv4 de todas as interfaces de rede no sistema..
localnets Corresponde a qualquer host em uma rede IPv4 para a qual o sistema possui uma interface
As ACLs ' localhost e ' localnets atualmente não são compatíveis com IPv6 (ou seja, ' localhost não corresponde aos endereços IPv6 do host e ' localnets não corresponde às redes IPv6 anexadas do host) devido à falta de um método padrão para determinar o conjunto completo de endereços IPv6 locais de um host.
gramática da declaração de controles
controls {
   inet ( ip_addr | * ) [ port ip_port ] allow {  address_match_list  }
                keys {  key_list  };
   [ inet ...; ]
};
definição e uso da declaração de controles

A instrução " controls declara os canais de controle a serem usados pelos administradores do sistema para afetar a operação do servidor de nomes local. Esses canais de controle são usados pelo utilitário " rndc para enviar comandos e recuperar resultados não-DNS de um servidor de nomes.

Um canal de controle " inet é um soquete TCP/IP acessível à Internet, criado no " ip_port especificado no " ip_addr especificado. Se nenhuma porta for especificada, a porta 953 será usada por padrão. Um asterisco (*) não pode ser usado para " ip_port.

A capacidade de emitir comandos pelo canal de controle é restrita pelas cláusulas " allow e " keys. As conexões com o canal de controle são permitidas com base nas permissões de endereço em ' address_match_list. Os membros ' key_id do ' address_match_list são ignorados e, em vez disso, são interpretados independentemente com base no ' key_list. Cada ' key_id no ' key_list pode ser usado para autenticar comandos e respostas fornecidos pelo canal de controle, assinando digitalmente cada mensagem entre o servidor e um cliente de comando. Todos os comandos para o canal de controle devem ser assinados por uma de suas chaves especificadas a serem respeitadas.

Se nenhuma instrução de controles estiver presente, ' named9 configura um canal de controle padrão que escuta o endereço de loopback 127.0.0.1 e sua contraparte IPv6::1. Nesse caso, e também quando o comando controls está presente, mas não tem uma cláusula keys, o ' named9 tenta carregar a chave do canal de comando do arquivo ' /etc/rndc.key (ou qualquer que seja o ' sysconfdir especificado quando o BIND foi criado). Para criar um arquivo " rndc.key, execute o comando " rndc-confgen -a.

O recurso " rndc.key foi criado para facilitar a transição de sistemas do BIND 8, que não tinha assinaturas digitais em suas mensagens de canal de comando e, portanto, não tinha uma cláusula de chaves. Isso possibilita usar um arquivo de configuração existente do BIND 8 no BIND 9 sem alterações e ainda fazer com que o ' rndc funcione da mesma forma que o ' ndc funcionava no BIND 8, simplesmente executando o comando ' rndc-keygen -a depois que o BIND 9 for instalado.

Como o recurso " rndc.key destina-se apenas a permitir o uso compatível com versões anteriores de arquivos de configuração do BIND 8, esse recurso não tem um alto grau de configurabilidade. Não é possível alterar facilmente o nome da chave ou o tamanho do segredo, portanto, você deve criar um ' rndc.conf com sua própria chave se quiser alterar esses aspectos. O arquivo ' rndc.key também tem suas permissões definidas de modo que somente o proprietário do arquivo (o usuário com o qual o named está sendo executado) possa acessá-lo. Se desejar maior flexibilidade para permitir que outros usuários acessem os comandos " rndc, será necessário criar um " rndc.conf e torná-lo legível por um grupo que contenha os usuários que devem ter acesso. O tipo de canal de controle UNIX do BIND 8 não é compatível com o BIND 9. Se ele estiver presente na instrução de controles de um arquivo de configuração BIND 8, ele será ignorado e um aviso será registrado.

incluir gramática de declaração
include filename;
definição e uso da declaração de inclusão

A instrução ' include insere o arquivo especificado no ponto em que a instrução ' include é encontrada. A instrução ' include facilita a administração dos arquivos de configuração, permitindo a leitura ou gravação de alguns itens, mas não de outros. Por exemplo, a declaração pode incluir chaves privadas que só podem ser lidas por um servidor de nomes.

gramática da declaração principal
key key_id {
    algorithm string;
    secret string;
};
definição e uso da declaração-chave

A instrução ' key define uma chave secreta compartilhada para uso com o TSIG.

A instrução ' key pode ocorrer no nível superior do arquivo de configuração ou dentro de uma instrução de visualização. As chaves definidas nos comandos " key de nível superior podem ser usadas em todas as exibições. As chaves destinadas ao uso em uma instrução de controles devem ser definidas no nível superior

O key_id, também conhecido como o nome da chave, é um nome de domínio que identifica exclusivamente a chave. Ele pode ser usado em uma instrução "server" para fazer com que as solicitações enviadas a esse servidor sejam assinadas com essa chave ou em listas de correspondência de endereço para verificar se as solicitações recebidas foram assinadas com uma chave correspondente a esse nome, algoritmo e segredo.. O algoritm_id é uma sequência que especifica um algoritmo de segurança / autenticação. O único algoritmo atualmente compatível com a autenticação TSIG é o ' hmac-md5. A secret_string é o segredo a ser usado pelo algoritmo e é tratada como uma string codificada base-64.

gramática da declaração de registro
logging {
   [ channel channel_name {
     ( file path name
         [ versions ( number | unlimited ) ]
         [ size size spec ]
       | syslog syslog_facility
       | stderr
       | null );
     [ severity (critical | error | warning | notice |
                 info | debug [ level ] | dynamic ); ]
     [ print-category yes or no; ]
     [ print-severity yes or no; ]
     [ print-time yes or no; ]
   }; ]
   [ category category_name {
     channel_name ; [ channel_name ; ... ]
   }; ]
   ...
};
definição e uso da declaração de registro

A instrução ' logging configura uma ampla variedade de opções de registro para o servidor de nomes. Sua frase ' channel associa métodos de saída, opções de formato e níveis de gravidade com um nome que pode ser usado com a frase ' category para selecionar como várias classes de mensagens são registradas.

Apenas uma instrução ' logging é usada para definir quantos canais e categorias forem desejados. Se não houver uma instrução ' logging, a configuração de registro será a seguinte:
logging {
     category "unmatched" { "null"; };
     category "default" { "default_syslog"; "default_debug"; };
};
No BIND 9, a configuração de criação de log é estabelecida apenas quando o arquivo de configuração inteiro tiver sido analisado No BIND 8, ele foi estabelecido assim que a instrução ' logging foi analisada. Quando o servidor está sendo iniciado, todas as mensagens de registro referentes a erros de sintaxe no arquivo de configuração vão para os canais padrão ou para o erro padrão se a opção " -g tiver sido especificada.
A frase do canal

Toda a saída de log vai para um ou mais canais; você pode fazer quantos deles você quiser.

Toda definição de canal deve incluir uma cláusula de destino que informe se as mensagens selecionadas para o canal vão para um arquivo, para um recurso ' syslog específico, para o fluxo de erro padrão ou se são descartadas. Opcionalmente, ele também pode limitar o nível de gravidade da mensagem que é aceito pelo canal (o padrão é info) e se deve incluir um registro de data e hora nomeado, o nome da categoria e / ou nível de severidade (o padrão é não incluir nenhum).

A cláusula de destino ' null faz com que todas as mensagens enviadas ao canal sejam descartadas; nesse caso, as outras opções do canal não fazem sentido.

A cláusula de destino ' file direciona o canal para um arquivo de disco. Ele pode incluir limitações sobre o tamanho do arquivo e quantas versões do arquivo são salvas toda vez que o arquivo é aberto.

Se você usar a opção de arquivo de registro ' versions, então ' named9 manterá essa quantidade de versões de backup do arquivo, renomeando-as ao abrir. Por exemplo, se você optar por manter 3 versões antigas do arquivo ' lamers.log, logo antes de ele ser aberto, ' lamers.log.1 será renomeado para ' lamers.log.2, ' lamers.log.0 será renomeado para ' lamers.log.1 e ' lamers.log será renomeado para ' lamers.log.0. Você pode dizer ' versions unlimited; para não limitar o número de versões. Se uma opção de tamanho estiver associada ao arquivo de log, a renomeação só será feita quando o arquivo que está sendo aberto exceder o tamanho indicado Nenhuma versão de backup é mantida por padrão; qualquer arquivo de log existente é simplesmente anexado..

A opção " size para arquivos é usada para limitar o crescimento do registro. Se o arquivo exceder o tamanho, o ' named9 interromperá a gravação no arquivo, a menos que tenha uma opção ' versions associada a ele. Se as versões de backup forem mantidas, os arquivos serão rolados conforme descrito acima e um novo iniciado. Se não houver a opção ' versions, nenhum outro dado será gravado no registro até que algum mecanismo fora da banda remova ou trunque o registro para menos do que o tamanho máximo. O comportamento padrão é não limitar o tamanho do arquivo..

Exemplo de uso das opções de tamanho e versões:
channel "an_example_channel" {
    file "example.log" versions 3 size 20m;
    print-time yes;
    print-category yes;
};

A cláusula de destino ' syslog direciona o canal para o registro do sistema. Seu argumento é um recurso ' syslog, conforme descrito na página de manual do syslog. O modo como o ' syslog trata as mensagens enviadas a esse recurso está descrito na página de manual do ' syslog.conf. Se você tiver um sistema que usa uma versão muito antiga de ' syslog que usa apenas dois argumentos para a função ' openlog(), essa cláusula será silenciosamente ignorada. A cláusula de severidade funciona como as "prioridades" de ' syslog, exceto que elas também podem ser usadas se você estiver gravando diretamente em um arquivo em vez de usar ' syslog. As mensagens que não são pelo menos do nível de gravidade especificado não são selecionadas para o canal; as mensagens de níveis de gravidade mais altos são aceitas.

Se estiver usando o " syslog, as prioridades do " syslog.conf também determinarão o que será transmitido. Por exemplo, definir um recurso de canal e uma gravidade como daemon e debug, mas registrar apenas " daemon.warning via syslog.conf faz com que as mensagens de gravidade " info e " notice sejam descartadas. Se a situação for inversa, com ' named9 escrevendo mensagens apenas de ' warning ou superior, então ' syslogd imprime todas as mensagens que recebeu do canal.

A cláusula de destino ' stderr direciona o canal para o fluxo de erro padrão do servidor. Isso é destinado ao uso quando o servidor está em execução como um processo de primeiro plano, por exemplo, ao depurar uma configuração

O servidor pode fornecer informações de depuração extensivas quando ele está no modo de depuração Se o nível de depuração global do servidor for maior que zero, o modo de depuração estará ativo. O nível de depuração global é definido ao iniciar o servidor ' named9 com o sinalizador ' -d seguido de um número inteiro positivo ou ao executar o comando ' rndc trace. O nível de depuração global pode ser definido como zero e o modo de depuração pode ser desativado com a execução do comando ' ndc notrace. Todas as mensagens de depuração no servidor têm um nível de depuração e níveis de depuração mais altos fornecem saída mais detalhada. Canais que especificam uma gravidade de depuração específica, por exemplo:
channel "specific_debug_level" {
    file "foo";
    severity debug 3;
};
obtém a saída de depuração do nível 3 ou menos sempre que o servidor estiver no modo de depuração, independentemente do nível de depuração global. Os canais com a severidade " dynamic usam o nível global do servidor para determinar quais mensagens serão impressas.
Se " print-time tiver sido ativado, a data e a hora serão registradas. print-time pode ser especificado para um canal ' syslog, mas geralmente não faz sentido, pois ' syslog também imprime a data e a hora. Se " print-category for solicitado, a categoria da mensagem também será registrada. Por fim, se " print-severity estiver ativado, o nível de gravidade da mensagem será registrado. As opções " print- podem ser usadas em qualquer combinação e são sempre impressas na seguinte ordem: hora, categoria, gravidade. Aqui está um exemplo em que todas as três opções " print- estão ativadas:
28-Feb-2000 15:05:32.863 general: notice: running
Os quatro canais predefinidos que são usados para o registro padrão do daemon ' named9 são os seguintes.
channel "default_syslog" {
    syslog daemon;                      // send to syslog's daemon
                                        // facility
    severity info;                      // only send priority info
                                        // and higher
};

channel "default_debug" {
    file "named.run";                   // write to named.run in
                                        // the working directory
                                        // Note: stderr is used instead
                                        // of "named.run"
                                        // if the server is started
                                        // with the '-f' option.
    severity dynamic;                   // log at the server's
                                        // current debug level
};

channel "default_stderr" {              // writes to stderr
    stderr;
    severity info;                      // only send priority info
                                        // and higher
};

channel "null" {
   null;                                // toss anything sent to
                                        // this channel
};

O canal " default_debug tem a propriedade especial de só produzir saída quando o nível de depuração do servidor for diferente de zero. Normalmente, ele grava no arquivo " named9run no diretório de trabalho do servidor.

Por motivos de segurança, quando a opção de linha de comando ' -u é usada, o arquivo ' named9run é criado somente depois que ' named9 é alterado para o novo UID, e qualquer saída de depuração gerada enquanto ' named9 está sendo iniciado e ainda em execução como raiz é descartada. Se precisar capturar essa saída, você deverá executar o servidor com a opção " -g e redirecionar o erro padrão para um arquivo.

Quando um canal é definido, ele não pode ser redefinido. Portanto, não é possível alterar os canais integrados diretamente, mas é possível modificar a criação de log padrão apontando categorias para os canais definidos.

A categoria Frase
Há muitas categorias, portanto, é possível enviar os logs que você deseja ver para onde quiser, sem ver os logs que você não deseja. Se você não especificar uma lista de canais para uma categoria, as mensagens de registro nessa categoria serão enviadas para a categoria ' default. Se você não especificar uma categoria " default, serão usados os seguintes valores padrão:
category "default" { "default_syslog"; "default_debug"; };
Como um exemplo, se desejar registrar eventos de segurança em um arquivo, mas também desejar manter o comportamento de criação de log padrão, especifique o seguinte:
channel "my_security_channel" {
    file "my_security_file";
    severity info;
};
category "security" {
    "my_security_channel";
    "default_syslog";
    "default_debug";
};
Para descartar todas as mensagens em uma categoria, especifique o canal nulo:
category "xfer-out" { "null"; };
category "notify" { "null"; };
A seguir estão as categorias disponíveis e as descrições breves dos tipos de informações de log que elas contêm:
Tabela 10. Categorias disponíveis e os tipos de informações de registro que elas contêm
Item Descrição
default A categoria padrão define as opções de criação de log para aquelas categorias em que nenhuma configuração específica foi definida
general A pegada-tudo. Muitas coisas ainda não são classificadas em categorias, e todas elas acabam aqui.
database Mensagens relacionadas aos bancos de dados usados internamente pelo servidor de nome para armazenar dados de zona e de cache
security Aprovação e negação de solicitações
config Análise e processamento do arquivo de configuração
resolver Resolução de DNS, como as consultas recursivas executadas em nome de clientes por um servidor de nomes de armazenamento em cache
xfer-in As transferências de zona que o servidor está recebendo
xfer-out As transferências de zona que o servidor está enviando
notify O protocolo NOTIFY..
client Processamento de solicitações do cliente
unmatched Mensagens que o named não conseguiu determinar a classe ou para as quais não havia uma visualização correspondente. Um resumo de uma linha também é registrado na categoria " client. É melhor enviar essa categoria para um arquivo ou " stderr; por padrão, ela é enviada para o canal " null.
network Operações de rede..
update Atualizações dinâmicas..
queries Consultas. O uso da categoria " queries permite o registro de consultas.
dispatch Despacho de pacotes recebidos para os módulos do servidor onde eles devem ser processados.
dnssec Processamento do protocolo DNSSEC e TSIG
lame-servers Servidores coxos. Trata-se de uma configuração incorreta em servidores remotos, descoberta pelo BIND 9 ao tentar consultar esses servidores durante a resolução.
opções Gramática da declaração
options {
    [ version version_string; ]
    [ directory path_name; ]
    [ named-xfer path_name; ]
    [ tkey-domain domainname; ]
    [ tkey-dhkey key_name key_tag; ]
    [ dump-file path_name; ]
    [ memstatistics-file path_name; ]
    [ pid-file path_name; ]
    [ statistics-file path_name; ]
    [ zone-statistics yes_or_no; ]
    [ auth-nxdomain yes_or_no; ]
    [ deallocate-on-exit yes_or_no; ]
    [ dialup dialup_option; ]
    [ fake-iquery yes_or_no; ]
    [ fetch-glue yes_or_no; ]
    [ has-old-clients yes_or_no; ]
    [ host-statistics yes_or_no; ]
    [ minimal-responses yes_or_no; ]
    [ multiple-cnames yes_or_no; ]
    [ notify yes_or_no | explicit; ]
    [ recursion yes_or_no; ]
    [ rfc2308-type1 yes_or_no; ]
    [ use-id-pool yes_or_no; ]
    [ maintain-ixfr-base yes_or_no; ]
    [ forward ( only | first ); ]
    [ forwarders { ip_addr [port ip_port] ; [ ip_addr [port ip_port] ; ... ] }; ]
    [ check-names ( master | slave |  response )( warn | fail | ignore ); ]
    [ allow-notify { address_match_list }; ]
    [ allow-query { address_match_list }; ]
    [ allow-transfer { address_match_list }; ]
    [ allow-recursion { address_match_list }; ]
    [ allow-v6-synthesis { address_match_list }; ]
    [ blackhole { address_match_list }; ]
    [ listen-on [ port ip_port ] { address_match_list }; ]
    [ listen-on-v6 [ port ip_port ] { address_match_list }; ]
    [ query-source [ address ( ip_addr | * ) ] [ port ( ip_port | * ) ]; ]
    [ max-transfer-time-in number; ]
    [ max-transfer-time-out number; ]
    [ max-transfer-idle-in number; ]
    [ max-transfer-idle-out number; ]
    [ tcp-clients number; ]
    [ recursive-clients number; ]
    [ serial-query-rate number; ]
    [ serial-queries number; ]
    [ transfer-format ( one-answer | many-answers ); ]
    [ transfers-in  number; ]
    [ transfers-out number; ]
    [ transfers-per-ns number; ]
    [ transfer-source (ip4_addr | *) [port ip_port] ; ]
    [ transfer-source-v6 (ip6_addr | *) [port ip_port] ; ]
    [ notify-source (ip4_addr | *) [port ip_port] ; ]
    [ notify-source-v6 (ip6_addr | *) [port ip_port] ; ]
    [ also-notify { ip_addr [port ip_port] ; [ ip_addr [port ip_port] ; ... ] }; ]
    [ max-ixfr-log-size number; ]
    [ coresize size_spec ; ]
    [ datasize size_spec ; ]
    [ files size_spec ; ]
    [ stacksize size_spec ; ]
    [ cleaning-interval number; ]
    [ heartbeat-interval number; ]
    [ interface-interval number; ]
    [ statistics-interval number; ]
    [ topology { address_match_list }];
    [ sortlist { address_match_list }];
    [ rrset-order { order_spec ; [ order_spec ; ... ] ] };
    [ lame-ttl number; ]
    [ max-ncache-ttl number; ]
    [ max-cache-ttl number; ]
    [ sig-validity-interval number ; ]
    [ min-roots number; ]
    [ use-ixfr yes_or_no ; ]
    [ provide-ixfr yes_or_no; ]
    [ request-ixfr yes_or_no; ]
    [ treat-cr-as-space yes_or_no ; ]
    [ min-refresh-time number ; ]
    [ max-refresh-time number ; ]
    [ min-retry-time number ; ]
    [ max-retry-time number ; ]
    [ port ip_port; ]
    [ additional-from-auth yes_or_no ; ]
    [ additional-from-cache yes_or_no ; ]
    [ random-device path_name ; ]
    [ max-cache-size size_spec ; ]
    [ match-mapped-addresses yes_or_no; ]
definição e uso da declaração de opções

A instrução " options define as opções globais a serem usadas pelo BIND. Esta instrução pode aparecer apenas uma vez em um arquivo de configuração Se mais de uma ocorrência for localizada a primeira ocorrência determina as opções reais usadas e um aviso é gerado. Se não houver uma instrução ' options, será usado um bloco de opções com cada opção definida como padrão.

versão
A versão que o servidor deve informar por meio de uma consulta de nome ' version.bind na classe ' CHAOS. O padrão é o número da versão real desse servidor.
diretório
O diretório ativo do servidor.. Todos os nomes de caminho não absolutos no arquivo de configuração são considerados relativos a esse diretório. O local padrão para a maioria dos arquivos de saída do servidor (por exemplo, ' named.run) é esse diretório. Se um diretório não for especificado, o padrão do diretório de trabalho será ' ., o diretório a partir do qual o servidor foi iniciado. O diretório especificado deve ser um caminho absoluto
denominado-xfer
Esta opção está obsoleta Ele foi usado no BIND 8 para especificar o nome do caminho para o programa " named-xfer. No BIND 9, não é necessário um programa " named-xfer separado; sua funcionalidade está incorporada ao servidor de nomes.
tkey-domínio
O domínio anexado aos nomes de todas as chaves compartilhadas geradas com ' TKEY. Quando um cliente solicita uma troca " TKEY, ele pode ou não especificar o nome desejado para a chave. Se presente, o nome da chave compartilhada é a parte especificada pelo cliente + ' tkey-domain. Caso contrário, o nome da chave compartilhada é dígitos hexadecimais aleatórios + ' tkey-domain. Na maioria dos casos, o ' domainname deve ser o nome de domínio do servidor.
tkey-dhkey
A chave Diffie-Hellman usada pelo servidor para gerar chaves compartilhadas com clientes usando o modo Diffie-Hellman de " TKEY. O servidor deve ser capaz de carregar as chaves públicas e privadas de arquivos no diretório ativo. Na maioria dos casos, o nome da chave deve ser o nome do servidor.
dump-arquivo
O nome do caminho do arquivo no qual o servidor despeja o banco de dados quando instruído a fazê-lo com o comando ' rndc dumpdb. Se não for especificado, o padrão será ' named_dump.db.
memstatistics-arquivo
O nome do caminho do arquivo no qual o servidor grava as estatísticas de uso de memória na saída Se não for especificado, o padrão será named.memstats
Nota: ainda não foi implementado no BIND 9
pid-arquivo
O nome do caminho do arquivo no qual o servidor grava o seu ID do processo. Se não for especificado, o padrão será ' /var/run/named.pid. O arquivo pid é usado por programas que desejam enviar sinais para o servidor de nomes em execução..
estatísticas-arquivo
O nome do caminho do arquivo ao qual o servidor anexa as estatísticas quando instruído a fazê-lo usando o rndc stats. Se não for especificado, o padrão será ' named.stats no diretório atual do servidor
porta
O número da porta UDP/TCP que o servidor usa para receber e enviar o tráfego do protocolo DNS O padrão é 53. Essa opção destina-se principalmente ao teste do servidor; um servidor que usa uma porta diferente de 53 não poderá se comunicar com o DNS global.
dispositivo aleatório
A origem da entropia a ser usada por o servidor A entropia é principalmente necessária para operações DNSSEC, como transações TKEY e atualização dinâmica de zonas assinadas. Esta opção especifica o dispositivo (ou arquivo) a partir do qual ler entropia. Se este for um arquivo, as operações que requerem entropia falharão quando o arquivo tiver sido esgotado Se não for especificado, o valor padrão será ' /dev/random (ou equivalente) quando presente, e nenhum caso contrário. A opção random-device entra em vigor durante o carregamento de configuração inicial no tempo de inicialização do servidor e é ignorado em recargas subsequentes.

Opções Booleanas

auth-nxdomain
Se yes, o bit AA será sempre configurado nas respostas NXDOMAIN, mesmo se o servidor não for realmente autorizado. O padrão é no; esta é uma mudança de BIND 8. Se você estiver usando um software DNS muito antigo, pode ser necessário configurá-lo como yes
liberar alocação na saída
Esta opção foi usada no BIND 8 para ativar a verificação de fugas de memória na saída... BIND 9 ignora a opção e sempre executa as verificações.
dialup
Se yes, o servidor tratará todas as zonas como se estivessem fazendo transferências de zona em um link de discagem on demand, que pode ser ativado pelo tráfego originado desse servidor. Isso tem efeitos diferentes de acordo com o tipo de zona e concentra a manutenção da zona para que tudo aconteça em um intervalo curto, uma vez a cada intervalo de pulsaçãoe, esperançosamente, durante a chamada. Ele também suprime parte do tráfego de manutenção de zona normal O padrão é no..A opção dialup também pode ser especificada nas instruções view e zone , em cujo caso ela substitui a opção global dialup

Se a zona for uma zona principal, o servidor enviará uma solicitação NOTIFY para todas as zonas escravas.. Isso aciona a verificação do número de série da zona no escravo (desde que ele suporte NOTIFY) permitindo que o escravo verifique a zona enquanto a conexão estiver ativa.

Se a zona for uma zona escrava ou de stub, o servidor suprimirá as consultas regulares de "zona até a data" (atualização) e as executará apenas quando o intervalo de pulsação expirar, além de enviar solicitações NOTIFY

O controle mais fino pode ser obtido usando notify, que envia apenas mensagens NOTIFY; notify-passive, que envia mensagens NOTIFY e suprime as consultas de atualização normais; e refresh, que suprime o processo de atualização normal e envia consultas de atualização quando o intervalo de pulsação expira e passivo que apenas desativa o processo de atualização normal.

fake-iquery
No BIND 8, esta opção foi utilizada para permitir a simulação do tipo de consulta DNS IQUERY obsoleto... BIND 9 nunca faz simulação IQUERY.
fetch-glue
Esta opção está obsoleta No BIND 8, o fetch-glue yes fez com que o servidor tentasse buscar registros de recursos de cola que ele não tinha ao construir a seção de dados adicionais de uma resposta Isso agora é considerado uma prática ruim e o BIND 9 nunca faz isso.
has-old-clients
Essa opção foi implementada incorretamente no BIND 8, e é ignorada pelo BIND 9 Para atingir o efeito desejado de has-old-clients yes, especifique as duas opções separadas auth-nxdomain yes e rfc2308-type1 no no lugar.
estatísticas do host
No BIND 8, isso permite manter estatísticas para cada host com o qual o servidor de nomes interage. Ele não é implementado em BIND 9
maintain-ixfr-base
Esta opção está obsoleta Ele foi usado no BIND 8 para determinar se um log da transação foi mantido para a Transferência de Zona Incremental. BIND 9 mantém um log de transações sempre que possível. Se for necessário desativar as transferências de zona incrementais de saída, use forneça-ixfr no
mínimo-respostas
Se yes, então, ao gerar respostas, o servidor somente incluirá registros na autoridade e seções de dados adicionais quando forem necessários. Isso pode melhorar o desempenho do servidor.. O padrão é no..
vários cnames
Esta opção foi usada no BIND 8 para permitir um nome de domínio para permitir vários registros CNAME em violação dos padrões DNS. BIND 9.2 aplica estritamente as regras CNAME em arquivos principais e atualizações dinâmicas.
notify
Se yes (padrão), as mensagens DNS NOTIFY serão enviadas quando uma zona do servidor for autorizada para mudanças. As mensagens são enviadas para os servidores listados nos registros NS da zona (exceto o servidor controlador identificado no campo SOA MNAME) e para quaisquer servidores listados na opção também-notify option.If explicit, as notificações serão enviadas apenas para servidores explicitamente listados usando também-notify. Se no, nenhuma notificação será enviada

A opção notify também pode ser especificada na instrução zone , nesse caso ela substitui a instrução options notify . Só seria necessário desligar esta opção se causasse a queda de escravos.

recorrência
Se yese uma consulta DNS solicitar recursão, o servidor tentará executar todo o trabalho necessário para responder à consulta. Se a recursão estiver desativada, e o servidor ainda não souber a resposta, ele retornará uma resposta de indicação. O padrão é yes.
Nota: configurar recursion no não impede que os clientes obtenham dados do cache no servidor; isso só impede que novos dados sejam armazenados em cache como um efeito de consultas do cliente. O armazenamento em cache ainda pode ocorrer como efeito da operação interna do servidor, como consultas de endereço NOTIFY.
rfc2308-type1
Configurar isso como yes faz com que o servidor envie registros de NS juntamente com o registro SOA para respostas negativas O padrão é Não.
Nota: ainda não foi implementado no BIND 9
uso-conjunto-de-identificadores
Esta opção está obsoleta BIND 9 sempre aloca IDs de consulta de um conjunto.
estatísticas de zona
Se yes, o servidor, por padrão, coletará dados estatísticos em todas as zonas no servidor Essas estatísticas podem ser acessadas usando rndc stats, que faz dump delas no arquivo listado no statistics-file Consulte Arquivo de Estatísticas.
use-ixfr
Esta opção está obsoleta Se você precisar desativar IXFR para um servidor ou servidores específicos, consulte as informações sobre a opção fornecer-ixfr em Definição e Uso da Instrução do Servidor
fornecer-ixfr
Consulte a descrição de forneça-ixfr em Definição e uso de instrução do servidor
solicitação-ixfr
Consulte a descrição de request-ixfr em Definição e Uso da Instrução do Servidor
tratar-cr-como-espaço
Esta opção foi usada no BIND 8 para fazer o servidor tratar o retorno de linha ("\r") da mesma maneira que um caractere de espaço ou tabulação para facilitar o carregamento de arquivos de zona em um sistema UNIX que foram gerados em uma máquina Windows NT ou DOS . No BIND 9, as novas linhas UNIX "\n" e NT/DOS "\r \n" são sempre aceitas e a opção é ignorado.
adicional-da-autorização, adicional-do-cache
Essas opções controlam o comportamento de um servidor autorizado ao responder consultas que têm dados adicionais ou ao seguir as cadeias CNAME e DNAME chains.When ambas as opções são configuradas como yes (padrão) e uma consulta está sendo respondida a partir de dados autorizados (uma zona configurada no servidor), a seção de dados adicionais da resposta é preenchida usando dados de outras zonas autorizadas e do cache. Em algumas situações isso é indesejável, como quando há preocupação sobre a exatidão do cache, ou em servidores onde zonas escravas podem ser adicionadas e modificadas por terceiros não confiáveis. Além disso, evitar a procura por esses dados adicionais acelera as operações do servidor às possíveis custas de consultas adicionais para resolver o que de outra forma seria fornecido na seção adicional.

Por exemplo, se uma consulta solicitar um registro MX para o host foo.example.come o registro localizado for "MX 10 mail.example.net", normalmente os registros de endereço para mail.example.net também serão fornecidos, se conhecidos. A configuração dessas opções para no desativa esse comportamento

Essas opções são destinadas ao uso em servidores somente autorizados ou em visualizações somente autorizadas. Tenta configurá-los como no sem também especificar recursion no; faz com que o servidor ignore as opções e registre uma mensagem de aviso

Especificar additional-from-cache no realmente desativa o uso do cache não apenas para consultas de dados adicionais, mas também ao consultar a resposta. Este é geralmente o comportamento desejado em um servidor somente autoritário onde a exatidão dos dados em cache é um problema.

Quando um servidor de nomes é consultado não recursivamente para um nome que não está abaixo do ápice de qualquer zona atendida, ele normalmente responde com uma "indicação para cima" para os servidores raiz ou os servidores de algum outro pai conhecido do nome da consulta. Como os dados em uma indicação ascendente são provenientes do cache, o servidor não poderá fornecer indicações ascendentes quando additional-from-cache no tiver sido especificado. Em vez disso, ele responde a essas consultas com RECUSOU. Isso não deve causar nenhum problema, uma vez que as indicações para cima não são necessárias para o processo de resolução

corresponder-endereços mapeados
Se yes, um endereço IPv4-mapped IPv6 corresponderá a quaisquer entradas da lista de correspondência de endereços que correspondam ao endereço IPv4 correspondente A ativação dessa opção às vezes é útil em sistemas IPv6-enabled Linux® para contornar uma peculiaridade do kernel que faz com que conexões TCP IPv4 , como transferências de zona, sejam aceitas em um soquete IPv6 usando endereços mapeados, fazendo com que as listas de correspondência de endereços projetadas para IPv4 falhem na correspondência.. O uso desta opção para qualquer outro propósito é desencorajado.

Encaminhamento

O recurso de encaminhamento pode ser usado para criar um cache grande em todo o site em alguns servidores, reduzindo o tráfego sobre links para nameservers externos Ele também pode ser usado para permitir consultas por servidores que não têm acesso direto à Internet, mas desejam consultar nomes externos de qualquer maneira. O encaminhamento ocorre apenas nas consultas para as quais o servidor não é autorizado e não tem a resposta em seu cache

avançar
Essa opção será significativa apenas se a lista de encaminhadores não estiver vazia Um valor de first, o padrão, faz com que o servidor consulte os encaminhadores primeiro e, se isso não responder à pergunta, o servidor procurará a própria resposta. Se apenas for especificado, o servidor consultará apenas os encaminhistas.
forwarders
Especifica os endereços IP a serem usados para encaminhamento.. O padrão é a lista vazia (sem encaminhamento).

O encaminhamento também pode ser configurado por domínio, permitindo que as opções de encaminhamento global sejam substituídas de várias maneiras. É possível configurar domínios específicos para usar encaminhadores diferentes ou ter um comportamento de encaminhamento somente / primeiro diferente ou não encaminhar de forma alguma. Consulte Gramática da instrução de zona.

Controle de acesso

O acesso ao servidor pode ser restrito com base no endereço IP do sistema requerente.

permitir-notificar
Especifica quais hosts têm permissão para notificar escravos de uma mudança de zona além dos principais da zona. A opção allow-notify também pode ser especificada na instrução zone , em cujo caso ela substitui a instrução options allow-notify Ele é significativo apenas para uma zona escrava Se não for especificado, o padrão será processar mensagens de notificação somente a partir do principal de uma zona da.
permitir consulta
Especifica quais hosts podem fazer perguntas ordinárias. A opção allow-query também pode ser especificada na instrução zone , nesse caso ela substitui a instrução options allow-query . Se não for especificado, o padrão é permitir consultas de todos os hosts
allow-recursion
Especifica quais hosts podem fazer consultas recursivas por meio deste servidor. Se não especificado, o padrão é permitir consultas recursivas de todos os hosts. Observe que desautorizar consultas recursivas para um host não impede que o host recupere dados que já estão no cache no servidor.
permitir transferência
Especifica quais hosts têm permissão para receber transferências de zona do servidor allow-transfer também pode ser especificado na instrução zone , caso em que substitui a instrução options allow-transfer . Se não for especificado, o padrão será permitir transferências de todos os hosts.
blackhole
Especifica uma lista de endereços dos quais o servidor não aceita consultas ou usa para resolver uma consulta. As consultas desses endereços não são respondidas. O padrão é none..

Interfaces

As interfaces e portas das quais o servidor responde consultas podem ser especificadas usando a opção listen-on . O listen-on usa uma porta opcional e um address_match_list. O servidor atende em todas as interfaces permitidas pela lista de correspondências de endereço Se uma porta não for especificada, a porta 53 será usada

Várias instruções listen-on são permitidas.. Por exemplo:
listen-on { 5.6.7.8; };
listen-on port 1234 { !1.2.3.4; 1.2/16; };
Isso ativa o nameserver na porta 53 para o endereço IP 5.6.7.8e na porta 1234 de um endereço na máquina na rede 1.2 que não é 1.2.3.4

Se nenhum listen-on for especificado, o servidor atende na porta 53 em todas as interfaces.

Endereço de Consulta

Se o servidor não souber a resposta para uma pergunta, ele consultará outros servidores de nomes. query-source especifica o endereço e a porta usados para essas consultas Se address for * ou for omitido, um endereço IP curinga (INADDR_ANY) será usado. Se port for * ou for omitido, uma porta aleatória não privilegiada será usada. Os padrões são os seguintes:
query-source address * port *;
query-source-v6 address * port *
Nota: o endereço especificado na opção query-source é usado para consultas UDP e TCP, mas a porta se aplica apenas a consultas UDP. Consultas TCP sempre usam uma porta aleatória não privilegiada.

Transferências de Zona

BIND tem mecanismos em vigor para facilitar as transferências de zona e estabelecer limites sobre a quantidade de carga que as transferências colocam no sistema. As seguintes opções se aplicam às transferências de zona.

também-notificar
Define uma lista global de endereços IP de servidores de nomes que também são enviados mensagens NOTIFY sempre que uma nova cópia da zona é carregada, além dos servidores listados nos registros NS da zona Isso ajuda a assegurar que as cópias das zonas converjam rapidamente em servidores stealth. Se uma lista também-notify for fornecida em uma instrução zone, ela substituirá a instrução options also-notify . Quando uma instrução zone notify é configurada como no, os endereços IP na lista global also-notify não recebem mensagens NOTIFY para essa zona.. O padrão é a lista vazia (nenhuma lista de notificação global)
tempo máximo da transferência de entrada
As transferências de zona de entrada em execução por mais tempo do que esses minutos são finalizadas. O padrão é 120 minutos (2 horas).
max-transfer-inativo
As transferências de zona de entrada que não progredem nestes minutos são finalizadas. O padrão é de 60 minutos (1 hora).
máx. de tempo de transferência
As transferências de zona de saída em execução por mais tempo do que esses minutos são finalizadas. O padrão é 120 minutos (2 horas).
max-transfer-inativa-out
As transferências de zona de saída que não progredem neste número de minutos são finalizadas O padrão é de 60 minutos (1 hora).
taxa de consulta serial
Os servidores do trabalhador consultam periodicamente os servidores do controlador para descobrir se os números de série da zona mudaram. Cada consulta usa uma quantidade de minutos da largura da banda da rede do servidor do trabalhador. Para limitar a quantidade de largura da banda usada, o BIND 9 limita a taxa na qual as consultas são enviadas O valor da opção serial-query-rate , um inteiro, é o número máximo de consultas enviadas por segundo. O padrão é 20.
consultas seriais
No BIND 8, a opção serial-queries configura o número máximo de consultas de número de série simultâneas que podem ser pendentes a qualquer momento. BIND 9 não limita o número de consultas seriais pendentes e ignora a opção serial-queries . Em vez disso, ele limita a taxa na qual as consultas são enviadas, conforme definido usando a opção serial-query-rate
formato de transferência
As transferências de zonas podem ser enviadas usando dois formatos diferentes, uma resposta e muitas respostas. A opção transfer-format é usada no servidor do controlador para determinar qual formato ele envia one-answer usa uma mensagem de DNS por registro de recurso transferido many-answers compacta tantos registros de recursos quanto possível em uma mensagem. many-answers é mais eficiente, mas é suportado apenas por servidores trabalhadores relativamente novos, como BIND 9, BIND 8.x e versões corrigidas do BIND 4.9.5. O padrão é many-answers. O transfer-format pode ser substituído em uma base por servidor usando a instrução do servidor
transferência de entrada
O número máximo de transferências de zona de entrada que podem estar em execução simultaneamente O valor padrão é 10. Aumentar transfers-in pode acelerar a convergência de zonas escravas, mas também pode aumentar a carga no sistema local.
transferência de saída
O número máximo de transferências de zona de saída que podem estar em execução simultaneamente As solicitações de transferência de zona além do limite são recusadas. O valor padrão é 10.
transferência por ns
O número máximo de transferências de zona de entrada que podem ser transferidas simultaneamente de um determinado servidor de nomes remoto. O valor padrão é 2. Aumentar transferências-por-ns pode acelerar a convergência de zonas escravas, mas também pode aumentar a carga no servidor de nomes remoto. transfers-per-ns pode ser substituído por servidor usando a frase transfers da instrução server .
origem da transferência
transfer-source determina qual endereço local está ligado a conexões TCP IPv4 usadas para buscar zonas transferidas de entrada pelo servidor Também determina o endereço IPv4 de origem e, opcionalmente, a porta UDP, usada para as consultas de atualização e atualizações dinâmicas encaminhadas. Se não configurado, ele será padronizado para um valor controlado pelo sistema que geralmente é o endereço da interface "mais próximo" da extremidade remota. Esse endereço deve aparecer na opção allow-transfer da extremidade remota para a zona que está sendo transferida, se uma for especificada Essa instrução configura o transfer-source para todas as zonas, mas pode ser substituída em uma base por visualização ou por zona, incluindo uma instrução transfer-source dentro do bloco view ou zone no arquivo de configuração do.
notificar-origem
notify-source determina qual endereço de origem local e, opcionalmente, a porta UDP, é usado para enviar mensagens NOTIFY Esse endereço deve aparecer na cláusula master zone do servidor trabalhador ou em uma cláusula allow-notify . Esta instrução configura a notify-source para todas as zonas, mas pode ser substituída em uma base por zona / por visualização, incluindo uma instrução notify-source dentro do bloco zone ou view no arquivo de configuração.

Limites de recurso do sistema operacional

O uso do servidor de muitos recursos do sistema pode ser limitado Valores escalados são permitidos ao especificar limites de recursos. Por exemplo, 1G pode ser usado em vez de 1073741824 para especificar um limite de um gigabyte A opção unlimited solicita o uso ilimitado ou a quantia máxima disponível A opção default usa o limite que estava em vigor quando o servidor foi iniciado

As opções a seguir configuram os limites de recursos do sistema operacional para o processo do servidor de nome. Alguns sistemas operacionais não suportam alguns ou quaisquer limites. Em tais sistemas, um aviso será emitido se o limite não suportado for usado

tamanho do núcleo
O tamanho máximo de um dump de núcleo O padrão é default..
tamanho dos dados
A quantia máxima de memória de dados que o servidor pode usar O padrão é default.. Este é um limite máximo no uso de memória do servidor Se o servidor tentar alocar memória em excesso desse limite, a alocação falhará, o que pode, por sua vez, deixar o servidor incapaz de executar o serviço DNS. Portanto, essa opção raramente é útil como uma maneira de limitar a quantidade de memória usada pelo servidor, mas ela pode ser usada para aumentar um limite de tamanho de dados do sistema operacional que é muito pequeno por padrão Se desejar limitar a quantia de memória usada pelo servidor, use as opções max-cache-size e recursive-clients no lugar.
arquivos
O número máximo de arquivos que o servidor pode ter aberto simultaneamente. O padrão é unlimited..
tamanho da pilha
A quantia máxima de memória de pilha que o servidor pode usar O padrão é default..

Limites de recurso do servidor..

As opções a seguir configuram limites no consumo de recursos do servidor que são impingidos internamente pelo servidor em vez do sistema operacional.

tamanho-máximo-do-registro-ixfr
Essa opção está obsoleta; ela é aceita e ignorada para a compatibilidade do BIND 8
clientes recursivos

O número máximo de consultas recursivas simultâneas que o servidor executa em nome de clientes O padrão é 1000.. Como cada cliente recorrente usa uma boa quantidade de memória, da ordem de 20 KB, o valor da opção recursive-clients pode ter que ser reduzido em hosts com memória limitada.

tcp-clientes

O número máximo de conexões TCP simultâneas que o servidor aceita. O padrão é 100..

tamanho máximo do cache

A quantia máxima de memória a ser usada para o cache no servidor, em bytes Quando a quantidade de dados no cache atinge esse limite, o servidor faz com que os registros expirem prematuramente para que o limite não seja excedido. Em um servidor com várias visualizações, o limite se aplica separadamente ao cache de cada visualização.. O valor padrão é " unlimited, indicando que os registros são removidos do cache somente quando seus TTLs expiram. O valor mínimo que pode ser configurado para esse limite é de 2 MB

Intervalos de Tarefas Periódicos

intervalo de limpeza

O servidor remove registros de recursos expirados do cache a cada intervalo de limpeza minutos. O padrão é de 60 minutos Se configurado como 0, a limpeza periódica não ocorrerá.

heartbeat-interval

O servidor executa tarefas de manutenção de zona para todas as zonas marcadas como dialup sempre que esse intervalo expirar. O padrão é de 60 minutos Os valores razoáveis são até 1 dia (1440 minutos). Se configurado como 0, a manutenção de zona para essas zonas não ocorrerá

intervalo de interface

O servidor varre a lista de interfaces de rede a cada intervalo de interface minutos.. O padrão é de 60 minutos Se configurado como 0, a varredura de interface ocorrerá apenas quando o arquivo de configuração for carregado. Após a varredura, os listeners são iniciados em quaisquer novas interfaces (desde que sejam permitidos pela configuração listen-on ). Os listeners nas interfaces que desapareceram são limpos.

intervalo de estatísticas

As estatísticas do servidor de nomes são registradas a cada intervalo de estatísticas minutos. O padrão é 60. Se configurado como 0, nenhuma estatística será registrada.

Nota: ainda não foi implementado no BIND 9

Topologia

Todas as outras coisas sendo iguais, quando o servidor escolhe um servidor de nomes para consultar a partir de uma lista de servidores de nomes, ele prefere aquele que é topologicamente mais próximo de si. A instrução topology usa um address_match_list e interpreta-o de uma maneira especial Cada elemento da lista de nível superior é designado a uma distância Elementos não negados obtêm uma distância com base em sua posição na lista, onde quanto mais próximo a correspondência estiver do início da lista, menor será a distância entre ela e o servidor. Uma correspondência negada é designada à distância máxima do servidor. Se não houver correspondência, o endereço obterá uma distância mais distante do que qualquer elemento da lista não negado e mais próximo do que qualquer elemento negado. Por exemplo,

topology {
    10/8;
    !1.2.3/24;
    { 1.2/16; 3/8; };
};

prefere mais servidores na rede 10, seguido por hosts na rede 1.2.0.0 (máscara de rede 255.255.0.0) e rede 3, exceto para hosts na rede 1.2.3 (máscara de rede 255.255.255.0), que é o menor de todos.

A topologia padrão é

    topology { localhost; localnets; };
Nota: a opção topology não é implementada no BIND 9.

A instrução da lista de classificação

A resposta a uma consulta DNS pode consistir em vários registros de recursos (RRs) formando um conjunto de registros de recursos (RRset). O servidor de nomes normalmente retorna os RRs dentro do RRset em uma ordem indeterminada (mas consulte a instrução rrset-order em RRset Ordering). O código do resolvedor de cliente deve reorganizar os RRs conforme apropriado, ou seja, usando quaisquer endereços na rede local em vez de outros endereços.. No entanto, nem todos os resolvedores podem fazer isso ou estão corretamente configurados. Quando um cliente está usando um servidor local, a classificação pode ser executada no servidor, com base no endereço do cliente Isso requer apenas a configuração dos servidores de nomes, nem todos os clientes.

A instrução sortlist (consulte abaixo) usa um address_match_list e interpreta-o ainda mais especificamente do que a instrução topology (Topology). Cada instrução de nível superior na sortlist deve ser uma address_match_list explícita com um ou dois elementos. O primeiro elemento (que pode ser um endereço IP, um prefixo IP, um nome da ACL ou um address_match_listaninhado) de cada lista de nível superior é verificado com relação ao endereço de origem da consulta até que uma correspondência seja localizada.

Depois que o endereço de origem da consulta tiver sido correspondido, se a instrução de nível superior contiver apenas um elemento, o elemento primitivo real que correspondeu ao endereço de origem será usado para selecionar o endereço na resposta para mover para o início da resposta Se a instrução for uma lista de dois elementos, o segundo elemento será tratado da mesma forma que address_match_list em uma instrução topology . Cada elemento de nível superior é designado a uma distância e o endereço na resposta com a distância mínima é movido para o início da resposta

No exemplo a seguir, qualquer consulta recebida de qualquer um dos endereços do próprio host obtém respostas preferindo endereços em qualquer uma das redes conectadas localmente. Em seguida, os mais preferenciais são os endereços na rede 192.168.1/24 e, depois disso, a rede 192.168.2/24 ou 192.168.3/24 sem nenhuma preferência mostrada entre essas duas redes. Consultas recebidas de um host na rede 192.168.1/24 preferem outros endereços nessa rede às redes 192.168.2/24 e 192.168.3/24 . Consultas recebidas de um host na rede 192.168.4/24 ou 192.168.5/24 preferem apenas outros endereços em suas redes conectadas diretamente.

sortlist {
    { localhost;                                   // IF   the local host
        { localnets;                               // THEN first fit on the
            192.168.1/24;                          //   following nets
            { 192.168.2/24; 192.168.3/24; }; }; };
    { 192.168.1/24;                                // IF   on class C 192.168.1
        { 192.168.1/24;                            // THEN use .1, or .2 or .3
            { 192.168.2/24; 192.168.3/24; }; }; };
    { 192.168.2/24;                                // IF   on class C 192.168.2
        { 192.168.2/24;                            // THEN use .2, or .1 or .3
            { 192.168.1/24; 192.168.3/24; }; }; };
    { 192.168.3/24;                                // IF   on class C 192.168.3
        { 192.168.3/24;                            // THEN use .3, or .1 or .2
            { 192.168.1/24; 192.168.2/24; }; }; };
    { { 192.168.4/24; 192.168.5/24; };             // if .4 or .5, prefer that net
    };
};

O exemplo a seguir fornece comportamento razoável para o host local e hosts em redes diretamente conectadas. É semelhante ao comportamento da classificação de endereço em BIND 4.9.x. As respostas enviadas para consultas do host local favorecem qualquer uma das redes diretamente conectadas. As respostas enviadas para consultas de quaisquer outros hosts em uma rede diretamente conectada preferem endereços nessa mesma rede Respostas para outras consultas não são classificadas.

sortlist {
           { localhost; localnets; };
           { localnets; };
};

Ordenação RRset

Quando vários registros são retornados em uma resposta, pode ser útil configurar a ordem dos registros colocados na resposta.. A instrução rrset-order permite a configuração da ordenação dos registros em uma resposta de registro múltiplo Consulte também a instrução sortlist , A instrução sortlist.

Um order_spec é definido como a seguir:

[ class class_name ][ type type_name ][ name "domain_name"]
      order ordering

Se nenhuma classe for especificada, o padrão será ANY. Se nenhum tipo for especificado, o padrão será ANY. Se nenhum nome for especificado, o padrão será " *".

Os valores legais para ordenação são:

Item Descrição

fixo

Registros são retornados na ordem em que são definidos no arquivo de zona.

aleatório

Registros são retornados em alguma ordem aleatória.

cíclico

Os registros são retornados em uma ordem round-robin.

Por exemplo:

rrset-order {
   class IN type A name "host.example.com" order random;
   order cyclic;
};

faz com que todas as respostas para registros do tipo A na classe IN que tenham " ' host.example.com" como sufixo sejam sempre retornadas em ordem aleatória. Todos os outros registros são retornados em ordem cíclica

Se várias instruções rrset-order aparecerem, elas não serão combinadas-a última se aplicará

Nota: a instrução rrset-order ainda não foi implementada no BIND 9... BIND 9 atualmente suporta apenas uma ordenação "random-cyclic", em que o servidor escolhe aleatoriamente um ponto de início dentro do RRset e retorna os registros em ordem a partir desse ponto, agrupando em volta do final do RRset, se necessário..

Ajuste

lame-ttl

Configura o número de segundos para armazenar em cache uma indicação de servidor lame O 0 desativa o armazenamento em cache (Isso não é recomendado.) O padrão é " 600 (10 minutos). O valor máximo é " 1800 (30 minutos).

max-ncache-ttl
Para reduzir o tráfego de rede e aumentar o desempenho o servidor armazena respostas negativas. max-ncache-ttl é usado para configurar um tempo máximo de retenção para essas respostas no servidor em segundos.. O max-ncache-ttl padrão é ' 10800 segundos (3 horas). max-ncache-ttl não pode exceder 7 dias e será silenciosamente truncado para 7 dias se for definido com um valor maior.
tempo máximo de validade do cache
max-cache-ttl define o tempo máximo para o qual o servidor armazenará em cache respostas ordinárias (positivas). O padrão é uma semana (7 dias).
min-raízes
O número mínimo de servidores raiz que é necessário para uma solicitação para que os servidores raiz sejam aceitos O padrão é 2.
Nota: ainda não foi implementado no BIND 9
sig-validity-interval

Especifica o número de dias no futuro em que as assinaturas DNSSEC geradas automaticamente como resultado de atualizações dinâmicas ((Seção 4.1)) expirarão. O padrão é " 30 days. O tempo de início da assinatura é configurado incondicionalmente para uma hora antes do tempo atual para permitir uma quantidade limitada de clock skew (defasagem).

tempo mínimo de atualização, tempo máximo de atualização, tempo mínimo de repetição, tempo máximo de repetição

Essas opções controlam o comportamento do servidor ao atualizar uma zona (consultar mudanças de SOA) ou tentar novamente as transferências com falha. Geralmente os valores SOA para a zona são usados, mas esses valores são configurados pelo controlador, dando aos administradores do servidor do trabalhador pouco controle sobre seu conteúdo.

Essas opções permitem que o administrador configure uma atualização mínima e máxima e tente novamente o tempo por zona, por visualização ou por servidor Essas opções são válidas para zonas principais, escravas e stub e fixam os tempos de atualização e de novas tentativas de SOA para os valores especificados.

O Arquivo de Estatísticas

O arquivo de estatísticas gerado pelo BIND 9 é semelhante, mas não idêntico, ao arquivo gerado pelo BIND 8..

O dump de estatísticas começa com a linha + + + Dump de Estatísticas + + + (973798949), em que o número entre parênteses é um registro de data e hora no estilo UNIXpadrão, medido como segundos desde 1º de janeiro de 1970. Após essa linha, há uma série de linhas contendo um tipo de contador, o valor do contador, opcionalmente um nome de zona e opcionalmente um nome de visualização. As linhas sem visualização e a zona listadas são estatísticas globais para o servidor inteiro Linhas com uma zona e nome da visualização para a visualização e zona fornecidas (o nome da visualização é omitido para a visualização padrão). O dump de estatísticas termina com a linha -- Statistics Dump -- (973798949), em que o número é idêntico ao número na linha inicial.

Os seguintes contadores de estatísticas são mantidos:

Item Descrição
bem-sucedido

O número de consultas bem-sucedidas feitas no servidor ou zona. Uma consulta bem-sucedida é definida como consulta que retorna uma resposta NOERROR diferente de uma resposta de indicação.

referencial

O número de consultas que resultaram em respostas de indicação

nxrrset

O número de consultas que resultou em respostas NOERROR sem dados.

nxdomain

O número de consultas que resultou em respostas NXDOMAIN.

recorrência

O número de consultas que fizeram o servidor executar recursão para localizar a resposta final.

failure

O número de consultas que resultaram em uma resposta de falha diferente daquelas acima..

Gramática da instrução do servidor

server ip_addr {
    [ bogus yes_or_no ; ]
    [ provide-ixfr yes_or_no ; ]
    [ request-ixfr yes_or_no ; ]
    [ edns yes_or_no ; ]
    [ transfers number ; ]
    [ transfer-format ( one-answer | many-answers ) ; ]]
    [ keys { string ; [ string ; [...]] } ; ]
};

Definição e uso da instrução do servidor

A instrução server define as características a serem associadas a um servidor de nomes remoto

A instrução server pode ocorrer no nível superior do arquivo de configuração ou dentro de uma instrução view Se uma instrução view contiver uma ou mais instruções server , apenas as que se aplicam à visualização e quaisquer instruções de nível superior serão ignorados Se uma visualização não contiver instruções server , quaisquer instruções server de nível superior serão usadas como padrões.

Se você descobrir que um servidor remoto está fornecendo dados inválidos, marcá-lo como falso evitará mais consultas a ele. O valor padrão bogus é no.

A cláusula forneça-ixfr determina se o servidor local, agindo como controlador, responde com uma transferência de zona incremental quando o servidor remoto, um trabalhador, o solicita. Se configurado como yes, a transferência incremental será fornecida sempre que possível.. Se configurado como no, todas as transferências para o servidor remoto serão não incrementais.. Se não configurado, o valor da opção forneça-ixfr no bloco de opções de visualização ou global será usado como um padrão..

A cláusula request-ixfr determina se o servidor local, agindo como um trabalhador, solicita transferências de zona incrementais do servidor remoto fornecido, um controlador. Se não configurado, o valor da opção request-ixfr na visualização ou no bloco de opções globais será usado como um padrão.

Solicitações IXFR para servidores que não suportam IXFR retornam automaticamente para AXFR. Portanto, não é necessário listar manualmente quais servidores suportam IXFR e quais não suportam; o padrão global de yes deve sempre funcionar. O propósito das cláusulas fornecer-ixfr e request-ixfr é tornar possível desativar o uso do IXFR, mesmo quando o controlador e o trabalhador solicitam para suportá-lo, por exemplo, se um dos servidores estiver com erros e travar ou corromper dados quando o IXFR for usado, por exemplo.

A cláusula edns determina se o servidor local tentará usar o EDNS ao se comunicar com o servidor remoto O padrão é yes

O servidor suporta dois métodos de transferência de zona. O primeiro, one-answer, usa uma mensagem de DNS por registro de recurso transferido many-answers compacta tantos registros de recursos quanto possível em uma mensagem. many-answers é mais eficiente, mas só é conhecido por ser entendido por BIND 9, BIND 8.xe versões corrigidas de BIND 4.9.5. É possível especificar qual método usar para um servidor com a opção transfer-format . Se transfer-format não for especificado, transfer-format especificado pela instrução options será usado.

transfers é usado para limitar o número de transferências de zona de entrada simultâneas do servidor especificado. Se nenhuma cláusula transfers for especificada, o limite será configurado de acordo com a opção transfers per-ns .

A cláusula keys é usada para identificar um key_id definido pela instrução key , a ser usado para a segurança da transação ao falar com o servidor remoto A instrução key deve vir antes da instrução server que faz referência a ela Quando uma solicitação é enviada para o servidor remoto, uma assinatura de solicitação é gerada usando a chave especificada aqui e anexada à mensagem Uma solicitação originada do servidor remoto não precisa ser assinada por essa chave.

Embora a gramática da cláusula keys permita várias chaves, apenas uma única chave por servidor é suportada atualmente...

Gramática da instrução de chaves confiáveis

trusted-keys {
    string number number number string ;
    [ string number number number string ; [...]]
};

Definição e uso de instrução de chaves confiáveis

A instrução trusted-keys define raízes de segurança DNSSEC. Uma raiz de segurança é definida quando a chave pública para uma zona não autorizada é conhecida, mas não pode ser obtida com segurança por meio do DNS, porque ela é a zona raiz do DNS ou sua zona pai não está assinada.. Uma vez que uma chave tenha sido configurada como uma chave confiável, ela será tratada como se tivesse sido validada e comprovada segura O resolvedor tenta a validação DNSSEC em todos os dados DNS em subdomínios de uma raiz de segurança.

A instrução trusted-keys pode conter várias entradas de chave, cada uma consistindo no nome do domínio da chave, sinalizadores, protocolo, algoritmo e a representação base-64 dos dados de chaves.

visualizar gramática da instrução

view view_name [class] {
      match-clients { address_match_list } ;
      match-destinations { address_match_list } ;
      match-recursive-only { yes_or_no } ;
      [ view_option; ...]
      [ zone-statistics yes_or_no ; ]
      [ zone_statement; ...]
};

6.2.20. visualizar Definição e uso da instrução

A instrução view é um novo recurso poderoso do BIND 9 que permite que um servidor de nomes responda uma consulta DNS de forma diferente, dependendo de quem está perguntando. É particularmente útil para implementar configurações de DNS divididas sem ter que executar vários servidores.

Cada instrução view define uma visualização do namespace DNS vista por um subconjunto de clientes. Um cliente corresponde a uma visualização se seu endereço IP de origem corresponder ao ' address_match_list da cláusula match-clients da visualização e seu endereço IP de destino corresponder ao ' address_match_list da cláusula match-destinations da visualização. Se não for especificado, tanto match-clients quanto match-destinations terão como padrão a correspondência de todos os endereços. Uma exibição também pode ser especificada como match-recursive-only, o que significa que somente solicitações recursivas de clientes correspondentes correspondem a essa exibição. A ordem das instruções de exibição é significativa - uma solicitação do cliente é resolvida no contexto da primeira exibição correspondente.

As zonas definidas dentro de uma instrução view são acessíveis apenas para clientes que correspondem à view Ao definir uma zona com o mesmo nome em várias visualizações, dados de zona diferentes podem ser fornecidos a clientes diferentes, por exemplo, clientes "internos" e "externos" em uma configuração de DNS dividida..

Muitas das opções fornecidas na instrução options também podem ser usadas em uma instrução view e, em seguida, aplicar apenas ao resolver consultas com essa visualização. Quando nenhum valor específico da visualização é fornecido, o valor na instrução options é usado como padrão. Além disso, as opções de zona podem ter os valores padrão especificados na instrução view ; esses padrões específicos da visualização têm precedência sobre aqueles na instrução options

As visualizações são específicas de classe Se nenhuma classe for fornecida, a classe IN será assumida Observe que todas as visualizações não IN devem conter uma zona de sugestão, pois apenas a classe IN compilou sugestões padrão.

Se não houver nenhuma instrução view no arquivo de configuração, uma visualização padrão que corresponde a qualquer cliente será criada automaticamente na classe IN e quaisquer instruções zone especificadas no nível superior do arquivo de configuração serão consideradas parte dessa visualização padrão Se alguma instrução view explícita estiver presente, todas as instruções zone deverão ocorrer dentro das instruções view .

Aqui está um exemplo de uma típica configuração de DNS dividida implementada usando instruções view .

view "internal" {
               // This should match our internal networks.
      match-clients { 10.0.0.0/8; };
               // Provide recursive service to internal clients only.
      recursion yes;
               // Provide a complete view of the example.com zone
               // including addresses of internal hosts.
      zone "example.com" {
            type master;
            file "example-internal.db";
      };
};
view "external" {
      match-clients { any; };
               // Refuse recursive service to external clients.
      recursion no;
               // Provide a restricted view of the example.com zone
               // containing only publicly accessible hosts.
      zone "example.com" {
           type master;
           file "example-external.db";
      };
};

Gramática da Instrução de Zona

zone zone_name [class] [{ 
    type ( master | slave | hint | stub | forward ) ;
    [ allow-notify { address_match_list } ; ]
    [ allow-query { address_match_list } ; ]
    [ allow-transfer { address_match_list } ; ]
    [ allow-update { address_match_list } ; ]
    [ update-policy { update_policy_rule [...] } ; ]
    [ allow-update-forwarding { address_match_list } ; ]
    [ also-notify { ip_addr [port ip_port] ; [ ip_addr [port ip_port] ; ... ] }; ]
    [ check-names (warn|fail|ignore) ; ]
    [ dialup dialup_option ; ]
    [ file string ; ]
    [ forward (only|first) ; ]
    [ forwarders { ip_addr [port ip_port] ; [ ip_addr [port ip_port] ; ... ] }; ]
    [ ixfr-base string ; ]
    [ ixfr-tmp-file string ; ]
    [ maintain-ixfr-base yes_or_no ; ]
    [ masters [port ip_port] { ip_addr [port ip_port] [key key]; [...] } ; ]
    [ max-ixfr-log-size number ; ]
    [ max-transfer-idle-in number ; ]
    [ max-transfer-idle-out number ; ]
    [ max-transfer-time-in number ; ]
    [ max-transfer-time-out number ; ]
    [ notify yes_or_no | explicit ; ]
    [ pubkey number number number string ; ]
    [ transfer-source (ip4_addr | *) [port ip_port] ; ]
    [ transfer-source-v6 (ip6_addr | *) [port ip_port] ; ]
    [ notify-source (ip4_addr | *) [port ip_port] ; ]
    [ notify-source-v6 (ip6_addr | *) [port ip_port] ; ]
    [ zone-statistics yes_or_no ; ]
    [ sig-validity-interval number ; ]
    [ database string ; ]
    [ min-refresh-time number ; ]
    [ max-refresh-time number ; ]
    [ min-retry-time number ; ]
    [ max-retry-time number ; ]

}];

Definição e uso da instrução de zona

Tipos de Zona

Item Descrição
master

O servidor tem uma cópia principal dos dados para a zona e será capaz de fornecer respostas autorizadas para ele.

slave

Uma zona escrava é uma réplica de uma zona principal.. A lista principais especifica um ou mais endereços IP de servidores do controlador que o trabalhador contata para atualizar sua cópia da zona. Por padrão, as transferências são feitas da porta 53 nos servidores; isso pode ser alterado para todos os servidores especificando um número de porta antes da lista de endereços IP ou em uma base por servidor após o endereço IP. A autenticação para o servidor controlador também pode ser feita com chaves TSIG por servidor. Se um arquivo for especificado, a réplica será gravada nesse arquivo sempre que a zona for alterada e recarregada desse arquivo em uma reinicialização do servidor. O uso de um arquivo é recomendado, pois ele geralmente acelera a inicialização do servidor e elimina um desperdício desnecessário de largura de banda. Observe que para grandes números (nas dezenas ou centenas de milhares) de zonas por servidor, é melhor usar um esquema de nomenclatura de dois níveis para nomes de arquivos de zona.. Por exemplo, um servidor de trabalho para a zona " example.com pode colocar o conteúdo da zona em um arquivo chamado " ex/example.com, em que " ex/ são apenas as duas primeiras letras do nome da zona. (A maioria dos sistemas operacionais se comporta muito lentamente se você colocar 100K arquivos em um único diretório)

stub

Uma zona de stub é semelhante a uma zona escrava, exceto que ela replica apenas os registros NS de uma zona principal em vez da zona inteira. As zonas de stub não são uma parte padrão do DNS; elas são um recurso específico para a implementação BIND.

As zonas de stub podem ser usadas para eliminar a necessidade de um registro NS de cola em uma zona principal, às custas da manutenção de uma entrada de zona de stub e de um conjunto de endereços de servidor de nomes em ' named.conf. Esse uso não é recomendado para novas configurações, e o BIND 9 oferece suporte a ele apenas de forma limitada. No BIND 4/8, as transferências de zona de uma zona pai incluíam os registros NS dos filhos stub dessa zona... Isso significava que, em alguns casos, os usuários poderiam se livrar da configuração de stubs filhos apenas no servidor controlador para a zona pai. BIND 9 nunca mistura dados de zonas de diferentes zonas desta forma. Portanto, se um controlador BIND 9 que atende uma zona pai tiver zonas de stub filhas configuradas, todos os servidores trabalhadores para a zona pai também precisarão ter as mesmas zonas de stub filhas configuradas.

As zonas de stub também podem ser usadas como uma maneira de forçar a resolução de um determinado domínio a usar um determinado conjunto de servidores autorizados. Por exemplo, os servidores de nomes em cache em uma rede privada usando o endereçamento RFC2157 podem ser configurados com zonas de stub para ' 10.in-addr.arpa para usar um conjunto de servidores de nomes internos como servidores autoritativos para esse domínio.

forward

Uma "zona de encaminhamento" é uma maneira de configurar o encaminhamento por domínio. Uma instrução zone do tipo forward pode conter uma instrução forward e / ou forwarders , que se aplicará a consultas dentro do domínio especificado pelo nome da zona Se nenhuma instrução forwarders estiver presente ou uma lista vazia para forwarders for fornecida, nenhum encaminhamento será feito para o domínio, cancelando os efeitos de quaisquer forwarders na instrução options . Portanto, se desejar usar esse tipo de zona para alterar o comportamento da opção encaminhar global (ou seja, "encaminhar primeiro para", então "encaminhar apenas" ou vice-versa, mas desejar usar os mesmos servidores conforme configurado globalmente), será necessário especificar novamente os encaminhadores globais.

hint

O conjunto inicial de nameservers raiz é especificado usando uma "zona de sugestão". Quando o servidor é iniciado, ele usa as sugestões raiz para localizar um servidor de nomes raiz e obter a lista mais recente de servidores de nomes raiz. Se nenhuma zona de sugestão for especificada para a classe IN, o servidor usará um conjunto padrão compilado de sugestões de servidores raiz. Classes diferentes de IN não possuem sugestões padrão integradas.

class

O nome da zona pode opcionalmente ser seguido por uma classe. Se uma classe não for especificada, será assumida a classe ' IN (para ' Internet). Isso é correto para a grande maioria dos casos.

A classe ' hesiod recebeu o nome de um serviço de informações do Project Athena do MIT. É usado para compartilhar informações sobre vários bancos de dados de sistemas, como usuários, grupos, impressoras e assim por diante. A palavra-chave ' HS é um sinônimo de hesiod.

Outro desenvolvimento do MIT é o CHAOSnet, um protocolo de LAN criado em mid-1970s. Os dados da zona para ela podem ser especificados com a classe ' CHAOS.

Opções de Zona

permitir-notificar

Consulte a descrição de allow-notify em Controle de Acesso.

permitir consulta

Consulte a descrição de allow-query em Controle de acesso.

permitir transferência

Consulte a descrição de allow-transfer em Controle de Acesso.

permitir atualização

Especifica quais hosts têm permissão para enviar atualizações de DNS Dinâmico para as zonas principais O padrão é negar atualizações de todos os hosts.

política de atualização

Especifica uma política "Simple Secure Update". Consulte Políticas de Atualização Dinâmica.

permitir-atualização-encaminhamento

Especifica quais hosts têm permissão para enviar atualizações de DNS Dinâmico para as zonas escravas a serem encaminhadas para o principal O padrão é " { none; }, o que significa que nenhum encaminhamento de atualização é realizado. Para ativar o encaminhamento de atualizações, especifique ' allow-update-forwarding { any; };. Especificar valores diferentes de " { none; } ou " { any; } geralmente é contraproducente, pois a responsabilidade pelo controle de acesso à atualização deve ser do servidor controlador, não do servidor de trabalho.

Observe que a ativação do recurso de encaminhamento de atualização em um servidor do trabalhador pode expor servidores do controlador que dependem do controle de acesso baseado em endereço IP inseguro para ataques.

também-notificar

Significativo apenas se notificar estiver ativo para esta zona O conjunto de máquinas que receberão uma mensagem " DNS NOTIFY para essa zona é composto por todos os servidores de nomes listados (que não sejam o controlador principal) para a zona, além de quaisquer endereços IP especificados com also-notify. Uma porta pode ser especificada com cada endereço also-notify para enviar as mensagens de notificação para uma porta diferente da padrão 53. also-notify não é significativo para zonas stub. O padrão é a lista vazia..

nomes de verificação

Esta opção foi usada no BIND 8 para restringir o conjunto de caracteres de nomes de domínio em arquivos principais ou respostas DNS recebidas da rede. BIND 9 não restringe o conjunto de caracteres de nomes de domínios e não implementa a opção check-names .

banco de dados

Especificar o tipo de banco de dados a ser usado para classificar os dados da zona. A sequência após a palavra-chave database é interpretada como uma lista de palavras delimitadas por espaço em branco. A primeira palavra identifica o tipo de banco de dados e quaisquer palavras subsequentes são transmitidas como argumentos para o banco de dados para serem interpretadas de uma maneira específica para o tipo de banco de dados.

O padrão é " "rbt", o banco de dados nativo em memória red-black-tree do BIND 9. Este banco de dados não aceita argumentos..

Outros valores são possíveis se drivers de banco de dados adicionais foram vinculados ao servidor. Alguns drivers de amostra são incluídos na distribuição, mas nenhum é vinculado por padrão.

dialup

Consulte a descrição de dialup em Opções Booleanas..

avançar

Somente significativo se a zona tiver uma lista de encaminhadores O valor only faz com que a consulta falhe após tentar os encaminhadores e não obter nenhuma resposta, enquanto o first permitiria que uma consulta normal fosse tentada

forwarders

Usado para substituir a lista de encaminhadores globais Se não for especificado em uma zona do tipo forward, nenhum encaminhamento será feito para a zona; as opções globais não serão usadas.

base ixfr

Foi usado no BIND 8 para especificar o nome do arquivo do log de transações (diário) para atualização dinâmica e IXFR. O BIND 9 ignora a opção e constrói o nome do arquivo de diário acrescentando " ' .jnl" ao nome do arquivo de zona.

arquivo temporário ixfr

Era uma opção não documentada no BIND 8. Ignorado em BIND 9..

tempo máximo da transferência de entrada

Consulte a descrição de max-transfer-time-in em Transferências de Zona.

máximo de transferência em modo inativo

Consulte a descrição de max-transfer-idle-in em Transferências de Zona.

tempo máximo de transferência

Consulte a descrição de max-transfer-time-out em Transferências de Zona.

máximo de transferências em espera

Consulte a descrição de max-transfer-idle-out em Transferências de Zona.

Notificação

Consulte a descrição de notify em Opções Booleanas

chave pública

No BIND 8, essa opção foi destinada a especificar uma chave de zona pública para verificação de assinaturas em zonas assinadas DNSSEC quando elas são carregadas do disco. BIND 9 não verifica assinaturas no carregamento e ignora a opção.

estatísticas de zona

Se for ' yes, o servidor manterá informações estatísticas para essa zona, que podem ser despejadas no arquivo de estatísticas definido nas opções do servidor.

sig-validity-interval

Consulte a descrição de sig-validade-interval em Ajuste.

origem da transferência

Consulte a descrição de transfer-source em Zone Transfers

notificar-fonte

Consulte a descrição de notify-source em Transferências de Zona

tempo mínimo de atualização, tempo máximo de atualização, tempo mínimo de repetição, tempo máximo de repetição

Consulte a descrição em Ajuste

Políticas de Atualização Dinâmica

BIND 9 suporta dois métodos alternativos de conceder aos clientes o direito de executar atualizações dinâmicas para uma zona, configuradas pela opção allow-update e update-policy , respectivamente.

A cláusula allow-update funciona da mesma maneira que em versões anteriores do BIND Concede aos clientes a permissão para atualizar qualquer registro de qualquer nome na zona.

A cláusula update-policy é nova no BIND 9 e permite um controle mais detalhado sobre quais atualizações são permitidas. Um conjunto de regras é especificado, em que cada regra concede ou nega permissões para um ou mais nomes a serem atualizados por uma ou mais identidades Se a mensagem de solicitação de atualização dinâmica for assinada (ou seja, incluir um registro TSIG ou SIG (0)), a identidade do assinante poderá ser determinada.

As regras são especificadas na opção de zona update-policy e são significativas apenas para as zonas principais Quando a instrução update-policy está presente é um erro de configuração para a instrução allow-update estar presente. A instrução update-policy examina apenas o signatário de uma mensagem; o endereço de origem não é relevante

Esta é a aparência de uma definição de regra:

( grant | deny ) identity nametype name [ types ]

Cada regra concede ou nega privilégios.. Depois que uma mensagem tiver correspondido com êxito a uma regra, a operação será imediatamente concedida ou negada e nenhuma regra adicional será examinada Uma regra é correspondida quando o signatário corresponde ao campo de identidade, o nome corresponde ao campo de nome e o tipo é especificado no campo de tipo

O campo de identidade especifica um nome ou nome curinga. O campo nametype tem 4 valores: name, ' subdomain, ' wildcard e ' self

Item Descrição

name

Corresponde quando o nome atualizado é igual ao nome no campo de nome.

subdomain

Corresponde quando o nome atualizado é um subdomínio do nome no campo de nome (que inclui o próprio nome)..

wildcard

Corresponde quando o nome atualizado é uma expansão válida do nome do curinga no campo de nome

self

Corresponde quando o nome atualizado é igual ao do assinante da mensagem. O campo de nome é ignorado

Se nenhum tipo for especificado, a regra corresponderá a todos os tipos, exceto SIG, NS, SOA e NXT Os tipos podem ser especificados por nome, incluindo "ANY" (ANY corresponde a todos os tipos, exceto NXT, que nunca pode ser atualizado.

Arquivo de zona

Arquivo de Dados de DOMÍNIO, Arquivo de Dados Reversos de DOMÍNIO, Arquivo de Cache de DOMÍNIO e DOMÍNIO Local

Tipos de registros de recursos e quando usá-los

Esta seção, em grande parte emprestada do RFC 1034, descreve o conceito de um Resource Record (RR) e explica quando cada um é usado. Desde a publicação do RFC 1034, vários novos RRs foram identificados e implementados no DNS. Estes também estão incluídos. "

Registros do Recurso

Um nome de domínio identifica um nó. Cada nó possui um conjunto de informações de recurso, que podem estar vazias O conjunto de informações de recurso associado a um nome específico é composto de RRs separados A ordem de RRs em um conjunto não é significativa e não precisa ser preservada por nameservers, resolvers ou outras partes do DNS No entanto, a classificação de vários RRs é permitida para propósitos de otimização, por exemplo, para especificar que um determinado servidor próximo seja tentado primeiro Consulte A instrução sortlist e Ordenação RRset.

Os componentes de um Registro de Recurso são:

Item Descrição

Nome do proprietário

o nome de domínio onde o RR está localizado.

tipo

um valor de 16 bits codificado que especifica o tipo do recurso neste registro de recurso. Os tipos referem-se a recursos abstratos

TTL

o tempo de vida do RR. Esse campo é um número inteiro de 32 bits em unidades de segundos e é usado principalmente por resolvedores quando armazenam RRs em cache. O TTL descreve quanto tempo um RR pode ser armazenado em cache antes de ser descartado.

classe

um valor de 16 bits codificado que identifica uma família de protocolo ou instância de um protocolo.

RDATA

o tipo e, às vezes, dados dependentes de classe que descrevem o recurso.

A seguir estão tipos de RRs válidos (alguns deles listados, embora não obsoletos, são experimentais (x) ou históricos (h) e não mais em uso geral):

Item Descrição

A

Um endereço do host

A6

Um endereço IPv6

AAAA

Formato obsoleto do endereço IPv6

AFSDB

(x) local dos servidores de banco de dados AFS® . Experimental.

cname

identifica o nome canônico de um alias.

DNAME

para a delegação de endereços reversos Substitui o nome de domínio especificado por outro nome a ser consultado Descrito em RFC 2672

HINFO

identifica a CPU e o S.O. usados por um host.

ISDN

(x) representação de endereços ISDN. Experimental.

Chave

armazena uma chave pública associada a um nome de DNS

LOC

(x) para armazenar informações de GPS. Veja RFC 1876. Experimental.

MX

identifica uma troca de e-mail para o domínio. Consulte o RFC 974 para obter detalhes

NS

O servidor de nomes autorizado para o domínio

NXT

usado em DNSSEC para indicar com segurança que RRs com um nome de proprietário em um determinado intervalo de nome não existem em uma zona e indicar quais tipos RR estão presentes para um nome existente. Consulte o RFC 2535 para obter detalhes

PTR

um ponteiro para outra parte do namespace do domínio.

PR

(x) informações sobre as pessoas responsáveis pelo domínio. Experimental.

RT

(x) ligação de rota para hosts que não possuem seus próprios endereços de rede de longa distância. Experimental.

SIG

("assinatura") Contém dados autenticados no DNS seguro. Consulte o RFC 2535 para obter detalhes

SOA

Identifica o início de uma zona de autoridade.

SRV

informações sobre serviços de rede bem conhecidos (substitui WKS).

WKS

(h) informações sobre quais serviços de rede bem conhecidos, como SMTP, que um domínio suporta. Histórico, substituído pelo RR SRV mais recente

As seguintes classes de registros de recursos são atualmente válidas no DNS:

Item Descrição

DENTRO

Para obter informações sobre outras classes mais antigas de RRs do sistema de Internet.

RDATA são os dados dependentes de tipo ou dependentes de classe que descrevem o recurso:

Item Descrição

A

Para a classe IN, um endereço IP de 32 bits.

A6

mapeia um nome de domínio para um endereço IPv6 , com uma provisão para indireção para bits de "prefixo" iniciais.

cname

um nome de domínio.

DNAME

fornece nomenclatura alternativa para uma subárvore inteira do namespace do domínio, em vez de um único nó. Isso faz com que algum sufixo de um nome consultado seja substituído por um nome do RDATA do registro DNAME.

MX

um valor de preferência de 16 bits (inferior é melhor) seguido por um nome do host disposto a agir como uma troca de correio para o domínio do proprietário.

NS

Um nome completo do domínio

PTR

Um nome completo do domínio

SOA

vários campos.

O nome do proprietário é muitas vezes implícito, em vez de formar uma parte integral do RR. Por exemplo, muitos servidores de nomes formam internamente estruturas de árvore ou hash para o espaço de nome e os nós RRs fora da cadeia. As partes RR restantes são o cabeçalho fixo (tipo, classe, TTL) que é consistente para todos os RRs e uma parte variável (RDATA) que se ajusta às necessidades do recurso que está sendo descrito.

O significado do campo TTL é um limite de tempo em quanto tempo um RR pode ser mantido em um cache. Esse limite não se aplica a dados autorizados em zonas; ele também atingiu o tempo limite, mas pelas políticas de atualização para a zona O TTL é designado pelo administrador para a zona na qual os dados são originados Enquanto os TTLs curtos podem ser usados para minimizar o armazenamento em cache, e um TTL zero proíbe o armazenamento em cache, as realidades de desempenho da Internet sugerem que esses tempos devem estar na ordem de dias para o host típico.. Se uma mudança puder ser antecipada, o TTL poderá ser reduzido antes da mudança para minimizar a inconsistência durante a mudança e, em seguida, aumentado novamente para seu valor anterior após a mudança.

Os dados na seção RDATA de RRs são transportados como uma combinação de sequências binárias e nomes de domínio. Os nomes de domínio são frequentemente usados como "ponteiros" para outros dados no DNS.

Expressão textual de RRs

RRs são representados em forma binária nos pacotes do protocolo DNS e geralmente são representados em forma altamente codificada quando armazenados em um servidor de nomes ou resolvedor. Nos exemplos fornecidos no RFC 1034, um estilo semelhante ao usado em arquivos principais foi empregado para mostrar o conteúdo de RRs. Nesse formato, a maioria dos RRs são mostrados em uma única linha, embora as linhas de continuação sejam possíveis usando parênteses...

O início da linha dá ao proprietário do RR. Se uma linha começar com um espaço em branco, o proprietário será considerado igual ao do RR anterior. As linhas em branco geralmente são incluídas para capacidade de leitura

Seguindo o proprietário, listamos o TTL, tipo e classe do RR. Classe e tipo usam os mnemônicos definidos acima e TTL é um número inteiro antes do campo de tipo. Para evitar ambiguidade na análise, os mnemônicos de tipo e classe são disjuntos, os TTLs são inteiros e o tipo mnemônico é sempre o último. Os valores da classe IN e do TTL são muitas vezes omitidos de exemplos por razões de clareza.

Os dados de recurso ou seção RDATA do RR são fornecidos usando o conhecimento da representação típica dos dados.

Por exemplo, podemos mostrar os RRs transportados em uma mensagem como:

Item Descrição Valor

ISI.EDU.

MX

10 VENERA.ISI.EDU.

 

MX

10 VAXA.ISI.EDU

VENERA.ISI.EDU

A

128.9.0.32

 

A

10.1.0.52

VAXA.ISI.EDU

A

10.2.0.27

 

A

128.9.0.33

Os MX RRs têm uma seção RDATA que consiste em um número de 16 bits seguido por um nome de domínio. Os RRs de endereço usam um formato de endereço IP padrão para conter um endereço de Internet de 32 bits

Este exemplo mostra seis RRs, com dois RRs em cada um dos três nomes de domínios

Da mesma forma, podemos ver:

Item Descrição Valor

XX.LCS.MIT.EDU. IN

A

10.0.0.44

CH

A

MIT.EDU. 2420

Este exemplo mostra dois endereços para " XX.LCS.MIT.EDU, cada um de uma classe diferente.

Discussão de Registros MX

Conforme descrito acima, os servidores de domínio armazenam informações como uma série de registros de recursos, cada um dos quais contém uma parte específica de informações sobre um determinado nome de domínio (que geralmente é, mas nem sempre, um host)... A maneira mais simples de pensar em um RR é como um par de dados digitados, um nome de domínio correspondente com dados relevantes e armazenado com algumas informações de tipo adicionais para ajudar os sistemas a determinar quando o RR é relevante.

Os registros MX são usados para controlar a entrega de e-mail. Os dados especificados no registro são uma prioridade e um nome de domínio A prioridade controla a ordem na qual a entrega de email é tentada, com o número mais baixo primeiro Se duas prioridades forem as mesmas, um servidor será escolhido aleatoriamente Se nenhum servidor em uma determinada prioridade estiver respondendo, o agente de transporte de correio retornará para a próxima maior prioridade. Os números de prioridade não têm significado absoluto-eles são relevantes apenas para outros registros MX para esse nome de domínio. O nome de domínio fornecido é a máquina para a qual o correio é entregue. Deve ter um registro A associado-CNAME não é suficiente.

Para um determinado domínio, se houver um registro CNAME e um registro MX, o registro MX estará com erro e será ignorado.. Em vez disso, o correio é entregue ao servidor especificado no registro MX apontado pelo CNAME.

example.com.			IN		MX		10				mail.example.com.
							IN		MX		10				mail2.example.com.
							IN		MX		10				mail.backup.org.
mail.example.com.		IN		A		10.0.0.1		
mail2.example.com.	IN		A		10.0.0.2		

Por exemplo:

A entrega de correspondência é tentada para ' mail.example.com e ' mail2.example.com (em qualquer ordem) e, se nenhuma delas for bem-sucedida, a entrega para ' mail.backup.org é tentada.

Configurando TTLs

O tempo de vida do campo RR é um número inteiro de 32 bits representado em unidades de segundos e é usado principalmente por resolvedores quando armazenam RRs em cache. O TTL descreve quanto tempo um RR pode ser armazenado em cache antes de ser descartado. Os três tipos de TTL a seguir são usados no momento em um arquivo de zona.

Item Descrição

SOA

O último campo na SOA é o TTL de armazenamento em cache negativo Isso controla por quanto tempo outros servidores armazenarão em cache as respostas de nenhum domínio (NXDOMAIN) de você.

O tempo máximo para armazenamento em cache negativo é 3 horas (3h).

$TTL

A diretiva $TTL na parte superior do arquivo de zona (antes da SOA) fornece um TTL padrão para cada RR sem um conjunto específico de TTL.

TTLs RR

Cada RR pode ter um TTL como o segundo campo no RR, que controla por quanto tempo outros servidores podem armazená-lo.

Todos esses TTLs têm como padrão unidades de segundos, embora as unidades possam ser especificadas explicitamente, por exemplo, ' 1h30m.

Mapeamento inverso em IPv4

A resolução de nome reverso (ou seja, conversão do endereço IP para o nome) é obtida por meio do domínio in-addr.arpa e registros PTR. As entradas no domínio in-addr.arpa são feitas na ordem menos significativa, da esquerda para a direita. Essa é a ordem oposta à maneira como os endereços IP geralmente são gravados Assim, uma máquina com o endereço IP 10.1.2.3 teria um nome in-addr.arpa correspondente de 3.2.1.10.in-addr.arpa. Esse nome deve ter um registro de recurso de PTR cujo campo de dados seja o nome da máquina ou, opcionalmente, vários registros de PTR se a máquina tiver mais de um nome. Por exemplo, no domínio [ example.com ]:

Item Descrição

$ORIGIN

2.1.10.in-addr.arpa

3

IN PTR foo.example.com.

Nota: as linhas $ORIGIN nos exemplos são para fornecer contexto apenas aos exemplos-elas não aparecem necessariamente no uso real. Eles são usados apenas aqui para indicar que o exemplo é relativo à origem listada

Outras diretivas de arquivo de zona

O Master File Format foi inicialmente definido no RFC 1035 e posteriormente foi estendido. Enquanto o próprio Formato de Arquivo Principal é independente de classe, todos os registros em um Arquivo Principal devem ser da mesma classe...

As Diretivas do arquivo principal incluem $ORIGIN, $INCLUDEe $TTL.

A Diretiva $ORIGIN

Sintaxe: $ORIGIN ' domain-name [ ' comment ]

$ORIGIN configura o nome do domínio que é anexado a quaisquer registros não qualificados Quando uma zona é lida pela primeira vez, há um $ORIGIN implícito < ' zone-name> . O $ORIGIN atual é anexado ao domínio especificado no argumento $ORIGIN se ele não for absoluto.

$ORIGIN example.com.
WWW     CNAME   MAIN-SERVER

é equivalente a

WWW.EXAMPLE.COM. CNAME MAIN-SERVER.EXAMPLE.COM.

A Diretiva $INCLUDE

Sintaxe: $INCLUDE ' filename [ ' origin ] [ ' comment ]

Leia e processe o arquivo ' filename como se ele estivesse incluído no arquivo nesse momento. Se a origem for especificada, o arquivo será processado com $ORIGIN definido com esse valor; caso contrário, será usado o $ORIGIN atual.

A origem e o nome de domínio atual são revertidos para os valores que eles tinham antes de $INCLUDE quando o arquivo foi lido.

Nota: RFC 1035 especifica que a origem atual deve ser restaurada após um $INCLUDE, mas é silencioso se o nome de domínio atual também deve ser restaurado. BIND 9 restaura ambos. Isso poderia ser interpretado como um desvio do RFC 1035, um recurso ou ambos.

A Diretiva $TTL

Sintaxe: $TTL ' default-ttl [ ' comment ]

Configure o Time To Live (TTL) padrão para registros subsequentes com TTLs indefinidos.. Os TTLs válidos estão no intervalo de 0 a 2147483647 segundos

$TTL é definido no RFC 2308..

Extensão do arquivo principal BIND: a Diretiva $GENERATE

Sintaxe: $GENERATE ' range ' lhs ' type ' rhs [ ' comment ]

$GENERATE é usado para criar uma série de registros de recursos que diferem apenas um do outro por um agente iterativa $GENERATE pode ser usado para gerar facilmente os conjuntos de registros necessários para suportar delegações reversas sub /24 descritas em RFC 2317: Classless IN-ADDR.ARPA

$ORIGIN 0.0.192.IN-ADDR.ARPA.
$GENERATE 1-2 0 NS SERVER$.EXAMPLE.
$GENERATE 1-127 $ CNAME $.0

é equivalente a

0.0.0.192.IN-ADDR.ARPA NS SERVER1.EXAMPLE.
0.0.0.192.IN-ADDR.ARPA NS SERVER2.EXAMPLE.
1.0.0.192.IN-ADDR.ARPA CNAME 1.0.0.0.192.IN-ADDR.ARPA
2.0.0.192.IN-ADDR.ARPA CNAME 2.0.0.0.192.IN-ADDR.ARPA
...
127.0.0.192.IN-ADDR.ARPA CNAME 127.0.0.0.192.IN-ADDR.ARPA
.
Item Descrição

intervalo

Esta pode ser uma das duas formas: start-stop ou start-stop/step. Se o primeiro formulário for usado, a etapa será configurada como 1. Tudo de início, parada e etapa deve ser positivo.

lhs

lhs descreve o nome do proprietário dos registros de recursos a serem criados Quaisquer símbolos $ únicos no lado lhs são substituídos pelo valor do agente iterativo. Para obter um $na saída é necessário escapar o $ usando uma barra invertida \, por exemplo \ $. O $ pode, opcionalmente, ser seguido por modificadores que alteram o deslocamento do interator, largura do campo e base. Modificadores são introduzidos por um { imediatamente após o $ como ${offset[,width[,base]]}. Por exemplo, ${-20,3,d} que subtrai 20 do valor atual, imprime o resultado como um decimal em um campo zero preenchido com 3. Os formulários de saída disponíveis são decimais (d), octais (o) e hexadecimais (x ou X para maiúsculas). O modificador padrão é ${0,0,d}. Se o lhs não for absoluto, o $ORIGIN atual será anexado ao nome

Para compatibilidade com versões anteriores, €€ ainda é reconhecido como indicando um literal $na saída.

Tipo

Atualmente os únicos tipos suportados são PTR, CNAME, DNAME, A, AAAA e NS.

rso

rhs é um nome de domínio. Ele é processado da mesma forma que o lhs.

A diretiva $GENERATE é uma extensão BIND e não faz parte do formato de arquivo de zona padrão..

Arquivos

Tabela 11. arquivos
Item Descrição
/usr/samples/tcpip/named.conf Contém o arquivo de amostra " named.conf.

formato de arquivo named.conf para TCP/IP - BIND versão 9.18

Para obter informações sobre o formato de arquivo ' named.conf para o BIND versão 9.18, consulte named.conf - arquivo de configuração do named.