DNS Server simples para um LAB

Eu tenho vários laboratórios em casa um dia faço um post a explicar quais e o hardware / configurações mas ultimamente não tenho tido vontade de gastar muito dinheiro em eletricidade para fazer pequenos testes simples e ligar a tralha toda 🙂

Pensei usar o meu Portail que tem 32GB de RAM e um core I7 com VMware workstation e meter um vCenter server e 3 hosts nested so para testar vSAN e tirar alguns print screens quando a malta me pede ajuda com funcionalidades mais basicas e para ter tb um vCenter para ligar o meu mini cluster de vSAN que tenho com uns raspberry PI 4.

Tenho aqui por casa alguns Raspeberry PI antigos Pi 1 B que já tinha substituído por mais recentes e pensei 512MB de RAM um rasbian colocar um bind9 e um NTP server fico com algo externo que até me dá para o LAB físico este mini lab e até me da para casa para alguns projectos que tenho.

Só que em vez do bind9 que já tenho bastante experiencia pensei “brincar” com o dnsmaq que é mais light e até mais simples de configurar.

Fico com um servidor de dns e ntp para os vários labs que tenho com a vantagem que o posso ter sempre ligado pois o consumo diário ronda 1.8w a 2.2w nada significativo.

com suporte para múltiplas zonas de dns para suportar não só este lab como outros físicos e virtuais que tenho.

Eu tenho alguns PI antigos mas como o dnsmasq e o ntp server não consomem muito processamento para uma rede de LAB quem não tem pode optar por comprar um PI zero w e utilizar ou ver um PI antigo de alguém que se queira despachar de um já os vi a venda a 5 e 10 euros.

Instalar a imagem num cartão para colocar no PI:

existem várias maneiras de carregar a imagem no cartão SD eu utilizei a mais simples possivel que requer quase zero conhecimento.

1º Download da ferramenta de imagens em : https://www.raspberrypi.org/software/

Podem efectuar download para : windows , Macos ou Ubuntu

No meu caso usei a ferramenta para windows:

Onde tem Choose OS carregam

Escolhem a opção Raspberry PI OS (other)

Escolhem a versão sem desktop environment a primeira opção.

Para correr apenas DNS server e NTP não é necessário GUI, além de que estamos a falar de um PI antigo no meu caso é escusado estar a carregar opções que não vou usar.

torna o sistema bastante mais leve sem necessidade adicional de processamento.

Escolhem a opção choose storage escolhem o vosso cartão SD e carregam em Write.

Após o processo estar concluído colocam o cartão no raspberry pi e arrancam o mesmo.

O login de default do rasbian é : user pi , password raspberry

Conselho: assim que efectuarem login, alterem a password do user PI e criem uma password para o user root

Correm o comando passwd

e alteram a password

de seguida aconselho a criarem a password para o user root.

para não terem de estar sempre a colocar o sudo antes dos comandos de download e configuração dos pacotes.

eu conheço bem Linux e trabalho com linux já faz muitas décadas não vejo problemas em fazer tudo como root se não se sentirem confortáveis adicionem sudo antes dos comandos que vou colocar aqui

Existem várias maneiras em linux de fazer o mesmo aqui tentei simplificar e como fiz o setup do linux e do DNS com o meu filho de 13 anos que está a começar a aprender estas coisa optei por configurar o linux para português por default para o user root.

depois de mudar a password do user pi

corri o comando: sudo su –

entrei como root

e corri o comando: passwd

como podem verificar o user root está com o ambiente em português ignorem foi apenas para mostrar ao meu filho como se fazia para efeitos teste post é inutil 🙂

outra coisa super importante por defeito o rasbian arranca o linux com dhcp

um servidor de dns e ntp deverá ter um ip fixo a não ser que reservem o ip via mac no vosso dhcp server.

assumindo que não os passos para terem um ip fixo no rasbian são simples:

editam o ficheiro que esta em /etc/dhcpcd.conf

eu utilizei o vi quem não tiver experiência pode utilizar o nano

vi /etc/dhcpcd.conf ou nano /etc/dhcpcd.conf

No ficheiro vão ver essas linhas comentadas ou seja têm um # antes como por exemplo está na configuração ipv6.

no caso do meu PI é o eth0 o interface de rede que vou utilizar.

tirei o comentário as seguintes linhas:

interface eth0 <- meu interface de rede do PI no vosso caso pode ser outro
static ip_address=192.168.0.250/24 <- ip e mascara que quero utilizar

static routers=192.168.0.1 <- default gateway
static domain_name_servers=192.168.0.1 8.8.8.8 <- Nameservers (DNS) importante agora para quando forem efetuar downloads no linux ele saber procurar por nome e não por IP como podem ver coloquei mais que um dns… o meu router e um dns da google just in case… no meu router eu uso os dns da cloudflare caso falhem ele vai perguntar à google….

caso não saibam qual é o interface de rede do vosso PI

corram o comando: ip a

aparecem os interfaces de rede disponíveis no caso do PI 1 B um modelo antigo só existe o interface de rede Ethernet

nem sequer wireless tem disponível no PI de base.

Raspberry Pi Model B 512MB RAM : ID 998 : $39.95 : Adafruit Industries,  Unique & fun DIY electronics and kits

PI 1 B so tem duas portas usb e uma porta eth a 100Mbits

como expliquei em cima podem efetuar esta configuração com qualquer modelo de PI ou até mesmo uma VM… no meu caso eu optei por aproveitei um PI antigo que gasta menos eletricidade e serve na perfeição para servidor de DNS para um laboratório de IT.

ao usarem o nano não esquecer gravar o ficheiro carregando em ctrl + o e ctrl + x para sair

no caso de terem usado o vi como eu é sinal que conhecem os comandos para gravar sair e editar 🙂

ok o que temos até agora?

  • Linux instalado no PI
  • user pi e root com password
  • ip fixo configurado

será que nesta fase já estou a utilizar o ip fixo? Não !!!

comando: systemctl status dhcpcd

vão ver o status e ainda estão a utilizar o ip do dhcp server da vossa casa, caso não tenham não vão ter ip 🙂

comando: systemctl restart dhcpcd

este comando faz restart ao serviço e vai ler o ficheiro de configuração do dhcp e carregar as novas configurações.

correr de novo o comando para o status

e como podem verificar já tenho o ip correto e a gateway correta etc etc

Ok instalar e configurar o dnsmasq

comando: apt-get install dnsmasq -y

Não esquecer se não tiverem como root colocam antes do comando sudo exemplo: sudo apt-get install dnsmasq -y

notas importantes:

O dnsmasq guarda todas as configurações em /etc/dnsmasq.conf <- neste ficheiro

eu podia ter configurado a minha zona de dns só neste ficheiro e inclusive simplificar as configuração e forcar o dnsmasq a ler as entradas do ficheiro /etc/hosts.

Mas como vai ser um servidor de dns de laboratório e eu posso querer ter múltiplas configurações de zonas como o Bind9 permite optei por efectuar uma configuração um pouco mais avançada mas simples 🙂

alias eu vou mesmo usar mais tarde múltiplas zonas de DNS no meu lab.

correr estes comandos:

cp /etc/dnsmasq.conf /etc/dnsmasq.conf.back <– aqui faço uma copia do ficheiro de config original para outro .back (backup) podem por a extensão que quiserem é indiferente eu uso esta nomenclatura. existem quem coloque .bak .orig etc etc…. desde que se recordem que aquilo é o ficheiro original está optimo 🙂
echo “conf-dir=/etc/dnsmasq.d/,*.conf” > /etc/dnsmasq.conf <- neste caso estou a colocar uma linha no ficheiro /etc/dnsmasq.conf com a configuração conf-dir=/etc/dnsmasq.d/,*.conf

podia ter editado o ficheiro com vi ou com nano mas optei por enviar via echo o comando para dentro do ficheiro também é valido 🙂

o que importa é o resultado final:

O ficheiro ter esta entrada

para que depois o dnsmasq saiba que os ficheiros com a extensão .conf são os ficheiros de configuração das zonas de dns.

no directório /etc/dnsmasq.d

criam o ficheiro com o nome que querem dar a vossa zona

no meu caso como podem ver vou criar uma zona chamada cplab.local

e coloquei a extensão .conf

ficou cplab.local.conf

por exemplo: nano cplab.local.conf ou vi cplab.local.conf

podem colocar estas linhas no ficheiro:

no-dhcp-interface=eth0 <- não quero dhcp já agora o dnsmasq também pode ser dhcp server eu nao necessito para isso já tenho os meus routers.
bogus-priv <- significa que os ranges que colocar aqui são privados o dns nunca vai fazer querie deles aos dns publicos.
domain=cplab.local <- sufixo do dns
expand-hosts <- faz expand do fqdn do domínio
no-hosts <- ignora entradas deste domínio no ficheiro de hosts
domain-needed <- para ser obrigatório colocarem o domínio nas queries ao dns útil quando temos múltiplos domains
no-resolv <- basicamente ignora os dns no resolv.conf da jeito se quiserem ter dns de forward dif
no-poll <- ignora pulling do resolv.conf para alterações
server=4.4.2.2 <- servidores públicos que quero usar para esta zona
server=1.1.1.1

##aqui são os servidores / equipamentos que quero ter nesta zona
address=/pidns.cplab.local/192.168.0.250
address=/asus.cplab.local/192.168.0.1
address=/vc01.cplab.local/192.168.0.20
address=/nesx01.cplab.local/192.168.0.21
address=/nesx02.cplab.local/192.168.0.22
address=/nesx03.cplab.local/192.168.0.23
address=/nesx04.cplab.local/192.168.0.24

ou seja vamos imaginar que querem colocar o um esx server no vosso dns

address=/nomedovossoservidor.domainio.com.fqdn/ip

neste ficheiro eu tenho:

o PIDNS (servidor de dns)

o router da asus que faz parte desta rede

o vcenter e os hosts que tenho neste mini lab no meu portatil

ok depois de tudo configurado o ficheiro salvaguardado etc.

comando: systemctl restart dnsmasq

restart ao serviço de dns

e agora testar

utilizei o comando dig para testar

comando: dig vc01.cplab.local

e como podem verificar faz parte da configuração do dns e respondeu o ip que tem na base de dados para este pedido.

para utilizarem o dig têm de instalar o pacote dnsutils.

apt-get install dnsutils -y

podem não ter essa necessidade e podem inclusive efectuar o teste de uma maneira mais objectiva.

como podem verificar na minha maquina de windows já coloquei o dns com o ip do raspberry pi

ou seja qualque querie dns ele vai perguntar ao 192.168.0.250 o meu servidor com dnsmasq

como podem verificar já esta a funcionar o dns server

Boa sorte com as configurações !!!

Próximo post vou mostrar como configurei este mini lab no meu portatil com

vCenter e três hosts de esxi em nested com vSAN

vou também configurar noutro LAB que tenho mais potente um cluster de ESXI Nested a com vSphere with Kubernetes.

fiquem atentos !!!

Related Post