Blog Agility

Configurando Cache DNS no GTM/F5

Configurando Cache DNS no GTM/F5

Em muitos ambientes o F5/GTM está à frente dos servidores de nomes e de outras aplicações. A idéia deste texto é mostar como aprimorar estes ambientes, configurando o F5 como resolvedor de nomes, do tipo Cache.  Isto é, quando a requisição DNS chegar, o próprio F5 responderá ao usuário/sistema.

Como o F5 faz isso?

A primeira query DNS sempre será consultada pelo F5 no servidor final. A partir daí, com a resposta do servidor, ele a guardará em memória para responder aos demais usuários. No F5 este tipo de resolução é chamada de transparente. 

Quais as vantagens desta configuração?

Evita certo tipos de ataques DNS ao servidor de nomes;Alta disponibilidade do serviço de DNS.Diminui o tempo de resposta ao usuário requisitante;Diminui o overhead dos servidores de nomes.

Pré requisitos para o ambiente:

Um servidor de nomes

F5 BIG-IP com módulo GTM

Configuração do Cache no F5

O servidor DNS deverá estar configurado com pelo menos uma zona com algumas entradas, não importando o tipo de entrada.

Antes de começarmos a configurar o Listener, devemos criar um profile cliente de UDP, um profile de DNS e um profile de Cache, pois o listener depende destes profiles, conforme esquema abaixo:

v  Listener (Criará a aplicação no F5)

  • Pool (servidores DNS)
  • Profile UDP (informa o tipo de trafego e suas especificações)
  • Profile DNS (informa o tipo de protocolo e suas especificações)
    • Profile Cache (regras de cache)

Criação do profile de Cache

Vá em DNS > Cache > Cache List > Create

Devemos mudar o Resolver Type para Transparent.

2015_05_Fabio_Souza_Configuring_DNS_Cache_on_F5_vs_1

Criação do profile de DNS

Vá em DNS > Delivery : Profiles : DNS > Create

Para informar que utilizaremos a feature de Cache, devemos habilitar a mesma (DNS Cache) e abaixo escolher qual o nome do profile de cache (DNS Cache Name).

2015_05_Fabio_Souza_Configuring_DNS_Cache_on_F5_vs_2

Criação do profile UDP

Vá em DNS > Delivery : Profiles : Protocol : UDP > Create

Crie um profile novo baseado no Parent Profile udp

Deve-se habilitar a opção Datagram LB

Obs: caso o ambiente receba muitas conexões de diferentes origens simultaneamente, é recomendado que abaixe o Idle Timeout, pois a cada conexão irá permanecer aberta no F5 durante 60 segundos, caso não haja o fechamento pelo usuário, causando o esgotamento de recursos do equipamento.

2015_05_Fabio_Souza_Configuring_DNS_Cache_on_F5_vs_3

Criação do Listener

Vá em DNS > Delivery : Listeners : Listener List > Create

Deve-se associar os profiles recentemente criados nas opções Protocol Profile (Client) e DNS Profile.  Deve-se associar o pool dos servidores DNS também, em Default Pool.

Obs: neste exemplo configurei o Source Address Translation e Address Translation, pois o F5 não era rota default do servidor de DNS.

2015_05_Fabio_Souza_Configuring_DNS_Cache_on_F5_vs_4

Testes

Neste caso utilizei uma máquina Windows 8 como cliente DNS e um Linux como servidor DNS.  O F5 configurado, vamos aos testes:

Efetuando dois TCPDUMPs no F5, filtramos a conexão lado Client e lado Server.

Na imagem abaixo, é realizada a requisição ao VS 192.168.159.135, com a Query tipo A “dns.fabio.com.br.”  Podemos ver que o F5 recebe e repassa a Query ao servidor Linux (192.168.159.128).

2015_05_Fabio_Souza_Configuring_DNS_Cache_on_F5_vs_5

Já na imagem abaixo, foi feito o mesmo teste com a Query dns.fabio.com.br ao VS e desta vez não vemos o F5 perguntando ao servidor Linux. Isto é o cache agindo, portanto, o F5 que nos responde a Query DNS.  Podemos observar que na tela do Prompt de comando, a resposta não é autoritária, pois o F5 não é o Authoritative Server.

2015_05_Fabio_Souza_Configuring_DNS_Cache_on_F5_vs_6

Na imagem abaixo, o comando para visualizar as entradas que estão no Cache.

2015_05_Fabio_Souza_Configuring_DNS_Cache_on_F5_vs_7

Para deletar alguma entrada, utilize o comando da imagem abaixo:

2015_05_Fabio_Souza_Configuring_DNS_Cache_on_F5_vs_8
Este comando é muito útil, pois numa mudança de RR(Resource Record) no servidor DNS, deve-se deletar a entrada para que o F5 aprenda a nova RR.


Conforme mencionado anteriormente, esta configuração de “Offload de DNS” possui vantagens bem atrativas, que justificam sua implementação. Nos próximos artigos ensinarei como configurar Cache DNS do tipo Resolver e como “logar” este tráfego DNS no F5.