잘못된 DNS 서버 주소를 나눠주는 인터넷 공유


6

OS X Mavericks 10.9.2가 설치된 MacBook Pro를 사용하고 있습니다. 그것은 USB 3G 동글을 통해 인터넷에 연결하고, 와이파이를 통해 그 인터넷 연결을 공유하고 싶습니다. 그러나 생성 된 wifi 액세스 포인트에 연결하는 장치에서 DNS 조회가 작동하지 않습니다 (단 8.8.8.8을 ping 할 수는 있지만). 8.8.8.8을 사용하도록 장치를 정적으로 구성하면 모든 장치가 작동하지만 모든 장치가이를 지원하지는 않습니다 (또는 고정 IP 및 게이트웨이를 구성하려는 경우에만 해당).

문제는 OS X이 bootp (DHCP 서버)가 MacBook 자체의 DNS 서버 주소를 할당하도록 구성하는 것 같습니다.

$ cat /etc/bootp.list
...
            <key>dhcp_domain_name_server</key>
            <array>
                <string>192.168.2.1</string>
            </array>
...

이것은 실제로 기계 자체의 IP 주소입니다.

$ ifconfig
...
bridge100: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
    options=3<RXCSUM,TXCSUM>
    ether 02:26:bb:66:19:64
    inet 192.168.2.1 netmask 0xffffff00 broadcast 192.168.2.255
...

DHCP 응답에서 클라이언트가받는 것은 다음과 같습니다.

$ sudo tcpdump -vv
15:26:07.265635 IP (tos 0x0, ttl 255, id 9846, offset 0, flags [none], proto UDP (17), length 328)
    192.168.2.1.bootps > 192.168.2.2.bootpc: [udp sum ok] BOOTP/DHCP, Reply, length 300, xid 0x4e0988af, Flags [none] (0x0000)
      Your-IP 192.168.2.2
      Server-IP 192.168.2.1
      Client-Ethernet-Address 10:bf:48:cc:49:7d (oui Unknown)
      sname "ip-77-24-232-37.web.vodafone.de"
      Vendor-rfc1048 Extensions
        Magic Cookie 0x63825363
        DHCP-Message Option 53, length 1: ACK
        Server-ID Option 54, length 4: 192.168.2.1
        Lease-Time Option 51, length 4: 85536
        Subnet-Mask Option 1, length 4: 255.255.255.0
        Default-Gateway Option 3, length 4: 192.168.2.1
        Domain-Name-Server Option 6, length 4: 192.168.2.1

이제 실제로 작동한다면 괜찮을 것입니다. 여기에 쓴 , 즉 OS X은 바인드를 실행합니다 ( named ) 서버 자체로, DNS 요청과 응답을 ISP의 서버로 전달합니다.

그러나 ... using tcpdump 클라이언트가 DNS 조회에서 오류 응답을 받고있는 것을 볼 수 있습니다.

$ sudo tcpdump
15:23:33.181447 IP 192.168.2.2.57291 > 192.168.2.1.domain: 32713+ A? google.com. (28)
15:23:33.181528 IP 192.168.2.1 > 192.168.2.2: ICMP 192.168.2.1 udp port domain unreachable, length 36

실제로, 아니오 named 서버가 실행 중이고 설치되지 않은 것 같습니다.

$ ps aux | grep named
thomas           2175   0.0  0.0  2423368    188 s000  R+    3:14pm   0:00.00 grep named
$ which named
$

5353에는 mDNSResponder라는 것이 있지만 UDP 포트 53에서도 수신 대기중인 것은 없습니다.

$ sudo lsof -i -P | grep 53
mDNSRespo   47 _mdnsresponder    8u  IPv4 0x4dcb7c0f075daa1d      0t0    UDP *:5353
mDNSRespo   47 _mdnsresponder    9u  IPv6 0x4dcb7c0f075da835      0t0    UDP *:5353
natpmpd   1664           root    4u  IPv4 0x4dcb7c0f064b6f15      0t0    UDP 192.168.2.1:5351

이제이 문제를 해결할 수있는 두 가지 방법을 생각해 볼 수 있습니다.

  1. UDP 포트 53에서 일부 DNS 서버를 실행하십시오. 아쉽게도 아무 것도 설치되어 있지 않습니다.
  2. 8.8.8.8과 같이 실제로 작동하는 DNS 서버 주소를 DHCP가 제공하도록합니다. 불행히도 InternetSharing 응용 프로그램 덮어 쓰기 /etc/bootp.plist 인터넷 공유가 켜질 때마다 IP 주소를 추가하고 작동하더라도 영원히 작동하지 않습니다.

그러나 무언가는 이것이 (그리고 일반적으로) 박스에서 제대로 작동해야한다고 말해줍니다 ... 나는 무엇을 놓치고 있습니까?


저는 2010 년 중반 MacBook에서 OS X 10.9.2를 실행하면서 인터넷을 공유하고 있습니다. 나는 named 서비스를 실행하지만, 나는 53 실행하고있어. 참고 lsof에서 16 진수 값을 제거했습니다. mDNSRespo 42 _mdnsresponder 8u IPv4 0t0 UDP *:5353 mDNSRespo 42 _mdnsresponder 9u IPv6 0t0 UDP *:5353 mDNSRespo 42 _mdnsresponder 64u IPv4 0t0 UDP *:53 mDNSRespo 42 _mdnsresponder 65u IPv6 0t0 UDP *:53 mDNSRespo 42 _mdnsresponder 66u IPv4 0t0 TCP *:53 (LISTEN) mDNSRespo 42 _mdnsresponder 67u IPv6 0t0 TCP *:53 (LISTEN)
MichaelStoner

흥미 롭 군. 나는 비 - 애플 소프트웨어가 구성을 엉망으로 만들 것이라고 생각하기 시작했다.
Thomas

예, 실행중인 '명명 된'서비스에 대해 시스템을 검사 한 후에 빠른 Google을 사용했으며 다양한 소프트웨어 프로젝트가 DNS 응답자를 시작합니다. 그것을 찾는 행운을 비네. 하드 드라이브 btw에 대한 사용 권한을 복구 했습니까?
MichaelStoner

지금 Disk Utility에서 확인 작업을 실행하십시오. 나 한테서 뛰어 내리는 건 아무것도 없어.
Thomas

1
분명히 Mavericks에서 인터넷 공유는 mDNSResponder 프로세스에서 DNS 프록시 기능을 사용하도록되어 있습니다 (이전 버전에서는 BIND / named가 사용되었지만 Mav에는 설치되지 않았습니다). 불행히도 DNS 프록시가 어떻게 활성화되어 있는지, 어떤 점이 방해가되는지 알 수 없습니다.
Gordon Davisson

답변:


2

그만큼 참조가 실제로 출판되었을 때 참으로 정확했으며 이는 그것이 매버릭스 이전에 어떻게 작동했는지를 보여줍니다. Under Mountain Lion 'named'는 /etc/com.apple.named.proxy.conf를 설정 파일로 사용하여 인터넷 공유가 활성화되면 시작됩니다. 이것은 Mountain Lion에서 모두 관찰 할 수 있습니다.

그러나 도메인 이름 확인은 다른 OSen처럼 OS X에서 DNS를 기반으로하는 것이 아니라 플랫 파일, NIS, NetInfo, LDAP, ZeroConfig / Bonjour에서 DNS 조회를 허용하는 디렉토리 서비스를 기반으로합니다. .. 그리고 DNS -이 이름 전환의 해결에 사용되는 mDNSResponder입니다. (매뉴얼 페이지에 따라) mDNSResponder is also the system-wide Unicast DNS Resolver. 그것은 Mavericks에서 인터넷 공유 클라이언트에 대한 DNS 확인을 수행하거나 수행해야하는 작업입니다. (그들이 놀란 것은 이상했다. named 당시 mDNSResponder를 사용하지 않고 Mt Lion에서

인터넷 공유가 활성화 될 때 named (pre-Mavericks) 또는 mDNSResponder (Mavericks)는 인터넷 공유를위한 이름 확인을 수행해야하는 "DNS 서버"이며 NAPT의 인터넷 클라이언트에 대한 DNS 서버를 정확하게 192.168.2.1로 만듭니다 나누는. 그래서 귀하의 질문에 대한 간단하고 간단한 대답은 "잘못된 DNS 서버 주소"를 나눠주고 있지 않다는 것입니다.

이 논증은 인터넷 공유를 설정하여 이더넷을 통해 WiFi 연결을 공유하는 데 효과적이었습니다. 인터넷 공유에 의해 제공되는 클라이언트는 DNS 요청을 192.168.2.1에 보내면 브라우저에서 쿼리를 올바르게 수신하고 발급 할 때 관찰됩니다 dig @192.168.2.1 apple.com; 나는 이것을 검증하기 위해 tcpdump를 통해 실제로 관찰했다. 모든 것이 "기대대로 작동합니다".

호스팅 Mac의이 구성에서 나는 또한 telnet 192.168.2.1 53 mDNSResponder에 연결하십시오. 이더넷에 우선 순위를 갖는 WiFi로 설정된 네트워크에 대한 서비스 명령을 받았습니다.

그러나 이것을 역으로 실행할 때 WiFi를 통해 이더넷 연결을 공유하면 처음에는 이전과 동일한 문제가 발생했습니다. 즉, UDP DNS 요청이 보내졌지만 다시 응답하지 않았 음을 알았습니다. 핑 (Ping)은 8.8.8.8로 넘어 갔으며 dig (8.8.8.8)는 잘 작동했습니다. 나는 이것을 버그로 써 둘 준비가되었지만 나중에 맥북 프로를 재시작 할 기회를 얻었으며이 작업을 다시 시도했다. 네트워크 환경 설정 패널 서비스 주문에서 이더넷이 우선 순위를 갖도록했다. 이번에는 "효과가 있었지만"문제를 재현 할 수 없었습니다. 다시 부팅하고 서비스 순서를 확인하여 문제가 해결되었습니다.

또한 나는 다음과 같이 할 수 있음을 확인했다.

  • 발행 dig @192.168.2.1 apple.com 인터넷 공유의 클라이언트 (할당 된 192.168.2.3)로부터 성공적인 응답을받습니다. 또한 tcpdump를 사용하여 UDP 쿼리 및 응답을 관찰했습니다.

01:01:05.620240 IP 192.168.2.3.58817 > 192.168.2.1.domain: 34923+ A? apple.com. (27) 01:01:06.051566 IP 192.168.2.1.domain > 192.168.2.3.58817: 34923 3/0/0 A 17.149.160.49, A 17.172.224.47, A 17.178.96.59 (75)

  • 호스팅 Mac에서 telnet 192.168.2.1 53 연결을 수신합니다.

인터넷 공유는 항상 약간 허약했습니다. 자주 이상한 행동을 보아서 인터넷 공유를 실행하기 전에 다시 시작하거나 문제의 인터페이스에 대한 네트워크 환경 설정에서 "서비스 비활성"으로 설정 한 다음 다시 활성화하도록 설정하는 것이 가장 좋습니다. (변경 사항을 적용 할 때는 "적용"을해야합니다.) 또한 기본 게이트웨이를 제어하는 ​​서비스 주문도 영향을 미칠 수 있습니다 (예상대로). Apple은 "Automatic"(또는 합리적인 팩시밀리) 위치를 제공했습니다. 또한 Leopard 주변에서 사용하기 때문에 각 네트워크 인터페이스에 자체 게이트웨이가 있고 나중에 사용할 DNS 서버를 가질 수 있는지 디버깅 할 때를 기억하십시오.

따라서 다음 세 가지를 제안합니다. (1) 재부팅 및 네트워크 서비스 우선 순위 확인 및 / 또는 (2) Mavericks의 새로 설치로 문제가 해결되는지 확인하고 (3) 인터넷을 얻을 수 있는지 확인하십시오. 이더넷이 WiFi를 통해 공유되고 그 반대의 경우 공유 작업. (3) 작업을 할 수 없다면 Mac에서 잘못 구성된 항목을 다시보고 새로 설치를 제안해야합니다.

이더넷에서 작동하도록 할 수 있다면 & gt; WiFi 및 WiFi - & gt; 이더넷은 USB 동글 (USB Dongle)과 함께 뭔가를 제안합니다. 서비스 주문을 조정하면 더 높은 우선 순위가 필요할 수 있습니다.

방화벽 규칙이 없거나 Little Snitch 또는 간섭 할 수있는 사항이 있는지 확인하십시오.

인터넷 공유에 문제가있는 경우 일부 디버깅 옵션이 표시됩니다.

$ /usr/libexec/InternetSharing --help

이것들과 그것의 로그 파일은 mDNSResponder의 로그 파일과 함께 여전히 문제가있을 때 유용 할 수 있습니다.

그러나 질문에 대한 대답 : 192.168.2.1은 인터넷 공유가 작동하도록 설계된 방식에 따라 인터넷 공유를위한 "올바른"DNS 서버이므로 DHCP에서 잘못된 DNS 서버 주소를 전달하지 않습니다. mDNSResponder는 Mavericks에서 인터넷 공유를 실행하는 호스트에서 DNS를 처리해야합니다. 아니 `named 필요합니다.


그것을 어떻게 자세하게 문서화했기 때문에이 대답을 받아들입니다. 할까요 작업. 나는 나중에 또 다른 찌를 수도 있지만, 잘하면 내 광대역이 곧 연결될 것이고 어리석은 동글이 더 이상 필요하지 않을 것이다. :)
Thomas

@ 토마스, 그래서 대답은 문제를 해결하지 못했습니까? 그리고 다른 대답의 제안을 시도 했습니까?
l'L'l

필자는 특정 네트워크 구조를 테스트 할 3G Dongle을 가지고 있지 않지만, iPhone을 제지 할 때의 설명처럼 작동합니다. 공유되는 모든 네트워크 인터페이스간에 패리티가 있어야합니다.
ColonelMode

나는 같은 문제에 부딪 쳤고 그것을 어떻게 작동시킬 수 있는지 알 수 없었다. 나는 결국 따라 갔다. wiki.base22.com/display/btg/... 내 DNS 서버를 8.8.8.8로 설정합니다.
some user

2

문제는 검색 범위를 좁히는 것 같습니다. 클라이언트가 잘못된 DNS 서버 주소를 넘기는 것은 아니지만 클라이언트가 DNS 서버로 192.168.2.1을 사용할 수없는 것과 관련이 있습니다. 인터넷 공유를하는 시스템에서 DNS 서버를 어떻게 설정했는지는 분명하지 않지만 문제는 그 영역에있을 가능성이 큽니다. 그래서, dchp_domain_name_server 에서 IP 주소 bootpd.plist 올바른 (적어도 정상적으로).

몇 가지 간단한 점검을하는 것이 좋습니다.

시스템 환경 설정 & gt; 나누는 다음을 확인하십시오.

  1. 다음에서 연결 공유 : Wi-Fi
  2. 사용하는 컴퓨터 : Wi-Fi, 이더넷

이더넷을 확인하면 대화 상자가 나타날 수 있습니다.

이 포트를 켜면 인터넷 서비스 공급자가   자신의 네트워크를 방해하지 않도록 서비스를 종료하십시오.

어떤 경우에는 (예를 들어 케이블 모뎀을 사용하는 경우)   실수로 ISP의 네트워크 설정에 영향을 주어 위반합니다.   서비스 계약 조건.

그게 무슨 뜻인지 정확히 모르겠다. (비록 내 ISP에 의해 침해 받았다고 느껴진다.)

시스템 환경 설정 & gt; 네트워크 설정 & gt; 이더넷 / Wi-Fi :

  1. IPv4 구성 - DHCP 사용
  2. 그런 다음 Advanced...
  3. IPv6 구성 - 자동

DNS 탭 & gt; DNS 서버 :

(Normally this would be set to your Router IP from the previous TCP/IP Tab:
Router: ... (3G USB Dongle IP Address)

/etc/bootpd.list

  1. 인터넷 공유를 중지하십시오.
  2. /tmp/bootpd.plist를 엽니 다.
  3. 이 키를 찾습니다.

<key>reply_threshold_seconds</key> <integer>4</integer>

  1. 값 4를 0으로 변경하십시오.
  2. 인터넷 공유를 시작하십시오.

* 인터넷 공유가 중지되면 설정을 삭제합니다. 가능한 한 해결책은 항상 설정을 유지하는 cron 작업 또는 launchagent를 만드는 것입니다. 또한 몇 가지 옵션이 있습니다. bootpd 터미널을 통해 실행될 수 있습니다.

기타주의 사항 :

  • 192.168.2.2에서 장치 / 컴퓨터를 확인하십시오. 192.168.2.1을 차단하지 않습니다.
  • OS X 내부 방화벽이 활성화 된 경우 OS X은 인터넷 공유를 사용하여 인터넷에서 장치 / 컴퓨터로 요청을 전달 및 수신하지만 응답을 DNS (DNS)로 전달하지 않을 수 있습니다.
  • 192.168.2.1이 아닌 정적 IP 및 DNS 서버를 사용하도록 장치 / 컴퓨터를 구성합니다 (그러나 말한대로 최적의 솔루션이 아닐 수도 있음). 또한 고정 IP 설정이 작동하지 않는 경우도 있습니다 (일반적으로 인터넷 공유 및 기본값의 경우 DHCP를 사용하는 것이 좋습니다).
  • 일부 3G USB 동글 / 라우터에는 설정이 있습니다. AP Isolation인터넷 공유를 위해 사용 중지되어야합니다.

나는 당신이 n00b가 아니며, 아마도 이미 많은 것들을 점검했을 것입니다. 그러나 아마도 당신이 그 길을 따라 놓쳤을지도 모르는 작은 것이 될 수 있습니다. 또한이 간단한 것들 중 어느 것도 문제를 푸는 데 어려움이 없다면 결과가 보류 될 수있는 구체적인 명령이 있습니다.


0

귀하의 tcpdump 대답은 :

15:23:33.181528 IP 192.168.2.1 > 192.168.2.2: ICMP 192.168.2.1 udp port domain unreachable, length 36

즉, 귀하의 Firewall 또는 동일한 역할을하는 다른 소프트웨어 또는 귀하의 수동 구성 /etc/pf.conf DNS 요청이 사용자의 MBP에 도달하지 못하도록 막았습니다.

차단 기능을 찾으려면 필터링 기능을 하나씩 끄십시오. 찾으면 올바르게 구성하십시오.

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