การตั้งค่าเส้นทางเริ่มต้นสำหรับ tun1: คำตอบ RTNETLINK: ไม่มีกระบวนการดังกล่าว


1

ขณะนี้ฉันกำลังพยายามหาเส้นทางทราฟฟิกเครือข่ายขาเข้าและขาออกทั้งหมดไปยัง / จากแอปพลิเคชันที่รับฟัง TunV1 ของอุโมงค์ OpenVPN ผ่านอุโมงค์ดังกล่าว

นี่คืออุปกรณ์ของฉัน: tun0 เป็นเซิร์ฟเวอร์ OpenVPN ที่ทำงานบนเครื่องที่ให้การเข้าถึงเครือข่ายท้องถิ่นของเครื่องไปยังเครื่องระยะไกล tun1 เป็นไคลเอนต์ OpenVPN ไปยังเซิร์ฟเวอร์ระยะไกล

# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:1c:c0:d7:98:1c  
          inet addr:192.168.178.9  Bcast:192.168.178.255  Mask:255.255.255.0
          inet6 addr: fe80::21c:c0ff:fed7:981c/64 Scope:Link
          UP BROADCAST RUNNING PROMISC MULTICAST  MTU:1500  Metric:1
          RX packets:103987444 errors:0 dropped:0 overruns:0 frame:0
          TX packets:161412265 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:583178850 (556.1 MiB)  TX bytes:1006632339 (959.9 MiB)
          Interrupt:43 Base address:0x8000 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:505197 errors:0 dropped:0 overruns:0 frame:0
          TX packets:505197 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:91836367 (87.5 MiB)  TX bytes:91836367 (87.5 MiB)

tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:10.9.8.1  P-t-P:10.9.8.2  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:4 errors:0 dropped:0 overruns:0 frame:0
          TX packets:4 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100 
          RX bytes:272 (272.0 B)  TX bytes:960 (960.0 B)

tun1      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:10.8.0.10  P-t-P:10.8.0.9  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:7 errors:0 dropped:0 overruns:0 frame:0
          TX packets:7 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100 
          RX bytes:588 (588.0 B)  TX bytes:588 (588.0 B)

นี่คือเส้นทางที่ใช้งานในปัจจุบัน:

# ip route show table main
default via 192.168.178.1 dev eth0 
10.8.0.1 via 10.8.0.9 dev tun1 
10.8.0.9 dev tun1  proto kernel  scope link  src 10.8.0.10 
10.9.8.0/24 via 10.9.8.2 dev tun0 
10.9.8.2 dev tun0  proto kernel  scope link  src 10.9.8.1 
192.168.178.0/24 dev eth0  proto kernel  scope link  src 192.168.178.9 

หลังจากการวิจัยบางอย่างฉันได้เรียนรู้ว่าฉันต้องใช้ "การกำหนดเส้นทางนโยบาย" เพื่อควบคุมปริมาณข้อมูลทั้งหมดบน tun1 ผ่านเกตเวย์อื่น (10.8.0.1) ดังนั้นฉันจึงสร้างตารางใหม่ "tun1" และพยายามกำหนดค่า

# echo "1 tun1tbl" >> /etc/iproute2/rt_tables
# ip route add 10.8.0.0/24 dev tun1 src 10.8.0.10 table tun1tbl
# ip route add default via 10.8.0.1 dev tun1 table tun1tbl
RTNETLINK answers: No such process

ทำไมฉันไม่สามารถกำหนดเส้นทางเริ่มต้นสำหรับอุปกรณ์ / ตารางนี้ได้

- แก้ไข: ฉันเพิ่งพบโซลูชันที่เป็นไปได้อื่นโดยใช้เพียงอย่างเดียว routeแต่มันล้มเหลวด้วยข้อผิดพลาดที่คล้ายกัน:

# route add default gw 10.8.0.1 dev tun1
SIOCADDRT: No such process

คำตอบ:


1

ในคำสั่งของคุณคุณขอให้ส่งแพ็คเก็ตผ่าน tun1 ผ่านการฟ้อนรำต่อไป 10.8.0.1:

ip route add default via 10.8.0.1 dev tun1 table tun1tbl

แต่เน็ตเวิร์กอินเตอร์เฟสนี้ไม่ได้อยู่บนซับเน็ตซึ่งจะมีที่อยู่เป้าหมาย:

tun1      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:10.8.0.10  P-t-P:10.8.0.9  Mask:255.255.255.255

ดังนั้นคำสั่งปฏิเสธที่จะเพิ่มเส้นทางดังกล่าว

เช่น tun1 เป็นอินเตอร์เฟสแบบจุดต่อจุดคุณไม่จำเป็นต้องใช้เกตเวย์เพื่อส่งแพ็กเก็ต เพียงแค่ลบ via ส่วนหนึ่งจากคำสั่งของคุณ:

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