Tailscale MagicDNS ทำงาน แต่ nslookup ล้มเหลวบน macOS
แอป macOS แปลชื่อผ่านตัวแก้ไขชื่อของระบบ ส่วน nslookup อ่านไฟล์แบบคงที่ ทดสอบชื่อ tailnet เดียวกันทั้งสองเส้นทางก่อนเปลี่ยนการตั้งค่า DNS ใด ๆ
บน Mac คำสั่ง ping แปลชื่อเครื่องใน tailnet ได้ ขณะที่ nslookup ส่งคืนความล้มเหลว และทั้งสองคำสั่งพูดความจริง แอปแปลชื่อผ่านตัวแก้ไขชื่อของระบบซึ่ง Tailscale กำหนดค่าตามแต่ละอินเทอร์เฟซ ขณะที่ nslookup และ host อ่านไฟล์แบบคงที่ที่ MagicDNS ไม่เคยแตะ สองเส้นทางอาจไม่ตรงกันโดยไม่มีแพ็กเก็ตใดสูญหาย ตัดสินว่าแอปที่ล้มเหลวของคุณใช้เส้นทางใดก่อนเปลี่ยนการตั้งค่า DNS ใด ๆ
สองเส้นทางการแปลชื่อ สองคำตอบที่ต่างกัน
การรับส่งข้อมูลของแอปบน macOS ผ่านตัวแก้ไขชื่อของระบบ และรายการตัวแก้ไขชื่อที่จำกัดตามอินเทอร์เฟซเป็นตัวกำหนดว่าเซิร์ฟเวอร์ใดตอบให้โดเมนใด Tailscale ติดตั้งรายการ MagicDNS ของตนไว้ที่นั่น จึงเป็นเหตุให้ Safari และ ssh หาชื่อ tailnet ได้ ในทางกลับกัน nslookup, host และ dig อ่าน /etc/resolv.conf หรือรับเซิร์ฟเวอร์จากบรรทัดคำสั่ง และไฟล์นั้นมักยังระบุเราเตอร์หรือเซิร์ฟเวอร์สำนักงาน ชื่อ tailnet ที่ส่งไปยังไฟล์นั้นไม่มีคำตอบที่มีอำนาจใดรออยู่ เครื่องมือจึงรายงานความล้มเหลว ในขณะที่เส้นทางของระบบสำเร็จ
เครื่องมือทั้งสองไม่ได้ทำงานผิด พวกมันถามเซิร์ฟเวอร์ต่างกัน และมีเพียงเซิร์ฟเวอร์เดียวเท่านั้นที่รู้จัก tailnet ของคุณ
ทดสอบชื่อเดียวกันผ่านเส้นทางของระบบ
ใช้การเรียกค้นหาของระบบเป็นบททดสอบแรก จากนั้นเปรียบเทียบกับคำถามที่ส่งตรงไปยังตัวแก้ไขชื่อ MagicDNS รักษาการสะกดให้เหมือนกันทั้งสอง รวมถึงโดเมน tailnet เพราะชื่อสั้นและชื่อเต็มที่ผ่านการรับรองเป็นคำถามต่างกันซึ่งมีคำตอบต่างกัน
dscacheutil -q host -a name nas-01.tailnet-a1b2.ts.net
scutil --dns
dig @100.100.100.100 nas-01.tailnet-a1b2.ts.net
ผลลัพธ์ทั้งสามตอบคำถามสามข้อ ระบบส่งคืนอะไร ตัวแก้ไขชื่อใดถูกกำหนดสำหรับโดเมนใด และ MagicDNS เองรู้อะไร ชื่อที่มีในผลลัพธ์ที่สองและสามแต่ไม่มีในผลลัพธ์แรกชี้ไปที่การกำหนดค่าในเครื่อง ไม่ใช่ tailnet
เมื่อชื่อถูกแปลได้แล้ว ให้ทดสอบบริการ
คำตอบ DNS ที่ถูกต้องพิสูจน์เพียงว่าชื่อหนึ่งตรงกับที่อยู่หนึ่ง บริการเบื้องหลังอาจหยุดอยู่ พอร์ตอาจถูกกรองด้วยกฎการเข้าถึง และใบรับรองอาจระบุโฮสต์ที่ต่างจากที่คุณพิมพ์
nc -vz nas-01.tailnet-a1b2.ts.net 445
ping -c 3 nas-01.tailnet-a1b2.ts.net
เก็บข้อความข้อผิดพลาดเดิมไว้ เพราะคำเตือนใบรับรอง การหมดเวลาการเชื่อมต่อ และการไม่พบชื่อต่างพาไปคนละที่ การเปลี่ยนเซิร์ฟเวอร์ชื่อจะแก้ข้อที่สามและเสียเวลาหนึ่งบ่ายกับสองข้อแรก
MagicDNS ไม่ใช่สิ่งทดแทน DNS ของสำนักงาน
ชื่อภายในโซนสำนักงานไม่ใช่ชื่ออุปกรณ์ tailnet แม้ไคลเอนต์เดียวกันจะเข้าถึงทั้งสองได้ เมื่อปลายทางอยู่หลังเราเตอร์ซับเน็ต ไคลเอนต์ต้องมี split DNS สำหรับโซนนั้นที่ชี้ไปยังตัวแก้ไขชื่อภายใน ซึ่งเป็นการตั้งค่าที่ต่างจาก MagicDNS และมีการบันทึกไว้เคียงข้างกัน
โดเมนค้นหาก็สำคัญเช่นกัน ชื่อสั้นที่ไม่ผ่านการรับรองจะถูกเติมคำต่อท้ายที่กำหนดไว้แต่ละรายการตามลำดับ ดังนั้นแล็ปท็อปที่เพิ่งเข้าร่วมเครือข่ายอื่นอาจแปลชื่อผ่านคำต่อท้ายที่เก่า ตรวจสอบว่าใช้คำต่อท้ายใดก่อนประกาศว่าโซนเสีย
เมื่อทั้งสองเส้นทางล้มเหลว ข้อเท็จจริงของ tailnet เป็นตัวตัดสิน
หากการค้นหาของระบบและคำถามตรงทั้งสองล้มเหลวสำหรับอุปกรณ์ที่คุณเชื่อว่ามีอยู่ ปัญหาอยู่เหนือตัวแก้ไขชื่อของ Mac
ยืนยันชื่อเครื่องและโดเมน tailnet ในคอนโซลผู้ดูแล ยืนยันว่าอุปกรณ์ออนไลน์และได้รับอนุมัติ และยืนยันว่าการตั้งค่า DNS ของไคลเอนต์ไม่ได้ถูกปิดในเครื่อง อุปกรณ์ที่ออฟไลน์ยังคงชื่อไว้และเพียงไม่มีที่อยู่ให้ส่งคืน
จากนั้นเลือกตามหลักฐาน ชื่อที่แปลได้บนเส้นทางของระบบและล้มเหลวใน nslookup คือความต่างของเส้นทางเครื่องมือ ชื่อที่แปลได้แต่บริการปฏิเสธคือปัญหาการเข้าถึงหรือใบรับรอง ชื่อที่ไม่แปลที่ใดเลยคือปัญหา tailnet หรือการกำหนดค่า DNS สามเจ้าของ สามการแก้ไข และ เอกสาร MagicDNS ครอบคลุมรายละเอียด macOS ของกรณีแรก