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

ก่อนกฎใด ๆ มีสี่คำถาม: ทราฟฟิกใดเข้ามา ไปที่ใดต่อไป คำตอบหาทางกลับได้อย่างไร และการออกแบบทำอะไรเมื่อเส้นทางที่สองล้มเหลวสองข้อแรกเป็นคำถามเรื่องความสามารถ

สองบริการบนโฮสต์เดียวไม่ใช่เส้นทางส่งผ่าน

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

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

บทบาทใดของ Cloudflare ที่ได้รับอนุญาตให้ส่งต่อ

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

QuestionWhat has to answer it
Does the installed product forward packets from other hosts?A documented routing or connector role, not a device mode
Which prefixes does the connector advertise?Its own configuration and status output
Does the server's own transport still take the old path?ip route get for the endpoint, before and after
Do replies return through the same path?Connection tracking counters on the forward rule

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

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

เก็บอุโมงค์ชั้นนอกให้เป็นอิสระจากเส้นทางใหม่

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

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

จำกัดการส่งต่อและการแปลให้อยู่ในโฟลว์เดียว

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

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

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

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