Forçar a resolução DNS para acontecer fora da VPN -- acos campo com network campo com vpn campo com dns camp apple Relacionado O problema

Force DNS resolution to happen outside VPN


8
vote

problema

português

Eu estou correndo em Mojave (10.14) e eu tenho uma Cisco Anyconect VPN sobre o qual o tráfego para rotas selecionadas (determinado pelo perfil VPN, fora do meu controle) é enviado.

roteamento de tráfego funciona bem, o problema é que a resolução DNS está ocorrendo sobre a VPN para os nomes de host que são não na rede interna.

A saída de scutil --dns contém:

  craig@TBMBP:~$ scutil --dns DNS configuration  resolver #1   search domain[0] : a.mycompany.com   search domain[1] : b.mycompany.com   search domain[2] : c.mycompany.com   search domain[3] : d.mycompany.com   search domain[4] : hsd1.ma.comcast.net <-- (my ISP)   nameserver[0] : 10.70.yy.yy    

Além disso, contém:

  DNS configuration (for scoped queries)  resolver #1   search domain[0] : hsd1.ma.comcast.net   nameserver[0] : 2601:184:497f:...     <-- (some ipv6 address)   nameserver[1] : 192.168.1.1   if_index : 10 (en0)   flags    : Scoped, Request A records, Request AAAA records   reach    : 0x00000002 (Reachable)    

Isso significa que eu abro www.apple.com, vejo sobre a VPN:

  39  2.316879    10.70.xx.xx 10.70.yy.yy DNS 63  Standard query 0xefee A www.apple.com    

e eu não quero que isso aconteça. Em vez disso, eu quero que a resolução DNS aconteça entre mim e meu ISP (ou entre mim e 1.1.1.1 ou 8.8.8.8 ) e, em seguida, se a resolução falhar, para Consulte a VPN.

Como faço para atualizar o resolver para usar o CloudFlare / Google primeiro para dns, usando a linha de comando no Mac?

english

I'm running Mojave (10.14) and I have a Cisco AnyConnect VPN over which traffic for selected routes (determined by the VPN profile, out of my control) is sent.

Traffic routing works fine, the issue is that DNS resolution is taking place over the VPN for hostnames that are not on the internal network.

The output of scutil --dns contains:

craig@TBMBP:~$ scutil --dns DNS configuration  resolver #1   search domain[0] : a.mycompany.com   search domain[1] : b.mycompany.com   search domain[2] : c.mycompany.com   search domain[3] : d.mycompany.com   search domain[4] : hsd1.ma.comcast.net <-- (my ISP)   nameserver[0] : 10.70.yy.yy 

Further, it contains:

DNS configuration (for scoped queries)  resolver #1   search domain[0] : hsd1.ma.comcast.net   nameserver[0] : 2601:184:497f:...     <-- (some ipv6 address)   nameserver[1] : 192.168.1.1   if_index : 10 (en0)   flags    : Scoped, Request A records, Request AAAA records   reach    : 0x00000002 (Reachable) 

That means when I open www.apple.com, I see over the VPN:

39  2.316879    10.70.xx.xx 10.70.yy.yy DNS 63  Standard query 0xefee A www.apple.com 

And I don't want this to happen. Rather, I want DNS resolution to happen between me and my ISP (or between me and 1.1.1.1 or 8.8.8.8) and then if resolution fails, to consult with the VPN.

How do I update the resolver to use Cloudflare/Google first for DNS, using the command line on Mac?

           
     
     

Lista de respostas

4
 
vote
vote
Melhor resposta
 

Eu tenho uma situação semelhante em que tenho que usar uma conexão Wi-Fi de portal de mão muito pesada com um muito HTTPS: //www.paloaltworks .com / documentação / 80 / PAN-OS / PAN-OS / DECRIdyption / Decryption-Visão geral "rel =" Nofollow Noreferro "> muito assustador Firewall virtual. Não só o snoop em conexões seguras, ele representa IPs do servidor DNS, usando o DPI (quando detecta a solicitação).

A única coisa que funciona para mim é ir sobre o topo da VPN / firewall em vez de tentar se esgueirar, usando DNScrypt-Proxy Usando Somente DNS-Over-HTTPS, pois pode detectar o protocolo DNScrypt. Agora, não é ciente do DNS-Over-Https.

Eu implemento usando um lançamento que assiste /etc/resolve.conf para alterações e, quando detecta uma alteração, ele reinicia o dnscrypt-proxy e, em seguida, é executado networksetup -setdnsservers Wi-Fi 127.0.0.1 .

De lado: Eu tenho usado quad9 por um tempo agora, e muito preferir para o Google e Cloudflare.

Editar: Depois de jogar um pouco mais com isso, estou percebendo que (de alguma forma, eu nem descobri onde o tráfego é de / para), os endereços IPv6 são de alguma forma resolvidos com abcdefghijklmn2 Como um servidor DNS, mesmo que não haja outro conjunto de servidores DNS. Então provavelmente melhor apenas desativar o IPv6 se puder.


editar 2:

Sim, acho capaz de dividir essa rota pode ser muito a ver com a nova implementação do VPN no nível do sistema; Eu acho que o proxiando DNS é provavelmente sua melhor aposta. Pode ser possível Remover ipsec0 como a rota padrão e adicione-a de volta para Uma faixa de IP restrita ... mas toda vez que eu tento isso (com ikev2, não anyconnect, mas estou supondo que eles estão usando a mesma API) Só ... pára.

Quanto ao tráfego residual, talvez seu encontro? sudo killall -HUP mDNSResponder; sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist ?

Além disso, talvez você possa usar um aplicativo como Shimo? Está disponível com SetApp! Eu não sei exatamente como alguém funciona, mas diz que o suporta, e tem opções de configuração disponíveis que são exatamente o que você está procurando para outros protocolos, incluindo ike, então ... talvez?

shimo

 

I have a similar situation where I have to use a very heavy-handed captive portal Wi-Fi connection with a very heavy-handed, very creepy virtual firewall. Not only does snoop on secure connections, it impersonates DNS server IPs, using DPI (when it detects the request).

The only thing that works for me is to go over the top of the VPN/firewall rather than try to sneak under it, using dnscrypt-proxy using only DNS-over-HTTPS, as it can detect the dnscrypt protocol. Right now, its not aware of DNS-over-HTTPS at all.

I implement it using a LaunchAgent that watches /etc/resolve.conf for changes, and when it detects a change, it restarts dnscrypt-proxy, then runs networksetup -setdnsservers Wi-Fi 127.0.0.1.

Aside: I've been using Quad9 for a while now, and much prefer it to Google and CloudFlare.

Edit: After playing a bit more with this, I'm noticing that (somehow, I haven't even figured out where the traffic is to/from), IPv6 addresses are somehow resolved with ::1 as a DNS server, even if there are no other DNS servers set. So probably better to just disable IPv6 if you can.


Edit 2:

Yeah, I think being able to split out that route might be just too much to do with the newer system-level VPN implementation; I think DNS proxying is probably your best bet. It might be possible to remove ipsec0 as the default route and then add it back for a restricted IP range... but every time I try this (with IKEv2, not AnyConnect, but I'm assuming they're using the same API) it just... stops.

As for the residual traffic, maybe its Rendezvous? sudo killall -HUP mDNSResponder; sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist?

Also, perhaps you might be able to use an app like Shimo? It's available with Setapp! I don't know exactly how AnyConnect works, but it says it supports it, and it has configuration options available that are exactly what you are looking for for other protocols, including IKE, so... maybe?

Shimo

 
 
 
 
2
 
vote

A resposta curta é que você provavelmente não pode fazer essa mudança.

Esta é uma situação muito típica em que as configurações gerenciadas proibir uma situação de túnel VPN dividida . Literalmente, quando você se conecta ao gateway VPN - garante que você não pode mais atingir qualquer destino de rede, exceto para o DNS e configurações que estão na outra rede final de onde o VPN termina.

Para corrigir isso, você precisa:

  • altere sua configuração de VPN para permitir um túnel dividido - possivelmente precisando dos administradores de rede abençoar essa alteração / torná-lo eficaz.
  • não engajar a VPN em tudo
  • Configure uma máquina virtual para que você possa manter o controle do sistema operacional e permitir que o sistema operacional convidado se conecte à VPN
  • convencer o administrador de rede a alterar o DNS na outra extremidade para atender às suas necessidades (secundária uma configuração DNS que você tem antes de se conectar à VPN, alterar os Forneceiros, etc.)
  • Use uma configuração diferente de cliente ou cliente para evitar o perfil que você executa no Cisco (assumindo que o Cisco não permite alterar a configuração) - Force DNS Server IP enquanto conectado à VPN

(Esta é uma pergunta comum que nunca recebe uma resposta diferente - não use VPN, mas espero que haja uma maneira de você)

  • Como substituir o DNS Resolver Encomenda enquanto estiver conectado a L2TP VPN
  • YOSEMITE DNS resolução desgraçadas sobre túneis IPsec / VPN
  • Force DNS Server IP enquanto conectado à VPN
  • Mac OS X Mountain Lion - Resolução de DNS usa ordem errada na VPN via conexão dial-up
 

The short answer is you likely cannot make this change.

This is a very typical situation where the managed settings disallow a split VPN tunnel situation. Literally, when you connect to the VPN gateway - it ensures you can no longer reach any network destination except for the DNS and settings that are on the other end network of where the VPN terminates.

To fix this, you need to:

  • change your VPN configuration to allow a split tunnel - possibly needing the network administrators to bless this change / make it effective.
  • Not engage the VPN at all
  • Set up a virtual machine so that you can maintain control of your OS and only allow the guest OS to connect to the VPN
  • convince the network admin to change the DNS at the other end to meet your needs (secondary a DNS setting you have before you connect to VPN, change the forwarders, etc..)
  • use a different client or client setting to avoid the profile you run in Cisco (assuming the cisco won't let you change the configuration) - Force DNS server ip while connected to VPN

(this is a common question that never gets an answer other than - don't use VPN, but I hope there is a way for you)

  • How to override DNS resolver ordering while connected to L2TP VPN
  • yosemite DNS resolution woes over IPSec tunnels / VPN
  • Force DNS server ip while connected to VPN
  • Mac OS X Mountain Lion - DNS resolving uses wrong order on VPN via dial-up connection
 
 
         
         
0
 
vote

O seu cliente VPN está registrando seu estado DNS com scutil e você pode usar a mesma ferramenta para alterar o DNS para o que deseja.

Listar os estados DNS registrados no momento:

  scutil <<< list | awk '{ print $4 }' | egrep '^State:/.+/DNS$'    

Eu não sei como registrar seu próprio estado e fazer isso substituir os outros, mas você pode modificar todos os estados registrados para refletir seu servidor DNS preferido, facilmente:

  mydns=1.1.1.1 states=$(scutil <<< list | awk '{ print $4 }' | egrep '^State:.+/DNS$') for state in $states ; do   printf "d.init d.add ServerAddresses * ${mydns} set ${state} quit " | scutil done    

Este código é executado pela lista de estados registrados e para cada um, o sobrescreve com um novo que apenas contém seu servidor DNS de escolha. Você também pode adicionar domínios de pesquisa ou outras opções.

Você pode experimentar com scutil executando-o na linha de comando e digitando help .

 

Your VPN client is registering its DNS state with scutil, and you can use the same tool to change the DNS to what you want.

To list the currently registered DNS states:

scutil <<< list | awk '{ print $4 }' | egrep '^State:/.+/DNS$' 

I don't know how to register your own state and make it override the others, but you can modify all of the registered states to reflect your preferred DNS server, easily:

mydns=1.1.1.1 states=$(scutil <<< list | awk '{ print $4 }' | egrep '^State:.+/DNS$') for state in $states ; do   printf "d.init\nd.add ServerAddresses * ${mydns}\nset ${state}\nquit\n" | scutil done 

This code runs through the list of registered states, and for each one, overwrites it with a new one that just contains your DNS server of choice. You could also add search domains or other options.

You can experiment with scutil by running it at the command line, and typing help.

 
 

Perguntas relacionadas

111  DNS não resolvendo no Mac OS X  ( Dns not resolving on mac os x ) 
Alguns dos meus colegas de trabalho estão tendo problemas em sua resolução Macs - DNS não funciona no Mac OS X. Eles estão executando o Snow Leopard 10.6.8. E...

1  nomeado (vinculando DNS) não desistindo  ( Named bind dns not quitting ) 
Eu estou tentando desistir de nome, mas continua aparecendo. Eu tentei remover a configuração em um arquivo de chave, descarregando-o do Launchd, o nomeiá-lo....

0  Como alcançar sites que falharam enquanto offline?  ( How to reach websites that have failed while offline ) 
Quando tento abrir um site quando minha conexão estiver para baixo ou enquanto meu modem estiver sendo iniciado, meu Mac sinaliza esse URL como inacessível. ...

0  Resolver Endereço de Internet (IP) como aplicativos em execução, vê-los atualmente (vs. Nome Externy Server)  ( Resolve internet address ip as running apps see them currently vs external n ) 
Às vezes, preciso ver o endereço IPv4 real dos sites que eu abro no Safari. Agora, existem dois comandos terminais, host e dig , que eu poderia usar para...

12  Como adicionar alguns domínios de pesquisa de DNS adicionais sem ignorar os DHCP?  ( How to add some additional dns search domains without ignoring the dhcp ones ) 
Eu só quero adicionar minha própria lista de domínios de pesquisa, mas sem substituir os devolvidos pelo DHCP? Como alguém imaginaria que eu já tentei adici...

8  É possível usar de volta para o meu Mac DNS ou informações de roteamento da linha de comando?  ( Is it possible to use back to my mac dns or routing information from the command ) 
Eu sempre quero ssh para um mac e adoraria fazer uso do iCloud para procurar informações de roteamento IP / DNS. Isso pode ser feito sem se inscrever para um ...

1  DNS Resolução quebrada no El Capitan com o Adaptador Ethernet Thunderbolt na rede offline  ( Dns resolution broken in el capitan with thunderbolt ethernet adapter on offline ) 
Após a atualização para o El Capitan Como eu habilite a resolução DNS em uma rede de computadores interna offline? Antes de atualizar para o El Capitan, eu ...

12  Nome do dispositivo no roteador é diferente do nome do host do OS X  ( Device name on router is different than os x hostname ) 
Há toneladas de dúvidas sobre a mudança de um nome de host do Mac e, enquanto eu passei pela maioria deles, nunca consegui encontrar essa resposta nuançada: ...

5  Como posso habilitar o DNSSEC no OSX? (Ou dnscurve)  ( How do i enable dnssec on osx or dnscurve ) 
Eu quero suportar comunicações IPsec criptografadas e Certs Dane no DNS. Notavelmente, o DNSSEC é um pré-requisito é IPSec (endereços IP seguros da DNS) Com...

1  Qual é o host "xp.apple.com" e o que é enviado aí?  ( What is the host xp apple com for and what is sent there ) 
Desde que eu tenha instalado um servidor DNS / DHCP do PI-Hole em minha casa, vejo o host xp.apple.com pop up como um dos hosts mais bloqueados. A quantidad...




© 2022 pergunte.org All Rights Reserved. Casa de perguntas e respostas todos os direitos reservados


Licensed under cc by-sa 3.0 with attribution required.