ดังนั้นฉันจึงมี 3 OpenVPN เข้าถึงเซิร์ฟเวอร์และดาวน์โหลดการกำหนดค่าสำหรับทั้ง 3 รายการ จากนั้นในราสเบอร์รี่ของฉัน ฉันรัน 3 อินสแตนซ์ของ เปิด VPN
(แม้ว่าจะมีเครือข่ายย่อยอื่นที่กำหนดค่าในเซิร์ฟเวอร์ Access) ด้วยไฟล์กำหนดค่าแต่ละไฟล์
เป้าหมายของฉันคือสามารถกำหนดเส้นทางทราฟฟิกขาเข้าไปยังอุปกรณ์แต่ละเครื่องได้ เช่น IP_of_Access_Server_1
นำไปสู่ ลูกค้า_1
ในเครือข่ายของฉัน IP_of_Access_Server_2
นำไปสู่ ลูกค้า_2
เป็นต้น นั่นเป็นเหตุผลที่ฉันมีแต่ละกรณี สำหรับส่วนที่เหลือฉันมี 3 รายการใน iptables ของฉัน:
sudo iptables -t nat -A PREROUTING -p tcp -d 172.27.232.0/20 --dport 44000 -j DNAT --to-destination 192.168.4.3:44000
sudo iptables -t nat -A PREROUTING -p tcp -d 172.27.248.0/20 --dport 44000 -j DNAT --to-destination 192.168.4.4:44000
sudo iptables -t nat -A PREROUTING -p tcp -d 172.27.200.0/20 --dport 44000 -j DNAT --to-destination 192.168.4.16:44000
ดูเหมือนว่าอินสแตนซ์จะเริ่มต้นได้ดี แต่มีเพียง 1 อินสแตนซ์เท่านั้นที่ใช้งานจริง เช่น ฉันสามารถเปิดบริการบน Client_1 เท่านั้น ส่วนอื่นๆ จะหมดเวลา และมันเป็นกรณีสุดท้ายที่ฉันเริ่มเสมอ ซึ่งได้ผล
ดังนั้น ฉันเดาว่ารายการเส้นทางถูกเขียนทับโดยคำสั่ง LZ0 ที่ Access Server พุชเมื่อเริ่มต้น ซึ่งเป็นสิ่งที่ทำให้อีก 2 รายการไม่ทำงานอีกต่อไป
นี่คือผลลัพธ์ของเส้นทาง เมื่อเท่านั้น อุปกรณ์_2
เกิน เข้าถึงเซิร์ฟเวอร์ 2
สามารถเข้าถึงได้:
ตารางเส้นทางเคอร์เนล IP
เกตเวย์ปลายทาง Genmask ตั้งค่าสถานะการอ้างอิงเมตริก ใช้ Iface
0.0.0.0 172.27.248.1 128.0.0.0 ยูจี 0 0 0 ตัน1
fritz.box เริ่มต้น 0.0.0.0 UG 202 0 0 eth0
46.101.139.3 fritz.box 255.255.255.255 UGH 0 0 0 eth0
128.0.0.0 172.27.248.1 128.0.0.0 UG 0 0 0 ตัน1
159.65.121.31 fritz.box 255.255.255.255 UGH 0 0 0 eth0
159.89.109.12 fritz.box 255.255.255.255 UGH 0 0 0 eth0
172.27.200.0 0.0.0.0 255.255.248.0 U 0 0 0 tun2
172.27.232.0 0.0.0.0 255.255.248.0 U 0 0 0 tun0
172.27.248.0 0.0.0.0 255.255.248.0 U 0 0 0 tun1
192.168.1.0 0.0.0.0 255.255.255.0 คุณ 202 0 0 eth0
192.168.4.0 0.0.0.0 255.255.255.0 U 303 0 0 wlan0
เพื่อความชัดเจน (เปลี่ยนเป็น IP แบบสุ่มสำหรับการไม่ระบุตัวตน):
46.101.139.3 - เข้าถึงเซิร์ฟเวอร์ 1
159.65.121.31 - เข้าถึงเซิร์ฟเวอร์ 2
159.89.109.12 - เข้าถึงเซิร์ฟเวอร์ 3
ตอนนี้เมื่อฉันเริ่มบริการสำหรับ tun0 หลังจากนั้น ดูเหมือนว่านี้และ อุปกรณ์_1
เป็นสิ่งเดียวที่เข้าถึงได้ (มากกว่า เข้าเซิฟเวอร์1
) ที่เหลือหมดเวลา:
ตารางเส้นทางเคอร์เนล IP
เกตเวย์ปลายทาง Genmask ตั้งค่าสถานะการอ้างอิงเมตริก ใช้ Iface
0.0.0.0 172.27.232.1 128.0.0.0 ยูจี 0 0 0 ตัน0
fritz.box เริ่มต้น 0.0.0.0 UG 202 0 0 eth0
46.101.139.3 fritz.box 255.255.255.255 UGH 0 0 0 eth0
128.0.0.0 172.27.232.1 128.0.0.0 UG 0 0 0 ตัน0
159.65.121.31 fritz.box 255.255.255.255 UGH 0 0 0 eth0
159.89.109.12 fritz.box 255.255.255.255 UGH 0 0 0 eth0
172.27.200.0 0.0.0.0 255.255.248.0 U 0 0 0 tun2
172.27.232.0 0.0.0.0 255.255.248.0 U 0 0 0 tun0
172.27.248.0 0.0.0.0 255.255.248.0 U 0 0 0 tun1
192.168.1.0 0.0.0.0 255.255.255.0 คุณ 202 0 0 eth0
192.168.4.0 0.0.0.0 255.255.255.0 U 303 0 0 wlan0
สำหรับคำชี้แจงเพิ่มเติม ifconfig
(สั้นลง) ของอินเทอร์เฟซ tun และ wlan ของฉัน (ไคลเอนต์มี IP ที่เห็นในรายการ iptables):
tun0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST> mtu 1500
inet 172.27.232.4 netmask 255.255.248.0 ปลายทาง 172.27.232.4
tun1: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST> mtu 1500
inet 172.27.248.5 netmask 255.255.248.0 ปลายทาง 172.27.248.5
tun2: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST> mtu 1500
inet 172.27.200.3 netmask 255.255.248.0 ปลายทาง 172.27.200.3
wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.4.1 netmask 255.255.255.0 ออกอากาศ 192.168.4.255
น่าเศร้าที่ทักษะด้านเครือข่ายของฉันไม่ดีพอที่จะเข้าใจสิ่งนี้ (ฉันพยายามเพิ่มเส้นทางด้วยตนเอง พยายามยุ่งกับ iptables แต่ไม่มีที่ไหนเลย) - และฉันจะขอบคุณจริงๆ ถ้าใครสามารถช่วยฉันในเรื่องนี้ได้