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

เราเตอร์ทำอะไรจริง ๆ

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

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

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

NAT และ NAT-T เป็นตัวกำหนดเส้นทาง

IPsec ไม่ได้ถูกสร้างมาให้อยู่รอดจากการแปลงที่อยู่ มาตรฐานจึงเพิ่มเปลือกหุ้ม NAT traversal ห่อ ESP ไว้ใน UDP ทำให้ตาราง NAT ธรรมดาพาโฟลว์ไปได้ และการเจรจาตกลงเรื่องการสลับนั้นระหว่าง IKE (RFC 3948) IKE เองใช้ UDP 500 ขณะที่เส้นทางที่ห่อแล้วมักใช้ UDP 4500

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

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

หาเฟสที่ล้มเหลว

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

sudo tcpdump -ni any 'udp port 500 or udp port 4500'
ip xfrm state list
ip xfrm policy list

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

ถ้าแพ็กเก็ตออกไปและไม่มีอะไรกลับมา ให้ย้ายการดักไปฝั่ง WAN ของเราเตอร์ การเปรียบเทียบการดักทั้งสองระบุตำแหน่งการทิ้งโดยไม่ต้องเดา

ปิดสิ่งที่คุณไม่ต้องการ

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

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

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