OpenVPN - ทำความเข้าใจกับตารางเส้นทาง + วิธีกำหนดเส้นทางการรับส่งข้อมูลไปยังไอพีที่เฉพาะเจาะจงผ่าน VPN


12

ฉันกำลังเชื่อมต่อกับบริการ VPN โดยใช้ OpenVPN และทุกอย่างทำงานได้ดี เมื่อฉันเชื่อมต่อกฎเหล่านี้จะถูกตั้งค่าโดยอัตโนมัติ:

root@linux:~# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:AA:1B:01:AC:FB  
          inet addr:192.168.1.201  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:46867 errors:0 dropped:0 overruns:0 frame:0
          TX packets:29742 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:37977382 (36.2 MiB)  TX bytes:5098121 (4.8 MiB)
          Interrupt:16 

tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:10.7.7.126  P-t-P:10.7.7.125  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:23284 errors:0 dropped:0 overruns:0 frame:0
          TX packets:5817 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100 
          RX bytes:31366374 (29.9 MiB)  TX bytes:308591 (301.3 KiB)

root@linux:~# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         10.7.7.125      128.0.0.0       UG    0      0        0 tun0
default         192.168.1.1     0.0.0.0         UG    0      0        0 eth0
5.120.121.114   192.168.1.1     255.255.255.255 UGH   0      0        0 eth0
10.7.7.1        10.7.7.125      255.255.255.255 UGH   0      0        0 tun0
10.7.7.125      *               255.255.255.255 UH    0      0        0 tun0
128.0.0.0       10.7.7.125      128.0.0.0       UG    0      0        0 tun0
192.168.1.0     *               255.255.255.0   U     0      0        0 eth0

นี่คือสิ่งที่ฉันเข้าใจ:

  • ที่อยู่ IP ในพื้นที่ของฉันคือ 192.168.1.201
  • โลคัลเกตเวย์คือ 191.168.1.1
  • 5.120.121.114 เป็น VPN สาธารณะ ip
  • tun0 เป็นช่องสัญญาณ VPN เครื่องของฉันมี 10.7.7.126 ตามที่อยู่
  • 10.7.7.125 เป็นที่อยู่ ptp ที่ฉันเข้าใจว่าเป็น "ส่วนท้าย" ของ VPN

เกี่ยวกับตารางเส้นทางฉันเข้าใจว่า:

  • โดยค่าเริ่มต้นการรับส่งข้อมูลทั้งหมดจะถูกส่งผ่าน 10.7.7.125 บนอินเทอร์เฟซ tun0 (แต่ทำไมมาสก์นั้น?)
  • 10.7.7.1 สามารถเข้าถึงได้ผ่าน tun0
  • IP สาธารณะของ VPN สามารถเข้าถึงได้ผ่าน eth0

ฉันไม่เข้าใจเกตเวย์เริ่มต้นที่สองนี่เป็นค่าเริ่มต้นเมื่อ vpn ไม่ทำงานมันจะถูกข้ามหรือไม่

สิ่งที่เกี่ยวกับ 10.7.7.1 ดูเหมือนว่ามันเป็นประตูของ VPN ...

ทำไมถึงปลายทาง 128.0.0.0?

OpenVPN สร้างกฎเหล่านี้ทั้งหมดโดยอัตโนมัติ แต่ขึ้นอยู่กับสิ่งที่ถูกสร้างขึ้น?

ฉันไม่สามารถควบคุมฝั่งเซิร์ฟเวอร์ของ VPN ได้ แต่เฉพาะการกำหนดค่าไคลเอนต์

ตอนนี้ถ้าฉันต้องการ:

  • บังคับให้ทราฟฟิกทั้งหมดที่ 216.58.213.174 ผ่าน VPN tun0 และให้ส่วนที่เหลือทั้งหมดผ่าน eth0 หรือไม่
  • ฉันจะสร้างมันขึ้นมาอัตโนมัติเมื่อเริ่มต้น VPN ได้อย่างไร

ขอบคุณสำหรับคำแนะนำและการสนับสนุนในการทำความเข้าใจนี้

KR, dk

แก้ไข:

root@linux:~# ip route list
0.0.0.0/1 via 10.7.7.125 dev tun0 
default via 192.168.1.1 dev eth0 
5.152.210.249 via 192.168.1.1 dev eth0 
10.7.7.1 via 10.7.7.125 dev tun0 
10.7.7.125 dev tun0  src 10.7.7.126 
128.0.0.0/1 via 10.7.7.125 dev tun0 
192.168.1.0/24 dev eth0  src 192.168.1.201 

1
แค่ 2 เซ็นต์ของฉัน: ใช้ip route listเพื่อรับมุมมองที่ดีขึ้นของเส้นทางของคุณ นอกจากนี้เนื่องจาก ifconfig และเส้นทางอยู่บนถนนเพื่อคัดค้าน LInux ...

คำตอบ:


15

ฉันไม่เข้าใจเกตเวย์เริ่มต้นที่สองนี่เป็นค่าเริ่มต้นเมื่อ vpn ไม่ทำงานมันจะถูกข้ามหรือไม่

นี่เป็นหนึ่งในการแฮ็กของ OpenVPN เพื่อกำหนดเส้นทางการจราจรผ่านอุโมงค์ของคุณในขณะที่รักษาเกตเวย์เริ่มต้นของคุณ เส้นทาง 0.0.0.0/1 และ 128.0.0.0/1 มีความสำคัญเหนือกว่าเส้นทาง 0.0.0.0/0 เนื่องจากมีความเฉพาะเจาะจงมากขึ้นในขณะที่ยังคงจับคู่ที่อยู่ทั้งหมด ค้นหา "def1" ในเอกสารประกอบ OpenVPN เพื่อดูรายละเอียดเพิ่มเติม

สิ่งที่เกี่ยวกับ 10.7.7.1 ดูเหมือนว่ามันเป็นประตูของ VPN ...

อาจจะใช่

OpenVPN สร้างกฎเหล่านี้ทั้งหมดโดยอัตโนมัติ แต่ขึ้นอยู่กับสิ่งที่ถูกสร้างขึ้น?

พวกเขาอาจถูกผลักจากเซิร์ฟเวอร์ ฉันสามารถให้ข้อมูลเพิ่มเติมหากคุณสามารถให้ผลลัพธ์จากลูกค้าของคุณในขณะที่มันเริ่มต้นพร้อมกับไฟล์การกำหนดค่าของคุณ

ฉันไม่สามารถควบคุมฝั่งเซิร์ฟเวอร์ของ VPN ได้ แต่เฉพาะการกำหนดค่าไคลเอนต์

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

ตอนนี้ถ้าฉันต้องการ:

บังคับให้ทราฟฟิกทั้งหมดที่ 216.58.213.174 ผ่าน VPN tun0 และให้ส่วนที่เหลือทั้งหมดผ่าน eth0 หรือไม่

ใช่รวมถึง "เส้นทาง 216.58.213.174 255.255.255.255 10.7.7.125" ในการกำหนดค่าของคุณ ควรตั้งค่าเส้นทางที่คุณต้องการ คุณควรจะสามารถเก็บเส้นทางอื่นไว้ได้โดยลบตัวเลือก "redirect-gateway" ออกจากการกำหนดค่าของคุณ

ฉันจะสร้างมันขึ้นมาอัตโนมัติเมื่อเริ่มต้น VPN ได้อย่างไร

ใช่ดูด้านบน

ตัวเลือกทั้งหมดที่ฉันอธิบายและอื่น ๆ สามารถพบได้ในเอกสารออนไลน์ของ OpenVPN https://community.openvpn.net/openvpn/wiki/Openvpn23ManPage


ขอบคุณมาก ๆ ฉันใช้เวลาหลายวันในการค้นหาผ่าน minutia ของเครือข่ายพยายามทำความเข้าใจกับเคล็ดลับเล็ก ๆ น่ารัก ๆ ด้วย 0.0.0.0/1 และ 128.0.0.0/1 ในที่สุดฉันก็แค่เพิ่มเส้นทางที่ซ้ำซ้อนอย่างสมบูรณ์ยกเว้นเมื่อเปิดใช้งาน VPN
rlduffy
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.