เส้นทางที่ OpenVPN ดันมาไม่ถูกติดตั้ง: เวลา สิทธิ์ หรือนโยบาย
เส้นทางที่ถูกดันมาอาจหายไปในการแข่งกับเวลา สิทธิ์ที่ขาด หรือนโยบายของไคลเอนต์ เปรียบเทียบรายการดันของเซิร์ฟเวอร์กับตารางจริงก่อน
เซิร์ฟเวอร์บอกว่าดันเส้นทางแล้ว ไคลเอนต์บอกว่าเชื่อมต่อแล้ว แต่ปลายทางยังเข้าถึงไม่ได้ สาเหตุสามประการสร้างภาพนั้นพอดี การเพิ่มเส้นทางทำงานก่อนอุปกรณ์จะมีอยู่ ไคลเอนต์ขาดสิทธิ์ในการเปลี่ยนตาราง หรือมีนโยบายสั่งให้ไคลเอนต์เพิกเฉยตัวเลือกที่ถูกดันมา
จากภายนอกดูเหมือนกันแต่ต้องแก้ต่างกัน อ่านบันทึกของไคลเอนต์ ณ จุดที่มีการตัดสินใจเรื่องเส้นทาง
พิสูจน์ว่าเส้นทางหายไป ไม่ใช่แค่ว่าพัง
เริ่มด้วยการพิสูจน์ว่าเส้นทางหายไป ไม่ใช่แค่ว่าพัง บน 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 ถ้าเส้นทางหายไป ให้แก้การติดตั้งก่อน ถ้ามีอยู่แต่ทราฟฟิกล้มเหลว ให้ไปที่นโยบายการส่งต่อและไฟร์วอลล์
บันทึกเวอร์ชันของไคลเอนต์ บัญชีที่ใช้ทำงาน และว่าเป็นแบบอิงบริการหรือไม่ ข้อเท็จจริงสามข้อนี้บอกคนถัดไปว่าสาเหตุใดถูกตัดออก