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

อ่านที่อยู่ปลายทางก่อนแตะอุโมงค์

โหลดเว็บไซต์หนึ่งครั้งขณะอุโมงค์ทำงาน แล้วดูที่อยู่เพียร์ที่เบราว์เซอร์เชื่อมต่อจริง บน Linux ss -tunp จะแสดงที่อยู่ปลายทางของทุกซ็อกเก็ตที่เปิดอยู่ และ dig +short บนชื่อเดียวกันจะแสดงสิ่งที่ตัวแก้ไขชื่อคืนมา เก็บตัวเลขทั้งสองไว้ตรงหน้า

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

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

วางเส้นทางโฮสต์หนึ่งเส้นบนไคลเอนต์

สมมติว่าอินเทอร์เฟซชื่อ home-wg และเราเตอร์ LAN อยู่ที่ 192.168.1.1 NetworkManager จะรับเส้นทางที่มีเกตเวย์เป็นเราเตอร์นั้นและความยาวพรีฟิกซ์ครอบคลุมทั้ง 32 บิต และเคอร์เนลให้ความสำคัญเพราะพรีฟิกซ์ที่ยาวที่สุดชนะ

nmcli connection modify home-wg +ipv4.routes "198.51.100.20/32 192.168.1.1"
nmcli connection up home-wg
ip route get 198.51.100.20

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

โปรไฟล์ wg-quick ไม่มีฟิลด์เส้นทาง ดังนั้นการยกเว้นเดียวกันจึงอยู่ในบรรทัด PostUp ที่เพิ่มเส้นทางโฮสต์ลงในตารางหลักโดยใช้อินเทอร์เฟซ LAN เป็นอุปกรณ์ หลังแก้ไขให้ปิดและเปิดอินเทอร์เฟซใหม่ เพราะอินเทอร์เฟซที่ทำงานอยู่จะไม่อ่านไฟล์ซ้ำ กฎ fwmark ที่ wg-quick ติดตั้งจะนำทางเฉพาะแพ็กเก็ตที่ห่อหุ้มของตัวเอง ดังนั้นทราฟฟิกเบราว์เซอร์ปกติยังคงตามตารางหลักและพบ /32 ของคุณ

คิลสวิตช์คือสิ่งถัดไปที่บล็อกมัน

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

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

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

DNS เป็นตัวตัดสินว่าเบราว์เซอร์จะต่อกับที่อยู่ใด

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

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

การยกเว้นเดียวกันบนเราเตอร์ ครั้งเดียว สำหรับทุกอุปกรณ์

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

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

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

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