Saya memiliki perilaku yang sangat aneh pada perangkat Android (Nexus 7) ketika mencoba mengakses aplikasi jaringan lokal. Alih-alih mendapatkan IP mesin yang sebenarnya di LAN, perangkat Android mendapatkan IP publik , yang berarti bahwa Chrome, Firefox atau browser lain hanya menampilkan halaman web router.
Saya memiliki server DNS internal yang menangani jaringan lokal. Melakukan ping
dari PC berfungsi dengan benar:
$ 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
Pada perangkat HTC One (diakses dengan adb shell
), ini juga berfungsi dengan baik:
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
Namun, inilah yang saya dapatkan ketika melakukan hal yang sama ping
dari Nexus 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
Alih-alih menyelesaikan ke IP internal, ia memutuskan untuk IP publik.
Konfigurasi jaringan — kecuali alamat IP perangkat — persis sama pada kedua perangkat: Pengaturan IP diatur ke Statis , dan server DNS adalah yang internal. Kedua perangkat Android terhubung melalui Wi-Fi (tidak seperti PC). Perbedaan utama, bagaimanapun, adalah bahwa Nexus 7 menggunakan Android 6.0.1, sedangkan HTC One menggunakan Android 5.0.2.
Tidak ada nm-tool
, dig
atau nslookup
pada Nexus 7. Perangkat tidak di-root.
Masalahnya ada sejak saya membeli perangkat beberapa minggu yang lalu, jadi hampir tidak ada masalah dengan cache DNS.
Apa yang bisa saya lakukan untuk memeriksa lebih lanjut masalah ini?
sumber
Jawaban:
Kami baru-baru ini mengalami masalah ini, dan kami mempersempitnya untuk HANYA terjadi pada perangkat yang menjalankan Android v5 dan yang lebih baru. Android v4 dan semua OS lainnya tidak memiliki masalah.
Dengan berita gembira itu, kami menentukan bahwa Android v5 dan yang lebih baru bersikeras menggunakan IPv6 untuk resolusi nama DNS. (Karena kami telah sepenuhnya menonaktifkan IPv6 di jaringan kami, ini sesuai dengan masalah ini.) Jika Android v5 (+) tidak bisa mendapatkan respons IPv6 dari DNS lokal, maka itu menjangkau host nama publik Google (8.8.8.8) . Karenanya, tidak ada DNS internal, hanya eksternal.
Kami mengatasi masalah ini dengan membuat data DNS pada server DNS yang menghadap publik untuk nama dan IP internal tertentu. Setelah itu selesai, DNS publik Google dapat menyelesaikan nama-nama internal ini dengan IP internal, dan perangkat kemudian dapat mencapai host internal kami.
Kami sedang melanjutkan dengan mengaktifkan IPv6 sepenuhnya pada server DNS internal kami (pengontrol domain) sebagai perbaikan permanen.
=========================================
PEMBARUAN-- Nah, ternyata ini mungkin total herring merah ... atau tidak. Jaringan rumah saya adalah Win2008R2, domain tunggal dengan DHCP dan DNS dan tidak ada IPv6 yang mengikat. Menguji perangkat Android v5 dari sana dan tidak memiliki MASALAH. Jaringan kantor dengan masalah adalah Win2012 (non-R2), satu-domain.
Memintas WAP kantor saat ini dengan WAP Linksys yang berdiri sendiri dan SSID terpisah untuk pengujian, tetap ada masalah.
Perbedaan antara jaringan kantor dan rumah (yang dapat saya pikirkan): - Versi Windows - 2012 vs 2008 R2 - model router (Cisco vs. Linksys) - Model WAP (Jaringan Aruba vs Linksys) bermerek Dell-Dell
Melanjutkan dengan pengujian lebih lanjut apa pun yang bisa saya pikirkan untuk mempersempit masalah. Setiap saran atau masukan sangat dihargai!
=========================================
MASALAH PERGI (?!)
Masalah kami tampaknya hilang dengan sendirinya setelah perubahan topologi jaringan yang saya pikir tidak terkait, tapi inilah info yang ada.
(Permintaan maaf yang BESAR untuk cerita yang panjang dan berlarut-larut ini, tapi ini adalah saat masalah Android kami menghilang, jadi naiklah ini jika Anda bisa. Saya mungkin memberikan WAY terlalu banyak detail di sini, tetapi karena saya tidak dapat melihat koneksi langsung, Saya mengungkapkan semuanya persis seperti yang terjadi.)
ISP kami adalah Comcast Business Class — modem kabel dengan blok IP statis dari lima alamat (nomor ganjil tapi itulah cara Comcast menjualnya). Modem kabel Comcast pada dasarnya adalah kombinasi modem / firewall / router / switch, dengan blok IP statis kami diprogram dari jarak jauh ke dalamnya.
Selama 10+ tahun dan hampir sama dengan perusahaan, saya selalu membangun jaringan kantor dengan cara yang sama:
Mengkonfigurasi IP LAN untuk modem / router ISP, yang lalu lintas NAT dari internet. Tidak bisa lebih sederhana, dan begitulah jaringan kantor saya saat ini telah dikonfigurasi selama empat tahun.
Baru-baru ini layanan internet kantor kami turun. Biasanya modem restart memperbaikinya, tetapi ketika tidak kita panggil Comcast yang mengirim teknologi, yang mengganti modem kabel untuk memulihkan layanan.
Beberapa hari kemudian, hal yang sama terjadi lagi. Kami menelepon lagi, dan teknisi di tempat (berbeda dari teknologi sebelumnya) berusaha untuk mengganti modem lagi, kali ini dengan model yang lebih baru. Anehnya, modem kabel yang lebih baru tidak mendukung mengubah alamat subnet LAN. Subnet default adalah 10.1.10.0/24, dan tidak dapat diubah. (Hanya oktet ke-4 yang dapat dikonfigurasi.) Karena subnet kantor kami adalah 192.168.100.0/24, saya memberi tahu teknologi bahwa kami tidak dapat menggunakannya tanpa dapat mengubah subnet LAN. Dia mengerti, tetapi tidak punya info mengapa modem kabel akan mencegah perubahan. Jadi dia memasang modem pengganti dengan model yang sama seperti sebelumnya, yang kami konfigurasikan secara identik, dan akses internet dipulihkan.
Satu atau dua hari berlalu, dan layanan turun lagi. Kali ini ketika saya menelepon Comcast, teknologi awal yang saya gunakan berbicara dengan mengajukan pertanyaan terperinci dan berpengetahuan tentang konfigurasi jaringan kami. Ketika saya menjelaskan bahwa modem kabel dikonfigurasikan dengan IP LAN pada subnet kami, ia tampak bingung dengan hal ini. Dia mengatakan bahwa sebagian besar pelanggan Comcast menghubungkan router NAT'ing antara modem kabel dan LAN daripada menggunakan NAT'ing modem kabel. Bahkan, dia bilang dia tidak sadar bahwa modem kabel mendukung NAT'ing.
Comcast mengirimkan teknologi lain dengan modem kabel baru (model terbaru yang tidak mendukung penggantian subnet LAN). Dia melakukan pengujian ekstensif pada modem yang ada, dan akhirnya memutuskan bahwa itu hanya melewati lalu lintas IPv6 — tidak ada IPv4. Dia juga mengkonfirmasi apa yang dikatakan oleh teknologi telepon - bahwa direkomendasikan untuk menggunakan router terpisah untuk NAT'ing, dan untuk tidak mengubah subnet LAN pada modem kabel (yang tidak bisa kita lakukan pada modem yang lebih baru sekarang juga).
Dan sekarang kami akhirnya sampai pada perubahan jaringan yang kami buat. Saya memasang router LinkSys sederhana antara modem kabel dan router inti kami, yang dikonfigurasi dengan IP statis kami di sisi modem, dan IP LAN di bagian dalam. Layanan Internet kemudian dipulihkan, dan tetap stabil untuk beberapa waktu sekarang.
Setelah layanan internet dipulihkan, saya berpikir tentang keanehan masalah IPv6 dengan modem kabel, yang pada gilirannya mengingatkan saya pada masalah Android v5. Saya kemudian menguji perangkat Android kami di kantor, dan terpana melihat bahwa masalah DNS tidak lagi terjadi.
Menambahkan router LinkSys untuk NAT'ing adalah PERUBAHAN JARINGAN HANYA YANG KAMI BUAT. Kebetulan ?? Mungkin, tetapi hanya sedikit aneh bahwa keduanya terkait dengan IPv6.
Ngomong-ngomong, maaf lagi untuk ceritanya yang panjang, tapi masalah Android kami hilang. Buat apa yang Anda bisa dari itu.
Dimarc67
sumber
Saya menemukan posting ini ketika mencoba untuk mendapatkan perangkat Android 6.0 saya untuk menggunakan server DNS yang dikonfigurasi secara lokal untuk menyelesaikan nama host lokal. Satu jawaban di atas menunjukkan bahwa Android 5.0 dan yang lebih baru bersikeras menggunakan server DNS IPv6. Ini adalah petunjuk yang menuntun saya ke solusi saya.
Router saya mengiklankan server DNS IPv6 yang disediakan oleh ISP saya menggunakan DHCP-PD. Saya mengkonfigurasi ulang router saya untuk berhenti mengiklankan server DNS IPv6 dan sekarang perangkat Android 6.0 menyelesaikan nama host lokal menggunakan server DNS IPv4 yang disediakan oleh DHCP (IPv4).
Saya juga memiliki DNAT untuk mengalihkan semua permintaan DNS (port TCP / UDP 53) ke server DNS lokal saya. Ini sudah ada sebelum menonaktifkan iklan router dengan server IPv6 DNS jadi saya tidak tahu apakah Android 5.0+ jatuh kembali ke server DNS Google (seperti yang diklaim dalam jawaban sebelumnya) dan saya menangkapnya dengan aturan DNAT saya atau apakah Android saya Perangkat 6.0 hanya menggunakan DHCP DNS IPv4 server yang ditugaskan. Either way, resolusi nama host lokal berfungsi sekarang.
sumber
Saya akhirnya bisa menyelesaikan ini dengan mengatur sendiri server DHCP di jaringan yang sama, yang mengkonfigurasi Domain Pencarian yang benar untuk dikirim ke klien.
Setelah saya memiliki server dhcp, dalam kasus saya isc-dhcpd dengan konfigurasi di dhcp.conf:
Android dapat menyelesaikan A-record lokal yang diatur di server DNS saya.
sumber