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

กฎกรองไม่สามารถเลือกอินเทอร์เฟซได้

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

ตัวอย่างด้านล่างใช้ LAN 192.168.8.0/24 บน br-lan อุปกรณ์อุโมงค์ tun0 และกล่องรับสัญญาณหนึ่งเครื่องที่ 192.168.8.23 ซึ่งควรใช้อุโมงค์

อ่านผลการค้นหาก่อนแก้ไขกฎ

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

ip -4 route get 198.51.100.7 from 192.168.8.23

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

ผูกตารางกับไคลเอนต์ที่คุณต้องการครอบคลุม

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

ip -4 route add default dev tun0 table 200
ip -4 rule add iif br-lan lookup 200 priority 200

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

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

เก็บปลายทางภายในท้องถิ่นไว้นอกอุโมงค์

ตารางใหม่รู้จักเฉพาะเส้นทางที่คุณใส่เข้าไป คำนำหน้า LAN หายไป ดังนั้นทราฟฟิกของเครื่องพิมพ์และ NAS จะตามเส้นทางเริ่มต้นของอุโมงค์และหายไป เส้นทาง throw จะจบการค้นหาในตารางนี้และคืนการตัดสินใจให้ตารางหลัก

ip -4 route add throw 192.168.8.0/24 table 200

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

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

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