Mac OS X Mountain Lion-DNS 확인은 전화 접속 연결을 통해 VPN에서 잘못된 순서를 사용합니다


23

Mac OS X 10.8.2가 설치된 MacBook을 사용하고 있으며 VPN을 통해 회사 네트워크에 연결합니다. LAN 또는 WLAN을 통해 VPN 연결을 설정할 때 모든 것이 잘 작동합니다. 그러나 전화 접속 연결 (Huawei HSDPA USB Stick)을 사용하면 응용 프로그램 (예 : 웹 브라우저)에서 호스트 이름이 올바르게 확인되지 않습니다. 같은 명령 줄 도구 host name는 IP 주소를 올바르게 확인하지만 확인 ping name하지 않습니다.

사용하여 scutil --dnsWLAN 대 전화 접속을 통해 연결할 때 DNS 구성을 덤프했습니다. 조회 순서에는 눈에 띄는 차이가 있습니다.

connecting using WLAN:

resolver #1
  nameserver[0] : 192.168.80.10
  nameserver[1] : 192.168.80.24
  if_index : 6 (ppp0)
  reach    : Reachable,Transient Connection
  order    : 100000

resolver #2
  nameserver[0] : 192.168.80.10
  nameserver[1] : 192.168.80.24
  if_index : 6 (ppp0)
  reach    : Reachable,Transient Connection
  order    : 200000

resolver #3
  domain   : local
  options  : mdns
  timeout  : 5
  order    : 300000

resolver #4
  domain   : 254.169.in-addr.arpa
  options  : mdns
  timeout  : 5
  order    : 300200

resolver #5
  domain   : 8.e.f.ip6.arpa
  options  : mdns
  timeout  : 5
  order    : 300400

resolver #6
  domain   : 9.e.f.ip6.arpa
  options  : mdns
  timeout  : 5
  order    : 300600

resolver #7
  domain   : a.e.f.ip6.arpa
  options  : mdns
  timeout  : 5
  order    : 300800

resolver #8
  domain   : b.e.f.ip6.arpa
  options  : mdns
  timeout  : 5
  order    : 301000

DNS configuration (for scoped queries)

resolver #1
  nameserver[0] : 192.168.1.1
  if_index : 4 (en0)
  flags    : Scoped
  reach    : Reachable,Directly Reachable Address

resolver #2
  nameserver[0] : 192.168.80.10
  nameserver[1] : 192.168.80.24
  if_index : 6 (ppp0)
  flags    : Scoped
  reach    : Reachable,Transient Connection

ppp0 연결은 VPN 연결입니다. 보다시피, 두 개의 서버가 연결되어 있으며 명령 줄과 응용 프로그램에서 올바르게 응답합니다.

Connecting via UMTS:

resolver #1
  nameserver[0] : 139.7.30.126
  nameserver[1] : 139.7.30.125
  if_index : 6 (ppp0)
  reach    : Reachable,Transient Connection
  order    : 100000

resolver #2
  nameserver[0] : 192.168.80.10
  nameserver[1] : 192.168.80.24
  if_index : 7 (ppp1)
  reach    : Reachable,Transient Connection
  order    : 100000

resolver #3
  nameserver[0] : 192.168.80.10
  nameserver[1] : 192.168.80.24
  if_index : 7 (ppp1)
  reach    : Reachable,Transient Connection
  order    : 200000

resolver #4
  domain   : local
  options  : mdns
  timeout  : 5
  order    : 300000

resolver #5
  domain   : 254.169.in-addr.arpa
  options  : mdns
  timeout  : 5
  order    : 300200

resolver #6
  domain   : 8.e.f.ip6.arpa
  options  : mdns
  timeout  : 5
  order    : 300400

resolver #7
  domain   : 9.e.f.ip6.arpa
  options  : mdns
  timeout  : 5
  order    : 300600

resolver #8
  domain   : a.e.f.ip6.arpa
  options  : mdns
  timeout  : 5
  order    : 300800

resolver #9
  domain   : b.e.f.ip6.arpa
  options  : mdns
  timeout  : 5
  order    : 301000

DNS configuration (for scoped queries)

resolver #1
  nameserver[0] : 192.168.80.10
  nameserver[1] : 192.168.80.24
  if_index : 7 (ppp1)
  flags    : Scoped
  reach    : Reachable,Transient Connection

resolver #2
  nameserver[0] : 139.7.30.126
  nameserver[1] : 139.7.30.125
  if_index : 6 (ppp0)
  flags    : Scoped
  reach    : Reachable,Transient Connection

이번에는 ppp1이 VPN 연결이고 ppp0이 UMTS 연결입니다. 존재하지 않는 호스트 이름을 사용하는 명령의 응답 시간 에서 첫 번째 리졸버 체인 foo.bar.localping사용하는 것으로 추론 됩니다. 여기서 host범위가 지정된 쿼리 구성이 사용됩니다. ping"알 수없는 호스트"를 반환하는 데 5 초가 걸리고 host즉시 돌아옵니다. 핑이 mdns 리졸버의 5 초 시간 초과로 실행된다고 가정합니다.

모뎀을 통해 VPN을 통해 전화를 걸 때 깨진 DNS 조회로 인한 문제를 해결하려면 해결 프로그램의 순서를 변경해야합니다. 지금까지 나는 이것을하는 방법을 찾지 못했습니다.

어떤 아이디어라도 환영합니다.

답변:


7

Mac에서도 동일한 문제가 발생했으며 문제를 해결 한 후 FortiClient (VPN 클라이언트) 에 의해 발생하는 것으로 확인되었습니다 . FortiClient가 연결 해제 된 경우에도 DNS는 scutil에 여전히 나타납니다.

나를위한 해결책은 다음과 같습니다.

scutil
> list ".*DNS"

그러면 모든 DNS 구성 목록이 표시됩니다.

subKey [0] = State:/Network/Global/DNS <br>
subKey [1] = State:/Network/MulticastDNS<br>
subKey [2] = State:/Network/OpenVPN/DNS<br>
subKey [3] = State:/Network/OpenVPN/OldDNS<br>
subKey [4] = State:/Network/PrivateDNS<br>
subKey [5] = State:/Network/Service/forticlientsslvpn/DNS <br>

그들 각각을 확인하려면 : (문제가있는 것을 찾을 때까지)

> get key_name
> d.show

… 그리고 그것을 고치기 위해 :

> get key_name
> d.remove ServerAddresses
> set key_name

이것이 내 컴퓨터에서 어떻게 보이는지입니다.

> get State:/Network/Service/forticlientsslvpn/DNS 
> d.show
<dictionary> {
  ServerAddresses : <array> {
    0 : 192.168.30.6
    1 : 192.168.30.15
  }
  SupplementalMatchDomains : <array> {
    0 :
  }
  SupplementalMatchOrders : <array> {
    0 : 100000
  }
}
> d.remove ServerAddresses
> d.show
<dictionary> {
  SupplementalMatchDomains : <array> {
    0 :
  }
  SupplementalMatchOrders : <array> {
    0 : 100000
  }
}
> set State:/Network/Service/forticlientsslvpn/DNS
> exit

3

네트워크 환경 설정 패널에서 DNS 항목의 순서를 변경하십시오.

  1. 시스템 환경 설정네트워크를 엽니 다 .

  2. 왼쪽의 목록에서 네트워크 서비스를 선택하십시오.

  3. 왼쪽 하단에있는 잠금을 사용하여 기본 설정 창을 잠금 해제하십시오.

  4. 고급…을 클릭 하고 DNS 탭을 선택 하십시오.

  5. DNS 서버를 위 / 아래로 끌어서 순서를 변경하십시오.


2
이것은 질문에 대한 답변을 제공하지 않습니다. 작성자의 의견을 비판하거나 설명을 요청하려면 게시물 아래에 댓글을 남겨주세요. 언제든지 자신의 게시물에 댓글 수 있으며 평판이 충분 하면 게시물댓글 수 있습니다 .
grg

이상한 의견입니다. 포스터는 그가 그의 질문에 이것을 시도했는지 언급하지 않았으며 그의 문제에 대한 관련성이 있고 간단한 해결책 일 수 있습니다. 동일한 설정을 사용하지 않고 말하기가 어렵습니다.
db

2
그것은 말로 설명을 위해 요청으로 작성됩니다-답변은 답변으로 작성되어야합니다. 의견은 설명을 요청하기에 가장 적합한 장소입니다. 이 답변은 저품질 포스트 검토 대기열에 있었고 주식 의견이 가장 적절하다고 생각합니다. 실제로 이것을 답변으로 바꾸고 (스크린 샷 및 형식이 지정된 지침 목록과 같은 세부 정보를 추가하면) 이것이 완전하고 합법적 인 답변이됩니다.
grg

이건 말도 안돼 Rainman입니까 아니면 무엇입니까? 그것은 수동적이고 겸손한 방식으로 표현 된 답변이었습니다. 그리고 당신이 내 제안을 직접 시도했다면 OP보다 능숙한 사람에게는 포함 된 단계 (시스템 환경 설정-> 네트워크)를 넘어서는 단계가 더 이상 필요하지 않을 것입니다.
db

내가 말했듯이, 이것은 단순히 내 의견입니다. 그건 그렇고 당신을 억압 한 사람이 아니 었습니다. 단계에 대한 자세한 내용을 포함하도록 답변을 수정했습니다. 부적절하다고 생각되면 편집을 롤백하십시오.
grg

2

해결 방법을 찾았습니다. VPN DNS는 여전히 무시되고 3G 동글 DNS 만 사용되지만 3G 인터페이스 아래의 목록에 VPN DNS를 추가하면 문제가 해결됩니다. 주요 문제는 3G 연결 관리자가 항상 구성을 덮어 씁니다. 연결을 클릭하면 3G 동글에서 라디오를 활성화하려면 연결 관리자가 필요합니다. 그래서 두 솔루션을 하나로 혼합했습니다.

  1. VPN에 연결하고 DNS를 적어 두십시오 (목록에 2 개가 있음). 네트워크 환경 설정 → 고급 → DNS 탭에서 확인할 수 있습니다. VPN 연결을 끊습니다. 연결시 DNS가 동적으로 할당되므로 VPN에 연결해야합니다.

  2. 3G에 연결하고 동일한 작업을 수행하십시오. DNS를 종이에 작성하십시오. 그런 다음 3G를 분리하십시오.

  3. 네트워크 환경 설정으로 이동 → 3G 인터페이스 → 고급 → DNS 탭을 클릭하고 DNS 테이블 (일반적으로 연결되지 않은 상태에서 비어 있음)에서 '+'를 클릭하십시오. 모든 DNS 서버를 추가하십시오 (먼저 3G 서버와 나중에 VPN 추가). 확인을 클릭하고 적용하십시오.

  4. 이제부터 3G에 연결하려면 USB를 연결하고 3G 적용 범위 (3G 연결 관리자를 열어야 함)가 나올 때까지 기다리십시오. 그러나 제공된 연결 관리자를 사용하여 연결 하지 마십시오 . 그리고 자동으로 연결되면 환경 설정으로 이동하여 해당 체크 표시를 선택 취소하십시오. 당신은 그 관리가 필요 전용 라디오를 켜는 방법 다른 사람의 USB 동글에 아무것도.

    3G 관리자에서 "연결"을 클릭하면 3G 인터페이스의 구성을 덮어 쓰므로 3 단계를 다시 반복해야합니다.

  5. 네트워크 → 환경 설정으로 이동하여 3G 인터페이스를 클릭하십시오. 그런 다음 연결을 클릭하십시오. "공용"DNS와 VPN DNS를 모두 포함하여 구성된 동적 DNS 서버 대신 DNS 서버를 사용하여 3G에 연결합니다.

  6. VPN에 연결하십시오. 예상대로 작동합니다.

다음 사항에 유의하십시오.

  • VPN DNS가 변경되면 수동으로 변경해야합니다. VPN DNS가 여전히 인터페이스에 동적으로 할당되어 있기 때문에 네트워크 → VPN 인터페이스 → 고급 → DNS 탭에서 쉽게 확인할 수 있습니다 (OS X에서는 무시 됨).

  • 3G DNS가 변경 될 가능성이 낮을 경우 수동으로 변경해야합니다. 문제가 발생하여 탐색 할 수없는 경우 3G 연결 관리자를 통해 이동해야합니다. "연결"을 클릭하고 DNS에 동적으로 할당 된 항목을 확인하십시오. 3 단계로 돌아가서 다시 구성해야합니다.


2

나는 오랫동안 같은 문제가 있었지만 지금은 나에게 맞는 해결책을 찾을 시간이있었습니다. DNS 서버의 순서는 변경하지 않았지만 VPN 뒤에서 DNS 서버를 영구적으로 사용하고 있습니다.

  1. 전화 접속을 통해 연결하십시오.

  2. VPN 연결을 연결하고 VPN 연결 → 고급 → DNS에서 DNS 서버 IP 및 검색 도메인을 복사하십시오.

  3. VPN 연결을 끊습니다.

  4. Ping <name>또는 <hostname>VPN 서버의 IP를 적어 둡니다.

  5. 전화 접속 연결을 끊습니다.

  6. 전화 접속 연결을 복제하십시오 (예 : "3G for VPN").

  7. 전화 접속 연결의 DNS 탭에 IP 및 검색 도메인을 입력하십시오. 그것들은 영구적으로 저장되고 사용될 것입니다.

  8. 새로운 전화 접속 연결을 통해 연결하십시오.

  9. 이제 이름 서버에 액세스 할 수 없습니다 (VPN으로 보안되기 때문에). VPN 연결의 서버 주소를 편집해야합니다. 호스트를 IP로 교체하십시오.

  10. VPN 연결을 통해 연결하면 사용할 수 있어야합니다.

참고 : 일반적으로 호스트 이름은 변경되지 않지만 IP는 변경 될 수 있습니다. 언젠가 작동하지 않으면 다시 단계를 수행하십시오.


안녕 알렉산더, 그것은 유망한 접근법처럼 들렸다. 그러나 dns resolver의 순서가 꽤 좋아 보이지만 운이 없었습니다. IT 부서에 다시 확인해야합니다.
user1248552

1

당신이 말한 것은 힌트를 주었으므로 VPN 연결의 DNS IP를 기본 연결의 DNS 목록에 추가했습니다 (네트워크 환경 설정에 그래픽 인터페이스를 사용하는 것만으로도 멋진 것은 아닙니다). 다루는 것은 다르지만 나와 함께 일했습니다.


1

이것은 여전히 ​​10.13.0에서 발생합니다

Apple에서 버그 보고서를 열었습니다. "ping internalhostname"은 작동하지만 "host internalhostname"또는 "nslookup internalhostname"은 분할 터널 VPN (Cisco IPSec 기반 또는 IKEv2)에서 실패하는 것은 일반적이지 않습니다.

또한 일부에서 알 수 있듯이 Cisco IPsec 연결 및 IKEv2 연결은 L2TP / IPsec과 달리 "서비스 순서 설정"으로 우선 순위를 지정할 수 없습니다.

또 다른 요점은 분할 터널 Cisco IPSec 또는 IKEv2 VPN은이 정보가 "scutil --dns"로 표시 되더라도 고급 설정에 DNS 서버 나 검색 도메인을 표시하지 않는다는 것입니다. L2TP / IPsec VPN은이 정보를 잘 보여줍니다.

무언가를 제공해야하며 Apple은 설명 / 수정을 제공해야합니다.


2017 년 말 현재 macOS에서 이러한 상황이 발생했습니다. 도메인에 구성된 분할 DNS는 적용되지 않습니다. scutil --dns위 의 명령을 실행하면 VPN의 DNS가 항상 마지막이며 올바르게 설정되어 있어도 검색 도메인에 사용되지 않는 것 같습니다.
mcdado

0

VPN 라우터에서 Split DNS가 올바르게 설정되어 있어도 원격 네트워크의 DNS 서버 대신 로컬 DNS 서버가 항상 사용되는 버그로 인해 Lion / Mountain Lion에서 작동하지 않습니다.

그러나 Cisco ASA IPSEC 라우터를 사용하는 경우 VPN 연결을 설정할 때마다 원격 DNS 서버를 강제로 사용할 수 있습니다.

Cisco ASDM을 사용하는 경우 구성> 네트워크 (클라이언트) 액세스> 그룹 정책> (OSX / iPhone의 VPN 그룹)> 고급> 분할 터널링으로 이동하십시오.

DNS 이름 ( "상속"을 선택 취소하고 내부 DNS 도메인 이름 (예 : myoffice.local)을 정의하십시오)을 선택하십시오. 모든 DNS 조회 보내기 스루 그 터널 : YES로 설정하십시오 (중요 설정).

저장하고 나중에 사용하기 위해 플래시에 저장하는 것을 잊지 마십시오.

IOS 명령 행을 사용하는 경우 다음을 설정하십시오.

group-policy <your-tunnel-group-name> attributes
 split-dns value myoffice.local
 split-tunnel-all-dns enable`

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.