안드로이드가 내부 IP 주소를 가리키는 DNS 레코드의 분석을 거부하는 이유는 무엇입니까?


14

로컬 네트워크 응용 프로그램에 액세스하려고 할 때 Android 장치 (Nexus 7)에서 매우 이상한 동작이 있습니다. Android 기기는 LAN에서 기기의 실제 IP를 얻는 대신 공개 IP를 얻습니다. 즉, Chrome, Firefox 또는 다른 브라우저는 단순히 라우터의 웹 페이지를 표시합니다.

로컬 네트워크를 처리하는 내부 DNS 서버가 있습니다. pingPC에서 수행 하는 것이 올바르게 작동합니다.

$ ping s.pelicandd.com

PING pelicandd.com (192.168.1.15) 56(84) bytes of data.
64 bytes from front.pelicandd.com (192.168.1.15): icmp_seq=1 ttl=64 time=0.524 ms
64 bytes from front.pelicandd.com (192.168.1.15): icmp_seq=2 ttl=64 time=0.578 ms
^C

HTC One 장치 (로 액세스 adb shell)에서는 다음과 같이 작동합니다.

shell@m7:/ $ ping s.pelicandd.com

PING pelicandd.com (192.168.1.15) 56(84) bytes of data.
64 bytes from front.pelicandd.com (192.168.1.15): icmp_seq=1 ttl=64 time=2.56 ms
64 bytes from front.pelicandd.com (192.168.1.15): icmp_seq=2 ttl=64 time=27.8 ms
^C

그러나 이것은 pingNexus 7 에서 동일한 작업을 수행 할 때 얻는 것입니다 .

shell@flo:/ $ ping s.pelicandd.com

PING pelicandd.com (90.78.26.42) 56(84) bytes of data.
64 bytes from LFbn-1-2441-42.w90-78.abo.wanadoo.fr (90.78.26.42): icmp_seq=1 ttl=64 time=2.56 ms
64 bytes from LFbn-1-2441-42.w90-78.abo.wanadoo.fr (90.78.26.42): icmp_seq=2 ttl=64 time=8.63 ms
^C

내부 IP로 해석하는 대신 공개 IP로 해석됩니다.

네트워크 구성은 장치의 IP 주소를 제외하고 정확히 두 장치에서 동일합니다. IP 설정은 고정 으로 설정 되고 DNS 서버는 내부 설정입니다. 두 Android 기기 모두 PC와 달리 Wi-Fi를 통해 연결됩니다. 그러나 가장 큰 차이점은 Nexus 7은 Android 6.0.1을 사용하고 HTC One은 Android 5.0.2를 사용한다는 것입니다.

아무 없다 nm-tool, dig또는 nslookup넥서스 7에 장치가 뿌리되지 않습니다.

몇 주 전에 장치를 구입 한 후 문제가 발생했기 때문에 DNS 캐시에 문제가 거의 없었습니다.

이 문제를 더 자세히 조사하려면 어떻게해야합니까?


우선 문제를 점검해야합니다. 따라서 Play 스토어에서 IP 도구를 설치하고 nslookup 등을 만들어 우리가 더 많이 알도록하십시오. 특히 DNS 서버 Nexus 사용, DNS 조회 등. 이 IP 도구를 사용해보십시오 . 폴란드어로되어 있지만 물론 변경할 수 있습니다. 이러한 문제가 발생했을 때 사용하는 도구입니다.
mackowiakp

흠. 에서 IP 정보 , 그것은 올바른 DNS 주소를 표시합니다. 에서는 DNS 조회 올바른 IP는 (192.168.1.15) 도시되어있다. 그러나 Traceroute 탭에 잘못된 공용 IP (90.78.26.42)가 표시됩니다.
Arseni Mourzenko

따라서 내 의견으로는 Nexus의 내부 DNS 항목에 문제가 있습니다. 나는 simmilar 구성을 사용하고 모든 것이 잘 작동합니다.
mackowiakp

내부 DNS는 내 Nexus 6p, Nexus 5, Nexus 10 등에서 잘 작동합니다. 공장 이미지를 Nexus 7 (부트 로더 잠금이 해제 된 경우)로 플래시하여 정상적인 소프트웨어가 실행되고 있는지 확인 했습니까? (Nexus 7은 새로운 기기가 아니기 때문에 사용했다고 가정합니다).
derobert

나는 그것을 직접 구입했지만 사용하기 전에 재설정 한 다음 최신 Android 버전으로 업그레이드했습니다. 장치가 루팅되지 않은 경우 사용자 정의 소프트웨어가 실행되지 않도록하기에 충분하다고 생각합니다.
Arseni Mourzenko

답변:


5

최근이 문제가 발생하여 Android v5 이상을 실행하는 기기에서만 발생하도록 좁혔습니다. Android v4 및 기타 모든 OS에는 문제가 없습니다.

그 정점을 통해 우리는 Android v5 이상이 DNS 이름 확인에 IPv6을 사용해야한다고 결정했습니다. (네트워크에서 IPv6을 완전히 비활성화했기 때문에 문제가 발생합니다.) Android v5 (+)가 로컬 DNS에서 IPv6 응답을받을 수없는 경우 Google의 공개 이름 호스트 (8.8.8.8)에 도달합니다. . 따라서 내부 DNS가 없으며 외부입니다.

내부 이름과 IP를 선택하기 위해 공개 DNS 서버에 DNS 레코드를 만들어이 문제를 해결했습니다. 이를 통해 Google의 퍼블릭 DNS는 내부 IP로 이러한 내부 이름을 확인한 다음 장치가 내부 호스트에 도달 할 수 있습니다.

내부 DNS 서버 (도메인 컨트롤러)에서 IPv6을 완전히 수정하여 완전히 수정하고 있습니다.

==========================================

업데이트-글쎄, 이것은 완전히 붉은 청어 일 수 있습니다. 내 홈 네트워크는 Win2008R2, DHCP 및 DNS 및 IPv6 바인딩이없는 단일 도메인입니다. 거기에서 Android v5 기기를 테스트했지만 문제가 없습니다. 문제가있는 사무실 네트워크는 Win2012 (비 R2), 단일 도메인입니다.

테스트를 위해 독립형 Linksys WAP 및 별도의 SSID를 사용하여 현재 사무실 WAP를 우회하여 문제가 지속됩니다.

사무실과 홈 네트워크의 차이점 (생각할 수 있음) :-Windows 버전-2012 vs. 2008 R2-라우터 모델 (Cisco vs. Linksys)-WAP 모델 (Dell 브랜드 Aruba Networks vs. Linksys)

문제를 좁히기 위해 추가 테스트를 진행할 수 있습니다. 모든 제안이나 의견은 대단히 감사합니다!

==========================================

문제가 사라지다 (?!)

우리의 문제는 관련이 없다고 생각되는 네트워크 토폴로지 변경에 따라 자체적으로 사라지는 것처럼 보였지만 여기에 정보가 있습니다.

(이 길고 뽑힌이 이야기에 대한 큰 사과이지만, 이것은 안드로이드 문제가 사라 졌을 때입니다. 가능하다면이 문제를 해결하십시오. 아마도 여기에 너무 많은 세부 정보를 제공하고 있지만 직접 연결을 볼 수 없기 때문에, 나는 그것이 일어난 그대로 정확하게 배치하고 있습니다.)

당사의 ISP는 Comcast Business Class입니다. 고정 IP 블록이 5 개의 주소를 가진 케이블 모뎀입니다 (이상한 숫자이지만 Comcast가 판매하는 방식). Comcast의 케이블 모뎀은 본질적으로 모뎀 / 방화벽 / 라우터 / 스위치의 조합이며 정적 IP 블록이 원격으로 프로그래밍되어 있습니다.

10 년 이상 거의 모든 고용주를 위해 항상 같은 방식으로 사무실 네트워크를 구축했습니다
. 인터넷에서 NAT의 트래픽 인 ISP 모뎀 / 라우터에 LAN IP를 구성하십시오. 더 간단 할 수 없었고, 이것이 현재 사무실 네트워크가 4 년 동안 구성된 방식입니다.

최근에 우리 사무실 인터넷 서비스가 다운되었습니다. 일반적으로 모뎀을 다시 시작하면 문제가 해결되지만, 기술을 보낸 Comcast에 연락하지 않으면 서비스를 복구하기 위해 케이블 모뎀을 교체했습니다.

며칠 후 같은 일이 다시 일어났습니다. 우리는 다시 전화를 걸었고, 온 사이트 기술 (이전과 다른 기술)은 이번에 새로운 모델로 모뎀을 다시 교체하려고 시도했습니다. 놀랍게도 최신 케이블 모뎀은 LAN 서브넷 주소 변경을 지원하지 않았습니다. 기본 서브넷은 10.1.10.0/24이며 변경할 수 없습니다. 사무실 서브넷이 192.168.100.0/24이므로 LAN 서브넷을 변경하지 않고는 사용할 수 없다는 사실을 기술 부서에 알 렸습니다. 그는 이해했지만 케이블 모뎀이 왜 변경을 막을 수 있는지에 대한 정보는 없었습니다. 그래서 그는 이전과 동일한 모델의 교체 모뎀을 설치했습니다. 우리는 동일하게 구성했으며 인터넷 액세스가 복원되었습니다.

하루나 이틀이 지나면 서비스가 다시 중단됩니다. 이번에 Comcast에 전화를 걸었을 때 제가 말했던 초기 기술은 네트워크 구성에 관한 상세하고 지식이 풍부한 질문이었습니다. 케이블 모뎀이 서브넷에서 LAN IP로 구성되었다고 설명했을 때, 그는이 문제에 당황했습니다. 그는 대부분의 컴캐스트 고객이 케이블 모뎀의 NAT를 사용하지 않고 케이블 모뎀과 LAN 사이에 NAT 라우터를 연결한다고 말했다. 그는 케이블 모뎀이 NAT를 지원한다는 사실을 알지 못했다고 말했다.

Comcast는 새로운 케이블 모뎀 (LAN 서브넷 변경을 지원하지 않는 최신 모델)으로 다른 기술을 보냈습니다. 그는 기존 모뎀에 대한 광범위한 테스트를 수행 한 후 IPv4가 아닌 IPv6 트래픽 만 전달하고 있음을 확인했습니다. 그는 전화 기술이 말한 것을 확인했다. NAT를 위해 별도의 라우터를 사용하고 케이블 모뎀의 LAN 서브넷을 변경하지 않는 것이 좋습니다.

그리고 이제 우리는 우리가 만든 네트워크 변경에 마침내 도달합니다. 케이블 모뎀과 코어 라우터 사이에 간단한 LinkSys 라우터를 설치했습니다. 모뎀 쪽의 고정 IP와 내부의 LAN IP로 구성되었습니다. 인터넷 서비스는 그 후 복원되었으며, 한동안 안정적으로 유지되었습니다.

인터넷 서비스가 복원 된 후 케이블 모뎀의 IPv6 문제가 이상하다고 생각하여 Android v5 문제를 상기 시켰습니다. 그런 다음 사무실에서 Android 기기를 테스트했으며 DNS 문제가 더 이상 발생하지 않는 것을보고 기절했습니다.

NAT를위한 LinkSys 라우터 추가는 유일한 네트워크 변경입니다. 우연의 일치?? 아마도 둘 다 IPv6과 관련이있는 것은 조금 특이한 것처럼 보였습니다.

어쨌든, 긴 이야기에 대해 다시 죄송하지만 Android 문제는 사라졌습니다. 당신이 할 수있는 것을 만드십시오.

디 마크 67


실제로, 이것은 필자의 경우에도 원인이되어야합니다. 마찬가지로 내부적으로 IPv6을 사용하지 않기 때문입니다. 로컬 VPN 서버를 만들고 Android 기기에 VPN을 대신 사용하도록 요청하여 DNS 문제를 피했습니다. 작동하지만 분명히 너무 과감합니다.
Arseni Mourzenko

@ArseniMourzenko이 문제를 해결 한 적이 있습니까? 나는 문자 그대로 다른 일을하지 않고이 문제를 해결하려고 이틀을 낭비했습니다. 이전은 문자 그대로 이전에 작동했던 많은 것들을 깨뜨 렸습니다. 그리고 예, VPN을 시도했지만 전송 속도가 100Mbps 이상에서 20으로 줄었습니다.
Michael

@Michael : 로컬 DNS 서버가 IPv4 만 지원하도록 구성 되었기 때문에 Dimarc67의 답변이 나에게 적합했습니다 (이것이 수락 된 답변으로 표시되는 이유이기도합니다). 여기에서 모든 Android 기기에 VPN을 설정하고 그 이후로 사용하게되어 기쁩니다. 모바일 장치를 사용 하는 방법을 고려할 때 전송 속도의 감소를 눈치 채지 못했습니다 . 가치있는 것을 위해 데비안 서버 쪽에서 OpenVPN을 사용하고 Android 장치에서 OpenVPN Connect를 사용하고 있습니다.
Arseni Mourzenko

2

Android 6.0 장치가 로컬로 구성된 DNS 서버를 사용하여 로컬 호스트 이름을 확인하도록하는 동안이 게시물을 보았습니다. 위의 답변 중 하나는 Android 5.0 이상이 IPv6 DNS 서버 사용을 주장한다는 것을 나타냅니다. 이것이 내 해결책으로 이어지는 단서였습니다.

라우터가 DHCP-PD를 사용하여 ISP가 제공 한 IPv6 DNS 서버를 알리고있었습니다. IPv6 DNS 서버 광고를 중지하도록 라우터를 재구성했으며 이제 Android 6.0 장치는 DHCP (IPv4)에서 제공하는 IPv4 DNS 서버를 사용하여 로컬 호스트 이름을 확인하고 있습니다.

또한 모든 DNS 쿼리 (TCP / UDP 포트 53)를 로컬 DNS 서버로 리디렉션하는 DNAT가 있습니다. 이것은 IPv6 DNS 서버에서 라우터 광고를 비활성화하기 전에 이루어 졌으므로 Android 5.0 이상이 Google DNS 서버로 되돌아 갔는지 (이전 답변에서 주장한 바와 같이) 알지 못하고 DNAT 규칙 또는 내 Android 여부 6.0 장치가 DHCP 할당 IPv4 DNS 서버를 사용했습니다. 어느 쪽이든, 로컬 호스트 이름 확인이 현재 작동 중입니다.


라우터에서 IPV6을 비활성화하면 모든 안드로이드 장치에서 문제가 해결되었습니다!
Ken J

2

마침내 동일한 네트워크에서 DHCP 서버를 직접 설정하여이 문제를 해결할 수 있었으며, 클라이언트로 보낼 올바른 검색 도메인을 구성했습니다.

일단 dhcp 서버를 가지고 있다면, 제 경우에는 dhcp.conf의 설정을 가진 isc-dhcpd입니다 :

option domain-name "myrealdomain.tld";

Android는 내 DNS 서버에 설정된 로컬 A 레코드를 확인할 수있었습니다.

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