Windows 10 VPN sempre ativa, DNS dividido, NRPT e como configurar qual servidor DNS é usado?

4

Veja a configuração:

  • Clientes do Windows 10 1803
  • Servidor RRAS Server 2012R2
  • Sempre na configuração do túnel do dispositivo VPN por estas instruções , com tunelamento dividido.
  • O Device VPN possui apenas rotas para 1 servidor DC / DNS e nosso servidor gerenciador de configuração, para que ele possa ser gerenciado e novos usuários possam ser autenticados quando estiverem fora do escritório. Quando os usuários precisam de acesso total à rede do escritório, há uma VPN de usuário à qual eles podem se conectar. Isso funciona bem, exceto pelo DNS.
  • nome de domínio do AD é example.local
  • Nome do domínio público é example.com

O problema:

  • Usamos o DNS dividido para nosso nome de domínio público - portanto, mail.example.com resolve um endereço IP interno ao usar nossos servidores DNS internos e nosso endereço público do mundo externo.
  • Preciso de clientes VPN para resolvê-lo para o endereço público. A VPN do dispositivo não permite que eles falem com o endereço interno de mail.example.com, para que não recebam o e-mail.
  • Eu também gostaria (mas não deve ter) resolução de DNS para serviços locais em outros locais para funcionar corretamente - por exemplo. quando estou nos escritórios da Other Corp, o DNS para othercorp.local funciona mesmo com a VPN conectada.

O que eu quero que aconteça:

  • Consultas por exemplo.local passam pela VPN para nossos servidores DNS internos
  • Todo o resto, incluindo example.com, usa os servidores DNS fornecidos pela conexão LAN / Wifi à qual o laptop está conectado.
  • A outra VPN baseada no usuário (que roteia todo o tráfego pela VPN) continua a usar nossos servidores DNS internos para tudo.

O que eu tentei:

  • Definindo a tabela de políticas de resolução de nomes regras, por exemplo, apontando para os nossos servidores DNS internos. Isso parece funcionar, consultas por exemplo.local repassam a VPN ... mas o mesmo acontece com todo o resto.
  • Definindo regras de NRPT para example.com, com o campo DnsServers em branco, que deve garantir que elas sejam excluídas. Parece não ter efeito.
  • Definindo regras da NRPT para example.com, com resolvedores públicos para o DnsServer. Esse funciona , mas é interrompido em locais remotos que bloqueiam qualquer coisa, exceto seus próprios resolvedores de DNS (que muitos dos sites para os quais meus usuários viajam) e não solucionam o problema dos serviços locais.
  • Definindo "Usar os seguintes endereços de servidor DNS" na conexão VPN nas conexões de rede e deixando-a em branco. Sem efeito, a conexão VPN ainda está configurada para usar nossos servidores internos.
  • Definindo "Usar os seguintes endereços de servidor DNS" e colocando em um servidor DNS público como 8.8.8.8. Quando conectado, acabo com 3 servidores DNS nessa interface, com os nossos internos na parte superior e 8.8.8.8 na parte inferior da lista.

Eu suspeito que se eu conseguisse fazer com que a VPN não listasse nenhum servidor DNS, as regras da NRPT entrariam em vigor apenas por exemplo.local e tudo funcionaria corretamente. Mas não consigo encontrar uma maneira de não usar os fornecidos pelo servidor RRAS.

    
por Grant 10.08.2018 / 23:27

4 respostas

0

Eu descobri a solução.

Ajustar a métrica da interface para um número maior do que os adaptadores ethernet / wifi existentes fará com que ela prefira os servidores DNS na rede local, mas as regras da NRPT ainda funcionarão para enviar consultas DNS para o meu próprio domínio para os meus servidores VPN.

No entanto, não há como ajustar a métrica de interface para uma conexão VPN no powershell, nem no VBscript, nem no .NET, nem no VPNv2 CSP.

Se a VPN estiver conectada, a métrica pode ser alterada no PowerShell com o cmdlet Set-NetIPInterface, mas quando a VPN não estiver conectada, ela não será exibida. E as alterações lá não persistirão durante as reinicializações.

A única maneira de alterá-lo parece estar editando o arquivo C:\ProgramData\Microsoft\Network\Connections\Pbk\rasphone.pbk e alterando as linhas IpInterfaceMetric e Ipv6InterfaceMetric para números mais altos. Eu mudei os dois para 100.

Depois disso, e em combinação com as regras da NRPT, o DNS funciona conforme desejado - todas as consultas, por exemplo, são enviadas para os meus servidores DNS do AD. Qualquer outra coisa (incluindo example.com) é enviada para os servidores DNS de sua rede local.

    
por 20.08.2018 / 02:49
1

Uma possível solução alternativa que você pode tentar é posicionar um servidor DNS do servidor 2016 e implementar uma política de DNS para realizar dns divididos com reconhecimento de geolocalização. Isso permitiria que você indicasse às consultas DNS da sub-rede Device VPN para usar o IP externo em vez do interno.

Os comandos do powershell seriam parecidos com os abaixo.

Sub-rede VPN de dispositivo

Add-DnsServerClientSubnet -Name "DeviceVPNSubnet" -IPv4Subnet "192.168.1.0/24"  

Âmbito da zona VPN do dispositivo

Add-DnsServerZoneScope -ZoneName "example.com" -Name "DeviceVPNZoneScope"  

Padrão Um registro (já deveria existir)

Add-DnsServerResourceRecord -ZoneName "example.com" -A -Name "mail" -IPv4Address "192.168.0.5"

VPN de dispositivo Um registro

Add-DnsServerResourceRecord -ZoneName "example.com" -A -Name "mail" -IPv4Address "203.0.113.5" -ZoneScope "DeviceVPNZoneScope" 

Política de resolução de VPN de dispositivo

Add-DnsServerQueryResolutionPolicy -Name "Device VPN Policy" -Action ALLOW -ClientSubnet "eq,DeviceVPNSubnet" -ZoneScope "DeviceVPNZoneScope,1" -ZoneName "example.com"  

Consulte: Use a Política de DNS para o tráfego com base em geolocalização Gerenciamento com servidores principais

    
por 15.08.2018 / 16:06
0

Apenas um pensamento, mas talvez definir um script de conexão .bat que adiciona o endereço IP público correto do servidor de email na conexão com o arquivo de hosts e, em seguida, o remove do arquivo de hosts do cliente na desconexão? Teoricamente eu acho que você sempre poderia tê-lo no arquivo hosts, e então eles simplesmente acessariam o servidor do seu ip público, mesmo no escritório. Independentemente disso, irá sobrescrever qualquer DNS do servidor RRAS.

O arquivo hosts está localizado em C: \ Windows \ System32 \ Drivers \ etc \ hosts.

    
por 13.08.2018 / 07:10
0

Você pode definir servidores DNS internos para qualquer namespace usando o elemento DomainNameInformation em seu ProfileXML. Se você estiver usando o DNS dividido, pode haver alguns casos em que os namespaces "internos" devem ser roteados externamente e não pelo túnel VPN. Nesses cenários, você terá que criar "exclusões", que são essencialmente namespaces definidos para não usar os servidores DNS internos. Para fazer isso, você simplesmente não deixa o campo DnsServers em branco, mas deixa os DnsServers completamente fora do elemento.

Você pode encontrar mais informações aqui: link

Espero que ajude!

    
por 14.08.2018 / 05:40