Como melhorar a experiência de rede com serviço DNS próprio
Categories:
Qualidade de Rede e Experiência de Rede
Não fazer nada, já pode proporcionar a melhor experiência de rede
É necessário deixar claro que aqui “qualidade de rede” e “experiência de rede” são dois conceitos diferentes. A comunicação é um processo que envolve múltiplos dispositivos; podemos chamar o desempenho upstream/downstream de um único dispositivo de “qualidade de rede”, enquanto o desempenho da comunicação de ponta a ponta pode ser chamado de “experiência de rede”.
Como medir a qualidade de rede
Medir a qualidade da rede geralmente envolve múltiplos indicadores e métodos. Abaixo estão alguns métodos e indicadores comuns para medir a qualidade da rede:
- Largura de banda (Bandwidth): A largura de banda se refere à capacidade de transmissão de dados da rede, normalmente medida em quantidade de dados transmitidos por segundo (bits/segundo). Uma largura de banda maior geralmente indica melhor qualidade de rede.
- Latência (Latency): Latência é o tempo necessário para que os dados sejam transmitidos do ponto de envio ao ponto de recepção. Baixa latência indica transmissão de dados rápida e resposta de rede mais ágil.
- Taxa de perda de pacotes (Packet Loss Rate): Taxa de perda de pacotes é a proporção de pacotes de dados perdidos durante a transmissão. Uma taxa de perda de pacotes baixa geralmente significa qualidade de rede melhor.
- Jitter: Jitter se refere às variações ou flutuações dos pacotes de dados durante a transmissão. Um jitter menor indica maior estabilidade da rede.
- Vazão (Throughput): Vazão é a quantidade real de dados transmitidos pela rede, normalmente medida em volume de dados transmitidos por unidade de tempo. Uma vazão maior indica melhor qualidade de rede.
- Topologia de rede (Network Topology): Topologia de rede descreve a forma de conexão e estrutura entre os nós na rede. Um design de topologia de rede razoável pode melhorar o desempenho e a qualidade da rede.
- Qualidade de serviço (Quality of Service, QoS): QoS é um conjunto de tecnologias e mecanismos usados para garantir a qualidade aceitável do serviço na transmissão de dados na rede. O QoS pode ser implementado de várias maneiras, incluindo controle de fluxo, filas de prioridade, etc.
- Análise de protocolo de rede (Protocol Analysis): Analisando protocolos de rede e pacotes de dados, é possível entender os indicadores de desempenho e problemas na rede, por exemplo usando ferramentas de análise de rede como o Wireshark.
Utilizando esses indicadores e métodos de forma abrangente, é possível avaliar completamente a qualidade da rede, determinar as vantagens do desempenho da rede e os espaços para melhorias. Mas esses são indicadores que operadoras se preocupam; para usuários comuns, basta comprar um roteador com preço adequado, já que roteadores modernos têm funções automáticas de ajuste de qualidade de rede.
Como medir a experiência de rede
Primeiro é a acessibilidade, ser capaz de acessar é a base mais importante. Portanto, o serviço de resolução de domínio precisa atender às capacidades básicas:
- Abrangente: o serviço DNS superior precisa ser autoritativo e capaz de resolver mais domínios
- Correto: o resultado da resolução precisa ser correto, sem erros de resolução. Alguns provedores de serviço DNS fazem sequestro ou poluição de certos domínios, resolvendo para páginas de anúncios
- Oportuno: após a mudança do endereço IP, é necessário atualizar rapidamente o resultado da resolução, em vez de retornar o IP antigo
Em segundo lugar, a qualidade de rede que o IP resultante da resolução DNS pode fornecer.
A qualidade de rede que os serviços da Internet podem fornecer normalmente depende fortemente da região; quanto mais próximos geograficamente o servidor e o cliente estiverem, melhor será a qualidade do serviço.
Muitos provedores de serviço de resolução DNS pagos suportam a resolução de diferentes IPs por região, por exemplo, este é parte do serviço que a Alibaba Cloud pode fornecer:
(1) Linha de operadora: suporta resolução inteligente por联通、电信、移动、教育网、鹏博士、广电网, detalhada por província; (2) Linha de região no exterior: suporta, detalhada por continente e país; (3) Linha da Alibaba Cloud: suporta, detalhada por cada região; (4) Linha personalizada: suporta resolução inteligente por faixa de endereço IP personalizada;

O mecanismo de resolução de diferentes IPs por região significa que usuários de diferentes regiões que acessam o mesmo domínio obterão resultados de resolução diferentes, naturalmente priorizando servidores mais próximos do usuário, proporcionando melhor experiência de rede.
E otimizar a experiência de rede do usuário é algo que normalmente os provedores de serviço fazem com base no endereço IP real do usuário, ou seja, para a maioria dos usuários, “não fazer nada já pode proporcionar a melhor experiência de rede”.
Como escolher o serviço DNS upstream ao montar um serviço DNS próprio
Todas as informações que você encontrar na internet chinesa recomendarão que você escolha provedores de DNS autoritativos, como Alibaba Cloud, Tencent Cloud, Cloudflare, Google, etc. Esses DNS podem satisfazer a “acessibilidade” do serviço de rede, pois são abrangentes, corretos e oportunos, mas eles podem não te direcionar para o IP do servidor mais próximo.
Existe uma razão histórica para a maioria dos materiais online na internet chinesa recomendarem os serviços DNS de grandes empresas.
Antigamente, as operadoras ISP do nosso país conseguiam realizar sequestro de tráfego aos usuários apenas com sequestro de DNS e ataques de homem no meio HTTP, conseguindo assim exibir anúncios. Hoje em dia, com a popularização do HTTPS, esse tipo de sequestro é menos comum, mas ainda pode existir em algumas áreas de internet residencial. Em relação ao problema de sequestro de DNS, na verdade, mudar o IP do DNS não resolve, pois o sequestro pode ser feito na porta 53, e a maioria das solicitações DNS são não criptografadas.
Além disso, alguns usuários especiais desejam acessar sites específicos, e alguns provedores de serviço DNS apresentam problemas de poluição de IP, resolvendo domínios de sites especiais para endereços IP incorretos, resultando na impossibilidade de acesso. Já provedores de serviço DNS autoritativos raramente apresentam esse problema.
Portanto, aqui existem três questões a serem consideradas:
- Poluição de IP
- Sequestro de DNS
- Melhor experiência de serviço
Provedores de DNS autoritativos podem resolver o problema 1, e protocolos criptografados (DoT/DoH/QUIC) podem resolver o problema 2.
Para resolver o problema 3, você precisa usar o serviço DNS padrão da sua operadora de internet, como dito no início deste artigo: “não fazer nada já pode proporcionar a melhor experiência de rede”.
Mas se você é uma pessoa exigente ou um usuário especial, o texto a seguir apresentará como configurar duas ferramentas, AdguardHome e Clash, para resolver esses três problemas simultaneamente.
Serviço DNS autoritativo e inteligente
Configuração do AdguardHome
AdguardHome, abreviado como ADG, é um software de bloqueio de anúncios de rede e proteção de privacidade, também é um serviço DNS. Ele suporta a definição personalizada de serviço DNS upstream e regras DNS personalizadas.
O método padrão do ADG para solicitar DNS ao upstream é “balanceamento de carga”; os usuários podem definir múltiplos upstreams, o ADG escolherá o upstream com menor tempo de resposta com base no histórico de consultas DNS ponderado por peso. Simplesmente falando, o ADG escolherá com maior probabilidade o upstream DNS mais rápido para resolver domínios, e com menor probabilidade o upstream DNS não ideal.
Podemos escolher a terceira opção: “IP mais rápido”.

Os benefícios desse recurso: o ADG testa por conta própria os resultados de resolução de IP dos upstreams DNS, retornando ao cliente downstream o IP com menor latência. Abaixo está o resultado de resolução comum do bilibili.

Você pode ver que há muitos IPs; se o ADG não testar os resultados de resolução de IP e retornar todos os IPs ao cliente, o que o cliente fará?
Alguns clientes escolherão o primeiro IP, outros o último, alguns escolherão aleatoriamente. Não importa qual seja, pode não ser a escolha ideal.
Com a opção “IP mais rápido” ativada, abaixo está o resultado de resolução otimizada do bilibili, esse passo trará melhoria na experiência de rede.

Por que “IP mais rápido” não é a escolha padrão? Esse recurso é tão útil, por que não é ativado por padrão?
Porque o custo é “aguardar os resultados de resolução de IP de todos os upstreams DNS”; quando seus upstreams têm múltiplos provedores de DNS, o tempo de consulta do ADG ao upstream será baseado no mais lento. Por exemplo, se seus upstreams têm Alibaba com tempo médio de serviço de 50ms e Google com tempo médio de serviço de 500ms, o tempo de consulta do ADG ao upstream será de 500ms+.
Portanto, ao configurar esta opção, o usuário precisa equilibrar a qualidade e a quantidade dos serviços DNS upstream, não sendo aconselhável exagerar. Aqui eu recomendo definir dois upstreams, um autoritativo (https://dns.alidns.com/dns-query) e outro DNS da operadora.
Os IPs DNS das operadoras variam de região para região; você pode clicar aqui para verificar o DNS da sua região.
Ou então, você pode verificar o DNS recomendado pela operadora na interface de gerenciamento do seu roteador:

Configuração do Clash
Usuários com necessidades especiais dão importância ao sequestro de DNS e poluição de IP, mas não querem abrir mão da melhor experiência de serviço, podendo usar o módulo dns do Clash.
O nameserver-policy pode especificar diferentes provedores DNS para diferentes domínios; abaixo há um exemplo de configuração:
dns:
default-nameserver:
- tls://223.5.5.5:853
- tls://1.12.12.12:853
nameserver:
- https://dns.alidns.com/dns-query
- https://one.one.one.one/dns-query
- https://dns.google/dns-query
nameserver-policy:
"geosite:cn,private,apple":
- 202.103.24.68 # DNS da sua operadora na região onde você está
- https://dns.alidns.com/dns-query
"geosite:geolocation-!cn":
- https://one.one.one.one/dns-query
- https://dns.google/dns-query
Seu significado é:
- default-nameserver: usado para resolver o IP dos serviços DNS em
nameserver - nameserver: usado para resolver o domínio da solicitação de rede
- nameserver-policy: de acordo com a política, especifica diferentes provedores DNS para diferentes domínios
Obrigado por ler
Se este artigo foi útil para você, por favor, deixe um like. Também sou muito bem-vindo a comentários e discussões.