Escolar Documentos
Profissional Documentos
Cultura Documentos
blog/2019/09/04/dnsmasq-simulando-um-servidor-dns-para-testes-de-oracle-rac/
Uma coisa muito comum quando montamos um cluster de Oracle Database “caseiro” em um ambiente virtualizado
é a ausência de um servidor DNS. A complexidade de instalar e configurar esse serviço faz com que seja muito
comum realizar as configurações de resolução de nomes utilizados pelo Clusteware no arquivo /etc/hosts do Linux
nesse tipo ambiente.
Uma boa alternativa é utilizar o dnsmasq, um serviço tão simples de instalar e configurar quanto o nosso amigo
oracle-rdbms-preinstall. A verdade é que para suprir a nossa necessidade, ele nem precisa de configturação.
Quando o dnsmasq é iniciado como um serviço no Linux, ele carrega as configurações de resolução de nomes do
arquivo /etc/hosts do sistema local e responde as requisições de DNS na porta padrão 53.
Então o segredo aqui é muito simples: Copiar o conteúdo do arquivo /etc/hosts que configuramos em cada node
do RAC e colocar no arquivo /etc/hosts do Linux no qual o dnsmasq está instalado. A partir dai basta adicionar
uma entrada no arquivo /etc/resolv.conf de cada node, apontando para o IP do servidor do dnsmasq.
Com essas configurações realizadas, basta emitir o comando “nslookup <nome de um node ou scan> em qualquer
node do cluster e você receberá uma saída com o IP traduzido pelo servidor DNS (o dnsmasq, no caso)
Agora veremos a configuração na prática. Uma recomendação pessoal: Provisione uma VM com a configuração
mínima possível pra executar um Oracle Linux ou CentOS com instalação “minimal”. Após o sistema operacional
tiver sido instalado, manter 512mb de memória RAM será o suficiente pra executar essa VM tranquilamente.
Com o SO instalado, já podemos inserir no arquivo /etc/hosts os IP’s e nomes que o dnsmasq deverá resolver.
Neste exemplo, vou utilizar as configurações do meu lab Oracle RAC mesmo (sinta-se a vontade pra colocar
qualquer outra coisa).
1 # cat /etc/hosts
2 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
3 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
4
5 192.168.1.99 srvDNS.localdomain srvDNS
6
7
8 #Oracle RAC - Private Portuguese
9 192.168.10.31 rac01-priv.localdomain rac01-priv
1 of 5 01/05/2023, 15:36
DNSMASQ: Simulando um servidor DNS para testes de Oracle RAC – Blog do Dibiei https://dibiei.blog/2019/09/04/dnsmasq-simulando-um-servidor-dns-para-testes-de-oracle-rac/
O dnsmasq é disponibilizado no repositório tanto do Oracle Linux quanto do CentOS. Então basta emitir o
comando:
Agora o serviço precisa ser iniciado. Para não precisar iniciar o serviço manualmente toda vez que a VM for
reiniciada, é recomendado configurar para iniciar junto com o Linux também.
Note que o serviço responde na porta 53. Para o correto funcionamento, precisamos liberar essa porta no Firewall
ou desabilitá-lo. Nos meus laboratórios eu costumo desabilitar.
Pronto, feito essas configurações, já temos um DNS totalmente funcional. A partir daqui, basta configurar os
clients para usar esse servidor DNS.
Primeiramente precisamos adicionar uma entrada no arquivo /etc/resolv.conf de cada node e client do nosso
laboratório. No meu caso, o IP do servidor no qual o dnsmasq está executando é 192.168.1.99, então devo
adicionar uma linha dessa maneira: “nameserver 192.168.1.99“.
1 cat /etc/resolv.conf
2 # Generated by NetworkManager
3 search localdomain
4 nameserver 192.168.1.99
5 nameserver 8.8.8.8
Agora é só testar com o comando nslookup no terminal. Abaixo o resultado de alguns testes, note que ao chamar
pelo nome rac-scan por repetidas vezes, ele retorna os IP’s em ordem diferente.
1 # nslookup rac-scan
2 Server: 192.168.1.99
3 Address: 192.168.1.99#53
4
5 Name: rac-scan.localdomain
6 Address: 192.168.1.42
7 Name: rac-scan.localdomain
8 Address: 192.168.1.40
9 Name: rac-scan.localdomain
10 Address: 192.168.1.41
11
12 # nslookup rac-scan
13 Server: 192.168.1.99
14 Address: 192.168.1.99#53
15
16 Name: rac-scan.localdomain
17 Address: 192.168.1.40
18 Name: rac-scan.localdomain
19 Address: 192.168.1.41
Portuguese
20 Name: rac-scan.localdomain
2 of 5 01/05/2023, 15:36
DNSMASQ: Simulando um servidor DNS para testes de Oracle RAC – Blog do Dibiei https://dibiei.blog/2019/09/04/dnsmasq-simulando-um-servidor-dns-para-testes-de-oracle-rac/
21 Address: 192.168.1.42
22
23 # nslookup rac-scan
24 Server: 192.168.1.99
25 Address: 192.168.1.99#53
26
27 Name: rac-scan.localdomain
28 Address: 192.168.1.41
29 Name: rac-scan.localdomain
30 Address: 192.168.1.42
31 Name: rac-scan.localdomain
32 Address: 192.168.1.40
Agora você tem um serviço de DNS a disposição para montar e testar vários cenários em seu laboratório.
Lembrando que o dnsmasq carrega as informações do arquivo /etc/hosts quando o serviço é iniciado. Por tanto,
caso você precise alterar ou adicionar novos IP’s / Nomes, basta será necessário reiniciar o serviço para que ele
tenha conhecimento das alterações.
Vale lembrar que o dnsmasq não responde somente para as VM’s, mas para qualquer computador que esteja na
mesma sub-rede da VM na qual o serviço foi instalado, seja a partir de outras VM’s ou a partir de computadores
físicos.
Se o computador que você está utilizando estiver na mesma rede que a VM do dnsmasq, basta adicionar uma
entrada no DNS da sua máquina apontando para o IP do dnsmasq, assim como foi feito nos nodes.
3 of 5 01/05/2023, 15:36