มีสองส่วนในการค้นหาข้อมูลนี้: ขั้นแรก กำหนดว่าเครือข่ายย่อยใดบ้างที่จะส่งออกโดยตรงผ่านอินเทอร์เฟซเฉพาะ และอย่างที่สอง พิจารณาว่า 'เส้นทางเริ่มต้น' ของทราฟฟิกของคุณคืออินเทอร์เน็ตใด
(ข้ามไปที่ส่วนเส้นทางของคุณเพื่อแยกส่วนผลลัพธ์เส้นทางของคุณ)
ในทั้งสองกรณีเราต้องการ รายการเส้นทาง ip
เอาต์พุต แต่ในกรณีของฉันเราจะดูที่แล็ปท็อปของฉัน (ตอนนี้ไม่ใช่ VPN เพราะฉันใช้เครือข่ายในบ้าน):
เริ่มต้นผ่าน 172.18.0.1 dev wlp59s0 proto dhcp metric 600
10.10.0.0/16 dev คงที่-local proto kernel ขอบเขตลิงค์ src 10.10.0.1
10.73.252.0/24 dev ลิงก์ขอบเขตเคอร์เนลโปรโต InternalDHCP src 10.73.252.1
10.74.0.0/24 dev docker0 proto kernel scope link src 10.74.0.1 linkdown
169.254.0.0/16 dev docker0 ขอบเขตลิงก์เมตริก 1,000 ลิงก์ดาวน์
172.18.0.0/16 dev wlp59s0 ลิงก์ขอบเขตเคอร์เนลโปรโต src 172.18.2.0 เมตริก 600
อย่างที่คุณเห็นฉันมีหลายสิ่งหลายอย่างในเครือข่ายของฉัน ฉันมีซับเน็ตนักเทียบท่าสองเครือข่าย อีกสองเครือข่าย (คงท้องถิ่น
และ DHCP ภายใน
สำหรับคอนเทนเนอร์ LXD ของฉัน) อินเทอร์เฟซไร้สายของฉัน wlp59s0
และ 'เส้นทางเริ่มต้น' ที่ด้านบน
ลองแยกสิ่งนี้ออกเป็นส่วน ๆ ของส่วนประกอบ เริ่มต้นด้วยการดูเส้นทางที่ไม่ใช่ค่าเริ่มต้น ซึ่งจะอ่านได้ดังนี้
- การรับส่งข้อมูลทั้งหมดของ 10.10.0.0/16 (10.10.0.0-10.10.255.255) จะถูกส่งตรงไปยัง
คงท้องถิ่น
ลิงก์เครือข่ายที่มี IP ต้นทางเป็น 10.10.0.1
- การรับส่งข้อมูลทั้งหมดไปยัง 10.73.252.0/24 (10.73.252.0-10.73.252.255) จะตรงไปที่
DHCP ภายใน
ลิงก์เครือข่ายที่มีแหล่งที่มาของ 10.73.252.1
- การรับส่งข้อมูลทั้งหมดไปยัง 10.74.0.0/24 (10.74.0.0-10.74.0.255) จะถูกส่งตรงไปยัง
นักเทียบท่า0
ลิงก์เครือข่ายที่มีแหล่งที่มาของ 10.74.0.1 ลิงก์เครือข่ายเดียวกันยังยอมรับการรับส่งข้อมูลสำหรับ 169.254.0.0/16
อย่างไรก็ตาม ลิงก์นี้ออฟไลน์และใช้งานไม่ได้
- การรับส่งข้อมูลทั้งหมดไปยัง 172.18.0.0/16 (172.18.0.0-172.18.255.255) จะตรงไปที่
wlp59s0
ลิงก์เครือข่ายที่มี IP ต้นทางเป็น 172.18.2.0
ตอนนี้เส้นทางเริ่มต้น:
- การรับส่งข้อมูลอื่น ๆ ทั้งหมดที่ไม่ตรงกับหนึ่งในเส้นทางอื่น ๆ ข้างต้นจะต้องกำหนดเส้นทางผ่านที่อยู่เกตเวย์/เราเตอร์ 172.18.0.1 ผ่านอุปกรณ์
wlp59s0
(ซึ่งเป็นการ์ด wifi ของฉัน)
นั่นคือวิธีที่คุณจะผ่า รายการเส้นทาง ip
เอาต์พุตเช่นข้างต้น เราสามารถช่วยคุณในการผ่าของคุณ รายการเส้นทาง ip
เอาต์พุตถ้าคุณต้องการ อย่างไรก็ตาม นี่คือวิธีที่คุณจะอ่านเอาต์พุต
เส้นทางของคุณ
นี่คือการแยกเส้นทางของฉัน ทั้งตอนที่ VPN ของคุณเชื่อมต่ออยู่และไม่ได้เชื่อมต่อ
อันดับแรก เมื่อคุณไม่ได้ใช้ VPN:
- การรับส่งข้อมูลไปยัง 192.168.26.0/23 (192.168.26.0-192.168.27.255) ออกไปโดยตรงผ่านลิงก์อินเทอร์เฟซ wlp0s20f3 (wifi) ของคุณ ซึ่งรวมถึงการไปที่ 192.168.26.1 โดยตรง (เส้นทางเริ่มต้น)
- การรับส่งข้อมูลไปยัง 149.11.92.90 ออกไปผ่านทาง 182.168.26.1 โดยตรงผ่านลิงก์อินเทอร์เฟซ wifi ของคุณ
- การรับส่งข้อมูลไปยัง 172.17.0.0/16 (172.17.0.0-172.17.255.255) โดยตรงผ่านลิงก์เครือข่าย docker0 ด้วยที่อยู่ IP ต้นทางของ 172.17.0.1
- มีบางอย่างเกิดขึ้นกับลิงก์เครือข่ายของคุณ ดังนั้น 169.254.0.0/16 (169.254.0.0-169.254.255.255) จึงดับผ่านอุปกรณ์ wifi ที่ลิงก์
- สำหรับการกำหนด subnet อื่นๆ เมื่อคุณไม่ได้อยู่บน VPN ทราฟฟิกของคุณจะไหลออกทางอินเตอร์เฟส wifi ของคุณผ่าน IP ของเกตเวย์ที่ 192.168.26.1 (เราเตอร์ของคุณ)
ตอนนี้ เมื่อคุณใช้ VPN มันจะเพิ่มเส้นทางจำนวนมากไปยังตารางของคุณซึ่งไม่สมเหตุสมผล แต่เราสามารถรวมเข้าด้วยกันเป็นวิธีง่ายๆ ในการประเมินกฎ โปรดทราบว่ากฎที่ไม่ได้เชื่อมต่อ VPN ก่อนหน้านี้ยังคงมีผลบังคับใช้:
เมื่อเชื่อมต่อกับ VPN ทราฟฟิกทั้งหมดที่ไม่ได้ระบุโดยกฎบนลิงก์ก่อนหน้า (ซึ่งรวมถึงกฎเมื่อคุณไม่ได้อยู่บน VPN) จะถูกส่งผ่านอุปกรณ์ tun0 และลิงก์ VPN ผ่าน 192.168.31.1 ผ่านอุโมงค์ . ดังนั้นการรับส่งข้อมูลทั้งหมดไปยังอินเทอร์เน็ต (นอกเหนือจากที่อยู่ลิงก์ตามที่ระบุไว้ด้านบน) จะผ่านอุโมงค์ VPN ก่อน หากลิงก์อุโมงค์ VPN ล้มเหลวและทราฟฟิกไม่สามารถข้ามผ่านอุโมงค์นั้น มันจะถอยกลับไปใช้การเชื่อมต่อ wifi มาตรฐานของคุณ (อย่างไรก็ตาม สิ่งนี้จะเกิดขึ้นก็ต่อเมื่ออุโมงค์ VPN ล้มเหลวและไม่ได้เชื่อมต่อใหม่ ดังนั้น จูน0
อินเทอร์เฟซจะหายไป)
การรับส่งข้อมูลระหว่างระบบของคุณกับจุดสิ้นสุด VPN จะส่งผ่านลิงก์ wifi เริ่มต้นเพื่อไปยังเซิร์ฟเวอร์ VPN ระยะไกล (นี่คือพฤติกรรม 'เริ่มต้น' ในการเชื่อมต่อกับเซิร์ฟเวอร์ VPN ที่จะใช้ลิงก์ wifi เริ่มต้นของคุณ)