ใช้ Avahi บน DreamPlug Ubuntu กับ iPads


17

ฉันมีปัญหาที่แปลกประหลาดมากดังต่อไปนี้กับการใช้ Avahi บน DreamPlug (ซึ่งเป็นคอมพิวเตอร์ปลั๊กที่ใช้ Ubuntu Jaunty)

หลังจากใช้เวลาหลายวันไปกับสิ่งนี้ฉันคิดว่าฉันพยายาม จำกัด ปัญหาให้แคบลง

DreamPlug ทำหน้าที่เป็นจุดเชื่อมต่อ WiFi และมีชื่อโฮสต์plugและที่อยู่ IP 192.168.1.1(ซึ่งตั้งค่าทั้งใน/etc/hostsและ/etc/hostname) และเรียกใช้ lighttpd

ตอนนี้ Mac ของฉันทำงานได้ทันทีด้วยการเข้าถึงhttp://plug.localChrome แต่ถ้าฉันลองและโหลดhttp://plug.localบน iPad มันจะไม่ทำงาน นั่นคือมันไม่ทำงานจนกว่าฉันจะโหลดเพจบนเดสก์ท็อป

ด้วยเหตุผลบางอย่าง iPads จะไม่สามารถแก้ไขชื่อโฮสต์จนกว่าชื่อโฮสต์จะได้รับการแก้ไขครั้งแรกใน Mac ... ซึ่งแปลกเพราะไม่มีการเชื่อมต่อระหว่าง iPads และ Mac อื่น ๆ นอกเหนือจากความจริงที่ว่าพวกเขาเชื่อมต่อกับ จุดเชื่อมต่อเดียวกัน (DreamPlug)

ดังนั้นเพื่อชี้แจงอีกครั้ง: Safari บน iPad จะหยุด (จนกว่าจะรายงานว่าการเรียกดูล้มเหลว) เมื่อเข้าถึงhttp://plug.localเว้นแต่ว่าฉันเข้าถึงhttp://plug.localบน Mac, ทำงานping plug.local, ทำssh root@plug.localหรือโดยทั่วไปทำสิ่งอื่นใดที่ช่วยแก้ชื่อโฮสต์ให้ตรงจุดที่ iPad แก้ไขทันที ชื่อโฮสต์และเริ่มทำงานอย่างถูกต้อง

ถ้าความเข้าใจของฉันถูกต้องเมื่อ iPads plug.localเชื่อมต่อพวกเขาออกอากาศการร้องขอความละเอียด ไม่ว่าจะด้วยเหตุผลใดก็ตามคำขอนี้จะถูกเพิกเฉยจาก DreamPlug (หรือไม่เคยได้รับ) อย่างไรก็ตาม Mac จะจัดการออกอากาศตามคำขอ มันเป็นกระบอกเสียงที่ร้องขอความละเอียดและ brodcasts DreamPlug กลับผล->plug.local 192.168.1.1จากนั้น iPads จะได้รับผลนี้ (ซึ่งถูกกำหนดไว้สำหรับ Mac จริงๆ) และสามารถแก้ไขได้สำเร็จ

ฉันยินดีที่จะจัดหาavahi-daemon.confไฟล์การกำหนดค่าของฉันหรืออื่น ๆ ตามที่ร้องขอ

อัปเดต:ตอนนี้ฉันสามารถใช้ Wireshark ได้แล้วและพบว่า iPads ถ่ายทอดการร้องขอไปยังเครือข่ายอย่างแน่นอน

ฉันจับทั้งแพ็คเก็ตที่ DID ส่งผลให้เกิดการตอบสนองจาก Avahi รวมถึงที่ไม่ได้ทำ

ความแตกต่างเพียงอย่างเดียวคือความล้มเหลวที่ระบุประเภท RR เพิ่มเติมOPT... ฉันไม่รู้เลยว่าOPTบันทึกคืออะไร เป็นไปได้ไหมว่า Avahi ไม่ชอบการสืบค้น DNS ที่OPTแนบ RR ด้วยเหตุผลบางอย่าง?

นี่คือภาพหน้าจอสองภาพที่นำมาจาก Wireshark อันแรกแสดงคำขอ mDNS "ดี" ซึ่งส่งมาจากคอมพิวเตอร์เดสก์ท็อป (ในกรณีนี้คืออุปกรณ์ที่เรียกว่าrunway.local) แบบสอบถามนี้ใช้งานได้ดีและเซิร์ฟเวอร์ (ที่192.168.1.1) ตอบกลับได้ทันที:

แบบสอบถาม mDNS ที่ใช้งานได้

นี่คือตัวอย่างของการตอบสนองที่ส่งคืนจากrunway.local:

ป้อนคำอธิบายรูปภาพที่นี่

ในขณะเดียวกันที่นี่เป็นแบบสอบถาม DNS ที่สองที่ได้จัดส่งจาก iPad runway.localสำหรับชื่อโฮสต์เดียวกัน ในกรณีนี้ดูเหมือนว่าคำขอจะถูกเพิกเฉย (ในกรณีใด ๆ จะไม่ได้รับการตอบสนองใด ๆ จากการสืบค้น DNS นี้):

ป้อนคำอธิบายรูปภาพที่นี่

พยายามติดตามสิ่งที่อยู่ในคำขอ iPad ที่ทำให้เกิดปัญหาปรากฏว่าแพ็กเก็ตสองชุดนั้นเกือบจะเหมือนกันความแตกต่างเพียงอย่างเดียวระหว่างการค้นหา mDNS ที่ส่งจากเดสก์ท็อป (ใช้ OS X) และ iPad คือการผนวก iPad OPTระเบียนทรัพยากรไปด้านล่างของคำขอของ DNS

คำถามคืออะไรความสำคัญของการบันทึกทรัพยากร - และมันคืออะไร - หรือเป็นอย่างอื่น - ที่รับผิดชอบสำหรับการร้องขอ DNS นี้จะถูกละเว้นโดย Avahi

การปรับปรุงนี่อาจเป็นความก้าวหน้าที่ฉันกำลังมองหา:

ฉันใช้ avahi-daemon พร้อมกับ --debug flag และฉันสังเกตเห็นว่ามีจำนวนมาก ข้อความ สิ่งนี้นำฉันมาที่หน้านี้: http://avahi.org/ticket/284ซึ่งดูเหมือนว่านี่เป็นปัญหาที่ทราบแล้ว (แม้ว่าเป็นปัญหาที่ควรแก้ไข)

โดยเฉพาะ:

tcpdump ทำให้ฉันเชื่อว่านี่เป็นเพราะ Mac OS 10.6 ที่ใช้ RFC2671 เพื่อเพิ่มข้อมูลในส่วนข้อมูลเพิ่มเติมของการสืบค้น DNS โดยเฉพาะมันคือการจัดหา 'ขนาดบรรจุ UDP' (ในกรณีของฉัน, 1440) เป็นคำแนะนำสำหรับขนาดแพ็คเก็ตตอบสนองสูงสุด [... ] Avahi พิจารณาแบบสอบถามที่มีส่วนข้อมูลเพิ่มเติมที่ไม่ว่างเปล่าซึ่งจะตรวจสอบว่า AVAHI_DNS_FIELD_ARCOUNT! = 0 ก่อนที่จะสร้างข้อความแพ็คเก็ตแบบสอบถามไม่ถูกต้อง


ฉันควรเพิ่มว่าถ้าฉันเข้าสู่ DreamPlug aka plugบน SSH และดำเนินการคำสั่งping 224.0.0.251ซึ่งเป็นที่อยู่มัลติคาสต์ mDNS ฉันได้รับผลconnect: Network is unreachable- ไม่แน่ใจว่าสิ่งนี้ควรจะเกิดขึ้น แต่อาจมีประโยชน์สำหรับทุกคนที่สามารถช่วยได้
จอน

อัปเดต: ฉันใช้ avahi-daemon ด้วยการตั้งค่าสถานะ --debug และฉันสังเกตเห็นจำนวนมาก "แพ็คเก็ตคิวรีไม่ถูกต้อง" ข้อความ สิ่งนี้นำฉันมาที่หน้านี้: avahi.org/ticket/284ซึ่งดูเหมือนว่านี่เป็นปัญหาที่ทราบกันแล้ว (แม้ว่าจะควรได้รับการแก้ไข) โดยเฉพาะ: tcpdump ทำให้ฉันเชื่อว่านี่เป็นเพราะ Mac OS 10.6 โดยใช้ RFC2671 เพื่อเพิ่มข้อมูลในส่วนข้อมูลเพิ่มเติมของการสืบค้น DNS โดยเฉพาะมันคือการจัดหา 'ขนาดบรรจุ UDP' (ในกรณีของฉัน, 1440) เป็นคำแนะนำสำหรับขนาดแพ็คเก็ตตอบสนองสูงสุด
จอน

ดูเหมือนว่าคุณจะได้รับคำตอบที่นั่น คุณสามารถอัพเกรด Avahi ของคุณบน DreamPlug ได้หรือไม่?
Bill Weiss

3
สิ่งที่เกี่ยวกับการใช้เซิร์ฟเวอร์ DNS ที่แท้จริงนอกเหนือจาก Avahi บางสิ่งบางอย่างเช่นผูก / ตั้งชื่อ คุณเคยลองทำมอก
jap1968

2
คำถามที่ยอดเยี่ยมที่มีรายละเอียดมากมาย! หากคุณคิดออกเขียนคำตอบของคุณเองแล้วทำเครื่องหมายด้วยเครื่องหมายถูกซึ่งจะช่วยผู้อื่นและอาจให้คะแนนตัวแทนคุณ
เหม่ย

คำตอบ:


1

ฉันไม่ค่อยได้ใช้เอสเอฟบ่อยนัก แต่ฉันเห็นได้ว่าคำถามนี้ดึงดูดความสนใจมาพอสมควรดังนั้นขอสรุปการค้นพบของฉันที่นี่และหวังว่าจะมีวิธีแก้ปัญหาสำหรับผู้ที่ประสบปัญหาเดียวกัน: -

ดูเหมือนว่านี่เป็นข้อผิดพลาดของรุ่น Avahi ที่มาพร้อมกับ Ubuntu Jaunty ( http://avahi.org/ticket/284 ) เกี่ยวกับการจัดหาขนาดบรรจุ UDP ซึ่งอาจส่งผลให้เกิดการเปลี่ยนแปลงที่แปลกประหลาดมากขึ้น ข้อมูลจำเพาะ mDNS (แม้ว่าฉันจะไม่ได้อ่านด้วยตัวเอง) ตามที่อธิบายไว้ในความคิดเห็นของคำถามเดิมฉันพยายามอัพเกรดเวอร์ชันของ Avahi แต่ทักษะ Linux ของฉันไม่ใช่สิ่งที่ควรจะเป็นและฉันไม่สามารถจัดการให้ใช้งานได้ (ไม่ว่าจะด้วยวิธีใดการเรียกใช้ระบบปฏิบัติการที่ไม่รองรับอายุ 3 ปีไม่แนะนำให้ใช้จริง ๆ ... )

ในที่สุดฉันก็อาบน้ำเช็ดการ์ด SD ของ DreamPlug และติดตั้ง Debian Squeeze บนมันซึ่งใช้งานได้ดี (แม้ว่า iOS 5.0 ขึ้นไปเท่านั้น) การสนทนาเกี่ยวกับวิธีการเปลี่ยนระบบปฏิบัติการ DreamPlug นั้นอยู่นอกขอบเขตของคำถามนี้ แต่สิ่งที่ทุกอย่างดำเนินไปจนถึงตอนท้ายของวันนั้นคือเวอร์ชัน Avahi ที่ล้าสมัย ใช้เวอร์ชันที่ใหม่กว่าและคุณน่าจะดี!

โชคดี!

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