อุโมงค์ขึ้นแล้ว ทำไมชื่อส่วนตัวยังล้มเหลว?
อุโมงค์ที่ทำงานได้ไม่ได้หมายความว่าไคลเอนต์ถามรีโซลเวอร์ที่ถูกต้อง ตรวจสอบว่าใครตอบ แล้วส่งต่อเฉพาะโซนที่ต้องการจริง ๆ
ทุกอย่างเกี่ยวกับการเชื่อมต่อดูถูกต้อง: อุโมงค์ขึ้นและคอนโซลแสดงปลายทางส่วนตัว แต่ทุกคำขอล้มเหลวในการแปลงชื่อ ทางออกตามธรรมชาติคือโทษอุโมงค์ ซึ่งมักกลายเป็นผู้บริสุทธิ์ คำถามถูกส่งไปยัง เซิร์ฟเวอร์ที่ไม่รู้อะไรเกี่ยวกับโซนส่วนตัวเลย ไม่มีการเปลี่ยนเส้นทางใดที่จะเปลี่ยนคำตอบนั้น เพราะปัญหาคือถามใคร
คำถามไปถึงรีโซลเวอร์ใด
ค้นหารีโซลเวอร์ที่ผูกกับแต่ละลิงก์ก่อนจะดูอุโมงค์เลย ลินุกซ์แสดงเซิร์ฟเวอร์ต่อลิงก์ผ่านคำสั่งสถานะรีโซลเวอร์ และแมคโอเอสแสดงรีโซลเวอร์ที่มีขอบเขตในดัมพ์การกำหนดค่า DNS หากคำตอบยังมาจากเราเตอร์ที่บ้าน แสดงว่าลิงก์อุโมงค์ไม่เคยถูกสอบถาม
resolvectl status
scutil --dns | head -40
dig +short internal.example.com
สองขั้นตอนถูกปนกันตรงนี้: เซิร์ฟเวอร์ที่ดันที่อยู่รีโซลเวอร์ และไคลเอนต์ที่ติดตั้งบนลิงก์ที่ใช้งาน โปรไฟล์อาจมีตัวเลือกนั้น และบันทึกอาจแสดงว่ามาถึง ขณะที่ ระบบปฏิบัติการยังใช้เซิร์ฟเวอร์เก่า เปรียบเทียบบันทึกกับสิ่งที่ลิงก์รายงาน และเชื่อลิงก์
ใช้ที่อยู่ที่เครือข่ายคลาวด์ตอบจริง
เครือข่ายคลาวด์มักตอบชื่อส่วนตัวผ่านที่อยู่สงวนที่เยื้องไปสองตำแหน่งจากฐานของช่วง ดังนั้นเครือข่ายที่เริ่มที่ 10.0.0.0 จะตอบที่ 10.0.0.2 ผู้ให้บริการบางรายเผยแพร่รีโซลเวอร์ท้องถิ่นของลิงก์ที่ทำงานได้โดยไม่ต้องรู้ช่วง ซึ่งช่วยเมื่อเครือข่ายถูกสร้างโดยคนอื่น ถามที่อยู่ตัวเลือกโดยตรงก่อนจะดันให้ใคร ที่อยู่ที่ไม่ใช่รีโซลเวอร์ดูเหมือนการทิ้งของไฟร์วอลล์ทุกประการ เพราะคำถามไม่เคยได้รับคำตอบ
หากคำถามโดยตรงตอบจากภายในเครือข่ายแต่ไม่ผ่านอุโมงค์ แสดงว่ารีโซลเวอร์ปกติดีและเส้นทางระหว่างสองจุดไม่ปกติ ผลลัพธ์นั้นย้ายการสอบสวนไปที่เส้นทาง การส่งต่อ และกฎการเข้าถึง แทนที่จะเป็นโปรไฟล์ไคลเอนต์
อุโมงค์ไม่ได้พาเนมสเปซไปด้วย
แพ็กเก็ตผ่านได้ ชื่อผ่านไม่ได้ แต่ละฝั่งต้องรู้ว่าเนมสเปซใดเป็นของอีกฝั่ง และนั่นเป็นวัตถุแยกที่เจ้าของโซนเป็นผู้ถือ รูปแบบปกติคือการส่งต่อสำหรับเนมสเปซหนึ่งไปยังรีโซลเวอร์ที่เข้าถึงได้ผ่านอุโมงค์
ในทางปฏิบัติแต่ละทิศทางต้องมีกฎของตัวเอง เพราะฝั่งที่เป็นเจ้าของโซนต้องส่งคำถามต่อไป ทั้งสองทิศทางต้องให้ต้นทางของคำถามถูกกำหนดเส้นทางและได้รับอนุญาต และฝั่งที่ตอบต้องส่งคำตอบกลับผ่านอุโมงค์ไม่ใช่ไปยังอินเทอร์เน็ต ทำให้การส่งต่อแคบ เพื่อให้เฉพาะเนมสเปซส่วนตัวพึ่งพาลิงก์ การส่งทุกคำถามผ่านมันเปลี่ยนการพึ่งพาเล็ก ๆ เป็นการหยุดทั้งหมดในวินาทีที่อุโมงค์ล่ม
เดินผ่านขอบเขตตามลำดับ
ทดสอบรีโซลเวอร์ที่ติดตั้งบนลิงก์ที่ใช้งาน จากนั้นคำถามโดยตรงไปยังรีโซลเวอร์นั้น จากนั้นคำถามเดียวกันจากฝั่งไกล และสุดท้ายแอปพลิเคชันที่ใช้ชื่อเดียวกัน แต่ละขั้นตอนแยกขอบเขตหนึ่ง จึงบอกว่าควรมองที่ไหนแทนที่จะเริ่มสอบสวนใหม่ คำตอบที่ทำงานได้ในขณะที่แอปพลิเคชันล้มเหลวชี้ไปที่ความเชื่อถือใบรับรองหรือนโยบาย API ไม่ใช่ DNS ข้อบกพร่องเหล่านั้นเป็นจริง และไม่มีการเปลี่ยนรีโซลเวอร์ใดจะแก้ไขได้
เขียนว่าขั้นตอนใดล้มเหลว บรรทัดเดียวนั้นคือสิ่งที่คนถัดไปต้องการ และใช้เวลาสิบวินาทีในการบันทึก
เก็บห่วงโซ่ไว้ในที่ที่คนถัดไปหาเจอ
บันทึกรีโซลเวอร์ที่ถูกดัน กฎการส่งต่อ ต้นทางคำถามที่ได้รับอนุญาต และปลายทางที่ตอบในที่เดียว เมื่อชื่อส่วนตัวล้มเหลวอีกครั้ง บันทึกจะแสดงว่าอุโมงค์ย้ายไปหรือไม่ ที่อยู่รีโซลเวอร์เปลี่ยนหรือไม่ หรือกฎถูกทำให้แคบลง หากไม่มีบันทึก ทุกเหตุการณ์จะเริ่มจากศูนย์และจบด้วยการเดาสามข้อเดิม
เก็บบันทึกให้สั้นพอที่จะยังแม่นยำ: สี่บรรทัด วันที่ และชื่อเจ้าของแต่ละส่วน บันทึกที่เก่าเกินไปแย่กว่าไม่มี เพราะดูน่าเชื่อถือในขณะที่ผิด