Tại sao Android từ chối giải quyết các bản ghi DNS trỏ đến địa chỉ IP nội bộ?


14

Tôi có một hành vi rất lạ trên thiết bị Android (Nexus 7) khi cố gắng truy cập các ứng dụng mạng cục bộ. Thay vì nhận được IP thực của máy trên mạng LAN, các thiết bị Android được các công IP, có nghĩa là Chrome, Firefox hoặc bất kỳ trình duyệt khác chỉ đơn giản cho thấy các trang web của router.

Tôi có một máy chủ DNS nội bộ xử lý các mạng cục bộ. Làm pingtừ PC hoạt động chính xác:

$ 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

Trên thiết bị HTC One (được truy cập cùng adb shell), thiết bị cũng hoạt động tốt:

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

Tuy nhiên, đây là những gì tôi nhận được khi thực hiện tương tự pingtừ 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

Thay vì phân giải IP nội bộ, nó phân giải thành IP công khai.

Cấu hình mạng là loại trừ ngoại trừ địa chỉ IP của thiết bị giống hệt nhau trên cả hai thiết bị: Cài đặt IP được đặt thành Tĩnh và máy chủ DNS là máy chủ nội bộ. Cả hai thiết bị Android đều được kết nối thông qua Wi-Fi (không giống như PC). Tuy nhiên, một sự khác biệt lớn là Nexus 7 đang sử dụng Android 6.0.1, trong khi HTC One sử dụng Android 5.0.2.

Không có nm-tool, dighoặc nslookuptrên Nexus 7. Thiết bị này không bắt nguồn từ.

Vấn đề đã tồn tại kể từ khi tôi mua thiết bị này vài tuần trước, vì vậy nó khó có thể là vấn đề với bộ đệm DNS.

Tôi có thể làm gì để kiểm tra thêm vấn đề này?


Trước hết Bạn phải kiểm tra vấn đề. Vì vậy, vui lòng cài đặt Công cụ IP từ Play Store, tạo một số nslookup và cứ thế chúng ta sẽ biết nhiều hơn. Đặc biệt là máy chủ DNS sử dụng Nexus, tra cứu DNS, v.v. Hãy thử Công cụ IP này . Nó là ngôn ngữ Ba Lan nhưng tất nhiên bạn có thể thay đổi nó. Công cụ này tôi sử dụng trong trường hợp có vấn đề như vậy.
mackowiakp

Hừm. Trong Thông tin IP , nó sẽ hiển thị các địa chỉ DNS chính xác. Trong tra cứu DNS , IP chính xác được hiển thị (192.168.1.15). Tuy nhiên, tab Traceroute hiển thị IP công cộng sai (90.78.26.42).
Arseni Mourzenko

Vì vậy - theo ý kiến ​​của tôi - có điều gì đó không đúng với mục nhập DNS nội bộ cho Nexus. Tôi sử dụng cấu hình
simmilar

DNS nội bộ hoạt động tốt trên Nexus 6p, Nexus 5, Nexus 10 của tôi, v.v. Bạn đã thử flash hình ảnh nhà máy sang Nexus 7 (nếu bộ tải khởi động của nó được mở khóa) để đảm bảo rằng nó đang chạy phần mềm nổi tiếng chưa? (Tôi đoán bạn đã sử dụng nó, vì Nexus 7 không phải là thiết bị mới).
derobert

Tôi đã mua nó đã qua sử dụng, nhưng tôi đã thiết lập lại trước khi sử dụng, tiếp theo là nâng cấp lên phiên bản Android mới nhất. Tôi tưởng tượng điều này là đủ để đảm bảo nó không chạy bất kỳ phần mềm tùy chỉnh nào, với điều kiện là thiết bị không được root.
Arseni Mourzenko

Câu trả lời:


5

Gần đây chúng tôi đã gặp phải sự cố này và chúng tôi đã thu hẹp nó thành CHỈ xảy ra trên các thiết bị chạy Android v5 trở lên. Android v4 và tất cả các hệ điều hành khác không có vấn đề gì.

Với mẩu tin đó, chúng tôi đã xác định rằng Android v5 và mới hơn khăng khăng sử dụng IPv6 để phân giải tên DNS. (Vì chúng tôi đã vô hiệu hóa hoàn toàn IPv6 trên mạng của chúng tôi, điều này gây ra sự cố.) Nếu Android v5 (+) không thể nhận được phản hồi IPv6 từ DNS cục bộ, thì nó sẽ tiếp cận với máy chủ tên công khai của Google (8.8.8.8) . Do đó, không có DNS nội bộ, chỉ bên ngoài.

Chúng tôi đã khắc phục sự cố bằng cách tạo bản ghi DNS trên các máy chủ DNS đối mặt công khai của chúng tôi để chọn tên và IP nội bộ. Khi đã hoàn thành, DNS công cộng của Google có thể phân giải các tên nội bộ này bằng IP nội bộ và sau đó các thiết bị có thể truy cập các máy chủ nội bộ của chúng tôi.

Chúng tôi đang tiến hành kích hoạt đầy đủ IPv6 trên các máy chủ DNS nội bộ (bộ điều khiển miền) dưới dạng sửa lỗi vĩnh viễn.

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

CẬP NHẬT-- Chà, hóa ra đây có thể là cá trích đỏ hoàn toàn ... hoặc không. Mạng gia đình của tôi là Win2008R2, tên miền đơn với DHCP và DNS và không có ràng buộc IPv6. Đã thử nghiệm một thiết bị Android v5 từ đó và KHÔNG CÓ VẤN ĐỀ. Mạng văn phòng có vấn đề là Win2012 (không phải R2), tên miền đơn.

Bỏ qua các WAP văn phòng hiện tại với Wap Linksys độc lập và SSID riêng để thử nghiệm, vấn đề vẫn tồn tại.

Sự khác biệt giữa mạng văn phòng và mạng gia đình (mà tôi có thể nghĩ đến): - Phiên bản Windows - 2012 so với 2008 R2 - mô hình bộ định tuyến (Cisco so với Linksys) - mô hình WAP (Mạng lưới thương hiệu Dell so với Linksys)

Tiếp tục với bất kỳ thử nghiệm nào nữa tôi có thể nghĩ đến để thu hẹp vấn đề. Bất kỳ đề xuất hoặc đầu vào là vô cùng đánh giá cao!

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

VẤN ĐỀ GỌI (?!)

Vấn đề của chúng tôi dường như tự biến mất sau một thay đổi cấu trúc mạng mà tôi không nghĩ là có liên quan, nhưng đây là thông tin trong trường hợp.

(ỨNG DỤNG LỚN trong câu chuyện dài, được vẽ ra, nhưng đây là khi các sự cố Android của chúng tôi biến mất, vì vậy hãy giải quyết vấn đề này nếu bạn có thể. Tôi có thể cung cấp CÁCH quá nhiều chi tiết ở đây, nhưng vì tôi không thể thấy kết nối trực tiếp, Tôi đang đặt nó chính xác như nó đã xảy ra.)

ISP của chúng tôi là Comcast Business Class, một modem cáp với khối IP tĩnh gồm năm địa chỉ (số lạ nhưng đó là cách Comcast bán chúng). Modem cáp của Comcast về cơ bản là một modem kết hợp / tường lửa / bộ định tuyến / bộ chuyển mạch, với khối IP tĩnh của chúng tôi được lập trình từ xa.

Trong hơn 10 năm và gần như nhiều nhà tuyển dụng, tôi đã luôn xây dựng các mạng văn phòng theo cùng một cách: Định
cấu hình IP LAN cho modem / bộ định tuyến ISP, lưu lượng truy cập của NAT từ internet. Không thể đơn giản hơn, và đó là cách mạng văn phòng hiện tại của tôi đã được cấu hình trong bốn năm.

Gần đây dịch vụ internet văn phòng của chúng tôi đã đi xuống. Thông thường, một modem khởi động lại sẽ sửa nó, nhưng khi chúng tôi không gọi Comcast, người đã gửi một công nghệ, người đã thay thế modem cáp để khôi phục dịch vụ.

Vài ngày sau, điều tương tự lại xảy ra. Chúng tôi đã gọi lại và công nghệ tại chỗ (công nghệ khác so với trước đây) đã cố gắng thay thế modem một lần nữa, lần này bằng một mô hình mới hơn. Đáng ngạc nhiên, modem cáp mới hơn không hỗ trợ thay đổi địa chỉ mạng con LAN. Mạng con mặc định là 10.1.10.0/24 và không thể thay đổi. (Chỉ octet thứ 4 là có thể định cấu hình.) Vì mạng con văn phòng của chúng tôi là 192.168.100.0/24, tôi cho công nghệ biết rằng chúng tôi không thể sử dụng nó mà không thể thay đổi mạng con LAN. Ông hiểu, nhưng không có thông tin về lý do tại sao modem cáp sẽ ngăn chặn sự thay đổi. Vì vậy, anh ta đã cài đặt một modem thay thế cùng kiểu như trước đây, chúng tôi đã cấu hình giống hệt nhau và truy cập internet đã được khôi phục.

Một hoặc hai ngày nữa trôi qua, và dịch vụ lại đi xuống. Lần này khi tôi gọi Comcast, công nghệ ban đầu tôi đã nói với những câu hỏi chi tiết và hiểu biết về cấu hình mạng của chúng tôi. Khi tôi giải thích rằng modem cáp được cấu hình với IP LAN trên mạng con của chúng tôi, anh ta có vẻ bối rối vì điều này. Ông nói rằng hầu hết các khách hàng của Comcast kết nối bộ định tuyến NAT giữa modem cáp và LAN thay vì sử dụng NAT của modem cáp. Trên thực tế, ông nói rằng ông không biết rằng modem cáp hỗ trợ NAT.

Comcast đã gửi một công nghệ khác với modem cáp hoàn toàn mới (model mới nhất không hỗ trợ thay đổi mạng con LAN). Anh ta đã thử nghiệm rộng rãi trên modem hiện có và cuối cùng xác định rằng nó chỉ truyền lưu lượng IPv6 không có IPv4. Ông cũng xác nhận những gì công nghệ điện thoại đã nói - rằng nên sử dụng bộ định tuyến riêng cho NAT và không thay đổi mạng con LAN trên modem cáp (dù sao chúng ta không thể làm gì trên các modem mới hơn bây giờ).

Và bây giờ chúng tôi cuối cùng đã đến với sự thay đổi mạng mà chúng tôi đã thực hiện. Tôi đã cài đặt bộ định tuyến LinkSys đơn giản giữa modem cáp và bộ định tuyến lõi của chúng tôi, được định cấu hình với IP tĩnh của chúng tôi ở phía modem và IP LAN ở bên trong. Dịch vụ Internet sau đó đã được khôi phục và vẫn ổn định trong một thời gian.

Sau khi dịch vụ internet được khôi phục, tôi nghĩ về sự kỳ lạ của vấn đề IPv6 với modem cáp, từ đó nhắc nhở tôi về vấn đề Android v5. Sau đó tôi đã thử nghiệm các thiết bị Android của chúng tôi trong văn phòng và đã choáng váng khi thấy rằng sự cố DNS không còn xảy ra nữa.

Thêm bộ định tuyến LinkSys cho NAT là CHỈ MẠNG THAY ĐỔI MẠNG CHÚNG TÔI LÀM. Sự trùng hợp ?? Có thể, nhưng có vẻ hơi kỳ lạ là cả hai đều liên quan đến IPv6.

Dù sao, xin lỗi một lần nữa cho câu chuyện dài, nhưng vấn đề Android của chúng tôi đã biến mất. Làm những gì bạn có thể ra khỏi nó.

Dimarc67


Thật vậy, đây cũng là nguyên nhân trong trường hợp của tôi, vì tương tự, tôi không sử dụng IPv6 trong nội bộ. Tôi đã khắc phục sự cố DNS bằng cách tạo máy chủ VPN cục bộ và yêu cầu thiết bị Android sử dụng VPN thay thế; nó hoạt động, nhưng rõ ràng là quá quyết liệt.
Arseni Mourzenko

@ArseniMourzenko Bạn đã bao giờ giải quyết vấn đề này chưa? Tôi đã lãng phí hai ngày không làm gì khác ngoài việc cố gắng khắc phục vấn đề này, vì nó thực sự đã phá vỡ rất nhiều những gì trước đây đang hoạt động. Và vâng, tôi đã thử VPN nhưng nó đã giảm tốc độ truyền từ 100Mbps + xuống còn khoảng 20
Michael

@Michael: vì các máy chủ DNS cục bộ của tôi được định cấu hình để chỉ hỗ trợ IPv4, câu trả lời của Dimarc67 phù hợp với tôi (đây cũng là lý do tại sao điều này được đánh dấu là câu trả lời được chấp nhận). Từ đó, tôi chỉ thiết lập VPN cho tất cả các thiết bị Android và tôi rất vui khi sử dụng nó kể từ đó. Tôi không nhận thấy bất kỳ sự giảm tốc độ chuyển nhượng nào mà tôi không quan tâm, do cách tôi sử dụng các thiết bị di động. Để biết giá trị của nó, tôi đang sử dụng OpenVPN trên phía máy chủ Debian và OpenVPN Connect trên các thiết bị Android.
Arseni Mourzenko

2

Tôi đã xem qua bài đăng này trong khi cố gắng để thiết bị Android 6.0 của mình sử dụng máy chủ DNS được định cấu hình cục bộ để phân giải tên máy chủ cục bộ. Một câu trả lời ở trên chỉ ra rằng Android 5.0 và mới hơn khẳng định sử dụng máy chủ DNS DNS. Đây là đầu mối dẫn tôi đến giải pháp của tôi.

Bộ định tuyến của tôi đã quảng cáo các máy chủ DNS IPv6 được cung cấp bởi ISP của tôi bằng DHCP-PD. Tôi đã cấu hình lại bộ định tuyến của mình để ngừng quảng cáo các máy chủ DNS IPv6 và hiện tại thiết bị Android 6.0 đang phân giải tên máy chủ cục bộ bằng máy chủ DNS IPv4 do DHCP (IPv4) cung cấp.

Tôi cũng có một DNAT để chuyển hướng tất cả các truy vấn DNS (cổng TCP / UDP 53) đến máy chủ DNS cục bộ của tôi. Điều này đã được thực hiện trước khi vô hiệu hóa quảng cáo bộ định tuyến với máy chủ DNS IPv6 vì vậy tôi không biết liệu Android 5.0+ có quay trở lại máy chủ DNS của Google hay không (như đã nêu trong câu trả lời trước) và tôi đã bắt gặp chúng bằng quy tắc DNAT của tôi hoặc liệu Android của tôi Thiết bị 6.0 vừa sử dụng máy chủ DNS được gán DHCP4. Dù bằng cách nào, độ phân giải tên máy chủ cục bộ đang hoạt động.


Vô hiệu hóa IPV6 trên bộ định tuyến của tôi đã khắc phục sự cố trên TẤT CẢ các thiết bị Android của tôi!
Ken J

2

Cuối cùng tôi đã có thể giải quyết điều này bằng cách tự mình thiết lập một máy chủ DHCP trên cùng một mạng, cấu hình Miền tìm kiếm chính xác để gửi cho khách hàng.

Khi tôi đã có một máy chủ dhcp, trong trường hợp của tôi là isc-dhcpd với cấu hình trong dhcp.conf:

option domain-name "myrealdomain.tld";

Android đã có thể giải quyết các bản ghi A cục bộ được đặt trong máy chủ DNS của tôi.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.