DNS e DHCP no CentOS 7 - Redes SMB

Índice geral da série: Redes de computadores para PMEs: introdução

Olá amigos!. Veremos neste artigo como podemos implementar o importante par de serviços para redes constituído pela DNS e DHCP no CentOS - Linux, especificamente em sua versão 7.2.

  • Alguns artigos sobre DNS referem-se ao fato de que a implementação deste serviço é um pouco obscura e difícil. Não concordo muito com essa afirmação. Eu prefiro dizer que é um pouco conceitual e que muitos de seus arquivos de configuração têm sintaxe complicada. Felizmente, temos ferramentas para verificar, passo a passo, a sintaxe de cada arquivo de configuração que modificamos. Portanto, tentaremos tornar a leitura deste post o mais agradável e divertida possível..

Para quem procura o básico de ambos os serviços, recomendamos fortemente que comece a sua pesquisa na Wikipedia, tanto em espanhol como em inglês. Não é menos verdade que os artigos em inglês são quase sempre mais completos e coerentes. Ainda assim, a Wikipedia é um bom ponto de partida.

Para aqueles de vocês que realmente desejam aprender sobre DNS e BIND, recomendamos a leitura do livro «OReilly - DNS e BIND 4ed" escrito por Paul albitz y Liu Cricket, ou uma edição posterior que certamente existe.

Já publicamos um artigo sobre o assunto intitulado «DNS e DHCP no openSUSE 13.2 Harlequin - Redes SME»Para amantes do ambiente gráfico. Porém, a partir de agora eles se depararão com artigos sobre este assunto - não sobre outros - escritos com muito uso do emulador de terminal ou console. Uau, no estilo clássico usado por administradores de sistema UNIX® / Linux.

Se você quiser saber mais sobre o sobrenome do título deste artigo «Redes PME»Você pode visitar a página neste blog«Redes PME: primeiro corte virtual«. Nele você encontrará links para muitos outros artigos publicados.

  • Após a instalação do Sistema Operacional CentOS 7 ser concluída com os pacotes que recomendamos, el diretório /usr/share/doc/bind-9.9.4/ Ele contém uma boa quantidade de documentação que recomendamos que você consulte antes de se aventurar em uma busca na Internet sem primeiro saber que, ao seu alcance e em sua própria casa, você pode encontrar o que procura.

Instalação do sistema básico

Dados gerais do domínio e servidor DNS

Nome do domínio: desdelinux.ventilador
Nome do servidor DNS: dns.desdelinux.ventilador
Direção IP 192.168.10.5
Máscara de sub-rede 255.255.255.0

instalação

Começamos com uma instalação nova ou limpa do sistema operacional CentOS 7, conforme indicado no artigo anterior «CentOS 7 Hypervisor I - Redes SMB«. Precisamos apenas fazer as seguintes alterações:

  • Em Imagen 22 «SELEÇÃO DE SOFTWARE«, Recomendamos escolher na coluna da esquerda«Ambiente de Base»A opção correspondente a«Servidor de infraestrutura«, Enquanto na coluna da direita«Plugins para ambiente selecionado»Selecione a caixa de seleção«Servidor de nome DNS«. Instalaremos o servidor DHCP mais tarde.
  • Vamos lembrar a declaração dos repositórios adicionais, conforme mostrado no Imagen 23, depois de definir o «REDE E NOME DA EQUIPE".
  • As imagens referentes às partições que iremos criar no nosso disco rígido são apenas indicadas como guias. Sinta-se à vontade para selecionar as partições de acordo com seus próprios critérios, prática e bom senso.
  • Finalmente, no Imagem 13 «REDE E NOME DA EQUIPE»Devemos alterar os valores de acordo com os parâmetros gerais do domínio declarado e do servidor DNS, sem esquecer de especificar o nome do host - neste caso «dns«- depois de concluída a configuração da rede. É positivo fazer sibilo -de outro host- para o endereço IP especificado depois que a rede estiver ativa:

DNS e DHCP no CentOS

Existem realmente poucas e muito óbvias mudanças que devemos fazer em relação ao artigo anterior.

Verificações e ajustes iniciais

Depois de instalar o sistema operacional, devemos revisar os seguintes arquivos pelo menos, e para isso iniciar uma sessão via SSH de nosso computador administrador de sistema.desdelinux.ventilador:

buzz @ sysadmin: ~ $ ssh 192.168.10.5
buzz@192.168.10.5's password: Último login: Sáb, 28 de janeiro 09:48:05 2017 de 192.168.10.1
[buzz @ dns ~] $

A operação acima pode demorar mais do que o normal e é principalmente devido ao fato de que ainda não temos um DNS na LAN. Verifique novamente mais tarde se o DNS está funcionando.

[buzz @ dns ~] $ cat / etc / hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 :: 1 localhost localhost.localdomain localhost6 localhost6.localdomain6

[buzz @ dns ~] $ cat / etc / hostname
dns

[buzz @ dns ~] $ cat / etc / sysconfig / network-scripts / ifcfg-eth0
TYPE=Ethernet
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=no
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=eth0
UUID=946f5ac9-238a-4a94-9acb-9e3458c680fe
DEVICE=eth0
ONBOOT=yes
IPADDR=192.168.10.5
PREFIX=24
GATEWAY=192.168.10.1
DNS1=127.0.0.1
DOMAIN=desdelinux.ventilador

[buzz @ dns ~] $ cat /etc/resolv.conf 
# Gerado pela pesquisa do NetworkManager desdelinuxServidor de nomes .fan 127.0.0.1

As principais configurações respondem às nossas seleções. Observe que mesmo em um servidor Red Hat 7 - CentOS 7, é configurado por padrão quando NetworkManager de forma que é ele quem gerencia as interfaces de rede, sejam elas com ou sem fio (WiFi), conexões VPN, conexões PPPoE e qualquer outra conexão de rede.

[buzz @ dns ~] $ sudo systemctl status networkmanager
[sudo] senha para buzz: ● networkmanager.service Carregado: não encontrado (Motivo: Não existe esse arquivo ou diretório) Ativo: inativo (morto)

[buzz @ dns ~] $ sudo systemctl status NetworkManager
● NetworkManager.service - Network Manager carregado: carregado (/usr/lib/systemd/system/NetworkManager.service; habilitado; Predefinição do fornecedor: habilitado) Ativo: ativo (em execução) desde sábado 2017-01-28 12:23:59 EST; 12min atrás PID principal: 705 (NetworkManager) CGroup: /system.slice/NetworkManager.service └─705 / usr / sbin / NetworkManager --no-daemon

Red Hat - CentOS também permite que você conecte e desconecte interfaces de rede usando os comandos clássicos se estiver e se cair. Vamos executar em um console de servidor:

[root @ dns ~] # ifdown eth0
Dispositivo 'eth0' desconectado com sucesso.

[root @ dns ~] # ifup eth0
Conexão ativada com sucesso (caminho ativo do D-Bus: / org / freedesktop / NetworkManager / ActiveConnection / 1)
  • Nós sugerimos não altere as configurações padrão que o CentOS 7 oferece em relação a NetworkManager.

Declaramos definitivamente os repositórios que vamos usar e atualizamos o sistema operacional se necessário:

[buzz @ dns ~] $ su Senha: [root @ dns buzz] # cd /etc/yum.repos.d/
[root @ dns yum.repos.d] # ls -l
total 28 -rw-r - r--. 1 root root 1664 9 de dezembro de 2015 CentOS-Base.repo -rw-r - r--. 1 root 1309 9 de dezembro de 2015 CentOS-CR.repo -rw-r - r--. 1 root 649 9 de dezembro de 2015 CentOS-Debuginfo.repo -rw-r - r--. 1 root root 290 9 de dezembro de 2015 CentOS-fasttrack.repo -rw-r - r--. 1 root 630 9 de dezembro de 2015 CentOS-Media.repo -rw-r - r--. 1 root 1331 9 de dezembro de 2015 CentOS-Sources.repo -rw-r - r--. 1 root 1952 9 de dezembro de 2015 CentOS-Vault.repo

É saudável ler o conteúdo dos arquivos de declaração originais dos repositórios recomendados pelo CentOS. As mudanças que fazemos aqui se devem ao fato de não termos acesso à Internet, e trabalhamos com repositórios locais baixados da WWW Village, por colegas que facilitam um pouco nossa vida. 😉

[root @ dns yum.repos.d] # mkdir original
[root @ dns yum.repos.d] # mv CentOS- * original /

[root @ dns yum.repos.d] # nano centos-repos.repo
[centos-base]
name=CentOS-$releasever
baseurl=http://10.10.10.1/repos/centos/7/base/
gpgcheck=0
enabled=1

[centos-updates]
name=CentOS-$releasever
baseurl=http://10.10.10.1/repos/centos/7/updates/x86_64/
gpgcheck=0
enabled=1

[root @ dns yum.repos.d] # yum clean all
Plugins carregados: mais rápido, espelho, langpacks Limpando repositórios: centos-base centos-updates Limpando tudo

[root @ dns yum.repos.d] # atualização yum
Plugins carregados: mais rápido, langpacks centos-base | 3.4 kB 00:00 centos-updates | 3.4 kB 00:00 (1/2): centos-base / primary_db | 5.3 MB 00:00 (2/2): centos-updates / primary_db | 9.1 MB 00:00 Determinando espelhos mais rápidos Nenhum pacote marcado para atualização

A mensagem «Não (existem) pacotes marcados para atualização» - «Nenhum pacote marcado para atualização»Indica que, ao declarar os repositórios mais atualizados disponíveis para nós durante a instalação, precisamente os pacotes mais atuais foram instalados.

Sobre o contexto SELinux e o firewall

Vamos focar este artigo - fundamentalmente - na implementação de serviços DNS e DHCP, que é seu objetivo principal.

Se algum leitor selecionou uma Política de Segurança durante o processo de instalação, conforme indicado no Imagen 06 do artigo de referência «CentOS 7 Hypervisor I - Redes SMB»Usado para a instalação deste servidor DNS - DHCP, e você descobrir que não sabe como configurar corretamente o SELinux e o Firewall CentOS, sugerimos que execute o seguinte:

Modifique o arquivo / etc / sysconfig / selinux e mudar SELINUX = aplicação por SELINUX = desativar

[root @ dns ~] # nano / etc / sysconfig / selinux
# Este arquivo controla o estado do SELinux no sistema. # SELINUX = pode assumir um destes três valores: # enforcing - a política de segurança do SELinux é aplicada. # permissive - SELinux imprime avisos em vez de impor. # disabled - Nenhuma política SELinux é carregada.
SELINUX = desativado
# SELINUXTYPE = pode assumir um de três valores: # direcionado - processos direcionados são protegidos, # mínimo - modificação da política direcionada. Apenas os processos selecionados são pr $ # mls - Proteção de segurança de vários níveis. SELINUXTYPE = alvo

Em seguida, execute os seguintes comandos

[root @ dns ~] # setenforce 0
[root @ dns ~] # service firewalld stop
Redirecionando para / bin / systemctl stop firewalld.service

[root @ dns ~] # systemctl disable firewalld
Link simbólico removido /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service. Link simbólico removido /etc/systemd/system/basic.target.wants/firewalld.service.

Se você estiver implementando um servidor DNS voltado para a Internet, NÃO deve fazer o acima, mas configurar o contexto SELinux e o Firewall corretamente. Vejo "Configuração de servidores com GNU / Linux, do autor Joel Barrios Dueñas" ou a própria documentação do CentOS - Red Hat

Nós configuramos o BIND - nomeado

  • El diretório /usr/share/doc/bind-9.9.4/ Ele contém uma boa quantidade de documentação que recomendamos que você consulte antes de se aventurar em uma pesquisa na Internet, sem primeiro saber que, na ponta dos dedos e em sua própria casa, você pode encontrar o que procura

Em muitas distribuições, o serviço DNS instalado por meio do pacote BIND é chamado nomeado (Nome Daemon) No CentOS 7 é instalado desabilitado por padrão, de acordo com a saída do seguinte comando, onde afirma que seu status é «inválido«, E que este estado é predefinido por seu« vendedor »- predefinição do fornecedor. Para o registro, BIND é Software Livre.

Ativando o serviço nomeado

[root @ dns ~] # status systemctl nomeado
● named.service - Berkeley Internet Name Domain (DNS) Carregado: carregado (/usr/lib/systemd/system/named.service; inválido; Predefinição do fornecedor: desativado) Ativo: inativo (morto)

[root @ dns ~] # systemctl enable nomeado
Link simbólico criado de /etc/systemd/system/multi-user.target.wants/named.service para /usr/lib/systemd/system/named.service.

[root @ dns ~] # systemctl start nomeado

[root @ dns ~] # status systemctl nomeado
● named.service - Berkeley Internet Name Domain (DNS) Carregado: carregado (/usr/lib/systemd/system/named.service; habilitado; Predefinição do fornecedor: desativado)
   Ativo: ativo (em execução) desde sáb 2017-01-28 13:22:38 EST; 5min atrás Processo: 1990 ExecStart = / usr / sbin / named -u nomeado $ OPTIONS (code = exited, status = 0 / SUCCESS) Processo: 1988 ExecStartPre = / bin / bash -c if [! "$ DISABLE_ZONE_CHECKING" == "sim"]; então / usr / sbin / named-checkconf -z /etc/named.conf; else echo "A verificação de arquivos de zona está desabilitada"; fi (code = exited, status = 0 / SUCCESS) PID principal: 1993 (nomeado) CGroup: /system.slice/named.service └─1993 / usr / sbin / named -u nomeado 28 de janeiro 13:22:45 dns nomeado [1993]: erro (rede inacessível) resolvendo './NS/IN': 2001: 500: 2f :: f # 53 28 de janeiro 13:22:47 dns chamado [1993]: erro (rede inacessível) resolvendo './ DNSKEY / IN ': 2001: 500: 3 :: 42 # 53 28 de janeiro 13:22:47 dns chamado [1993]: erro (rede inacessível) resolvendo' ./NS/IN ': 2001: 500: 3 :: 42 # 53 28 de janeiro 13:22:47 dns denominado [1993]: erro (rede inacessível) resolvendo './DNSKEY/IN': 2001: 500: 2d :: d # 53 28 de janeiro 13:22:47 dns denominado [1993 ]: erro (rede inacessível) resolvendo './NS/IN': 2001: 500: 2d :: d # 53 28 de janeiro 13:22:47 dns chamado [1993]: erro (rede inacessível) resolvendo './DNSKEY/ IN ': 2001: dc3 :: 35 # 53 28 de janeiro 13:22:47 dns chamado [1993]: erro (rede inacessível) resolvendo' ./NS/IN ': 2001: dc3 :: 35 # 53 28 de janeiro 13: 22:47 dns nomeado [1993]: erro (rede inacessível) resolvendo './DNSKEY/IN': 2001: 7fe :: 53 # 53 Jan 28 13:22:47 dns nomeado [1993]: erro (rede inacessível) res resolvendo './NS/IN': 2001: 7fe :: 53 # 53 Jan 28 13:22:48 dns nomeado [1993]: managed-keys-zone: Incapaz de buscar o conjunto DNSKEY '.': tempo esgotado

[root @ dns ~] # reinício systemctl nomeado

[root @ dns ~] # status systemctl nomeado
● named.service - Berkeley Internet Name Domain (DNS) Carregado: carregado (/usr/lib/systemd/system/named.service; ativado; predefinição do fornecedor: desativado)
   Ativo: ativo (em execução) desde sáb 2017-01-28 13:29:41 EST; 1s atrás Processo: 1449 ExecStop = / bin / sh -c / usr / sbin / rndc stop> / dev / null 2> & 1 || / bin / kill -TERM $ MAINPID (code = exited, status = 0 / SUCCESS) Processo: 1460 ExecStart = / usr / sbin / named -u named $ OPTIONS (code = exited, status = 0 / SUCCESS) Processo: 1457 ExecStartPre = / bin / bash -c if [! "$ DISABLE_ZONE_CHECKING" == "sim"]; então / usr / sbin / named-checkconf -z /etc/named.conf; else echo "A verificação de arquivos de zona está desabilitada"; fi (code = exited, status = 0 / SUCCESS) PID principal: 1463 (nomeado) CGroup: /system.slice/named.service └─1463 / usr / sbin / named -u nomeado 28 de janeiro 13:29:41 dns nomeado [1463]: managed-keys-zone: o arquivo de diário está desatualizado: removendo o arquivo de diário 28 de janeiro 13:29:41 dns chamado [1463]: managed-keys-zone: carregado serial 2 de janeiro 28:13:29 dns nomeado [41]: zona 1463.in-addr.arpa/IN: serial carregada 0 0 de janeiro 28:13:29 dns nomeada [41]: zona localhost.localdomain / IN: serial carregada 1463 0 de janeiro 28:13:29 dns nomeado [41]: zona 1463.in-addr.arpa/IN: serial carregada 1.0.0.127 0 de janeiro 28:13:29 dns nomeado [41]: zona 1463 .1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa / IN: serial carregada 0 28 de janeiro 13:29:41 dns nomeado [1463]: zona localhost / IN: serial carregada 0 28 de janeiro 13 : 29: 41 dns nomeado [1463]: todas as zonas carregadas Jan 28 13:29:41 dns nomeado [1463]: executando Jan 28 13:29:41 dns systemd [1]: Iniciado Berkeley Internet Name Domain (DNS).

Depois de habilitarmos o serviço nomeado e o iniciamos pela primeira vez, a saída do comando status systemctl nomeado mostra erros. Quando reiniciarmos o serviço abaixo, o nomeado cria todos os arquivos de configuração que, por padrão, são necessários para seu correto funcionamento. Portanto, quando executamos o comando novamente status systemctl nomeado mais nenhum erro é mostrado.

  • Caro, caro e exigente leitor: se você quiser saber -pelo menos- que caminho leva ao fim da toca do coelho, leia com calma as saídas detalhadas de cada comando. 😉 Certamente o artigo parecerá um pouco longo, mas não negue que ganha em explicação e clareza.

Modificamos o arquivo /etc/named.conf

Muitos comentários de leitores expressam -Eu não digo isso- a mania que os mantenedores de diferentes distribuições Linux têm de colocar arquivos de configuração do sistema em pastas com nomes diferentes dependendo da distro. Você tem razão. Mas o que nós, os simples usuários que usam essas distribuições, podemos fazer? Adaptar! 😉

A propósito, no FreeBSD, clone UNIX® «The Origin», o arquivo está em /usr/local/etc/namedb/named.conf; enquanto no Debian, além de dividir em quatro arquivos named.conf, named.conf.options, named.conf.default-zones e named.conf.local, está na pasta / etc / bind /. Quem quiser saber onde o openSUSE o coloca, leia «DNS e DHCP no openSUSE 13.2 Harlequin - Redes SME«. Os leitores estão certos! 😉

E como sempre fazemos: antes de modificar qualquer coisa, salvamos o arquivo de configuração original com outro nome.

[root @ dns ~] # cp /etc/named.conf /etc/named.conf.original

Para tornar a vida mais fácil, em vez de gerar a chave TSIG para atualizações dinâmicas de DNS por DHCP, copiamos a mesma chave rndc.key como dhcp.key.

[root @ dns ~] # cp /etc/rndc.key /etc/dhcp.key

[root @ dns ~] # nano /etc/dhcp.key
chave "dhcp-key" {algoritmo hmac-md5; segredo "OI7Vs + TO83L7ghUm2xNVKg =="; };

Para que ele nomeado pode ler o arquivo recém-copiado, modificamos seu grupo de proprietários:

[root @ dns ~] # chown root: named /etc/dhcp.key [root @ dns ~] # ls -l /etc/rndc.key /etc/dhcp.key -rw-r -----. 1 raiz chamada 77 de 28 de janeiro às 16:36 PM /etc/dhcp.key -rw-r -----. 1 raiz chamada 77, 28 de janeiro, 13:22 /etc/rndc.key

Pequenos detalhes como o anterior são o que podem nos deixar loucos tentando descobrir, agora ... onde está o problema ...? com mais alguns adjetivos, que não escrevemos por respeito ao Respeitável.

Agora, se - finalmente! - modificarmos o arquivo /etc/named.conf. As alterações ou acréscimos que fizemos em relação ao original estão em negrito. Dê uma boa olhada em quão poucos.

[root @ dns ~] # nano /etc/named.conf
// // named.conf // // Fornecido pelo pacote bind da Red Hat para configurar o servidor ISC BIND named (8) DNS // como um servidor de nomes de cache apenas (apenas como um resolvedor DNS localhost). // // Veja / usr / share / doc / bind * / sample / para exemplos de arquivos de configuração nomeados. //

// Lista de controle de acesso que declara quais redes poderão consultar
// meu servidor nomeado
acl atolado {
 127.0.0.0 / 8;
 192.168.10.0 / 24;
};

opções {
 // Declaro que o daemon nomeado também escuta a interface
 // eth0 que tem o IP: 192.168.10.5
    porta de escuta 53 {127.0.0.1; 192.168.10.5; };
    porta 6 do listen-on-v53 {:: 1; }; diretório "/ var / named"; arquivo de despejo "/var/named/data/cache_dump.db"; arquivo de estatísticas "/var/named/data/named_stats.txt"; memstatistics-file "/var/named/data/named_mem_stats.txt";

 // Instrução de encaminhadores
 // encaminhadores {
 // 0.0.0.0;
 // 1.1.1.1;
 //};
    // encaminhar primeiro;

    // Eu só permito consultas à minha ACL atolada
    allow-query     { mired; };

    // Para comprobar con el comando dig desdelinux.fan axfr
    // desde la estación de trabajo del SysAdmin y el localhost solamente
    // No tenemos servidores DNS esclavos. No lo necesitamos... hasta ahora.
 allow-transfer {localhost; 192.168.10.1; };

    / * - Se você estiver construindo um servidor DNS AUTORITATIVO, NÃO habilite a recursão. - Se você estiver construindo um servidor DNS RECURSIVO (cache), será necessário habilitar a recursão. - Se o seu servidor DNS recursivo tiver um endereço IP público, você DEVE habilitar o controle de acesso para limitar as consultas aos seus usuários legítimos. Não fazer isso fará com que seu servidor se torne parte de ataques de amplificação de DNS em grande escala. Implementar BCP38 em sua rede reduziria muito essa superfície de ataque * /
    // Queremos um servidor AUTHORITY para a nossa LAN - SME
    recursão não;

    habilitar dnssec sim; validação dnssec sim; / * Caminho para a chave ISC DLV * / bindkeys-file "/etc/named.iscdlv.key"; diretório de chaves gerenciadas "/ var / named / dynamic"; arquivo pid "/run/named/named.pid"; session-keyfile "/run/named/session.key"; }; registrando {canal default_debug {arquivo "data / named.run"; gravidade dinâmica; }; }; zona "." IN {sugestão de tipo; arquivo "named.ca"; }; incluem "/etc/named.rfc1912.zones"; incluem "/etc/named.root.key";

// Incluímos a chave TSIG para atualizações dinâmicas de DNS // por DHCP
incluem "/etc/dhcp.key";

// Declaração do nome, tipo, localização e permissão de atualização
// das zonas de registros DNS // Ambas as zonas são MESTRES
zone "desdelinux.fan" {
 tipo mestre;
 file "dynamic/db.desdelinux.fan";
 allow-update {key dhcp-key; };
};

zona "10.168.192.in-addr.arpa" {
 tipo mestre;
 arquivo "dynamic / db.10.168.192.in-addr.arpa";
 allow-update {key dhcp-key; };
};

Nós verificamos a sintaxe

[root @ dns ~] # named-checkconf 
[root @ dns ~] #

Como o comando acima não retorna nada, a sintaxe está OK. No entanto, se executarmos o mesmo comando, mas com a opção -z, a saída será:

[root @ dns ~] # named-checkconf -z
zone localhost.localdomain/IN: loaded serial 0
zone localhost/IN: loaded serial 0
zone 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa/IN: loaded serial 0
zone 1.0.0.127.in-addr.arpa/IN: loaded serial 0
zone 0.in-addr.arpa/IN: loaded serial 0
zone desdelinux.fan/IN: loading from master file dynamic/db.desdelinux.fan failed: file not found
zone desdelinux.fan/IN: not loaded due to errors.
_default/desdelinux.fan/IN: file not found
zone 10.168.192.in-addr.arpa/IN: loading from master file dynamic/db.10.168.192.in-addr.arpa failed: file not found
zone 10.168.192.in-addr.arpa/IN: not loaded due to errors.
_default/10.168.192.in-addr.arpa/IN: file not found

É claro que são erros que ocorrem porque ainda não criamos as zonas de registro DNS para nosso domínio.

  • Para mais informações sobre o comando name-checkconf, corre homem chamado-checkconf, antes de procurar qualquer outra informação na Internet. Garanto que economizará muito tempo.

Creamos el archivo de la Zona Directa desdelinux.ventilador

... não sem um pouco de teoria primeiro. 😉

Como um modelo para criar o arquivo de dados da zona, podemos pegar o /var/nomeado/nomeado.vazio, Ou /usr/share/doc/bind-9.9.4/sample/var/named/named.empty. Ambos são idênticos.

[root @ dns ~] # cat /var/named/named.empty 
$ TTL 3H @ IN SOA @ rname.invalid. (0; série 1D; atualizar 1H; repetir 1W; expirar 3H); tempo mínimo ou negativo de cache para viver NS @ A 127.0.0.1 AAAA :: 1

Tempo de vida - Tempo para viver TTL Registro SOA

Vamos usar um parêntese para explicar o TTL - Tempo de vida do registro SOA - Início da Autoridade de uma Zona Mestre. É interessante saber seus significados para quando queremos modificar algum de seus valores.

$ TTL: Tempo de vida - Tempo de Viver para todos os registros no arquivo que seguem a declaração (mas precedem qualquer outra declaração $ TTL) e não têm uma declaração TTL explícita.

serial: Número de série dos dados da zona. Cada vez que modificamos manualmente um registro DNS em uma zona, devemos aumentar esse número em 1, especialmente se tivermos servidores escravos ou secundários. Cada vez que um servidor DNS secundário ou escravo contata seu servidor mestre, ele pede o número de série dos dados do mestre. Se o número de série do escravo for menor, então os dados para aquela zona no servidor escravo estão desatualizados e o escravo executa uma transferência de zona para se atualizar.

refrescar: Informa ao servidor escravo o intervalo de tempo em que deve verificar se seus dados estão atualizados em relação ao mestre.

tentar novamente: Se o servidor mestre não estiver disponível - porque ficou doente, digamos - para o escravo após um intervalo de tempo refrescar, tentar novamente Diz ao escravo quanto tempo deve esperar antes de tentar entrar em contato com seu mestre novamente.

expirar: Se o escravo não puder contatar seu mestre por um intervalo de tempo expirarEntão, se a relação da zona escravo-mestre foi danificada e o servidor escravo não tem escolha a não ser expirar a zona em questão. A expiração de uma zona por um servidor DNS escravo significa que ele parará de responder às consultas DNS relacionadas a essa zona, porque os dados disponíveis são muito antigos para serem úteis.

  • O exposto acima nos ensina indiretamente e carregado de grande senso comum - o menos comum dos sentidos - que se não precisamos de servidores DNS escravos para o funcionamento de nosso SME, não os implementamos, a menos que sejam estritamente necessários. Vamos sempre tentar ir do simples ao complexo.

mínimo: Em versões anteriores a LIGAÇÃO 8.2, o último registro SOA Também indica a vida útil padrão - Tempo padrão de vida, e tempo de vida do cache negativo - Tempo de cache negativo para viver para a Zona. Desta vez, se refere a todas as respostas negativas fornecidas pelo servidor autorizado para a Zona.

Archivo de zona /var/named/dynamic/db.desdelinux.ventilador

[root@dns ~]# nano /var/named/dynamic/db.desdelinux.ventilador
$TTL 3H
@   IN SOA  dns.desdelinux.fan. root.dns.desdelinux.fan. (
                                        1   ; serial
                                        1D  ; refresh
                                        1H  ; retry
                                        1W  ; expire
                                        3H )    ; minimum or
                                                ; Negative caching time to live
;
@               IN  NS  dns.desdelinux.fan.
@               IN  MX  10 mail.desdelinux.fan.
@       IN  TXT "DesdeLinux, su Blog dedicado al Software Libre"
;
sysadmin        IN  A   192.168.10.1
ad-dc           IN  A   192.168.10.3
fileserver  IN  A   192.168.10.4
dns             IN  A   192.168.10.5
proxyweb        IN  A   192.168.10.6
blog            IN  A   192.168.10.7
ftpserver   IN  A   192.168.10.8
mail            IN  A   192.168.10.9

Comprobamos /var/named/dynamic/db.desdelinux.ventilador

[root@dns ~]# named-checkzone desdelinux.fan /var/named/dynamic/db.desdelinux.ventilador
zona desdelinux.fan/IN: loaded serial 1
OK

Criamos o arquivo de zona reversa 10.168.192.in-addr.arpa

  • O registro SOA desta zona é o mesmo da Direct Zone sem considerar o registro MX..
[root @ dns ~] # nano /var/named/dynamic/db.10.168.192.in-addr.arpa
$TTL 3H
@   IN SOA  dns.desdelinux.fan. root.dns.desdelinux.fan. (
                                        1   ; serial
                                        1D  ; refresh
                                        1H  ; retry
                                        1W  ; expire
                                        3H )    ; minimum or
                                                ; Negative caching time to live
;
@               IN  NS  dns.desdelinux.fan.
;
1   IN  PTR     sysadmin.desdelinux.fan.
3   IN  PTR     ad-dc.desdelinux.fan.
4   IN  PTR     fileserver.desdelinux.fan.
5   IN  PTR     dns.desdelinux.fan.
6   IN  PTR     proxyweb.desdelinux.fan.
7   IN  PTR     blog.desdelinux.fan.
8   IN  PTR     ftpserver.desdelinux.fan.
9   IN  PTR     mail.desdelinux.fã.

[root @ dns ~] # named-checkzone 10.168.192.in-addr.arpa /var/named/dynamic/db.10.168.192.in-addr.arpa 
zona 10.168.192.in-addr.arpa/IN: serial carregada 1 OK

Antes de reiniciar o named verificamos sua configuração

  • Até que tenhamos certeza de que os arquivos de configuração do named.conf e seus arquivos de zona não estejam configurados corretamente, sugerimos não reiniciar o daemon nomeado. Se fizermos isso e depois modificarmos um arquivo de zona, devemos aumentar o número de série da zona modificada em 1.
  • Vejamos o "." no final do domínio e nomes de host.
[root @ dns ~] # named-checkconf 
[root @ dns ~] # named-checkconf -z
zone localhost.localdomain/IN: loaded serial 0
zone localhost/IN: loaded serial 0
zone 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa/IN: loaded serial 0
zone 1.0.0.127.in-addr.arpa/IN: loaded serial 0
zone 0.in-addr.arpa/IN: loaded serial 0
zone desdelinux.fan/IN: loaded serial 1
zone 10.168.192.in-addr.arpa/IN: loaded serial 1

Toda a configuração nomeada atual

Para obter clareza, e embora o artigo se torne longo, fornecemos a saída completa do comando nomeado-checkconf -zp:

[root @ dns ~] # named-checkconf -zp
zone localhost.localdomain/IN: loaded serial 0
zone localhost/IN: loaded serial 0
zone 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa/IN: loaded serial 0
zone 1.0.0.127.in-addr.arpa/IN: loaded serial 0
zone 0.in-addr.arpa/IN: loaded serial 0
zone desdelinux.fan/IN: loaded serial 1
zone 10.168.192.in-addr.arpa/IN: loaded serial 1
options {
    bindkeys-file "/etc/named.iscdlv.key";
    session-keyfile "/run/named/session.key";
    directory "/var/named";
    dump-file "/var/named/data/cache_dump.db";
    listen-on port 53 {
        127.0.0.1/32;
        192.168.10.5/32;
    };
    listen-on-v6 port 53 {
        ::1/128;
    };
    managed-keys-directory "/var/named/dynamic";
    memstatistics-file "/var/named/data/named_mem_stats.txt";
    pid-file "/run/named/named.pid";
    statistics-file "/var/named/data/named_stats.txt";
    dnssec-enable yes;
    dnssec-validation yes;
    recursion no;
    allow-query {
        "mired";
    };
    allow-transfer {
        192.168.10.1/32;
    };
};
acl "mired" {
    127.0.0.0/8;
    192.168.10.0/24;
};
logging {
    channel "default_debug" {
        file "data/named.run";
        severity dynamic;
    };
};
key "dhcp-key" {
    algorithm "hmac-md5";
    secret "OI7Vs+TO83L7ghUm2xNVKg==";
};
zone "." IN {
    type hint;
    file "named.ca";
};
zone "localhost.localdomain" IN {
    type master;
    file "named.localhost";
    allow-update {
        "none";
    };
};
zone "localhost" IN {
    type master;
    file "named.localhost";
    allow-update {
        "none";
    };
};
zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN {
    type master;
    file "named.loopback";
    allow-update {
        "none";
    };
};
zone "1.0.0.127.in-addr.arpa" IN {
    type master;
    file "named.loopback";
    allow-update {
        "none";
    };
};
zone "0.in-addr.arpa" IN {
    type master;
    file "named.empty";
    allow-update {
        "none";
    };
};
zone "desdelinux.fan" {
    type master;
    file "dynamic/db.desdelinux.fan";
    allow-update {
        key "dhcp-key";
    };
};
zone "10.168.192.in-addr.arpa" {
    type master;
    file "dynamic/db.10.168.192.in-addr.arpa";
    allow-update {
        key "dhcp-key";
    };
};
managed-keys {
    "." initial-key 257 3 8 "AwEAAagAIKlVZrpC6Ia7gEzahOR+9W29euxhJhVVLOyQbSEW0O8gcCjF FVQUTf6v58fLjwBd0YI0EzrAcQqBGCzh/RStIoO8g0NfnfL2MTJRkxoX bfDaUeVPQuYEhg37NZWAJQ9VnMVDxP/VHL496M/QZxkjf5/Efucp2gaD X6RS6CXpoY68LsvPVjR0ZSwzz1apAzvN9dlzEheX7ICJBBtuA6G3LQpz W5hOA2hzCTMjJPJ8LbqF6dsV6DoBQzgul0sGIcGOYl7OyQdXfZ57relS Qageu+ipAdTTJ25AsRTAoub8ONGcLmqrAmRLKBP1dfwhYB4N7knNnulq QxA+Uk1ihz0=";
};
  • Seguindo o procedimento de modificação do nomeado.conf De acordo com nossas necessidades e verificar, e criar cada arquivo de zona e verificar, duvidamos que teremos que enfrentar grandes problemas de configuração. No final percebemos que é um jogo de menino, com muitos conceitos e sintaxe complicada.

As verificações retornaram resultados satisfatórios, portanto podemos reiniciar o BIND - nomeado.

Reiniciamos o nomeado e verificamos seu status

[root @ dns ~] # systemctl restart named.service
[root @ dns ~] # systemctl status named.service

Se obtivermos algum tipo de erro na saída do último comando, devemos reiniciar o nomeado.serviço e verifique novamente o seu estado. Se os erros desaparecerem, o serviço foi iniciado com sucesso. Caso contrário, devemos realizar uma revisão completa de todos os arquivos modificados e criados e repetir o procedimento.

A saída correta do status deve ser:

[root @ dns ~] # systemctl status named.service
● named.service - Berkeley Internet Name Domain (DNS) Carregado: carregado (/usr/lib/systemd/system/named.service; ativado; predefinição do fornecedor: desativado) Ativo: ativo (em execução) since dom 2017-01-29 10:05:32 EST; 2min 57s ago
  Process: 1777 ExecStop=/bin/sh -c /usr/sbin/rndc stop > /dev/null 2>&1 || /bin/kill -TERM $MAINPID (code=exited, status=0/SUCCESS)
  Process: 1788 ExecStart=/usr/sbin/named -u named $OPTIONS (code=exited, status=0/SUCCESS)
  Process: 1786 ExecStartPre=/bin/bash -c if [ ! "$DISABLE_ZONE_CHECKING" == "yes" ]; then /usr/sbin/named-checkconf -z /etc/named.conf; else echo "Checking of zone files is disabled"; fi (code=exited, status=0/SUCCESS)
 Main PID: 1791 (named)
   CGroup: /system.slice/named.service
           └─1791 /usr/sbin/named -u named

ene 29 10:05:32 dns named[1791]: zone 1.0.0.127.in-addr.arpa/IN: loaded serial 0
ene 29 10:05:32 dns named[1791]: zone 10.168.192.in-addr.arpa/IN: loaded serial 1
ene 29 10:05:32 dns named[1791]: zone 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa/IN: loaded serial 0
ene 29 10:05:32 dns named[1791]: zone desdelinux.fan/IN: loaded serial 1
ene 29 10:05:32 dns named[1791]: zone localhost.localdomain/IN: loaded serial 0
ene 29 10:05:32 dns named[1791]: zone localhost/IN: loaded serial 0
ene 29 10:05:32 dns named[1791]: todas as zonas carregadas
29 de janeiro 10:05:32 dns chamado [1791]: corrida
29 de janeiro 10:05:32 dns systemd [1]: Berkeley Internet Name Domain (DNS) iniciado. 29 de janeiro 10:05:32 dns chamado [1791]: zona 10.168.192.in-addr.arpa/IN: envio de notificações (série 1)

Cheques

As verificações podem ser executadas no mesmo servidor ou em uma máquina conectada à LAN. Preferimos fazê-los da equipe administrador de sistema.desdelinux.ventilador para a qual demos permissão expressa para fazer transferências de zona. O arquivo / Etc / resolv.conf dessa equipe é o seguinte:

buzz @ sysadmin: ~ $ cat /etc/resolv.conf 
# Gerado pela pesquisa do NetworkManager desdelinuxServidor de nomes .fan 192.168.10.5

buzz@sysadmin:~$ dig desdelinux.fan axfr
; <<>> DiG 9.9.5-9+deb8u1-Debian <<>> desdelinux.fan axfr ;; opções globais: +cmd
desdelinux.fan.     10800   IN  SOA dns.desdelinux.fan. root.dns.desdelinux.fã. 1 86400 3600 604800 10800
desdelinux.fan.     10800   IN  NS  dns.desdelinux.fã.
desdelinux.fã. 10800 EM MX 10 e-mail.desdelinux.fã.
desdelinux.fan.     10800   IN  TXT "DesdeLinux, su Blog dedicado al Software Libre"
ad-dc.desdelinux.fan.   10800   IN  A   192.168.10.3
blog.desdelinux.fan.    10800   IN  A   192.168.10.7
dns.desdelinux.fan. 10800   IN  A   192.168.10.5
fileserver.desdelinux.fan. 10800 IN A   192.168.10.4
ftpserver.desdelinux.fan. 10800 IN  A   192.168.10.8
mail.desdelinux.fan.    10800   IN  A   192.168.10.9
proxyweb.desdelinux.fan. 10800  IN  A   192.168.10.6
sysadmin.desdelinux.fan. 10800  IN  A   192.168.10.1
desdelinux.fan.     10800   IN  SOA dns.desdelinux.fan. root.dns.desdelinux.fan. 1 86400 3600 604800 10800
;; Query time: 0 msec
;; SERVER: 192.168.10.5#53(192.168.10.5)
;; WHEN: Sun Jan 29 11:44:18 EST 2017
;; XFR size: 13 records (messages 1, bytes 385)

buzz @ sysadmin: ~ $ dig 10.168.192.in-addr.arpa axfr
; <<>> DiG 9.9.5-9+deb8u1-Debian <<>> 10.168.192.in-addr.arpa axfr
;; global options: +cmd
10.168.192.in-addr.arpa. 10800  IN  SOA dns.desdelinux.fan.10.168.192.in-addr.arpa. root.dns.desdelinux.fan.10.168.192.in-addr.arpa. 1 86400 3600 604800 10800
10.168.192.in-addr.arpa. 10800  IN  NS  dns.desdelinux.fan.
1.10.168.192.in-addr.arpa. 10800 IN PTR sysadmin.desdelinux.fan.
3.10.168.192.in-addr.arpa. 10800 IN PTR ad-dc.desdelinux.fan.
4.10.168.192.in-addr.arpa. 10800 IN PTR fileserver.desdelinux.fan.
5.10.168.192.in-addr.arpa. 10800 IN PTR dns.desdelinux.fan.
6.10.168.192.in-addr.arpa. 10800 IN PTR proxyweb.desdelinux.fan.
7.10.168.192.in-addr.arpa. 10800 IN PTR blog.desdelinux.fan.
8.10.168.192.in-addr.arpa. 10800 IN PTR ftpserver.desdelinux.fan.
9.10.168.192.in-addr.arpa. 10800 IN PTR mail.desdelinux.fan.
10.168.192.in-addr.arpa. 10800  IN  SOA dns.desdelinux.fan.10.168.192.in-addr.arpa. root.dns.desdelinux.fan.10.168.192.in-addr.arpa. 1 86400 3600 604800 10800
;; Query time: 0 msec
;; SERVER: 192.168.10.5#53(192.168.10.5)
;; WHEN: Sun Jan 29 11:44:57 EST 2017
;; XFR size: 11 records (messages 1, bytes 352)

buzz@sysadmin:~$ dig IN SOA desdelinux.ventilador
buzz@sysadmin:~$ dig IN MX desdelinux.fan
buzz@sysadmin:~$ dig IN TXT desdelinux.ventilador
buzz @ sysadmin: ~ $ host dns
DNS.desdelinux.fan tem endereço 192.168.10.5
buzz @ sysadmin: ~ $ host sysadmin
administrador de sistema.desdelinux.fan has address 192.168.10.1

... Y cualquier otra comprobación que necesitemos
  • Até agora, temos a base para um servidor DNS em nossa rede SME. Esperamos que você tenha gostado de todo o procedimento, que foi bem simples, né? 😉

Nós instalamos e configuramos DHCP

[root @ dns ~] # yum install dhcp
Plugins carregados: mais rápido, langpacks centos-base | 3.4 kB 00:00:00 centos-updates | 3.4 kB 00:00:00 Carregando velocidades de espelho do arquivo host em cache Resolvendo dependências -> Executando teste de transação ---> Pacote dhcp.x86_64 12: 4.2.5-42.el7.centos deve ser instalado -> Resolvendo dependências Dependências resolvidas encerradas =================================================== ======================================================= ========================================= Tamanho do repositório da versão da arquitetura do pacote =========== ======================================================= ======================================================= ======================== Instalando: dhcp x86_64 12: 4.2.5-42.el7.centos-base 511k Resumo da transação ==== ==================================================== ==================================================== ================================ Instalar 1 pacote Tamanho total de download: 511k Tamanho instalado: 1.4 M Isso está ok [y / d / N]: y Baixando pacotes: dhcp-4.2.5-42.el7.centos.x86_64.rpm | 511 kB 00:00:00 Executando verificação de transação Executando teste de transação Teste de transação bem-sucedido Executando transação Instalação: 12: dhcp-4.2.5-42.el7.centos.x86_64 1/1 Verificação: 12: dhcp-4.2.5-42. el7.centos.x86_64 1/1 Instalado: dhcp.x86_64 12: 4.2.5-42.el7.centos Feito!

[root @ dns ~] # nano /etc/dhcp/dhcpd.conf
#
# DHCP Server Configuration file.
#   see /usr/share/doc/dhcp*/dhcpd.conf.example
#   see dhcpd.conf(5) man page
#
ddns-update-style interim;
ddns-updates on;
ddns-domainname "desdelinux.fan.";
ddns-rev-domainname "in-addr.arpa.";
ignore client-updates;

authoritative;

option ip-forwarding off;
option domain-name "desdelinux.fan";
# option ntp-servers 0.pool.ntp.org, 1.pool.ntp.org, 2.pool.ntp.org, 3.pool.ntp.org;

include "/etc/dhcp.key";

zone desdelinux.fan. {
    primary 127.0.0.1;
        key dhcp-key;
}
zone 10.168.192.in-addr.arpa. {
        primary 127.0.0.1;
        key dhcp-key;
}

shared-network redlocal {
        subnet 192.168.10.0 netmask 255.255.255.0 {
                option routers 192.168.10.1;
                option subnet-mask 255.255.255.0;
                option broadcast-address 192.168.10.255;
                option domain-name-servers 192.168.10.5;
                option netbios-name-servers 192.168.10.5;
                range 192.168.10.30 192.168.10.250;
        }
}
# FIN dhcpd.conf

[root @ dns ~] # dhcpd -t
Servidor DHCP do Internet Systems Consortium 4.2.5 Copyright 2004-2013 Internet Systems Consortium. Todos os direitos reservados. Para obter informações, visite https://www.isc.org/software/dhcp/ Não pesquisando LDAP, pois ldap-server, ldap-port e ldap-base-dn não foram especificados no arquivo de configuração

[root @ dns ~] # systemctl enable dhcpd
Link simbólico criado de /etc/systemd/system/multi-user.target.wants/dhcpd.service para /usr/lib/systemd/system/dhcpd.service.

[root @ dns ~] # systemctl start dhcpd

[root @ dns ~] # systemctl status dhcpd
● dhcpd.service - DHCPv4 Server Daemon carregado: carregado (/usr/lib/systemd/system/dhcpd.service; ativado; predefinição do fornecedor: desativado) Ativo: ativo (em execução) desde o dia 2017/01/29 12:04:59 ITS T; 23s atrás Documentos: man: dhcpd (8) man: dhcpd.conf (5) PID principal: 2381 (dhcpd) Status: "Enviando pacotes ..." CGroup: /system.slice/dhcpd.service └─2381 / usr / sbin / dhcpd -f -cf /etc/dhcp/dhcpd.conf -user dhcpd -group dhcpd --no-pid 29 de janeiro 12:04:59 dns dhcpd [2381]: Internet Systems Consortium Servidor DHCP 4.2.5 29 de janeiro 12 : 04: 59 dns dhcpd [2381]: Copyright 2004-2013 Internet Systems Consortium. 29 de janeiro 12:04:59 dns dhcpd [2381]: Todos os direitos reservados. 29 de janeiro 12:04:59 dns dhcpd [2381]: Para obter informações, visite https://www.isc.org/software/dhcp/ 29 de janeiro 12:04:59 dns dhcpd [2381]: Não pesquisando LDAP desde ldap -server, ldap-port e ldap-base-dn não foram especificados no arquivo de configuração. 29 de janeiro 12:04:59 dns dhcpd [2381]: Escreveu 0 concessões para o arquivo de concessões. 29 de janeiro 12:04:59 dns dhcpd [2381]: Ouvindo no LPF / eth0 / 52: 54: 00: 12: 17: 04 / redlocal 29 de janeiro 12:04:59 dns dhcpd [2381]: Enviando no LPF / eth0 / 52: 54: 00: 12: 17: 04 / redlocal 29 de janeiro 12:04:59 dns dhcpd [2381]: Enviando no Socket / fallback / fallback-net 29 de janeiro 12:04:59 dns systemd [1]: Iniciado Daemon do servidor DHCPv4.

O que resta a ser feito?

Simples. Inicie um Windows 7 ou outro cliente com Software Livre e comece a testar e verificar. Fizemos isso com dois clientes: Sete.desdelinux.ventilador y suse-desktop.desdelinux.ventilador. As verificações foram as seguintes:

buzz @ sysadmin: ~ $ host sete
Sete.desdelinux.fan tem endereço 192.168.10.30

buzz@sysadmin:~$ host seven.desdelinux.ventilador
Sete.desdelinux.fan tem endereço 192.168.10.30

buzz@sysadmin:~$ dig IN TXT seven.desdelinux.ventilador
....
;; QUESTION SECTION:
;seven.desdelinux.fan.      IN  TXT

;; ANSWER SECTION:
seven.desdelinux.fan.   3600    IN  TXT "31b7228ddd3a3b73be2fda9e09e601f3e9"....

Renomeamos a equipe "sete" para "LAGER" e reinicializamos. Depois de reiniciar o novo LAGER, verificamos:

buzz @ sysadmin: ~ $ host sete
Host sete não encontrado: 5 (RECUSADO)

buzz@sysadmin:~$ host seven.desdelinux.ventilador
Host seven.desdelinux.fan not found: 3(NXDOMAIN)

zumbido@sysadmin: ~ $ host lager
cerveja.desdelinux.fan tem endereço 192.168.10.30

zumbido@sysadmin:~$ host lager.desdelinux.ventilador
cerveja.desdelinux.fan tem endereço 192.168.10.30

buzz@sysadmin:~$ dig IN TXT lager.desdelinux.ventilador
....
;; QUESTION SECTION:
;lager.desdelinux.fan.      IN  TXT

;; ANSWER SECTION:
lager.desdelinux.fan.   3600    IN  TXT "31b7228ddd3a3b73be2fda9e09e601f3e9"....

Em relação ao cliente suse-desktop:

buzz @ sysadmin: ~ $ host suse-dektop
Host suse-dektop não encontrado: 5 (RECUSADO)

buzz @ sysadmin: ~ $ host suse-desktop
suse-desktop.desdelinux.fan tem endereço 192.168.10.33

buzz@sysadmin:~$ host suse-desktop.desdelinux.ventilador
suse-desktop.desdelinux.fan tem endereço 192.168.10.33

buzz @ sysadmin: ~ $ host 192.168.10.33
33.10.168.192.in-addr.arpa domain name pointer suse-desktop.desdelinux.fã.

buzz @ sysadmin: ~ $ host 192.168.10.30
30.10.168.192.in-addr.arpa domain name pointer LAGER.desdelinux.fã.
buzz @ sysadmin: ~ $ dig -x 192.168.10.33
....
;; QUESTION SECTION:
;33.10.168.192.in-addr.arpa.    IN  PTR

;; ANSWER SECTION:
33.10.168.192.in-addr.arpa. 3600 IN PTR suse-desktop.desdelinux.fan.

;; AUTHORITY SECTION:
10.168.192.in-addr.arpa. 10800  IN  NS  dns.desdelinux.fan.

;; ADDITIONAL SECTION:
dns.desdelinux.fan. 10800   IN  A   192.168.10.5
....

buzz@sysadmin:~$ dig IN TXT suse-desktop.desdelinux.fan
....
;suse-desktop.desdelinux.fan.   IN  TXT

;; ANSWER SECTION:
suse-desktop.desdelinux.fan. 3600 IN    TXT "31b78d287769160c93e6dca472e9b46d73"

;; SEÇÃO DE AUTORIDADE:
desdelinux.fan.     10800   IN  NS  dns.desdelinux.fan.

;; ADDITIONAL SECTION:
dns.desdelinux.fan. 10800   IN  A   192.168.10.5
....

Vamos também executar os seguintes comandos

[root@dns ~]# dig desdelinux.fan axfr
; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7_2.4 <<>> desdelinux.fan axfr ;; opções globais: +cmd
desdelinux.fan.     10800   IN  SOA dns.desdelinux.fan. root.dns.desdelinux.fã. 6 86400 3600 604800 10800
desdelinux.fan.     10800   IN  NS  dns.desdelinux.fã.
desdelinux.fã. 10800 EM MX 10 e-mail.desdelinux.fã.
desdelinux.fan.     10800   IN  TXT "DesdeLinux, su Blog dedicado al Software Libre"
ad-dc.desdelinux.fan.   10800   IN  A   192.168.10.3
blog.desdelinux.fan.    10800   IN  A   192.168.10.7
dns.desdelinux.fan. 10800   IN  A   192.168.10.5
fileserver.desdelinux.fan. 10800 IN A   192.168.10.4
ftpserver.desdelinux.fan. 10800 IN  A   192.168.10.8
LAGER.desdelinux.fan.   3600    IN  TXT "31b7228ddd3a3b73be2fda9e09e601f3e9"
LAGER.desdelinux.fã.   3600 IN  A   192.168.10.30
mail.desdelinux.fan.    10800   IN  A   192.168.10.9
proxyweb.desdelinux.fan. 10800  IN  A   192.168.10.6
suse-desktop.desdelinux.fan. 3600 IN    TXT "31b78d287769160c93e6dca472e9b46d73"
suse-desktop.desdelinux.fã. 3600 IN A   192.168.10.33
sysadmin.desdelinux.fan. 10800  IN  A   192.168.10.1
desdelinux.fan.     10800   IN  SOA dns.desdelinux.fan. root.dns.desdelinux.fã. 6 86400 3600 604800 10800

Na saída acima, destacamos negrito os TTL -em segundos- para os computadores com endereços IP concedidos pelo serviço DHCP aqueles que possuem uma declaração explícita do TTL 3600 dada pelo DHCP. IPs fixos são guiados pelo $ TTL de 3H -3 horas = 10800 segundos- declarado no registro SOA de cada arquivo de zona.

Eles podem verificar a zona reversa da mesma maneira.

[root @ dns ~] # dig 10.168.192.in-addr.arpa axfr

Outros comandos extremamente interessantes são:

[root@dns ~]# named-journalprint /var/named/dynamic/db.desdelinux.fan.jnl
[root @ dns ~] # named-journalprint /var/named/dynamic/db.10.168.192.in-addr.arpa.jnl
[root @ dns ~] # journalctl -f

Modificação manual de arquivos de zonas

Depois que o DHCP entra em ação para atualizar dinamicamente os arquivos de zona do nomeadoSe a qualquer momento precisarmos modificar manualmente um arquivo de zona, devemos realizar o seguinte procedimento, mas não sem antes saber um pouco mais sobre o funcionamento do utilitário rndc para controle de servidor de nomes.

[root @ dns ~] # man rndc
....
       congelar [zona [classe [visualização]]]
           Suspenda as atualizações para uma zona dinâmica. Se nenhuma zona for especificada, todas as zonas serão suspensas. Isso permite que edições manuais sejam feitas em uma zona normalmente atualizada por atualização dinâmica. Também faz com que as alterações no arquivo de diário sejam sincronizadas com o arquivo mestre. Todas as tentativas de atualização dinâmica serão recusadas enquanto a zona estiver congelada.

       descongelar [zona [classe [visualização]]]
           Habilite atualizações para uma zona dinâmica congelada. Se nenhuma zona for especificada, todas as zonas congeladas serão ativadas. Isso faz com que o servidor recarregue a zona do disco e reative as atualizações dinâmicas após a conclusão do carregamento. Depois que uma zona é descongelada, as atualizações dinâmicas não serão mais recusadas. Se a zona foi alterada e a opção ixfr-from-changes estiver em uso, o arquivo de diário será atualizado para refletir as alterações na zona. Caso contrário, se a zona foi alterada, qualquer arquivo de diário existente será removido. ....

O quê, você achou que eu ia transcrever todo o manual? ... um trecho e eles vão de carro. O resto eu deixo para você. 😉

Basicamente:

  • rndc congelar [zona [classe [visualização]]], suspende a atualização dinâmica de uma zona. Se um não for especificado, todos serão congelados. O comando permite a edição manual da zona congelada ou de todas as zonas. Qualquer atualização dinâmica será negada enquanto estiver congelada.
  • degelo rndc [zona [classe [vista]]], permite atualizações dinâmicas em uma zona previamente congelada. O servidor DNS recarrega o arquivo de zona do disco e as atualizações dinâmicas são reativadas após a conclusão do recarregamento.

Cuidados a serem tomados ao editar manualmente um arquivo de zona? O mesmo que se estivéssemos criando, sem esquecer de aumentar o número de série em 1 ou serial antes de salvar o arquivo com as alterações finais.

Exemplo:

[root @ dns ~] # rndc freeze desdelinux.ventilador

[root@dns ~]# nano /var/named/dynamic/db.desdelinux.ventilador
Eu modifico o arquivo de zona por qualquer motivo, necessário ou não. Eu salvo as mudanças

[root @ dns ~] # rndc thaw desdelinux.ventilador
Foi iniciado um recarregamento e descongelamento da zona. Verifique os logs para ver o resultado.

[root @ dns ~] # journalctl -f
ene 29 14:06:46 dns named[2257]: thawing zone 'desdelinux.fan/IN': success
ene 29 14:06:46 dns named[2257]: zone desdelinux.fan/IN: zone serial (6) unchanged. zone may fail to transfer to slaves.
ene 29 14:06:46 dns named[2257]: zone desdelinux.fan/IN: loaded serial 6

O erro na saída anterior, que é mostrada em vermelho no console, deve-se ao fato de que "esqueci" de aumentar o número de série em 1. Se eu tivesse seguido o procedimento corretamente, a saída teria sido:

[root @ dns ~] # journalctl -f
-- Logs begin at dom 2017-01-29 08:31:32 EST. --
ene 29 14:06:46 dns named[2257]: zone desdelinux.fan/IN: loaded serial 6
ene 29 14:10:01 dns systemd[1]: Started Session 43 of user root.
ene 29 14:10:01 dns systemd[1]: Starting Session 43 of user root.
ene 29 14:10:01 dns CROND[2693]: (root) CMD (/usr/lib64/sa/sa1 1 1)
ene 29 14:10:45 dns named[2257]: received control channel command 'freeze desdelinux.fan'
ene 29 14:10:45 dns named[2257]: freezing zone 'desdelinux.fan/IN': success
ene 29 14:10:58 dns named[2257]: received control channel command 'thaw desdelinux.fan'
ene 29 14:10:58 dns named[2257]: thawing zone 'desdelinux.fan/IN': success
ene 29 14:10:58 dns named[2257]: zone desdelinux.fan/IN: journal file is out of date: removing journal file
ene 29 14:10:58 dns named[2257]: zone desdelinux.fan/IN: loaded serial 7
  • Amigos leitores, repito que vocês devem ler atentamente as saídas dos comandos. Para algo, seus desenvolvedores gastaram muito trabalho programando cada comando, não importa o quão simples seja.

Resumo

Até ao momento tratámos da implementação do par DNS - DHCP, serviços importantes e cruciais para o bom desempenho da nossa Rede PME, no que se refere à atribuição de endereços dinâmicos através de DHCP e à resolução de nomes de computadores e domínios através de DNS.

Esperamos seriamente que você tenha gostado de todo o procedimento como nós. Embora possa parecer mais difícil usar o console, é muito mais fácil e educacional implementar um serviço no UNIX® / Linux com sua ajuda.

Eles me perdoam por qualquer interpretação errônea de conceitos pensados, criados, escritos, revisados, reescritos e publicados na linguagem de Shakespeare, não de Cervantes. 😉

próxima entrega

Acho que um pouco mais do mesmo - com adições teóricas nos registros DNS - mas no Debian. Não podemos esquecer essa distribuição, certo?


15 comentários, deixe o seu

Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: Miguel Ángel Gatón
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.

  1.   Comerciante Cristian dito

    Muito obrigado por seu trabalho louvável em escrever artigos tão frutíferos. Será muito útil para mim

  2.   federico dito

    E muito obrigado, Cristian, por me acompanhar e por sua avaliação deste post. Êxitos!

  3.   Ismael Álvarez Wong dito

    Depois de dar uma primeira olhada neste novo post de Federico, o grande profissionalismo que se viu ao longo da série «PYMES» é mais uma vez notável; além dos grandes detalhes que ilustram seu domínio em dois dos serviços mais importantes (DNS e DHCP) de qualquer rede. Nesta ocasião e ao contrário dos meus comentários anteriores, tenho um 2º comentário pendente, após ter posto em prática o que está exposto neste post.

  4.   crespo88 dito

    Sem comentários, pa '400 !!! Fico obrigado porque você sabe muito bem que leio seus posts e não podemos pedir mais. Você começa com uma organização muito boa, desde como instalar e configurar o desktop pessoal de um usuário, a estação de trabalho é a base, é a sensação de ser daqueles serviços de rede que você explica muito bem. Você tem subido e embora seja verdade que o nível está subindo, é verdade que você escreveu e publicou para os que são menos do que os que estão começando, para os que são como eu há algum tempo e para os mais avançados.
    Com o tempo cheguei à conclusão de que sei que muitos já chegaram, a teoria, aquilo que nos custa tanto adquirir pelo simples fato de não querer ler, porque executar já é muito mais fácil quando sabemos o que estamos fazendo, porque ???, as dúvidas, onde encontrar e como sair do erro que tanto dá dor de cabeça quando nem sabemos de onde vêm, vale a redundância.
    Por isso, não quero que você deixe para trás aqueles elementos teóricos que vai incluir sobre os registros de DNS na próxima publicação como você anunciou, muito menos no que diz respeito ao querido e querido DEBIAN.
    MUITO OBRIGADO e estamos aguardando.

  5.   caçador dito

    Excelente como sempre Fico! Aguardo a versão do Debian, há anos jogo tudo com aquela distro.

  6.   federico dito

    Wong: Sua opinião depois de ler vale muito. Aguardo seus comentários quando você testar o conteúdo, pois sei que é assim que você gosta de fazer. 😉

  7.   federico dito

    Crespo: Como sempre, seus comentários são muito bem recebidos. Vejo que você capturou a linha geral que elevei na composição desta série. Espero que, como você, muitos já tenham notado. Obrigado pelo seu comentário.

  8.   federico dito

    Dhunter: Bom ler você de novo! Você não terá que esperar muito. O mais tardar na segunda-feira -ou antes- estará concluído para publicação. Não pense que é fácil para mim cobrir três distros diferentes, mas o Respectable Reader pede isso. Não apenas Debian e Ubuntu, mas os Três Orientados para PMEs.

  9.   crespo88 dito

    Se publicou é porque pode, apoiamo-lo e sabemos que seguirá essa linha.
    Como dhunter, espero o lançamento do Debian com dentes afiados. Seria bom se você abordasse um pouco sobre o NTP. Sl2 e um grande abraço. Se meus professores tivessem me ensinado tudo assim, HAHAJJA, grau de platina, HAHAJJA.

  10.   federico dito

    O nível de detalhe nas saídas de comando é necessário para mostrar sua importância. Eles falam muito. É verdade que poucos artigos abordam esse nível de detalhamento, porque pensam que seriam artigos longos e pesados ​​de ler. Bem, parte do trabalho de um SysAdmin é ler essas saídas pesadas e detalhadas, não apenas diante de um problema, mas também diante de verificações.

  11.   Ismael Álvarez Wong dito

    Olá Federico, já havia prometido antes, escrever alguns comentários depois de ter estudado cuidadosamente o post em questão; Bem, aqui vão eles a seguir:
    - Ótima técnica em vez de gerar a chave TSIG para atualizações dinâmicas de DNS por DHCP, copiando a mesma chave rndc.key que dhcp.key, isso aparentemente "tão simples" mostra que o objetivo não é apenas técnico do HOWTO-INSTALL-DNS - & - DHCP mas nos ensinando a pensar, 5 ESTRELAS PARA O AUTOR.
    – Muy interesante en el archivo de configuración del DNS, named.conf, la presencia de la linea «allow-transfer { localhost; 192.168.10.1; };» para realizar test el Dominio «desdelinux.fan» solamente desde la estación de trabajo del SysAdmin y el localhost (el propio server DNS), y además de la inserción de la clave TSIG para la actualización del DNS desde el DHCP.
    - Muito boa a criação das zonas direta e inversa do DNS junto com a explicação "detalhada" de seus tipos de registros, além da execução do comando "# named-checkconf -zp" para verificar toda a sintaxe do nome antes de seu hard reset, bem como exemplos de execução do comando "dig" para verificar diferentes tipos de registros DNS.
    . Na configuração DHCP (usando o arquivo /etc/dhcp/dhcpd.conf):
    - Como adicionar a nossa rede local com a sua gama de endereços IP dinâmicos a atribuir, a definição do servidor de nomes, etc; e também como dizer ao DHCP para atualizar os registros DNS através do uso das linhas "ddns- ..." em sua configuração.
    . Cuando todo ya esta operativo, 5 ESTRELLAS PARA EL AUTOR, en la ejecucion del comando «# dig desdelinux.fan axfr» para comprobar el TTL de los equipos de la LAN que tienen IP static de los que tienen IP dinámicas asignadas.
    . Por ultimo, GENIAL, la modificación manual de archivos de Zonas congelándolas primero con «# rndc freeze desdelinux.fan», realizando a continuación la modificación y descongelándolas finalmente con «# rndc thaw desdelinux.fan»
    . E O MELHOR, TUDO FOI FEITO NO TERMINAL.
    Continue assim Fico.

    1.    Alegria dito

      Olá,
      Ik kom net kijken, dit omdat ik probeer te achterhalen hoe het kan dat alles gedeeld en verwijderd wordt op mijn computer zelfs mijn foto's. Ik heb totaal geen control meer over my eigen computer on mobiel.
      Het zit m dus ook in het dns no dhcp. Ik weet echt niet hoe ik dit moet oplossen en het kan verwijderen. Misschien dat iemand mij wilt helpen? Isso é namelijk buiten mij om geinstalleerd. Veja a seguir gedrag vind ik het.

  12.   federico dito

    Wong: seu comentário complementa o artigo. Sério, isso mostra que você o estudou completamente. Caso contrário, você não poderia comentar com o nível de detalhamento que você faz. Basta adicionar isso permitir transferência É utilizado principalmente para quando temos um DNS Slave e permitimos a transferência de zonas do mestre para ele. Eu o uso dessa forma porque é um mecanismo fácil de implementar para fazer verificações não perigosas em um único computador. Muito obrigado pela sua avaliação de 5. Saudações! e continuarei esperando por você em meus próximos artigos.

  13.   Ignacio M dito

    Olá Federico. Sei que estou um pouco atrasado, mas gostaria de fazer uma pergunta.
    Este procedimento me ajudará se eu quiser apontar um domínio para meu servidor vps?

    A cada 15 minutos, recebo estas mensagens do sistema:

    DHCPREQUEST em eth0 para a porta 67 (xid =…)
    DHCPACK de (xid =…)
    vinculado a - renovação em 970 segundos.

    E pelo que entendi devo criar um registro A com meu domínio e o ip do meu servidor dedicado.

    * Parabéns e obrigado por este artigo, não sei se é o que procurava mas achei muito interessante e bem explicado. Além disso, aceito a recomendação do "DNS e BIND" que já andei fofocando um pouco e me parece muito interessante.

    Saudações da Argentina!

    1.    Antonio Valdés Toujague dito

      por favor contacte-me através valdestoujague@yandex.com