Novo schema dnszone.
É necessária a inclusão de um novo schema no servidor openldap.
Baixe o arquivo, salve no diretório schemas do servidor ldap, adicione mais uma entrada no arquivo slapd.conf e reinicie o serviço.
Exemplo de zona em ldap:
dn: ou=DNS,dc=acme,dc=lun
objectClass: top
objectClass: organizationalUnit
ou: DNS
dn: zoneName=acme.lun,ou=DNS,dc=acme,dc=lun
zoneName: acme.lun
relativeDomainName: acme.lun
objectClass: dNSZone
objectClass: top
dn: relativeDomainName=@,zoneName=acme.lun,ou=DNS,dc=acme,dc=lun
objectClass: top
objectClass: dNSZone
zoneName: acme.lun
relativeDomainName: @
dNSTTL: 86400
dNSClass: IN
sOARecord: ns1.acme.lun. root.acme.lun. 2010083102 604800 86400 2419200 604800
nSRecord: ns1.
dn: relativeDomainName=ns1,zoneName=acme.lun,ou=DNS,dc=acme,dc=lun
zoneName: acme.lun
relativeDomainName: ns1
dNSTTL: 86400
dNSClass: IN
objectClass: dNSZone
objectClass: top
aRecord: 10.1.1.2
dn: relativeDomainName=www,zoneName=acme.lun,ou=DNS,dc=acme,dc=lun
zoneName: acme.lun
relativeDomainName: www
dNSTTL: 604800
dNSClass: IN
objectClass: dNSZone
objectClass: top
cNAMERecord: www.acme.lun
aRecord: 10.1.1.3
dn: relativeDomainName=cacti,zoneName=acme.lun,ou=DNS,dc=acme,dc=lun
objectClass: top
objectClass: dNSZone
zoneName: acme.lun
relativeDomainName: cacti
dNSTTL: 604800
dNSClass: IN
cNAMERecord: cacti.acme.lun.
ARecord: 10.1.1.5
Exemplo de zona reversa em ldap:
dn: zoneName=1.1.10.in-addr.arpa,ou=DNS,dc=acme,dc=lun
zoneName: 1.1.10.in-addr.arpa
relativeDomainName: 1.1.10.in-addr.arpa
objectClass: dNSZone
objectClass: top
dn: relativeDomainName=@,zoneName=1.1.10.in-addr.arpa,ou=DNS,dc=acme,dc=lun
zoneName: 1.1.10.in-addr.arpa
relativeDomainName: @
dNSTTL: 3600
dNSClass: IN
objectClass: dNSZone
objectClass: top
dn: relativeDomainName=2,zoneName=1.1.10.in-addr.arpa,ou=DNS,dc=acme,dc=lun
zoneName: 1.1.10.in-addr.arpa
relativeDomainName: 2
dNSTTL: 3600
dNSClass: IN
objectClass: dNSZone
objectClass: top
pTRRecord: ns1.acme.lun.
dn: relativeDomainName=3,zoneName=1.1.10.in-addr.arpa,ou=DNS,dc=acme,dc=lun
zoneName: 1.1.10.in-addr.arpa
relativeDomainName: 3
dNSTTL: 3600
dNSClass: IN
objectClass: dNSZone
objectClass: top
pTRRecord: www.acme.lun.
dn: relativeDomainName=5,zoneName=1.1.10.in-addr.arpa,ou=DNS,dc=acme,dc=lun
zoneName: 1.1.10.in-addr.arpa
relativeDomainName: 5
dNSTTL: 3600
dNSClass: IN
objectClass: dNSZone
objectClass: top
pTRRecord: cacti.acme.lun.
Configure seus arquivos seguindo estes como modelo, para incluí-los para dentro da base ldap salve-os como .ldif e use o slapadd, por exemplo:
# slapadd -l acme.ldif
Agora que temos as zonas prontas no servidor ldap, vamos fazer os apontamentos, edite o arquivo /chroot/named.conf e adicione as seguintes linhas com as devidas alterações de acordo com suas zonas:
# zona acme.lun
zone "acme.lun" {
type master;
database "ldap ldap://10.1.1.28/ou=DNS,dc=acme,dc=lun 10800";
notify yes;
};
# reverso acme.lun
zone "1.1.10.in-addr.arpa" {
type master;
database "ldap ldap://10.1.1.28/ou=DNS,dc=acme,dc=lun 10800";
notify yes;
};
Agora é só iniciarmos o serviço e acompanhar nos logs para identificar possíveis erros.
Os logs ficam em /var/log/messages.
Testando
Para testarmos o funcionamento do nosso servidor de DNS gosto da maneira clássica com a dupla dinâmica nslookup e dig.
Conclusão
Sempre gosto de lembrar a ideia de centralização, o que nos possibilita grandes vantagens, principalmente quando temos um cenário misto em serviços.
Vale ressaltar também em nossa integração ldap+dns que podemos considerar alguns itens como performance, que será um pouco prejudicada pois a consulta DNS não está sendo mais local, o que envolve vários outros fatores.
Mas asseguro-lhes que este tipo de desvantagem poderá ser levando em consideração quando temos um serviço extremamente estressado com uma taxa de acesso realmente grande.
Espero que aproveitem o artigo!
Obrigado.