Androidが内部IPアドレスを指すDNSレコードの解決を拒否するのはなぜですか?


14

ローカルネットワークアプリケーションにアクセスしようとすると、Androidデバイス(Nexus 7)で非常に奇妙な動作をします。LAN上のマシンの実際のIPを取得する代わりに、Androidデバイスはパブリック IPを取得します。つまり、Chrome、Firefox、またはその他のブラウザーはルーターのWebページを表示するだけです。

ローカルネットワークを処理する内部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設定はStaticに設定され、DNSサーバーは内部サーバーです。両方のAndroidデバイスはWi-Fi経由で接続されます(PCとは異なります)。ただし、大きな違いは、Nexus 7はAndroid 6.0.1を使用しているのに対し、HTC OneはAndroid 5.0.2を使用していることです。

そこにはありませんnm-tooldigまたはnslookupネクサス7の上にデバイスが根付いていません。

問題は数週間前にデバイスを購入してから存在していたため、DNSキャッシュの問題ではないでしょう。

この問題をさらに詳しく調べるにはどうすればよいですか?


まず、問題を検査する必要があります。そのため、PlayストアからIPツールをインストールし、nslookupを作成するなどしてください。特に、Nexusが使用するDNSサーバー、DNSルックアップなど。このIPツールをお試しください。ポーランド語ですが、もちろん変更できます。このツールは、このような問題の場合に使用します。
mackowiakp

うん ではIP情報は、正しいDNSアドレスが表示されます。ではDNSルックアップ、正しいIPは(192.168.1.15)に示されています。ただし、[ Traceroute ]タブには間違ったパブリックIP(90.78.26.42)が表示されます。
Arseni Mourzenko

だから-私の意見では-Nexusの内部DNSエントリに何か問題があります。私はsimmilar構成を使用し、すべてが正常に動作します
-mackowiakp

Nexus 6p、Nexus 5、Nexus 10などで内部DNSは正常に動作します。工場出荷時のイメージをNexus 7にフラッシュして(ブートローダーのロックが解除されている場合)、正常なソフトウェアを実行していることを確認しましたか?(Nexus 7は新しいデバイスではないため、使用されたと思われます)。
デロバート

中古で購入しましたが、使用する前にリセットしてから、最新の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と2008 R2-ルーターモデル(CiscoとLinksys)-WAPモデル(DellブランドのAruba NetworksとLinksys)

問題を絞り込むために私が考えることができるさらなるテストを進めます。提案や入力は非常に高く評価されています!

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

問題がなくなった(?!)

私たちの問題は、関連するとは思わないネットワークトポロジの変更に続いて自然に消えていくように見えましたが、ここに情報があります。

(この長い、描かれた物語に対する大きな謝罪ですが、これはAndroidの問題が消えたときです。可能な限りこれを乗り越えてください。おそらくここではあまりにも多くの詳細を提供します。私はそれが起こったとおりにすべてをレイアウトしています)

ISPはComcast Business Classです。5つのアドレスの静的IPブロックを備えたケーブルモデムです(奇妙な数字ですが、それがComcastの販売方法です)。Comcastのケーブルモデムは、本質的にモデム/ファイアウォール/ルーター/スイッチの組み合わせであり、静的IPブロックがリモートでプログラムされています。

10年以上、ほぼ同じ数の雇用者の間、私は常に同じ方法でオフィスネットワークを構築してきました
。インターネットからのNATのトラフィックであるISPモデム/ルーターのLAN IPを構成します。これ以上簡単にすることはできませんでした。それが私の現在のオフィスネットワークの構成方法です。

最近、オフィスのインターネットサービスが停止しました。通常、モデムの再起動で修正されますが、技術を送ったComcastに電話し、サービスを復元するためにケーブルモデムを交換しました。

数日後、同じことが再び起こりました。再度電話をかけたところ、オンサイトの技術者(以前とは異なる技術者)がモデムを再び交換しようとしましたが、今回は新しいモデルに交換しました。驚いたことに、新しいケーブルモデムはLANサブネットアドレスの変更をサポートしていませんでした。デフォルトのサブネットは10.1.10.0/24であり、変更できません。(4番目のオクテットのみが構成可能でした。)オフィスのサブネットは192.168.100.0/24なので、LANサブネットを変更できないと使用できないことを技術者に知らせました。彼は理解しましたが、ケーブルモデムが変更を妨げる理由については情報がありませんでした。そこで、彼は以前と同じモデルの交換用モデムをインストールしました。これを同じように構成し、インターネットアクセスが復元されました。

さらに1日か2日経つと、サービスは再びダウンします。今回、私がComcastに電話したとき、私が話した最初の技術者は、ネットワーク構成について詳細かつ知識のある質問をしました。ケーブルモデムがサブネット上のLAN IPで構成されていると説明したとき、彼はこれに戸惑っていたようです。彼は、ほとんどのComcastの顧客は、ケーブルモデムのNAT'ingを使用するのではなく、ケーブルモデムとLANの間にNAT'ingルーターを接続すると述べました。実際、彼は、ケーブルモデムがNATをサポートしていることを知らないと述べました。

Comcastは、新しいケーブルモデム(LANサブネットの変更をサポートしない最新モデル)を備えた別の技術を送り出しました。彼は既存のモデムで広範なテストを行い、最終的にはIPv4ではなくIPv6トラフィックのみを通過させると判断しました。彼はまた、電話技術者が言ったことを確認しました.NATに別のルーターを使用し、ケーブルモデムのLANサブネットを変更しないことをお勧めします(これはいずれにせよ、新しいモデムではできません)。

そして今、私たちはついにネットワークの変更に着手しました。ケーブルモデムとコアルーターの間に単純なLinkSysルーターをインストールし、モデム側に静的IP、内部にLAN IPを構成しました。その後、インターネットサービスが復元され、しばらく安定しています。

インターネットサービスが復旧した後、ケーブルモデムでのIPv6の問題の奇妙さを考え、Android v5の問題を思い出しました。次に、オフィスでAndroidデバイスをテストしましたが、DNSの問題が発生しなくなったことに驚きました。

NATにLinkSysルーターを追加することは、私たちが行った唯一のネットワーク変更です。一致??おそらく、しかし、両方がIPv6に関連していることは少し奇妙に思えただけです。

とにかく、長い話を申し訳ありませんが、Androidの問題はなくなりました。あなたはそれからできることを作ります。

ディマルク67


実際、これも私の場合の原因であるはずです。同様に、IPv6を内部で使用していないからです。ローカルVPNサーバーを作成し、代わりにVPNを使用するようAndroidデバイスに要求することにより、DNSの問題を回避しました。それは機能しますが、それは明らかにあまりにも劇的です。
Arseni Mourzenko

@ArseniMourzenkoこの問題を解決したことはありますか?文字通り、以前は機能していたものの多くを文字通り壊してしまったので、私はこの問題を修正しようとする以外に何もせずに文字通り2日間無駄にしました。はい、VPNを試してみましたが、転送速度が100Mbps +から約20に低下しました
Michael

@Michael:私のローカルDNSサーバーはIPv4のみをサポートするように構成されているため、Dimarc67の回答は私にとって関連性がありました(これが受け入れられた回答としてマークされている理由でもあります)。そこから、すべてのAndroidデバイスにVPNをセットアップするだけで、それ以降はそれを使用できてうれしいです。転送速度の低下に気づいたことはありません。モバイルデバイスの使用方法を考えると、気にしません。価値があるものとして、Debianサーバー側でOpenVPNを使用し、AndroidデバイスでOpenVPN Connectを使用しています。
Arseni Mourzenko

2

Android 6.0デバイスでローカルに構成されたDNSサーバーを使用してローカルホスト名を解決しようとしたときに、この投稿に出会いました。上記の回答の1つは、Android 5.0以降がIPv6 DNSサーバーの使用を要求していることを示しています。これが、私が解決策に導く手がかりでした。

私のルーターは、DHCP-PDを使用してISPが提供するIPv6 DNSサーバーをアドバタイズしていました。IPv6 DNSサーバーのアドバタイズを停止するようにルーターを再構成しました。Android6.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を無効にすると、すべてのAndroidデバイスの問題が修正されました!
ケン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.