ทำไม Android ปฏิเสธที่จะแก้ไขระเบียน DNS ที่ชี้ไปยังที่อยู่ IP ภายใน


14

ฉันมีพฤติกรรมแปลก ๆ บนอุปกรณ์ Android (Nexus 7) เมื่อพยายามเข้าถึงแอปพลิเคชันเครือข่ายท้องถิ่น แทนที่จะได้รับ IP จริงของเครื่องบน LAN อุปกรณ์ Android จะได้รับIP สาธารณะซึ่งหมายความว่า Chrome, Firefox หรือเบราว์เซอร์อื่น ๆ เพียงแสดงหน้าเว็บของเราเตอร์

ฉันมีเซิร์ฟเวอร์ DNS ภายในที่จัดการเครือข่ายท้องถิ่น การทำpingจากพีซีทำงานอย่างถูกต้อง:

$ 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

อย่างไรก็ตามนี่คือสิ่งที่ฉันได้รับเมื่อทำเช่นเดียวกันpingจาก 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

แทนที่จะแก้ไขเป็น IP ภายในจะแก้ไขเป็นสาธารณะ

การกำหนดค่าเครือข่ายคือ - ยกเว้นที่อยู่ IP ของอุปกรณ์ - เหมือนกันทั้งสองอุปกรณ์: การตั้งค่า IP ถูกกำหนดเป็นคงที่และเซิร์ฟเวอร์ DNS เป็นอุปกรณ์ภายใน อุปกรณ์ Android ทั้งสองเชื่อมต่อผ่าน Wi-Fi (ไม่เหมือนพีซี) อย่างไรก็ตามความแตกต่างที่สำคัญคือ Nexus 7 ใช้ Android 6.0.1 ในขณะที่ HTC One ใช้ Android 5.0.2

ไม่มีnm-tool, digหรือnslookupบน Nexus 7 อุปกรณ์ที่ไม่ได้ฝังราก

มีปัญหาเกิดขึ้นตั้งแต่ฉันซื้ออุปกรณ์เมื่อไม่กี่สัปดาห์ที่ผ่านมาดังนั้นอาจเป็นปัญหาเกี่ยวกับแคช DNS

ฉันจะทำอย่างไรเพื่อตรวจสอบปัญหานี้เพิ่มเติม


ก่อนอื่นคุณต้องตรวจสอบปัญหาอย่างแน่นอน ดังนั้นโปรดติดตั้ง IP Tools จาก Play Store สร้าง nslookup และอื่น ๆ และเราจะรู้มากขึ้น โดยเฉพาะอย่างยิ่งเซิร์ฟเวอร์ DNS ที่ใช้ Nexus การค้นหา DNS และอื่น ๆ ลองใช้เครื่องมือ IPนี้ มันเป็นภาษาโปแลนด์ แต่แน่นอนคุณสามารถเปลี่ยนได้ เครื่องมือนี้ฉันใช้ในกรณีที่มีปัญหาดังกล่าว
mackowiakp

ฮึ่ม ในข้อมูล IPจะแสดงที่อยู่ DNS ที่ถูกต้อง ในการค้นหา DNS IP ที่ถูกต้องจะปรากฏขึ้น (192.168.1.15) อย่างไรก็ตามแท็บTracerouteแสดง IP สาธารณะที่ไม่ถูกต้อง (90.78.26.42)
Arseni Mourzenko

ดังนั้น - ในความคิดของฉัน - มีบางอย่างผิดปกติกับรายการ DNS ภายในสำหรับ Nexus ฉันใช้การกำหนดค่าแบบ
Simmilar

DNS ภายในทำงานได้ดีบน Nexus 6p, Nexus 5, Nexus 10 และอื่น ๆ คุณลองแฟลชภาพโรงงานไปยัง Nexus 7 (หาก bootloader ปลดล็อค) เพื่อให้แน่ใจว่าเป็นซอฟต์แวร์ที่รู้จักกันดีหรือไม่ (ฉันคิดว่าคุณได้ใช้แล้วเนื่องจาก Nexus 7 ไม่ใช่อุปกรณ์ใหม่)
Derobert

ฉันซื้อมันมือสอง แต่ฉันได้ทำการรีเซ็ตก่อนที่จะใช้แล้วตามด้วยการอัปเกรดเป็น Android เวอร์ชันล่าสุด ฉันคิดว่ามันเพียงพอที่จะให้แน่ใจว่าไม่ได้ใช้งานซอฟต์แวร์ที่กำหนดเองใด ๆ เนื่องจากอุปกรณ์ไม่ได้ถูกรูท
Arseni Mourzenko

คำตอบ:


5

เราเพิ่งพบปัญหานี้และเรา จำกัด ให้เฉพาะกับอุปกรณ์ที่ใช้ Android v5 และใหม่กว่าเท่านั้น Android v4 และระบบปฏิบัติการอื่น ๆ ทั้งหมดไม่มีปัญหา

ด้วยชิ้นอาหารอันโอชะนั้นเราได้พิจารณาแล้วว่า Android v5 และใหม่กว่านั้นยืนยันการใช้ IPv6 สำหรับการแก้ปัญหาชื่อ DNS (เนื่องจากเราปิดการใช้งาน IPv6 อย่างสมบูรณ์ในเครือข่ายของเรา jibes นี้มีปัญหา) หาก Android v5 (+) ไม่สามารถรับการตอบสนอง IPv6 จาก DNS ท้องถิ่นได้จึงส่งไปยังโฮสต์สาธารณะชื่อสาธารณะของ Google (8.8.8.8) . ดังนั้นจึงไม่มี DNS ภายในเพียงภายนอก

เราแก้ไขปัญหาด้วยการสร้างระเบียน DNS บนเซิร์ฟเวอร์ DNS ที่สาธารณะของเราเพื่อเลือกชื่อภายในและ IP ด้วยการทำเช่นนั้น DNS สาธารณะของ Google สามารถแก้ไขชื่อภายในเหล่านี้ด้วย IP ภายในและอุปกรณ์สามารถเข้าถึงโฮสต์ภายในของเราได้

เรากำลังดำเนินการกับการเปิดใช้งาน IPv6 อย่างเต็มที่บนเซิร์ฟเวอร์ DNS ภายในของเรา (ตัวควบคุมโดเมน) เป็นการแก้ไขถาวร

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

ปรับปรุง - เอาล่ะมันอาจจะเป็นปลาเฮอริ่งแดงทั้งหมด ... หรือไม่ เครือข่ายในบ้านของฉันคือ Win2008R2 ซึ่งเป็นโดเมนเดียวที่มี DHCP และ DNS และไม่มีการผูก IPv6 ทดสอบอุปกรณ์ Android v5 จากที่นั่นและไม่มีปัญหา เครือข่ายสำนักงานที่มีปัญหาคือ Win2012 (ไม่ใช่ R2) โดเมนเดียว

ข้าม WAP สำนักงานในปัจจุบันด้วย Linksys WAP แบบสแตนด์อะโลนและ SSID แยกต่างหากสำหรับการทดสอบปัญหายังคงมีอยู่

ความแตกต่างระหว่างเครือข่ายสำนักงานและเครือข่ายในบ้าน (ที่ฉันนึกถึง): - รุ่น Windows - 2012 เทียบกับ 2008 R2 - รุ่นเราเตอร์ (Cisco กับ Linksys) - รุ่น WAP (แบรนด์ Dell ของ Aruba Networks เทียบกับ Linksys)

ดำเนินการกับการทดสอบเพิ่มเติมใด ๆ ที่ฉันสามารถคิดเพื่อลดปัญหา ข้อเสนอแนะหรือการป้อนข้อมูลใด ๆ ที่ชื่นชมอย่างมาก!

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

ปัญหาหายไป (?!)

ปัญหาของเราดูเหมือนจะหายไปด้วยตัวเองหลังจากการเปลี่ยนแปลงโทโปโลยีเครือข่ายที่ฉันไม่คิดว่าเกี่ยวข้อง แต่เป็นข้อมูลในกรณีนี้

(APOLOGIES ขนาดใหญ่สำหรับเรื่องราวที่ดึงออกมานาน แต่นี่คือตอนที่ปัญหา Android ของเราหายไปดังนั้นลองขับดูถ้าคุณทำได้ฉันอาจให้รายละเอียดมากเกินไปที่นี่ แต่เพราะฉันไม่เห็นการเชื่อมต่อโดยตรง ฉันวางมันออกมาให้ตรงตามที่มันเกิดขึ้น)

ISP ของเราคือ Comcast Business Class - เคเบิลโมเด็มที่มีบล็อก IP แบบคงที่ที่อยู่ห้าแห่ง (หมายเลขแปลก ๆ แต่นั่นคือวิธีที่ Comcast ขายได้) เคเบิลโมเด็มของ Comcast นั้นเป็นโมเด็มผสม / ไฟร์วอลล์ / เราเตอร์ / สวิตช์โดยมีบล็อก IP แบบคงที่ของเราที่ตั้งโปรแกรมไว้จากระยะไกล

เป็นเวลา 10+ ปีและเกือบเป็นนายจ้างหลายคนฉันสร้างเครือข่ายสำนักงานในลักษณะเดียวกันเสมอ:
กำหนดค่า LAN IP สำหรับ ISP โมเด็ม / เราเตอร์ซึ่งการรับส่งข้อมูลของ NAT จากอินเทอร์เน็ต ไม่ง่ายกว่านี้และนั่นคือวิธีการตั้งค่าเครือข่ายสำนักงานปัจจุบันของฉันเป็นเวลาสี่ปี

เมื่อเร็ว ๆ นี้บริการอินเทอร์เน็ตในสำนักงานของเราลดลง โดยปกติโมเด็มรีสตาร์ทจะแก้ไขได้ แต่เมื่อเราไม่ได้เรียก Comcast ผู้ส่งเทคโนโลยีมาแทนที่เคเบิลโมเด็มเพื่อเรียกคืนบริการ

ไม่กี่วันต่อมาสิ่งเดียวกันก็เกิดขึ้นอีกครั้ง เราโทรไปอีกครั้งและเทคโนโลยีในสถานที่ (เทคโนโลยีที่แตกต่างกว่าเดิม) พยายามที่จะเปลี่ยนโมเด็มอีกครั้งคราวนี้เป็นรุ่นที่ใหม่กว่า น่าแปลกที่โมเด็มเคเบิลรุ่นใหม่ไม่รองรับการเปลี่ยนที่อยู่เครือข่ายย่อยของ LAN ซับเน็ตเริ่มต้นคือ 10.1.10.0/24 และไม่สามารถเปลี่ยนแปลงได้ (เฉพาะออคเต็ตที่ 4 เท่านั้นที่สามารถกำหนดค่าได้) เนื่องจากสำนักงานเครือข่ายย่อยของเราคือ 192.168.100.0/24 ฉันให้เทคโนโลยีรู้ว่าเราไม่สามารถใช้งานได้โดยไม่สามารถเปลี่ยนเครือข่ายย่อย LAN ได้ เขาเข้าใจ แต่ไม่มีข้อมูลว่าทำไมเคเบิลโมเด็มจะป้องกันการเปลี่ยนแปลง ดังนั้นเขาจึงติดตั้งโมเด็มทดแทนของรุ่นเดียวกันก่อนซึ่งเรากำหนดค่าเหมือนกันและการเข้าถึงอินเทอร์เน็ตได้รับการคืนค่า

อีกวันหรือสองวันและบริการก็ลงไปอีกครั้ง ครั้งนี้เมื่อฉันเรียก Comcast เทคโนโลยีขั้นต้นที่ฉันพูดด้วยถามคำถามที่มีรายละเอียดและมีความรู้เกี่ยวกับการกำหนดค่าเครือข่ายของเรา เมื่อฉันอธิบายว่าเคเบิลโมเด็มได้รับการกำหนดค่าด้วย LAN IP บนเครือข่ายย่อยของเราเขาดูเหมือนสับสนกับสิ่งนี้ เขาบอกว่าลูกค้า Comcast ส่วนใหญ่เชื่อมต่อเราเตอร์ NAT'ing ระหว่างเคเบิลโมเด็มและ LAN แทนที่จะใช้ NAT'ing ของเคเบิลโมเด็ม ในความเป็นจริงเขากล่าวว่าเขาไม่ทราบว่าเคเบิลโมเด็มรองรับ NAT'ing

Comcast ส่งเทคโนโลยีใหม่พร้อมเคเบิลโมเด็มใหม่ (รุ่นล่าสุดที่ไม่รองรับการเปลี่ยนเครือข่ายย่อย LAN) เขาทำการทดสอบอย่างละเอียดเกี่ยวกับโมเด็มที่มีอยู่และในที่สุดก็ตัดสินว่ามันผ่านการรับส่งข้อมูล IPv6 เท่านั้น - ไม่มี IPv4 เขายังยืนยันสิ่งที่เทคโนโลยีโทรศัพท์พูด - ขอแนะนำให้ใช้เราเตอร์แยกต่างหากสำหรับ NAT'ing และไม่เปลี่ยน subnet LAN ในเคเบิลโมเด็ม (ซึ่งเราไม่สามารถทำกับโมเด็มรุ่นใหม่ได้ในตอนนี้)

และในที่สุดเราก็มาถึงการเปลี่ยนแปลงเครือข่ายที่เราทำ ฉันติดตั้งเราเตอร์ LinkSys แบบง่าย ๆ ระหว่างเคเบิลโมเด็มและเราเตอร์หลักของเรากำหนดค่าด้วย IP แบบคงที่ของเราที่ด้านโมเด็มและ LAN IP ด้านใน บริการอินเทอร์เน็ตได้รับการกู้คืนแล้วและยังคงมีเสถียรภาพในขณะนี้

หลังจากคืนค่าบริการอินเทอร์เน็ตฉันคิดถึงความแปลกของปัญหา IPv6 กับเคเบิลโมเด็มซึ่งทำให้ฉันนึกถึงปัญหา Android v5 จากนั้นฉันทดสอบอุปกรณ์ Android ของเราในสำนักงานและตกใจเมื่อเห็นว่าปัญหา DNS ไม่ได้เกิดขึ้นอีก

การเพิ่มเราเตอร์ LinkSys สำหรับ NAT'ing เป็นเพียงการเปลี่ยนแปลงเครือข่ายที่เราทำ เหตุบังเอิญ?? อาจเป็นไปได้ แต่มันก็ดูแปลกประหลาดเล็กน้อยที่ทั้งคู่เกี่ยวข้องกับ IPv6

ขออภัยอีกครั้งสำหรับเรื่องยาว แต่ปัญหา Android ของเราหายไป ทำสิ่งที่คุณสามารถทำได้จากมัน

Dimarc67


ที่จริงนี่ควรเป็นสาเหตุในกรณีของฉันเช่นกันเนื่องจากในทำนองเดียวกันฉันไม่ได้ใช้ IPv6 ภายใน ฉันหลีกเลี่ยงปัญหา DNS โดยการสร้างเซิร์ฟเวอร์ VPN ในพื้นที่และขอให้อุปกรณ์ Android ใช้ VPN แทน มันใช้งานได้ แต่เห็นได้ชัดว่ารุนแรงเกินไป
Arseni Mourzenko

@ArseniMourzenko คุณเคยแก้ไขปัญหานี้หรือไม่? ฉันเสียเวลาไปสองวันในการทำอะไรอย่างอื่น แต่พยายามแก้ไขปัญหานี้เพราะมันได้ทำลายสิ่งที่เคยทำมาก่อน และใช่ฉันลองใช้ VPN แต่ลดอัตราการถ่ายโอนจาก 100Mbps + เป็นประมาณ 20
Michael

@Michael: เนื่องจากเซิร์ฟเวอร์ DNS ในเครื่องของฉันได้รับการกำหนดค่าให้รองรับ IPv4 เท่านั้นคำตอบของ Dimarc67 นั้นมีความเกี่ยวข้องกับฉัน (นี่คือสาเหตุที่ทำไมสิ่งนี้จึงถูกทำเครื่องหมายว่าเป็นคำตอบที่ยอมรับ) จากนั้นฉันเพิ่งตั้งค่า VPN สำหรับอุปกรณ์ Android ทั้งหมดและฉันมีความสุขที่จะใช้มันตั้งแต่นั้นมา ฉันไม่ได้สังเกตใด ๆ ของการลดอัตราการถ่ายโอนไม่ได้ฉันจะดูแลให้วิธีการที่ผมใช้โทรศัพท์มือถือ สำหรับสิ่งที่คุ้มค่าฉันกำลังใช้ OpenVPN บนเซิร์ฟเวอร์ Debian และ OpenVPN Connect บนอุปกรณ์ Android
Arseni Mourzenko

2

ฉันเจอโพสต์นี้ในขณะที่พยายามรับอุปกรณ์ Android 6.0 ของฉันเพื่อใช้เซิร์ฟเวอร์ DNS ที่กำหนดค่าไว้ในเครื่องเพื่อแก้ไขชื่อโฮสต์ในเครื่อง หนึ่งคำตอบข้างต้นระบุว่า Android 5.0 และรุ่นใหม่กว่ายืนยันที่จะใช้เซิร์ฟเวอร์ IPv6 DNS นี่คือเงื่อนงำที่นำฉันไปสู่ทางออกของฉัน

เราเตอร์ของฉันโฆษณาเซิร์ฟเวอร์ DNS IPv6 ที่ ISP ของฉันใช้โดยใช้ DHCP-PD ฉันกำหนดค่าเราเตอร์อีกครั้งเพื่อหยุดการโฆษณาเซิร์ฟเวอร์ IPv6 DNS และตอนนี้อุปกรณ์ Android 6.0 กำลังแก้ไขชื่อโฮสต์ในเครื่องโดยใช้เซิร์ฟเวอร์ IPv4 DNS ที่จัดทำโดย DHCP (IPv4)

ฉันยังมี DNAT เพื่อเปลี่ยนเส้นทางแบบสอบถาม DNS ทั้งหมด (พอร์ต TCP / UDP 53) ไปยังเซิร์ฟเวอร์ DNS ในพื้นที่ของฉัน สิ่งนี้เกิดขึ้นก่อนที่จะปิดการใช้งานโฆษณาเราเตอร์ที่มีเซิร์ฟเวอร์ IPv6 DNS ดังนั้นฉันไม่รู้ว่า Android 5.0 ขึ้นไปกลับไปที่เซิร์ฟเวอร์ Google DNS (ตามที่อ้างในคำตอบก่อนหน้านี้) และฉันจับมันด้วยกฎ DNAT ของฉันหรือไม่ อุปกรณ์ 6.0 เพิ่งใช้ DHCP ที่กำหนดเซิร์ฟเวอร์ DNS IPv4 ไม่ว่าจะด้วยวิธีใดการแก้ปัญหาชื่อโฮสต์ในเครื่องกำลังทำงาน


การปิดใช้งาน IPV6 บนเราเตอร์ของฉันแก้ไขปัญหาในอุปกรณ์ Android ทั้งหมดของฉัน!
Ken J

2

ในที่สุดฉันก็สามารถแก้ปัญหานี้ได้ด้วยการตั้งค่าเซิร์ฟเวอร์ DHCP ด้วยตนเองในเครือข่ายเดียวกันซึ่งกำหนดค่าโดเมนการค้นหาที่ถูกต้องเพื่อส่งไปยังลูกค้า

เมื่อฉันมีเซิร์ฟเวอร์ dhcp ในกรณีของฉัน isc-dhcpd กับการกำหนดค่าใน dhcp.conf:

option domain-name "myrealdomain.tld";

Android สามารถแก้ไขระเบียน A ภายในเครื่องที่ตั้งค่าในเซิร์ฟเวอร์ DNS ของฉัน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.