ทำไมเส้นทางท้องถิ่นจึงชนะเส้นทางค่าเริ่มต้นของ VPN
ซับเน็ตที่เชื่อมต่อและเส้นทางค่าเริ่มต้นกว้าง ๆ ผ่านอุโมงค์เป็นเส้นทางคนละชนิด อ่านการเลือกของเคอร์เนล แล้วแก้การทับซ้อนโดยไม่ต้องกองเส้นทางโฮสต์
เครื่องพิมพ์บนโต๊ะยังทำงานต่อไปหลังจากอุโมงค์ขึ้น ขณะที่เซิร์ฟเวอร์ในอีกสำนักงานหนึ่งถูกแปลงเป็นบางสิ่งภายในอย่างเงียบ ๆ พฤติกรรมทั้งสองมาจากกฎเดียวกัน คือ เส้นทางที่เฉพาะเจาะจงที่สุดชนะ และคำนำหน้าที่เชื่อมต่อโดยตรงนั้นเฉพาะเจาะจงที่สุดเท่าที่จะเป็นไปได้ โดยปกติแล้วนี่คือการออกแบบที่ต้องการ และนี่คือวิธีที่ช่วงส่วนตัวซ้ำกันขโมยที่อยู่ระยะไกล การอ่านการเลือกของเคอร์เนลก่อนจะเปลี่ยนความล้มเหลวลึกลับให้เป็นการเปรียบเทียบคำนำหน้า
คำนำหน้าที่เชื่อมต่อมีความเฉพาะเจาะจงกว่าเส้นทางค่าเริ่มต้น
อุโมงค์มักติดตั้งเส้นทางค่าเริ่มต้นหรือชุดคำนำหน้า ขณะที่อินเทอร์เฟซภายในมีคำนำหน้าที่เชื่อมต่อพร้อมเส้นทางไปยัง LAN ทั้งหมด การจับคู่คำนำหน้าที่ยาวที่สุดเป็นตัวตัดสิน ดังนั้นปลายทางภายในคำนำหน้าของ LAN จึงไม่เคยไปถึงอุโมงค์ นี่คือเหตุผลที่เครื่องพิมพ์ หน้าผู้ดูแลเราเตอร์ และ NAS ภายในยังเข้าถึงได้ขณะ VPN เปิดอยู่ นี่ก็เป็นเหตุผลที่ทรัพยากรระยะไกลภายในช่วงที่ทับซ้อนไปยังเครื่องผิด
พื้นที่ที่อยู่ส่วนตัวไม่ซ้ำกัน และการที่สองไซต์เลือกคำนำหน้าเดียวกันเป็นเรื่องปกติพอที่จะวางแผนได้ เมื่อช่วงทับซ้อนกัน คำตอบภายในมาถึงอย่างรวดเร็วและดูน่าเชื่อถือ ดังนั้นจึงอ่านความล้มเหลวผิดว่าเป็นปัญหาการเข้าสู่ระบบได้ง่าย ปลายทางตอบจริง แต่ไม่ใช่ปลายทางที่ตั้งใจ
อ่านการเลือกที่เคอร์เนลจะทำ
ถามเคอร์เนลว่าจะใช้เส้นทางใดสำหรับปลายทางที่แน่นอนแทนที่จะอ่านตารางจากด้านบน แล้วมองหากฎนโยบายที่อาจเลือกตารางอื่น สองคำสั่งตอบทั้งสองคำถามได้ในไม่กี่วินาที
ip route get 10.20.30.41
ip route show table all | grep -E '10\.|default'
ip rule show
ผลลัพธ์แรกบอกอินเทอร์เฟซ ฮอปถัดไป และที่อยู่ต้นทางที่เคอร์เนลจะใช้ และนั่นคือคำตอบที่สำคัญ ค่า dev ที่ชี้ไปยังบริดจ์ภายในหมายความว่าแพ็กเก็ตไม่เคยเข้าอุโมงค์ ไม่ว่าแผงสถานะของไคลเอนต์ VPN จะกล่าวอ้างอย่างไร รายการตารางที่กรองแล้วแสดงว่าตารางอื่นมีคำนำหน้าเดียวกันหรือไม่ และรายการกฎแสดงลำดับที่ตารางเหล่านั้นถูกปรึกษา กฎนโยบายสามารถส่งคำนำหน้าผ่านตารางที่กำหนดได้ แม้ตารางหลักจะไม่เห็นด้วย ดังนั้นลำดับนั้นจึงเป็นส่วนหนึ่งของคำตอบ
การเข้าถึงภายในเป็นสิทธิ์แยกต่างหาก
การมีเส้นทางไม่เหมือนกับการได้รับอนุญาตให้ใช้ ไคลเอนต์ส่วนใหญ่สามารถบล็อกการสื่อสารเครือข่ายภายในขณะอุโมงค์ขึ้น และการตั้งค่านั้นเป็นการตัดสินใจเชิงนโยบาย ไม่ใช่ผลพลอยได้จากการกำหนดเส้นทาง เมื่อบริการใกล้เคียงที่เชื่อถือได้เป็นส่วนหนึ่งของการออกแบบ ให้เปิดตัวเลือกการเข้าถึงภายในที่รองรับแทนการประดิษฐ์เส้นทาง เมื่ออุปกรณ์อยู่ใน Wi-Fi สาธารณะ ให้ปิดไว้
สองชั้นล้มเหลวต่างกัน เส้นทางภายในที่ถูกบล็อกทำให้หมดเวลาแม้เส้นทางจะมีอยู่ ขณะที่เส้นทางที่ทับซ้อนให้คำตอบจากโฮสต์ผิด การแยกแยะทั้งสองต้องใช้คำค้นเดียวและประหยัดการแก้ไฟร์วอลล์ครึ่งวัน และการจัดส่งต่ออธิบายไว้ใน บันทึกของ strongSwan เกี่ยวกับการส่งต่อ
แก้การทับซ้อนโดยไม่กองเส้นทางโฮสต์
เส้นทางโฮสต์สำหรับที่อยู่เดียวดูเหมือนแก้การทับซ้อนและล้มเหลวในทันทีที่ต้องใช้ที่อยู่ที่สองในช่วงเดียวกัน เมื่อมีเช่นนี้ยี่สิบรายการ ไม่มีใครบอกได้ว่าคำนำหน้าใดเป็นหลัก การแก้ที่ยั่งยืนคือเปลี่ยนการกำหนดที่อยู่ จัดทำโทโพโลยีที่หลีกเลี่ยงช่วงซ้ำ หรือแปลที่ปลายข้างหนึ่ง แต่ละวิธีเสียเวลาวางแผนครั้งเดียวแทนการบำรุงรักษาตลอดไป
หากจำเป็นต้องมีเส้นทางโฮสต์ชั่วคราวจริง ๆ ให้บันทึกเหตุผล เจ้าของ และวันที่ไว้ข้าง ๆ เพื่อให้ลบออกได้ภายหลัง จากนั้นทดสอบที่อยู่และบริการที่แน่นอนพร้อมปลายทางสาธารณะ เพราะการเปลี่ยนแปลงการเข้าถึงภายในที่ตัดแอปพลิเคชันที่ไม่เกี่ยวข้องออกจากอุโมงค์อย่างเงียบ ๆ นั้นแย่กว่าข้อบกพร่องเดิม เก็บคำนำหน้าภายในและคำนำหน้าภายนอกไว้แยกกัน นิสัยนี้ป้องกันไม่ให้ ping ภายในที่ใช้งานได้ถูกส่งต่อเป็นหลักฐานว่าสำนักงานระยะไกลเข้าถึงได้