POC DNS Anycast TCP: mudanças entre as edições
Sem resumo de edição |
Sem resumo de edição |
||
Linha 4: | Linha 4: | ||
== Introdução == | == Introdução == | ||
Na palestra do meu amigo '''Elizandro Pacheco''', que ocorreu na '''12ª Semana de Infraestrutura da Internet no Brasil em 25 de outubro de 2022''', foi questionado por um participante se em um ambiente onde tivéssemos 2 servidores de '''DNS Recursivo Anycast''' sendo consultados e respondendo queries de forma balanceada, poderia ocorrer uma quebra nas consultas de '''DNS (53/TCP)''', já que imaginamos que um cliente no estabelecimento de uma '''sessão TCP''' '''(Three-way Handshake)''', poderia ocorrer de um pacote '''SYN''' ir para o servidor de '''DNS Recursivo A,''' retornando um '''SYN+ACK''' como resposta para o cliente e este acabar enviando o '''ACK''' para o servidor de '''DNS Recursivo B''', o que quebraria a conexão forçando uma retransmissão. O mesmo resultado poderia | Na palestra do meu amigo '''Elizandro Pacheco''', que ocorreu na '''12ª Semana de Infraestrutura da Internet no Brasil em 25 de outubro de 2022''', foi questionado por um participante se em um ambiente onde tivéssemos 2 servidores de '''DNS Recursivo Anycast''' sendo consultados e respondendo queries de forma balanceada, poderia ocorrer uma quebra nas consultas de '''DNS (53/TCP)''', já que imaginamos que um cliente no estabelecimento de uma '''sessão TCP''' '''(Three-way Handshake)''', poderia ocorrer de um pacote '''SYN''' ir para o servidor de '''DNS Recursivo A,''' retornando um '''SYN+ACK''' como resposta para o cliente e este acabar enviando o '''ACK''' para o servidor de '''DNS Recursivo B''', o que quebraria a conexão forçando uma retransmissão. O mesmo resultado também poderia ocorrer após a sessão TCP estabelecida. Esse comportamento seria esperado porque no ambiente '''Anycast''' as consultas de DNS são para o mesmo IP sendo utilizado por mais de um servidor. | ||
Vamos nos atentar ao seguinte: consultas de DNS usando o protocolo TCP são percebidas em '''transferências de zonas''' entre o '''DNS Autoritativo Primário''' e o '''DNS Autoritativo Secundário''' e consultas cuja resposta tenha um tamanho grande, maior que '''512 bytes''' mas que isso nem sempre é uma regra, por exemplo, consultas envolvendo '''DNSSEC''' possuem respostas '''maiores que 512 bytes''' e são realizadas em UDP. Com isso podemos dizer que consultas recursivas de DNS usando o protocolo TCP são ínfimas e não tenho relatos de problemas de acesso com esse cenário. Vamos observar a tela abaixo: | |||
[[Arquivo:Dashboard poc.png|nenhum|miniaturadaimagem|1347x1347px]] | |||
Reparem no monitoramento acima que no item 2 temos no horário de pico '''16948 qps (queries per second)''' sendo que '''consultas TCP''' apenas '''116 qps'''. | |||
== Diagrama do LAB para o nosso PoC (Proof of Concept) == | |||
Além das informações já passadas resolvi montar um LAB em um ambiente real, para vermos o comportamento das consultas quando temos esse cenário com 2 servidores DNS Recursivos Anycast servindo uma rede de clientes. Primeiro vou apresentar o diagrama abaixo para que possamos visualizar os testes que serão feitos. Esses servidores foram montados utilizando esse [[DNS Recursivo Anycast HyperLocal|'''artigo''']]. |
Edição das 02h03min de 19 de janeiro de 2023
Introdução
Na palestra do meu amigo Elizandro Pacheco, que ocorreu na 12ª Semana de Infraestrutura da Internet no Brasil em 25 de outubro de 2022, foi questionado por um participante se em um ambiente onde tivéssemos 2 servidores de DNS Recursivo Anycast sendo consultados e respondendo queries de forma balanceada, poderia ocorrer uma quebra nas consultas de DNS (53/TCP), já que imaginamos que um cliente no estabelecimento de uma sessão TCP (Three-way Handshake), poderia ocorrer de um pacote SYN ir para o servidor de DNS Recursivo A, retornando um SYN+ACK como resposta para o cliente e este acabar enviando o ACK para o servidor de DNS Recursivo B, o que quebraria a conexão forçando uma retransmissão. O mesmo resultado também poderia ocorrer após a sessão TCP estabelecida. Esse comportamento seria esperado porque no ambiente Anycast as consultas de DNS são para o mesmo IP sendo utilizado por mais de um servidor.
Vamos nos atentar ao seguinte: consultas de DNS usando o protocolo TCP são percebidas em transferências de zonas entre o DNS Autoritativo Primário e o DNS Autoritativo Secundário e consultas cuja resposta tenha um tamanho grande, maior que 512 bytes mas que isso nem sempre é uma regra, por exemplo, consultas envolvendo DNSSEC possuem respostas maiores que 512 bytes e são realizadas em UDP. Com isso podemos dizer que consultas recursivas de DNS usando o protocolo TCP são ínfimas e não tenho relatos de problemas de acesso com esse cenário. Vamos observar a tela abaixo:
Reparem no monitoramento acima que no item 2 temos no horário de pico 16948 qps (queries per second) sendo que consultas TCP apenas 116 qps.
Diagrama do LAB para o nosso PoC (Proof of Concept)
Além das informações já passadas resolvi montar um LAB em um ambiente real, para vermos o comportamento das consultas quando temos esse cenário com 2 servidores DNS Recursivos Anycast servindo uma rede de clientes. Primeiro vou apresentar o diagrama abaixo para que possamos visualizar os testes que serão feitos. Esses servidores foram montados utilizando esse artigo.