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

บรรทัดที่คุณลบเป็นฮอปถัดไป ไม่ใช่สวิตช์นโยบาย

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

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

สี่คันโยก สี่งานที่แตกต่าง

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

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

What you are trying to changeDirective that decides itWhat it leaves alone
Which destinations use the tunnelredirect-gatewayPer-prefix routes and resolver choice
The next hop a pushed route points atroute-gatewayCoverage of public destinations
One reachable prefixrouteEvery other destination, default path included
All pushed routing and DNS at onceroute-nopullNothing, which is the problem

กรองบรรทัดที่ถูกดัน เก็บฮอปถัดไป

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

pull-filter ignore "redirect-gateway"

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

อ่านการค้นหา ไม่ใช่ตาราง

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

ip route get 10.40.7.25
ip route get 203.0.113.77
ip rule show

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

DNS, IPv6 และเส้นทางส่วนตัวยังต้องทำงาน

การปฏิเสธการเปลี่ยนเส้นทาง IPv4 หนึ่งครั้งไม่ได้บอกอะไรเกี่ยวกับตัวแก้ไข ดังนั้นตัวเลือก DNS ที่ถูกดันอาจส่งคำถามเข้าไปในอุโมงค์ต่อในขณะที่เส้นทางดูถูกต้อง ค่าเริ่มต้น IPv6 อาจทำแบบเดียวกันกับกลุ่มที่อยู่ที่การตรวจสอบ IPv4 ไม่เคยแตะ การตรวจสอบทั้งสองต้องอาศัยการตัดสินใจที่ชัดเจนไม่ใช่การสันนิษฐาน จากนั้นยืนยันว่าบริการส่วนตัวยังตอบสนอง เพราะอุโมงค์แยกที่สูญเสียเส้นทางส่วนตัวไม่ใช่อุโมงค์แยก แต่เป็นอุโมงค์ที่พัง

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

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