Imagine o seguinte cenário. Sua empresa possui um site que é acessado tanto por quem está fora da sua rede quanto quem está dentro dela. Seu desejo é que a página que o usuário interno acessa seja diferente da que o usuário externo acessa (com informações e comunicados internos e login forms de acesso à intranet, por exemplo), porém, sem ter que alterar o link de acesso.
Você terá que alterar o DNS para isso. Porém, como fornecer dois endereços do seus webservers, que servem sites diferentes para um mesmo registro A?
É possível realizar esta configuração por meio do uso de DNS Views. Considerando o cenário acima é possível fornecer websites para quem realiza o acesso externamente ou internamente, alterando a resposta de DNS que o cliente recebe baseado em diversos fatores (IP de origem, rede de origem, chaves TSIG, etc).
O quadro abaixo ilustra este comportamento.
figura 00
Vamos mostrar como fazer isso funcionar dentro do Infoblox.
Em primeiro lugar, vamos efetuar login no Infoblox.
Nossas tarefas neste techtip são:
- Criar uma View Externa que armazenará as zonas e registros visíveis aos clientes externos.
- Criar uma View Interna que armazenará as zonas e registros visíveis aos clientes internos.
- Popular as views com zonas e registros
- Efetuar testes de resolução de nomes.
Navegue até Data Management > DNS.
figura 02
Na aba Zones, clique na seta ao lado do botão “+”.
Selecione DNS View no menu suspenso.
O Wizard da criação da primeira view será exibido. Preencha a tela com o nome da View, um comentário opcional e (muito importante) marque a caixa “Enable Recursion”. Isso permitirá que o Infoblox encaminhe consultas recursivas de domínios não autoritativos para resolução na internet. Clique em Next ao término da configuração.
O próximo passo é definir os clientes que deverão realizar suas consultas nesta view. Em “Match Clients” clique em Set of ACEs. Em add IPv4 Network, especifique rede e máscara das redes envolvidas (no nosso caso, somente uma rede /23). Em permission, defina “Allow” como parâmetro e, finalmente, clique em Add.
figura 06
A configuração executada deve ser semelhante à exibida na imagem abaixo. Clique em Save & Close ao término da configuração.
De volta à tela de Zonas do menu de DNS do Infoblox, vemos a view criada. Logo abaixo dela, vemos que uma view “default” surgiu. Essa view, na verdade, sempre existiu. Tudo relacionado à DNS é criado dentro desta view. Ela não é exibida caso não existam outras views configuradas.
Não é possível deletá-la, mas é possível alterá-la. É o que vamos fazer agora. Selecione a View “default” e clique em “Edit”
Em General > Basic, modifique o nome para “Clientes Externos” ou qualquer outro nome amigável, adicione um comentário (opcional) e deixe e opção de “Enable Recursion” desativada, conforme exibido abaixo.
Explico: Não é interessante que os clientes que realizam consultas a um domínio de minha autoridade possam encaminhar consultas recursivas ao meu servidor, pois não é de nosso interesse que o mundo todo pense que nosso DNS é aberto, como funcionam os servidores de DNS público do Google.
Clique em “Match Clients” ao término da configuração.
Vamos basicamente repetir o que fizemos na criação da View anterior, com a diferença de especificar “Deny” em permission. Com isso, estamos dizendo ao Infoblox que negue consultas dos clientes internos a esta view. Trocando em miúdos, o usuário comum dentro da LAN não vai nem saber da existência desses dados. Clique em Save.
Outro passo importante: Clique em Add novamente e selecione a opção “Any Address/Network”. Com isso, estamos liberando a consulta de clientes de qualquer outra rede (Internet).
Esta deve ser a aparência final da configuração. Clique em Save & Close ao término da configuração.
figura 13
Saindo do Wizard é possível ver as duas views criadas. Nosso próximo passo é configurar as zonas dentro das Views. Vamos começar pela view de Clientes Externos, clicando nela.
Em seguida, clique no Botão “+” e selecione “Authoritative Zone”
Selecione a opção “Add na authoritative forward-mapping zone” e clique em Next.
Dê um nome para a zona e certifique-se que a DNS View “Clientes Externos” está selecionada. Clique em Next após finalizar.
Na próxima tela, selecione os nameservers da zona. No nosso caso, vamos adicionar somente um nameserver como servidor primário.
Ao clicar em Grid Primary, clique em Select e selecione o nameserver desejado. Clique em Add ao terminar.
Esta deverá ser a aparência após a configuração. Clique em Save & Close para finalizar a criação da zona.
Agora, vamos adicionar um registro à zona. Clique na zona criada.
Em seguida, clique em “Add” > Record > A Record, conforme destacado abaixo.
figura 22
Adicione o nome do registro. Em seguida, adicione o IP do registro e clique em Save & Close.
figura 23
A próxima tela exibirá o registro criado.
Agora, vamos realizar o mesmo procedimento para a view Interna. O processo é o mesmo da criação da zona nos exemplos anteriores. Vamos então agilizar o processo e pular para a criação do registro A. Note que o endereço IP que estamos utilizando agora é diferente.
Note que o campo MNAME (servidor primário da zona) no registro SOA aponta para o mesmo nameserver utilizado na criação da zona anterior, localizada na outra view.
Ao término das configurações, é necessário reiniciar o serviço para que as alterações surtam efeito.
Agora, vamos aos testes.
Em primeiro lugar, vamos realizar o teste de uma máquina interna (pertencente à rede 10.1.2.0/23). Abaixo seguem as configurações da máquina de teste.
Agora, vamos executar uma consulta utilizando o dig por www.clienteabc.com.br.
Vemos que o IP 192.168.100.150 retornou na consulta. Agora, vamos realizar uma consulta de um domínio não-autoritativo para forçar a recursão para a internet. No caso, vamos pesquisar por techcenter.agilitynetworks.com.br. Se tudo correr bem, recebemos um endereço IP como resposta.
Para simular o ambiente externo, alterei o IP da máquina virtual para outro endereço, conforme exibido abaixo.
Agora, vamos realizar a mesma consulta por www.clienteabc.com.br. Veja o endereço retornado.
Agora, vamos verificar se o cliente consegue realizar consultas recursivas, perguntando por www.agilitynetworks.com.br.
Veja que não foi retornado nenhum endereço. Vamos tirar o parâmetro “+short” do comando para ver a mensagem de resposta completa e verificar o que está acontecendo.
Veja que o campo “status” recebe “REFUSED” como resposta à consulta e o aviso “WARNING: recursion requested but not available”, é exibido. Isso indica que o servidor recebeu uma consulta recursiva, porém o mesmo não foi capaz de processá-la (devido ao bloqueio de recursividade na view Externa).
O uso de Views no Infoblox é muito útil em cenários onde limitação de custos e complexidade do ambiente crescem juntos, como já é rotina na vida de administradores de TI entregar mais com menos. Em vez de ter dois servidores servindo ambientes diferentes, podemos utilizar um só appliance para fazê-lo. Diminuem-se os gastos e aumenta-se a produtividade na administração do ambiente. Claro que temos que levar em consideração a quantidade de consultas que o DNS recebe nesse caso e a expectativa de crescimento do ambiente dentro dos próximos meses e anos para evitar subdimensionamento da solução. Nos vemos no próximo artigo!