Anycast visão geral do DNS

  • 10/23/2020
  • 7 minutos de leitura
    • g
    • e

Aplica-se a: Windows Server (Semi-Anual Canal), Windows Server 2016, Windows Server 2019

Este tópico fornece informações sobre como Anycast DNS funciona.O que é o Anycast?

Anycast é uma tecnologia que fornece vários caminhos de roteamento para um grupo de Pontos finais que são atribuídos a cada um o mesmo endereço IP. Cada dispositivo no grupo anuncia o mesmo endereço em uma rede, e protocolos de roteamento são usados para escolher qual é o melhor destino.

Anycast permite escalar um serviço apátrida, como o DNS ou o HTTP, colocando vários nós atrás do mesmo endereço IP e usando roteamento de custo igual multi-path (ECMP) para direcionar o tráfego entre esses nós. Anycast é diferente da unicast, na qual cada endpoint tem seu próprio endereço IP separado.

por que usar Anycast com DNS?

com o Anycast DNS, você pode ativar um servidor DNS, ou um grupo de servidores, para responder a consultas DNS com base na localização geográfica de um cliente DNS. Isto pode melhorar o tempo de resposta do DNS e simplificar as configurações do cliente do DNS. O Anycast DNS também fornece uma camada extra de redundância e pode ajudar a proteger contra ataques de negação de serviço do DNS.

How Anycast DNS works

Anycast DNS works by using routing protocols such as Border Gateway Protocol (BGP) to send DNS queries to a preferred DNS server or group of DNS servers (for example: um grupo de servidores DNS gerenciados por um balancer de carga). Isto pode otimizar as comunicações DNS obtendo respostas DNS de um servidor DNS que é mais próximo de um cliente.

com Anycast, servidores que existem em vários locais geográficos cada um anunciam um único endereço IP idêntico para o seu gateway local (router). Quando um cliente DNS inicia uma consulta para o endereço Anycast, as rotas disponíveis são avaliadas, e a consulta DNS é enviada para o local preferido. Em geral, este é o local mais próximo baseado na topologia de rede. Veja o seguinte exemplo.

Quatro servidores de DNS, servidores localizados em diferentes sites, anunciar o mesmo Anycast endereço IP para a rede

Figura 1: Quatro servidores DNS localizados em diferentes locais de uma rede cada anunciar o mesmo Anycast endereço IP (setas pretas) para a rede. Um dispositivo cliente DNS envia um pedido para o endereço IP Anycast. Os dispositivos de rede analisam as rotas disponíveis e enviam a consulta DNS do cliente para o local mais próximo (seta azul).

Anycast DNS é comumente usado hoje em dia para encaminhar o tráfego DNS para muitos serviços globais DNS. Por exemplo, o sistema de servidor de DNS root depende fortemente de DNS Anycast. Anycast também funciona com uma variedade de protocolos de roteamento e pode ser usado exclusivamente em intranets.

demonstração anywast native BGP Server

o procedimento a seguir demonstra como BGP nativo no Windows Server pode ser usado com Anywast DNS.

requisitos

  • um dispositivo físico com a função Hiper-V instalada.
    • Windows Server 2012 R2, Windows 10, ou mais tarde.
  • 2 Cliente VMs (qualquer sistema operacional).
    • instalação de ferramentas de ligação para DNS como o dig são recomendados.
  • 3 servidor VMs (Windows Server 2016 ou Windows Server 2019).
    • se o módulo de LoopbackAdapter do Windows PowerShell não estiver já instalado no servidor VMs (DC001, DC002), o acesso à Internet é temporariamente necessário para instalar este módulo.

configuração do Hyper-V

Configure o seu servidor Hyper-V da seguinte forma:

  • 2 as redes privadas de comutadores virtuais são configuradas
    • a mock Internet network 131.253.1.0 / 24
    • uma mock intranet network 10.10.10.0/24
  • 2 cliente VMs estão ligados ao 131.253.1.0/24 de rede
  • 2 VMs de servidor estão ligados ao 10.10.10.0/24 de rede
  • 1 servidor é dual-homed e conectado ao 131.253.1.0/24 e 10.10.10.0/24 de redes.

máquina Virtual de configuração de rede

Configurar definições de rede em máquinas virtuais com as seguintes configurações:

  1. Client1, cliente2
  • Client1: 131.253.1.1
  • Cliente2: 131.253.1.2
  • máscara de Sub-rede: 255.255.255.0
  • DNS: 51.51.51.51
  • Gateway: 131.253.1.254
  1. (Gateway de Windows Server)
  • NIC1: 131.253.1.254, sub-rede 255.255.255.0
  • NIC2: 10.10.10.254, sub-rede 255.255.255.0
  • DNS: 51.51.51.51
  • Gateway: 131.253.1.100 (pode ser ignorada para a demonstração)
  1. DC001 (Windows Server)
  • NIC1: 10.10.10.1
  • Sub-rede: 255.255.255.0
  • DNS: 10.10.10.1
  • Gateway: 10.10.10.254
  1. DC002 (Windows Server)
  • NIC1: 10.10.10.2
  • Sub-rede 255.255.255.0
  • DNS: 10.10.10.2*
  • Gateway: 10.10.10.254

*Use 10.10.10.1 para o DNS, inicialmente, quando da execução de associação de domínio para DC002 para que você possa localizar o domínio do Active Directory no DC001.

Configure DNS

Use Server Manager and the DNS management console or Windows PowerShell to install the following server roles and create a static DNS zone on each of two servers.

  1. DC001, DC002
  • instale os Serviços de domínio de diretório ativo e promova ao controlador de domínio (opcional)
  • Instale o papel DNS (obrigatório)
  • crie uma zona estática (não-AD integrado) chamada zona.tst em ambos os DC001 e DC002
    • Adicione o único registro estático do servidor de nome na zona do tipo “TXT”
    • Dados (texto) para o registro TXT no DC001 = DC001
    • Dados (texto) para o registro TXT no DC002 = DC002

Configurar adaptadores de auto-retorno

Digite os seguintes comandos em um elevado prompt do Windows PowerShell no DC001 e DC002 para configurar adaptadores de auto-retorno.

Nota

o comando do módulo Install necessita de acesso à Internet. Isto pode ser feito atribuindo temporariamente o VM a uma rede externa em Hyper-V.

$primary_interface = (Get-NetAdapter |?{$_.Status -eq "Up" -and !$_.Virtual}).Name$loopback_ipv4 = '51.51.51.51'$loopback_ipv4_length = '32'$loopback_name = 'Loopback'Install-Module -Name LoopbackAdapter -MinimumVersion 1.2.0.0 -ForceImport-Module -Name LoopbackAdapterNew-LoopbackAdapter -Name $loopback_name -Force$interface_loopback = Get-NetAdapter -Name $loopback_name$interface_main = Get-NetAdapter -Name $primary_interfaceSet-NetIPInterface -InterfaceIndex $interface_loopback.ifIndex -InterfaceMetric "254" -WeakHostReceive Enabled -WeakHostSend Enabled -DHCP DisabledSet-NetIPInterface -InterfaceIndex $interface_main.ifIndex -WeakHostReceive Enabled -WeakHostSend EnabledSet-NetIPAddress -InterfaceIndex $interface_loopback.ifIndex -SkipAsSource $TrueGet-NetAdapter $loopback_name | Set-DNSClient –RegisterThisConnectionsAddress $FalseNew-NetIPAddress -InterfaceAlias $loopback_name -IPAddress $loopback_ipv4 -PrefixLength $loopback_ipv4_length -AddressFamily ipv4Disable-NetAdapterBinding -Name $loopback_name -ComponentID ms_msclientDisable-NetAdapterBinding -Name $loopback_name -ComponentID ms_pacerDisable-NetAdapterBinding -Name $loopback_name -ComponentID ms_serverDisable-NetAdapterBinding -Name $loopback_name -ComponentID ms_lltdioDisable-NetAdapterBinding -Name $loopback_name -ComponentID ms_rspndr

configuração de roteamento da máquina Virtual

Use os seguintes comandos PowerShell do Windows no VMs para configurar o roteamento.

  1. Gateway
Install-WindowsFeature RemoteAccess -IncludeManagementToolsInstall-RemoteAccess -VpnType RoutingOnlyAdd-BgpRouter -BgpIdentifier "10.10.10.254" -LocalASN 8075Add-BgpPeer -Name "DC001" -LocalIPAddress 10.10.10.254 -PeerIPAddress 10.10.10.1 -PeerASN 65511 –LocalASN 8075
  1. DC001
Install-WindowsFeature RemoteAccess -IncludeManagementToolsInstall-RemoteAccess -VpnType RoutingOnlyAdd-BgpRouter -BgpIdentifier "10.10.10.1" -LocalASN 65511Add-BgpPeer -Name "Labgw" -LocalIPAddress 10.10.10.1 -PeerIPAddress 10.10.10.254 -PeerASN 8075 –LocalASN 65511Add-BgpCustomRoute -Network 51.51.51.0/24
  1. DC002
Install-WindowsFeature RemoteAccess -IncludeManagementToolsInstall-RemoteAccess -VpnType RoutingOnlyAdd-BgpRouter -BgpIdentifier "10.10.10.2" -LocalASN 65511Add-BgpPeer -Name "Labgw" -LocalIPAddress 10.10.10.2 -PeerIPAddress 10.10.10.254 -PeerASN 8075 –LocalASN 65511Add-BgpCustomRoute -Network 51.51.51.0/24

Resumo diagrama

instalação de Laboratório para os nativos BGP Anycast DNS demo

Figura 2: Instalação de laboratório para os nativos BGP Anycast DNS demo

Anycast DNS demonstração

  1. Verifique roteamento BGP no servidor de gateway

    PS C:> Get-BgpRouteInformation

    DestinationNetwork NextHop LearnedFromPeer Estado LocalPref MED
    —————— ——- ————— —– ——— —
    51.51.51.0/24 10.10.10.1 DC001 Melhor
    51.51.51.0/24 10.10.10.2 DC002 Melhor

  2. No client1 e cliente2, verifique se que você pode chegar 51.51.51.51

    PS C:> ping 51.51.51.51

    Ping 51.51.51.51 com 32 bytes de dados:
    Resposta de 51.51.51.51: bytes=32 tempo<1ms TTL=126
    Resposta de 51.51.51.51: bytes=32 tempo<1ms TTL=126
    Resposta de 51.51.51.51: bytes=32 tempo<1ms TTL=126
    Resposta de 51.51.51.51: bytes=32 tempo<1ms TTL=126

    estatísticas de Ping para 51.51.51.51:
    Pacotes: Enviados = 4, Recebidos = 4, Perdidos = 0 (0% de perda),
    Aproximados de ida vezes em mili-segundos:
    Mínimo = 0ms, Máximo = 0ms, Média = 0ms

    Nota

    Se o ping falhar, verifique também não há regras de firewall de bloqueio de ICMP.

  3. no client1 e client2, use o nslookup ou o dig para consultar o registo TXT. Exemplos de ambos são mostrados abaixo.

    PS C: > dig server.zona.tst TXT + short
    PS C:> nslookup-type = txt server.zona.tst 51.51.51.51

    um cliente irá exibir ” DC001 “e o outro cliente irá exibir” DC002 ” verificando que Anycast está funcionando corretamente. Você também pode consultar a partir do servidor gateway.

  4. em seguida, desativar o adaptador Ethernet em DC001.

    PS C:> (Get-NetAdapter).Nome
    Loopback
    Ethernet 2
    PS C:> Disable-NetAdapter “Ethernet 2”
    Conf.
    tem certeza de que deseja executar esta ação?
    Disable-NetAdapter ‘Ethernet 2’
    Yes Yes to All No No to All Suspend Help (default is “Y”):
    PS C:> (Get-NetAdapter).Estado
    até
    incapacitado

  5. confirmar que os clientes DNS que recebiam anteriormente respostas de DC001 mudaram para DC002.

    PS C: > nslookup-type = txt server.zona.tst 51.51.51.51
    Servidor: Desconhecido
    Endereço: 51.51.51.51

    server.zona.TST text =

    “DC001”
    PS C:> nslookup-type=txt server.zona.tst 51.51.51.51
    Servidor: Desconhecido
    Endereço: 51.51.51.51

    servidor.zona.tst text =

    “DC002”

  6. confirme que a sessão BGP está em DC001 usando Get-BgpStatistics no servidor gateway.

  7. ativar o adaptador Ethernet em DC001 novamente e confirmar que a sessão BGP é restaurada e os clientes recebem respostas DNS de DC001 novamente.

Nota

se um balancer de carga não for usado, um cliente individual irá usar o mesmo servidor DNS back-end se estiver disponível. Isto cria um caminho BGP consistente para o cliente. Para mais informações, ver secção 4.4.3 of RFC4786: Equal-Cost Paths.

Perguntas Mais Frequentes

Q: o Anycast DNS é uma boa solução para utilização num ambiente DNS nas instalações?
A: A Anycast DNS trabalha perfeitamente com um serviço DNS nas instalações. No entanto, o Anycast não é necessário para o serviço DNS escalar.

Q: Qual é o impacto da implementação de DNS Anycast em um ambiente com um grande número (ex: >50) de controladores de domínio?
A: não há impacto direto na funcionalidade. Se um balancer de carga é usado, então não é necessária nenhuma configuração adicional nos controladores de domínio.

Q: Uma configuração DNS Anycast é suportada pelo Microsoft customer service?
A: se você usar um balancer de carga não-Microsoft para encaminhar consultas DNS, A Microsoft irá suportar questões relacionadas com o serviço de servidor DNS. Consulte o vendedor de balancer de carga para questões relacionadas com o encaminhamento DNS.

Q: Qual é a melhor prática para DNS Anycast com um grande número (ex: >50) de controladores de domínio?
A: a melhor prática é usar um balanceiro de carga em cada localização geográfica. Balanceiros de carga são normalmente fornecidos por um fornecedor externo.

Q: O Anycast DNS e o Azure DNS têm funcionalidades semelhantes?
A: Azure DNS usa Anycast. Para usar o Anycast com o Azure DNS, configure o seu balancer de carga para encaminhar os pedidos para o servidor Azure DNS.