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

จากภายนอกดูเหมือนกันแต่ต้องแก้ต่างกัน อ่านบันทึกของไคลเอนต์ ณ จุดที่มีการตัดสินใจเรื่องเส้นทาง

พิสูจน์ว่าเส้นทางหายไป ไม่ใช่แค่ว่าพัง

เริ่มด้วยการพิสูจน์ว่าเส้นทางหายไป ไม่ใช่แค่ว่าพัง บน Linux ip route show dev tun0 แสดงสิ่งที่ไคลเอนต์ติดตั้งบนอุปกรณ์อุโมงค์ บน Windows route print หรือ Get-NetRoute แสดงสิ่งเดียวกันในรูปแบบตาราง

เส้นทางที่มีอยู่แต่ไม่ส่งต่อทราฟฟิกเป็นอีกปัญหา การนี้ย้ายการตรวจสอบไปที่กฎการส่งต่อและไฟร์วอลล์ ไม่ใช่การติดตั้งเส้นทาง

เวลา: การเพิ่มทำงานก่อนอุปกรณ์จะมีอยู่

ไคลเอนต์วิเคราะห์ PUSH_REPLY ของเซิร์ฟเวอร์หลังจากช่องควบคุมขึ้นแล้วและหลังจากกำหนดค่าอินเทอร์เฟซแล้ว เมื่อนั้นจึงแตะตารางเส้นทาง ด้วยกลไกที่แพลตฟอร์มมีให้ Linux ผ่าน netlink ส่วน Windows ใช้ API ที่ต้องใช้โทเคนยกระดับ สคริปต์หรือไคลเอนต์ที่เพิ่มเส้นทางทันทีที่อ่านการกำหนดค่าอาจทำงานก่อนอุปกรณ์ TUN/TAP จะมีอยู่ และเคอร์เนลปฏิเสธการเพิ่มนั้น

การแข่งกันเดียวกันอธิบายว่าทำไมเส้นทางที่พิมพ์ด้วยมือจึงได้ผล แต่เส้นทางอัตโนมัติไม่ เมื่อคุณพิมพ์ มันอินเทอร์เฟซขึ้นแล้ว

route-delay มีไว้สำหรับกรณีนี้ และ route-up ระบุสคริปต์ที่ทำงานหลังกำหนดค่าอินเทอร์เฟซและเส้นทางแล้ว ใส่เส้นทางที่ขึ้นกับที่อยู่อุโมงค์ในฮุกนั้น ไม่ใช่ในขั้นต้น

สิทธิ์: ใครเปลี่ยนตารางได้

การเปลี่ยนตารางเส้นทางของ Windows ต้องใช้โทเคนยกระดับ GUI ที่เริ่มโดยผู้ใช้ทั่วไปอาจตั้งที่อยู่ของอะแดปเตอร์ผ่านบริการได้ แต่ยังเพิ่มเส้นทางไม่ได้ บันทึกจะแสดงข้อผิดพลาดแบบถูกปฏิเสธการเข้าถึงแทนการดันที่หายไป

การเริ่ม GUI ในฐานะผู้ดูแลระบบ หรือใช้ไคลเอนต์ที่อิงบริการ เปลี่ยนผลลัพธ์นั้น งานตามกำหนดเวลาที่เริ่มไคลเอนต์โดยไม่มีโทเคนที่จำเป็นไม่เปลี่ยน

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

นโยบาย: เส้นทางที่ถูกดันมาอาจถูกทิ้งโดยเจตนา

route-nopull ทำให้ไคลเอนต์เพิกเฉยเส้นทางที่เซิร์ฟเวอร์ดันมา รวมถึงเส้นทางเริ่มต้นที่ถูกดัน ขณะที่ที่อยู่อุโมงค์ยังได้รับการยอมรับ ตัวเลือก DNS และ DHCP ที่ถูกดันมาถูกทิ้งด้วยคำสั่งเดียวกัน ไคลเอนต์แบบนั้นไม่ได้ชำรุด แต่คาดหวังบรรทัดเส้นทางที่ชัดเจนในการกำหนดค่าของตนเอง

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

โปรไฟล์ที่ดูสะอาดในโปรแกรมแก้ไขข้อความอาจมีคำสั่งที่ถูกเพิ่มในขณะรัน

เปรียบเทียบรายการดันกับตาราง

หลังเชื่อมต่อ วางรายการดันของเซิร์ฟเวอร์ข้างตารางของไคลเอนต์ บน Linux นั่นคือ ip route show dev tun0 บน Windows คือ route print หรือ Get-NetRoute ถ้าเส้นทางหายไป ให้แก้การติดตั้งก่อน ถ้ามีอยู่แต่ทราฟฟิกล้มเหลว ให้ไปที่นโยบายการส่งต่อและไฟร์วอลล์

บันทึกเวอร์ชันของไคลเอนต์ บัญชีที่ใช้ทำงาน และว่าเป็นแบบอิงบริการหรือไม่ ข้อเท็จจริงสามข้อนี้บอกคนถัดไปว่าสาเหตุใดถูกตัดออก

บทความที่เกี่ยวข้อง