ทำไมการดักจับ VPN แบบเราเตอร์จึงไม่เคยแสดงแท็ก VLAN ของสาขา
อุโมงค์ TUN แบบเราเตอร์พาแพ็กเก็ต IP ไม่ใช่เฟรม Ethernet ที่ติดแท็ก ดังนั้น ID ของ VLAN จึงไม่เคยไปถึงเซนเซอร์ เลือกจุดสังเกตที่นโยบายของคุณต้องการ
การดักจับที่ทำบนอินเทอร์เฟซอุโมงค์จะไม่แสดง ID ของ VLAN ของสาขาเลย และนี่เป็นคุณสมบัติของการออกแบบ ไม่ใช่ช่องว่างของเครื่องมือ อุโมงค์ TUN แบบเราเตอร์พาแพ็กเก็ต IP ดังนั้นเฟรม Ethernet ที่ติดแท็กซึ่งพาพวกมันบนลิงก์สาขาจะสิ้นสุดที่เราเตอร์ที่เปลี่ยนเส้นทางพวกมัน หากคำถามนโยบายของคุณเกี่ยวกับเซกเมนต์ ตำแหน่งของเซนเซอร์ต้องถูกเลือกสำหรับคำถามนั้นก่อนที่การดักจับจะเริ่ม ฟิลด์ VLAN ที่คุณคาดหวังต้องถูกแทนที่ด้วยบริบทที่คุณปกป้องได้
ดูว่าอินเทอร์เฟซอุโมงค์พาอะไรจริง ๆ
TUN ส่งแพ็กเก็ต IP ให้โฮสต์ ส่วน TAP ส่งเฟรม Ethernet การออกแบบแบบเราเตอร์ใช้อย่างแรก ซึ่งหมายความว่าแพ็กเก็ตที่มาถึงหลังการถอดรหัสไม่มีเฮดเดอร์ชั้นเชื่อมโยงเลย จึงไม่มีแท็ก 802.1Q ให้อ่าน ไม่มีอะไรถูกปอกระหว่างทาง เพราะแท็กไม่เคยเข้าไปในอุโมงค์ แพ็กเก็ตชั้นในเริ่มที่เฮดเดอร์ IP ของมัน ดังนั้นทุกฟิลด์ที่กฎซึ่งรู้จัก VLAN คาดหวังก็ไม่มีอยู่เลย
ยืนยันชนิดของอินเทอร์เฟซก่อนจะโต้แย้งเรื่องการดักจับ เพราะอุปกรณ์ TAP ในการติดตั้งเดียวกันจะทำงานต่างออกไปและชักนำไปสู่ข้อสรุปที่ผิด
ip -d link show tun0 tcpdump -i tun0 -nn -e -c 20
คำสั่งแรกพิมพ์ชนิดของอุปกรณ์และแฟล็กของมัน คำสั่งที่สองพิมพ์เฮดเดอร์ชั้นเชื่อมโยงของยี่สิบแพ็กเก็ตแรก และบนอุปกรณ์ TUN เอาต์พุตเริ่มที่ IP โดยไม่มีบล็อก Ethernet ซึ่งเป็นคำอธิบายทั้งหมดในหน้าจอเดียว
การเลือก TAP ก็ไม่ได้คืนแท็ก อุปกรณ์ TAP ส่งเฟรมไปยังบริดจ์ และสิ่งที่เกิดขึ้นกับแท็กขึ้นอยู่กับการกรอง VLAN ของบริดจ์และการเป็นสมาชิกที่กำหนดค่าไว้ของพอร์ต นั่นเป็นการตัดสินใจออกแบบแยกต่างหากที่มีโหมดล้มเหลวของตัวเอง
ยืนอยู่ที่ใดที่หนึ่งในสามแห่งและยอมรับสิ่งที่มันมองเห็นได้
บนเซกเมนต์ Ethernet ของสาขา แท็กมีอยู่ แต่เซนเซอร์เห็นเพียงทราฟฟิกในท้องถิ่นบนเซกเมนต์นั้น บนเครือข่าย VPN ภายนอก ทราฟฟิกได้รับการปกป้อง ผู้สังเกตจึงรู้เพียงปลายทางและปริมาณ และไม่รู้อะไรเกี่ยวกับแพ็กเก็ตชั้นในบนเส้นทาง TUN หลังการถอดรหัส แพ็กเก็ต IP ชั้นในพร้อมใช้งาน ทั้งที่อยู่และพอร์ตของมัน และไม่มีเฟรมของสาขา ดังนั้นการดักจับบนทรังค์และการดักจับแบบเราเตอร์ของโฟลว์เดียวกันจึงดูเหมือนบทสนทนาสองแบบที่ต่างกัน
สามตำแหน่งนั้นตอบคำถามสามข้อที่ต่างกัน และการดักจับครั้งเดียวไม่อาจเป็นทั้งสามพร้อมกันได้
tcpdump -i eth0 -nn -e 'vlan' -c 10 tcpdump -i tun0 -nn -c 10
เรียกใช้คู่คำสั่งและเปรียบเทียบ คำสั่งแรกแสดงเฟรมที่ติดแท็กและ ID ของ VLAN ในตำแหน่งที่ลิงก์สาขาทำทรังค์ไปยังโฮสต์ ส่วนคำสั่งที่สองแสดงบทสนทนาเดียวกันเป็น IP ธรรมดาหลังการเปลี่ยนเส้นทาง หากคำสั่งแรกไม่คืนอะไรเลย ให้ตรวจสอบว่าพอร์ตของโฮสต์เป็นพอร์ตเข้าถึงหรือไม่ เพราะเมื่อเป็นเช่นนั้นสวิตช์ได้ถอดแท็กออกแล้ว และการดักจับใดบนโฮสต์ก็จะไม่แสดงมันอีก
แทนที่แท็กที่หายไปด้วยการแมปที่คุณปกป้องได้
หากนโยบายแยกเซกเมนต์ด้วยคำนำหน้า IP ให้เขียนการแมปนั้นพร้อมขีดจำกัดของมัน ช่วงที่อยู่ทับซ้อน การแปลที่มาและเกตเวย์ที่ใช้ร่วมกันแต่ละอย่างสามารถทำให้คำนำหน้าเดียวไม่พอที่จะระบุว่าแพ็กเก็ตมาจากไหนจริง ๆ
เชื่อถืออินเทอร์เฟซและบริบทการเปลี่ยนเส้นทางที่คุณควบคุม ไม่ใช่ป้ายที่ไคลเอนต์ให้มา ฟิลด์เฮดเดอร์ที่คู่ค้าสามารถตั้งได้ไม่ใช่หลักฐานของการเป็นสมาชิก และกฎตรวจสอบที่ถือว่ามันเป็นเช่นนั้นก็ถูกข้ามได้ง่าย
ip route get 10.20.30.40 ip -br addr show
คำสั่งแรกรายงานอินเทอร์เฟซและแหล่งที่เคอร์เนลจะใช้สำหรับปลายทาง ซึ่งเป็นมุมมองท้องถิ่นของการเชื่อมต่อกับเซกเมนต์ คำสั่งที่สองแสดงที่อยู่แยกตามอินเทอร์เฟซ เพื่อให้คำนำหน้าในการแมปของคุณถูกตรวจสอบกับความเป็นจริงแทนที่จะเป็นแผนภาพ
ตรวจสอบเส้นทางขากลับและเพย์โหลดก่อนที่จะเชื่อถือผลลัพธ์
จุดตรวจสอบที่เห็นเพียงทิศทางเดียวจะพลาดบทสนทนาไปครึ่งหนึ่ง และการเปลี่ยนเส้นทางแบบอสมมาตรเป็นเรื่องปกติเมื่อมี VPN เข้ามาเกี่ยวข้อง ยืนยันว่าคำตอบผ่านเซนเซอร์ตัวเดียวกันก่อนจะถือว่าการดักจับด้านเดียวสมบูรณ์
การกู้คืนแพ็กเก็ต IP ชั้นในก็ไม่ได้ถอดรหัสเซสชัน HTTPS ที่อยู่ข้างใน หากคำถามนโยบายเกี่ยวกับเนื้อหาไม่ใช่โฟลว์ ตำแหน่งของเซนเซอร์ต้องขยับอีกครั้ง และการตัดสินใจนั้นเป็นของเอกสารออกแบบเดียวกัน
การขยายทรังค์ที่ไม่จำกัดไปจนถึงเซนเซอร์เพียงเพื่อให้ฟิลด์ VLAN ปรากฏขึ้นจะขยายขอบเขตเครือข่ายโดยไม่ตอบคำถามเดิม เลือกตำแหน่งสำหรับข้อมูลที่นโยบายต้องการ บันทึกสิ่งที่มันมองไม่เห็น และทบทวนทางเลือกเมื่อคำถามเปลี่ยนไป