OS X에서 DHCP 할당 DNS 서버를 무시할 수 있지만 여전히 폴백을 유지합니까?


9

기본적으로 Google 퍼블릭 DNS 서버를 사용하고 실패 할 경우 인트라넷 서버로 대체하고 싶습니다.

이것이 가능한가? ... 랩톱을 다른 네트워크로 옮길 때 깨지지 않는 설정을 찾고 있습니다.

이 wifi 네트워크 연결과 관련된 솔루션을 찾은 경우 허용됩니다 (이 경우에만 트릭을 수행하고 다른 사람에게는 기본값을 사용).


"Google 퍼블릭 DNS 서버가 실패 할 때"는 무엇을 의미합니까? 변화하는 네트워크 위치를 스크립팅하거나 단순히 다른 DNS의 엔트리를 스크립팅하는 방법은 많이 있지만 Google DNS의 실패를 테스트하는 방법은 명확하지 않습니다. 게다가 VPN에 대한 아래의 의견은 요구 사항을 혼합하여 추가하면 상황을 더욱 복잡하게 만듭니다.
bmike

이것이 불가능하다는 것에 놀랐습니다. 때로는 DHCP를 통해 나에게 제공되는 DNS 서버에 장애가 발생하여 Google 서버를 사용합니다. 그러나 지금은 포로 포털을 구현하기 위해 DNS를 사용하는 네트워크를 사용할 수 없습니다. DHCP 제공 서버를 백업으로 사용할 수 있다면이 문제를 해결할 수 있습니다. 해결책을 찾았습니까?
Jake

답변:


4

ipconfig getpacketDHCP가 권장하는 DNS 서버를 찾는 데 사용할 수 있습니다 .

$ ipconfig getpacket en0 
...
domain_name_server (ip_mult): {192.168.3.2, 192.168.42.1}
...

따라서 Wi-Fi어댑터를 사용하고 있고 해당 장치가 이라고 가정하면 다음을 수행 en0할 수 있습니다.

#!/bin/bash

default_servers=$( ipconfig getpacket en0 | \
   perl -ne'/domain_name_server.*: \{(.*)}/ && print join " ", split /,\s*/, $1' )
networksetup -setdnsservers Wi-Fi 127.0.0.1 $default_servers

2

예, 목록 상단에 Google DNS 서버를 추가하고 자체 (인트라넷 서버) 서버를 따라갈 수 있습니다.

  • 시스템 환경 설정> 네트워크로 이동하십시오
  • 왼쪽 목록에서 네트워크 인터페이스를 선택하십시오
  • 오른쪽 의 고급 버튼을 클릭하십시오
  • 대화 상자 의 DNS 탭에서 "+"를 클릭하여 항목을 추가하거나 "-"를 클릭하여 항목을 제거하십시오 (주소를 두 번 클릭하거나 선택하고 클릭하여 항목을 편집 할 수도 있음).
  • Google DNS 주소를 처음 두 항목으로 추가
  • 그 아래에 인트라넷 DNS 서버 추가
  • 확인을 클릭하십시오
  • 적용을 클릭 하십시오
  • 시스템 환경 설정 닫기

1
나는 이것을 알고 있지만 문제는 이것이 다른 위치에서 동일한 VPN을 사용할 수 없다는 것입니다. VPN 서버 (PPTP)에서 구성하거나 127.0.0.1 주소로 DNS를 구성하고 여전히 DHCP 제공 DNS 서버를 사용하는 로컬 DNS를 구성하는 다른 솔루션이어야합니다.
sorin

1

네트워크 관리자가 일괄 처리 로이 작업을 수행하는 방법을 찾고 있다면 명령 줄 에서이 작업을 수행하는 방법도 있습니다.

networksetup listallnetworkservices
# look for the correct network device here, probably "Wi-Fi"
sudo networksetup -setdnsservers Wi-Fi 8.8.8.8 8.8.4.4

"Wi-Fi"를 올바른 네트워크 장치로 교체하십시오. 대신 다음을 사용할 수 있습니다.

device=`networksetup listallnetworkservices | grep Wi-Fi`
sudo networksetup -setdnsservers "$device" 8.8.8.8 8.8.4.4

1

나는 똑같이하려고합니다. 캐싱 DNS 서버를 로컬 에서 수동으로 실행하고 가입 할 때 인트라넷을 배우게합니다.

dns 서버가 재귀 호출을하기 전에 인트라넷과 인터넷 호스트 이름구분할 수도 있다는 점에 흥분합니다 .

짧은 TTL이 필요하거나 인터페이스가 변경 될 때마다 dns 캐시를 플러시하는 것을 고려할 수 있도록 후크를 작성해야한다고 걱정합니다.

성공하면 다시보고하겠습니다 ...

처음 50 %

DNS 서버Wikipedia 비교를 살펴본 후 Dnsmasq가 내 목록의 맨 위에옵니다.

brew대한 포럼을 가지고 있으며 dnsmasq, 심지어 services하위 인터페이스를 위해 작성된 것입니다 brew... 잘 생각하지 않고 구성을 해결해야합니다.

$ brew install dnsmasq  # [libidn] internation domain names
$ cp /usr/local/opt/dnsmasq/dnsmasq.conf.example /usr/local/etc/dnsmasq.conf
# To have launchd start dnsmasq now and restart at startup:
$ sudo brew services start dnsmasq 

( brew또한 bind있지만 최소 상태는 매력적입니다. 네트워크 구성을 수행 할 때 지우지 않아도됩니다).

할 것

  • 새로운 DNS를 사용 하도록 네트워크 환경 설정을 구성 하고
  • dnsmasq인트라넷 설정을 사용할 수 있도록 구성하십시오 . (진짜 도전)
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.