เข้าถึงเวิร์กสเตชันหลัง NAT โดยไม่ต้องส่งต่อพอร์ต
เวิร์กสเตชันที่ไม่มีพอร์ตขาเข้าญังเข้าถึงได้ผ่านฮับ รีเลย์ หรือโบรกเกอร์แอปพลิเคชัน เปรียบเทียบสิ่งที่แต่ละดีไซน์รับประกันก่อนเลือกหนึ่งอย่าง
ปลายทางสองจุดที่อยู่หลัง NAT ของผู้ให้บริการและเราเตอร์ออฟฟิศที่ถูกล็อกไว้ไม่เหลือพอร์ตขาเข้าให้ส่งต่อ และปฏิกิริยาคือขอพอร์ตอยู่ดี คำถามที่ดีกว่าคือฝั่งไหนเรียกออกไปได้และบริการที่เข้าถึงได้ใดได้รับอนุญาตให้พาทราฟฟิก ดีไซน์สี่แบบตอบคำถามนี้ต่างกัน และล้มเหลวต่างกันเมื่อเส้นทางถูกปิดกั้น การเลือกในหมู่พวกเขาคือการเปรียบเทียบการรับประกัน ไม่ใช่ชื่อโปรโตคอล
สี่ดีไซน์ สี่สัญญาที่ต่างกัน
ตารางด้านล่างคือฉบับย่อ อ่านคอลัมน์กลางเป็นสัญญาที่คุณทดสอบได้ และคอลัมน์ขวาเป็นสัญญาที่ไม่มีใครให้
| Design | Who initiates | Promise you get | Promise you do not get |
|---|---|---|---|
| Routed VPN hub | Both ends, outbound to the hub | A routed path to permitted prefixes | Access to services no policy allows |
| Peer traversal with ICE | Both peers to a rendezvous service | A path tested between the two peers | A direct path through every NAT |
| TURN relay | Client outbound to a relay | Transport that survives symmetric NAT | Peer discovery or a usable directory |
| Application broker | Workstation outbound to a broker | One audited application session | Subnet-wide reachability |
แถวใดใช้บังคับขึ้นอยู่กับงาน ไม่ใช่ความชอบ เซสชันเดสก์ท็อปทางไกลหนึ่งเซสชัน เชลล์สำหรับผู้ดูแลระบบหนึ่งตัว และการเข้าถึงซับเน็ตส่วนตัวทั้งเครือข่าย เป็นข้อกำหนดสามอย่างที่ไม่ต้องใช้จุดเข้าจุดเดียวกัน แม้จะบังเอิญเกี่ยวกับเครื่องเดียวกันก็ตาม
ฮับเปลี่ยนว่าใครเรียกออกไป ไม่ใช่สิ่งที่อนุญาต
ในดีไซน์ฮับแบบกำหนดเส้นทาง แล็ปท็อปทางไกลและเวิร์กสเตชัน หรือเกตเวย์ของไซต์ที่อยู่ข้างหน้า ต่างเปิดอุโมงค์ขาออกไปยังบริการที่ทั้งสองเข้าถึงได้ ไม่มีอะไรยอมรับการเชื่อมต่อที่ไม่ได้ร้องขอที่เราเตอร์ของเวิร์กสเตชัน และนั่นคือเหตุผลที่ดีไซน์นี้อยู่รอดหลัง NAT และยังทำงานได้เมื่อไซต์ไม่มีที่อยู่แบบคงที่ จากนั้นฮับกำหนดเส้นทางทราฟฟิกระหว่างที่อยู่ภายในสองที่ตามนโยบายของตนเอง
ราคาคือฮับต้องมีอยู่ ต้องเข้าถึงได้จากทั้งสองฝั่ง และต้องมีคนดูแล การกรองขาออกต้องอนุญาตการขนส่ง และเครือข่ายที่ปิดกั้นจะทำให้ดีไซน์ล้มเหลวแม้ไม่จำเป็นต้องส่งต่อพอร์ต
ส่วนที่ละเอียดอ่อนคือการเข้าถึงได้และการอนุญาตเป็นการตัดสินใจแยกกันที่ทำในต่างที่ เส้นทางไปยังคำนำหน้าไม่ได้บอกว่าบริการใดบนเวิร์กสเตชันที่ตัวตนใช้ได้ และกฎไฟร์วอลล์ที่อนุญาตอุโมงค์ไม่ได้บอกว่าบัญชีล็อกอินได้หรือไม่ กำหนดค่าทั้งสอง ทดสอบทั้งสอง และเก็บการตัดสินใจอนุญาตไว้กับระบบที่ถือครองทรัพยากร ไม่ใช่กับตารางเส้นทาง
การทะลุผ่านทำงานเฉพาะเมื่อทั้งสองสแตกนำไปใช้
การทะลุผ่านระหว่างเพียร์คือความสามารถของระบบเฉพาะ ไม่ใช่การตั้งค่าที่ปรับปรุง VPN Interactive Connectivity Establishment รวบรวมที่อยู่ผู้สมัครหลายที่และทดสอบคู่จนกว่าจะได้ผลหนึ่ง: ผู้สมัครโฮสต์บนอินเทอร์เฟซท้องถิ่น ผู้สมัครแบบสะท้อนฝั่งเซิร์ฟเวอร์ที่สร้างจากสิ่งที่ NAT เปิดเผย และผู้สมัครแบบรีเลย์ที่จัดสรรบนรีเลย์ ที่อยู่ส่วนตัวเพียงอย่างเดียวไม่ใช่เส้นทาง เพราะอีกฝั่งกำหนดเส้นทางไปที่นั่นไม่ได้
กรณีรีเลย์ควรค่าแก่การเข้าใจก่อนจะตัดทิ้ง RFC 8656 อธิบาย TURN ว่าเป็นโปรโตคอลที่ไคลเอนต์ขอที่อยู่ขนส่งแบบรีเลย์จากเซิร์ฟเวอร์ และเซิร์ฟเวอร์ส่งต่อทราฟฟิกระหว่างไคลเอนต์นั้นกับเพียร์ของมัน รีเลย์จึงพาข้อมูล ซึ่งต่างอย่างมีนัยสำคัญจากไดเรกทอรีที่เพียงช่วยให้ปลายทางพบกัน การแลกเปลี่ยนที่อยู่รีเลย์กับอีกฝั่งเป็นขั้นตอนการประสานงานที่แอปพลิเคชันต้องทำ
สิ่งที่คุณสัญญาไม่ได้คือเส้นทางตรง NAT แบบสมมาตรและไฟร์วอลล์องค์กรบางตัวเอาชนะการเจาะรูได้ และเมื่อเป็นเช่นนั้นระบบก็ถอยไปใช้รีเลย์หรือล้มเหลว คุณสรุปไม่ได้เช่นกันว่าปลายทางที่แปลแล้วสองจุดจะพูดกันไม่ได้เลย สแตกที่รองรับพร้อมทางถอยเป็นรีเลย์มีอยู่เพราะพวกเขามักทำได้ ตัดสินว่าความพร้อมใช้หรือความตรงไปตรงมาสำคัญกว่า แล้วตรวจสอบว่าการติดตั้งเลือกเส้นทางใดจริง แทนที่จะสมมติกรณีที่ดี
โบรกเกอร์แคบกว่าเครือข่าย
เมื่อข้อกำหนดคือแอปพลิเคชันเดียว โบรกเกอร์แอปพลิเคชันหรือการเชื่อมต่อย้อนกลับที่เวิร์กสเตชันเริ่มขึ้นอาจเป็นคำตอบที่เล็กที่สุด เวิร์กสเตชันเรียกออกไปยังโบรกเกอร์ โบรกเกอร์พิสูจน์ตัวตนผู้ใช้ทางไกล และมีเพียงเซสชันแอปพลิเคชันนั้นที่ถูกพาไป ไม่มีเส้นทางไปยังซับเน็ตของเวิร์กสเตชันถูกสร้างขึ้น ดังนั้นการถูกบุกรุกของเซสชันทางไกลจึงไม่สืบทอดเส้นทางไปยังทุกอุปกรณ์ข้างเคียง
ความแคบนั้นมีราคา: แอปพลิเคชันเพิ่มเติมแต่ละตัวต้องมีการผสานของตัวเอง และสิ่งที่แอปพลิเคชันสมมติเกี่ยวกับเครือข่ายท้องถิ่น เช่นการแชร์ไฟล์ที่เปิดบนเซิร์ฟเวอร์ใกล้เคียง อาจเข้าถึงไม่ได้ โบรกเกอร์ยังรวมนโยบายและการบันทึกไว้ที่เดียว ซึ่งมีประโยชน์จนกว่าที่นั้นจะกลายเป็นความล้มเหลว
เปรียบเทียบขอบเขตความเชื่อถือ แล้วทดสอบเส้นทาง
ฮับที่สิ้นสุดอุโมงค์สามารถอ่านทราฟฟิกที่มันกำหนดเส้นทาง รีเลย์สามารถพาการแลกเปลี่ยนที่ป้องกันอย่างอิสระเมื่อแอปพลิเคชันเข้ารหัสจากปลายถึงปลาย และโบรกเกอร์มักสิ้นสุดเซสชันที่มันนำเสนอ กำหนดว่าการป้องกันสิ้นสุดที่ใดจริงก่อนตัดสินว่าดีไซน์สองแบบเทียบเท่ากันเพราะทั้งคู่เข้ารหัส
จากนั้นตรวจสอบว่าเวิร์กสเตชันเข้าถึงอะไรได้จริงขาออก เพราะทุกดีไซน์ข้างต้นขึ้นกับสิ่งนั้น รันสิ่งนี้บนเวิร์กสเตชัน โดยแทนชื่อโฮสต์ที่คุณตั้งใจจะใช้
ss -lntup
nc -vz hub.example.com 443
curl -sS -o /dev/null -w "%{http_code}\n" https://hub.example.com
ยอมรับดีไซน์เฉพาะหลังจากปฏิบัติการทางไกลที่ตั้งใจสำเร็จภายใต้ตัวตนที่ได้รับอนุญาต ตัวตนที่ไม่ได้รับอนุมัติถูกปฏิเสธ และพฤติกรรมเมื่อเส้นทางตรงหรือรีเลย์ไม่พร้อมใช้งานเป็นที่รู้และบันทึกไว้ รวมการเชื่อมต่อใหม่และบริบทการเริ่มต้นปกติของเวิร์กสเตชัน เพราะเซสชันที่เริ่มในออฟฟิศผ่าน LAN ไม่ได้ทดสอบสิ่งใดที่การเข้าถึงทางไกลต้องพึ่งพา