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

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

สองอุปกรณ์ สองชุดอินเทอร์เฟซ

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

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

ip route get 198.51.100.20
ip -6 route get 2001:db8::20
wg show wg0 allowed-ips

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

สิ่งที่รีพลายแบบ Binding บอกได้

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

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

สามกรณีที่ดูคล้ายกันแต่ไม่เหมือน

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

Where the request leavesWhat rewrites the sourceWhat the reflector reports
Tunnel interface on the routerRouter NAT towards the tunnel addressThe tunnel address as seen on that path
WAN interface, excluded by policyOrdinary WAN translationThe public WAN address
Private reflector reached through the tunnel routeRouter NAT towards the tunnel addressAn internal identifier valid only inside that path

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

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

การรวบรวมไม่ใช่การเลือก

WebRTC รวบรวมที่อยู่ผู้สมัครเพื่อลองใช้ และผู้สมัครที่ปรากฏในรายการวินิจฉัยอาจไม่เคยขนส่งมีเดียเลย การอ่านรายการนั้นว่า “นี่คือสิ่งที่อีกฝ่ายเรียนรู้” เป็นการประเมินหลักฐานสูงเกินจริง คู่ที่ถูกเลือกคือคู่ที่ขนส่งเซสชันจริง และมันอยู่ในฟิลด์อื่น

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

ตัดสินนโยบาย แล้วจึงอ่านคำตอบ

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

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

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

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