การเชื่อมต่อ VPN แบ่งทราฟฟิกขาเข้า


0

ฉันมีเซิร์ฟเวอร์ที่มี (66.66.66.66) (ไม่ใช่ IP จริงแน่นอน) และเครือข่ายในบ้านของฉันมี IP สาธารณะ (202.202.122.123) เช่นกัน

หลังจากฉันเชื่อมต่อกับเซิร์ฟเวอร์จากเราเตอร์ (172.22.34.1) โดยใช้ VPN (ทางเทคนิค OpenVPN ที่ไม่ควรทำ) สำหรับพร็อกซี

จากนั้นฉันมีตารางเส้นทางหลักเช่นนี้ 202.202.122.1 dev ppp0 proto kernel scope link 172.22.34.0/24 dev br0 proto kernel scope link src 172.22.34.1 10.12.12.0/24 dev tap11 proto kernel scope link src 10.12.12.2 default via 202.202.122.1 dev ppp0 และตารางเส้นทาง ov1 ดังนี้: 172.22.34.0/24 dev br0 scope link 66.66.66.66/32 via 202.202.122.1 dev ppp0 0.0.0.0/1 via 10.12.12.1 dev tap11 128.0.0.0/1 via 10.12.12.1 dev tap11 และกฎ ip เช่นนี้ (ฉันทำสิ่งนี้เพื่อควบคุมว่าใครสามารถใช้ช่องสัญญาณ VPN): 0: from all lookup local 32764: from 172.22.34.101 lookup ov1 32765: from 172.22.34.44 lookup ov1 32766: from all lookup main 32767: from all lookup default

เซิร์ฟเวอร์ที่มี IP 66.66.66.66 สามารถดูเว็บ HTTPS ที่โฮสต์ที่บ้าน (202.202.122.123:443 DNAT ถึง 172.22.34.44:443) แต่ผู้ใช้อื่น ๆไม่ (โทรศัพท์ของฉันเครื่องมือตรวจสอบพอร์ตออนไลน์ ฯลฯ )

จากนั้นฉันติดตามแพคเกจโดยใช้ tshark (wireshark CLI) บน 172.22.34.44 ไม่มีการรับส่งข้อมูลขาเข้าแม้แต่เมื่อพยายามดูเว็บจากโทรศัพท์ของฉัน (โดยใช้เครือข่ายเซลลูลาร์) แต่หลังจากฉันต้องเพิ่ม IP ของโทรศัพท์ไปยังตารางเส้นทาง ov1 ด้วยตนเองเท่านั้นเช่นเซิร์ฟเวอร์ ( ip route add PHONEIP dev ppp0 table ov1) จากนั้นก็ใช้งานได้ดี

สิ่งที่ทำให้ฉันสับสนคืออย่างที่ฉันรู้ตารางเส้นทางบอกว่า "ปลายทาง" ไม่ใช่ "แหล่งที่มา": Kernel IP routing table ปลายทาง....Gateway Genmask Flags Metric Ref Use Iface 202.202.122.1 * 255.255.255.255 UH 0 0 0 ppp0 172.22.34.0 * 255.255.255.0 U 0 0 0 br0 10.12.12.0 * 255.255.255.0 U 0 0 0 tap11 127.0.0.0 * 255.0.0.0 U 0 0 0 lo default 202.202.122.1 0.0.0.0 UG 0 0 0 ppp0 ซึ่งควรมีผลกับการรับส่งข้อมูลขาออกเท่านั้นฉันไม่ได้คาดหวังว่าการรับส่งข้อมูลขาเข้าจะหายไป

ผิดหรือเปล่า?

PS.1 เมื่อลบ 172.22.34.44 จากกฎ ip เพื่อให้ใช้ตารางเส้นทางหลักก็ใช้งานได้ดีเช่นกัน

PS.2.1 ip route add 0.0.0.0/0 dev ppp0 table ov1ไม่มีผลกระทบซึ่ง
PS.2.2 ip route add PHONEIP dev ppp0 table ov1มีผลกระทบ (ดังที่กล่าวไว้ก่อนหน้านี้)

PS.3 เอกสารใด ๆ ที่จะแนะนำ?

คำตอบ:


0

ดูเหมือนคำถามหลักจะได้รับการแก้ไขโดยใช้echo 0 > /proc/sys/net/ipv4/conf/ppp0/rp_filterเพื่อปิดใช้งานการตรวจสอบเส้นทางย้อนกลับ ตารางเส้นทางหมายถึงปลายทางจริง ๆ ไม่ใช่ IP ต้นทาง

สำหรับผู้ที่สงสัยว่าเกิดอะไรขึ้นต่อไปนี้เป็นคำอธิบายโดยย่อ

เมื่อ IP จาก 0.0.0.0/0 (เท่ากับ 0.0.0.0/1 + 128.0.0.0/1 บนตารางเส้นทาง ov1) ผ่าน ppp0 (eth0) พยายามเชื่อมต่อ 202.202.122.123:443
เราเตอร์จะตัดมัน
แล้วใช้เส้นทางหลัก เพราะตามip ruleคำสั่งที่แสดง ( จากการค้นหาหลักทั้งหมด),
172.22.34.44 (: 443) การตอบสนอง
แต่ตอนนี้เราเตอร์จะใช้ตาราง ov1 ( จาก 172.22.34.44 ค้นหาการค้นหา ov1)
พยายามส่งแพ็กเกจนี้ผ่าน tap11
จากนั้นถ้าย้อนกลับ การตรวจสอบเส้นทางเปิดอยู่ที่เราเตอร์
แพ็คเกจนี้จะถูกดร็อป

ทางออกที่ดีที่สุดสำหรับปัญหาของฉันคือ เพื่อเพิ่มอินเทอร์เฟซเสมือน 172.22.34.45 ใน 172.22.34.44 จากนั้น DNAT ถึง 172.22.34.45 ใช้ fwmark และให้ความสำคัญกับกฎ 172.22.34.44 และปิดการใช้งาน RP_FILTER

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.