เพิ่มเส้นทางไปยังเครือข่ายระยะไกล


2

เครือข่ายของฉัน:

|localhost| tun1--> VPN <--tun0 |work station| wlan0--> |router| --> (10.128.0.0/16)

localhost: Arch Linux x86-64

สถานีงาน: CentOS 6 x86-64

ฉันต้องการเชื่อมต่อโดยตรงจาก localhost กับเครือข่าย 10.128.0.0/16 โดยไม่มีการส่งต่อพอร์ต SSH และเช่นนั้น สถานีงานมีการเข้าถึงเครือข่ายนี้ นอกจากนี้สถานีงานมี IP แบบคงที่ 10.255.255.252 ใน VPN

tracepath จากสถานีงานไปยังโฮสต์ใน 10.128.0.0/16:

$ tracepath 10.128.29.59
 1?: [LOCALHOST]     pmtu 1500
 1:  192.168.225.1 (192.168.225.1)                         15.293ms 
 1:  192.168.225.1 (192.168.225.1)                          2.119ms 
 2:  192.168.225.1 (192.168.225.1)                          2.085ms pmtu 1409
 2:  no reply
 3:  10.128.29.59 (10.128.29.59)                           15.655ms reached
     Resume: pmtu 1409 hops 3 back 3

192.168.255.1 เป็นเกตเวย์เริ่มต้นสำหรับสถานีงาน:

$ ip route | grep default
default via 192.168.225.1 dev wlan0

ฉันพยายามเพิ่มเส้นทางบน localhost ของฉัน แต่ไม่สำเร็จ:

# ip route add 10.128.0.0/16 via 10.255.255.252
RTNETLINK answers: Network is unreachable

ฉันคิดว่ามันไร้เดียงสาสวยที่จะเพิ่มเส้นทางไปยังเครือข่ายระยะไกลด้วยวิธีนี้ ฉันจะทำอย่างถูกต้องได้อย่างไร บางทีฉันควรแบ่งปันตารางเส้นทางใน 10.255.255.252 อย่างใด?

แก้ไข 1:

ฉันลองใช้ข้อเสนอแนะของ Marius

iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE

แต่มันไม่เปลี่ยนแปลงอะไรเลย iptables ตอนนี้ตาราง NAT แสดงสิ่งนี้บนเวิร์กสเตชัน:

# iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         
MASQUERADE  all  --  anywhere             anywhere            

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

แก้ไข 2:

ฉันสามารถเชื่อมต่อกับพอร์ตในเครือข่าย 10.128.0.0/16 โดยใช้พอร์ต SSH

ssh -L 5432:10.128.29.59:5432 user@10.255.255.252

หลังจากการส่งต่อนี้ฉันสามารถเชื่อมต่อกับ 10.128.29.59:5432 ผ่าน localhost: 5432 ดังนั้นสิ่งที่ฉันต้องการคือตัวเลือกในการเชื่อมต่อโดยตรงกับ 10.128.29.59:5432

แก้ไข 3:

ฉันใช้ openvpn เพื่อเชื่อมต่อกับ VPN

เส้นทาง ip บน localhost:

$ ip route
default via 192.168.1.1 dev wlp2s0 src 192.168.1.253 metric 302 
10.0.0.0/16 via 192.168.193.29 dev tun1 
10.255.0.0/16 via 192.168.193.29 dev tun1 
192.168.1.0/24 dev wlp2s0 proto kernel scope link src 192.168.1.253 metric 302 
192.168.193.0/24 via 192.168.193.29 dev tun1 
192.168.193.29 dev tun1 proto kernel scope link src 192.168.193.30 
193.26.135.101 via 192.168.193.29 dev tun1 
213.24.160.78 via 192.168.193.29 dev tun1

เส้นทาง ip บนเวิร์กสเตชัน:

$ ip route
193.26.135.101 via 10.255.255.251 dev tun0 
213.24.160.78 via 10.255.255.251 dev tun0 
10.255.255.251 dev tun0  proto kernel  scope link  src 10.255.255.252 
192.168.193.0/24 via 10.255.255.251 dev tun0 
192.168.225.0/24 dev wlan0  proto kernel  scope link  src 192.168.225.165 
10.0.0.0/16 via 10.255.255.251 dev tun0 
10.255.0.0/16 via 10.255.255.251 dev tun0 
default via 192.168.225.1 dev wlan0

nmap เป็นหนึ่งในพอร์ตที่สนใจใน 10.128.0.0/16 จาก localhost:

$ nmap -p5432 10.128.29.59/32

Starting Nmap 7.31 ( https://nmap.org ) at 2016-11-02 11:40 MSK
Note: Host seems down. If it is really up, but blocking our ping probes, try -Pn
Nmap done: 1 IP address (0 hosts up) scanned in 3.11 seconds

จากเวิร์กสเตชัน:

$ nmap -p5432 10.128.29.59/32

Starting Nmap 5.51 ( http://nmap.org ) at 2016-11-02 11:42 MSK
Nmap scan report for 10.128.29.59
Host is up (0.034s latency).
PORT     STATE SERVICE
5432/tcp open  postgresql

Nmap done: 1 IP address (1 host up) scanned in 0.16 seconds

โปรดระบุผลลัพธ์ของip routeเมื่อเชื่อมต่อกับ VPN นอกจากนี้คุณใช้ซอฟต์แวร์ VPN อะไร
Daniel B

@DanielB ฉันใช้ openvpn โปรดตรวจสอบการแก้ไข 3 สำหรับผลลัพธ์เส้นทาง IP
Evgeny Veretennikov

ฉันเห็น. ทำให้ชัดเจนว่าทำไมคุณไม่สามารถเพิ่มเส้นทางได้ มันจะต้องผ่าน192.168.193.29- เพียงเพียร์โดยตรงของคุณในการเชื่อมต่อ OpenVPN นั่นคืออะไร? เซิร์ฟเวอร์ VPN ของคุณ?
Daniel B

@DanielB ใช่192.168.193.29เป็นเซิร์ฟเวอร์ VPN ที่ฉันกำลังเชื่อมต่อและมันไม่รู้10.128.0.0/16เครือข่ายที่ฉันต้องการ มีเพียงเวิร์กสเตชันเท่านั้นที่10.255.255.252รู้เรื่องนี้ ฉันคิดว่าควรมีวิธีจัดการเส้นทางโดยใช้10.255.255.252ไหม?
Evgeny Veretennikov

เมื่อคุณเพิ่มเส้นทางคุณจะบอกพีซีของคุณเกี่ยวกับการข้ามไปยังจุดหมายปลายทางต่อไป กระโดดต่อไปจะต้องสามารถเข้าถึงได้โดยตรง อุปกรณ์ hop ถัดไปจะมีการกระโดด "next next" ในตารางการเราต์และอื่น ๆ นั่นเป็นวิธีที่ IP routing ทำงาน วิธีหนึ่งที่จะลดความซับซ้อนของสิ่งที่จะเปลี่ยนโครงสร้าง OpenVPN ของคุณจากp2p/ ไปnet30 subnet
Daniel B

คำตอบ:


1

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

สิ่งนี้กำหนดว่าในทิศทางไปข้างหน้าเราเตอร์ทั้งหมดที่มีต่อ 10.128 / 16 ควรมีเส้นทางที่ 10.128 / 16 ไปยังที่อื่น (ควรเป็นเราเตอร์ถัดไปในเครือ) นอกจากนี้ยังกำหนดให้เราเตอร์ทั้งหมดในbackpathมีเส้นทางสำหรับ 192.168.1.0/24 (ทิศทางด้านหลังโดยเฉพาะอย่างยิ่ง) เพื่อให้สามารถตอบกลับเพื่อเข้าถึงเครื่องของคุณได้

ถ้าคุณไม่ทำอย่างถูกต้องกับเราเตอร์ทั้งหมดในเส้นทาง (vpn และเราเตอร์) มันจะไม่ทำงาน

(ในกรณีที่คุณไม่ได้จัดการกับศูนย์กลางกระโดดคุณสามารถใช้อุโมงค์ GRE ง่าย ๆ ระหว่าง localhost และปลายทาง: มันใช้ ~ 42 ไบต์ของค่าใช้จ่ายในทุกแพ็คเกจ แต่ค่อนข้างง่ายในการติดตั้งหากคุณมีโฮสต์ "อัจฉริยะ" ที่ปลายทั้งสอง .)

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