내 Ubuntu에 고정 경로를 추가할 수 없습니다. SIOCADDRT: 네트워크에 연결할 수 없습니다.

내 Ubuntu에 고정 경로를 추가할 수 없습니다. SIOCADDRT: 네트워크에 연결할 수 없습니다.

VPS의 VPN 터널 반대편에 있는 클라이언트에 VPS의 고정 경로를 추가하고 해당 트래픽을 터널을 통해 전달하려고 합니다.

경로를 추가할 목적지에 대한 설정입니다. Raspi는 라우터 역할을 하며 자체적으로 AP에 연결되고 NAS는 Raspi에 연결되어 VPN 터널을 통해 트래픽을 리디렉션합니다.

                                        +--------------------------------+
                                        |            Raspi               |
                      (192.168.0.101/24)|                                |(192.168.1.1/24)
 (192.168.0.1/24) AP<>=================={wlan0                       eth0}================<>NAS (192.168.1.102/24)
                                        |   \                        /   |
                                        |    +----------------------+    |
                                        |    |     iptables and     |    |
                                        |    |    routing engine    |    |
                                        |    +-----------+----------+    |
                                        |                |               |
                                        |             {tun0}             |
                                        |            10.8.0.6            |
                                        +--------------------------------+

route add -net 192.168.1.0 netmask 255.255.255.0 gw 10.8.0.6Raspi 뒤에 있는 NAS와 통신하기 위해 이 작업을 수행하려고 하는데 SIOCADDRT: Network is unreachable.

서버 측 정보는 다음과 같습니다.

$ifconfig-a

eth0      Link encap:Ethernet  HWaddr XX:XX:XX:XX:XX:XX
          inet addr:217.B.C.D  Bcast:217.B.C.D  Mask:255.255.255.255
          inet6 addr: XXXX::XXX:XXXX:XXXX:XXXX/XX Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1598 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1453 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:176137 (176.1 KB)  TX bytes:165179 (165.1 KB)

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:65536  Metric:1
          RX packets:9 errors:0 dropped:0 overruns:0 frame:0
          TX packets:9 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:460 (460.0 B)  TX bytes:460 (460.0 B)

tun0      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.1  P-t-P:10.8.0.2  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:169 errors:0 dropped:0 overruns:0 frame:0
          TX packets:183 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100
          RX bytes:14825 (14.8 KB)  TX bytes:15071 (15.0 KB)

$ netstat -anr

Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         10.255.255.1    0.0.0.0         UG        0 0          0 eth0
10.8.0.0        10.8.0.2        255.255.255.0   UG        0 0          0 tun0
10.8.0.2        0.0.0.0         255.255.255.255 UH        0 0          0 tun0
10.255.255.1    0.0.0.0         255.255.255.255 UH        0 0          0 eth0

$ip 경로 목록

default via 10.255.255.1 dev eth0
10.8.0.0/24 via 10.8.0.2 dev tun0
10.8.0.2 dev tun0  proto kernel  scope link  src 10.8.0.1
10.255.255.1 dev eth0  scope link

추가 정보:

인터페이스 간 트래픽 리디렉션을 구현하는 방법이 궁금하다면 여기에서 iptables를 사용하여 지금까지 모든 것을 관리한 방법을 설명하는 게시물을 확인하세요.

iptables를 사용하여 포트 전달을 통해 보조 네트워크 인터페이스 트래픽을 tun0(OpenVPN)으로 리디렉션

클라이언트 네트워크 차단(만약지점 간 토폴로지):

10.8.0.4 : Network address
10.8.0.5 : Virtual remote endpoint; Non pingable; Only used for routing
10.8.0.6 : Client IP address
10.8.0.7 : Network broadcast address

업데이트 1:

VPN 서버 구성을 VPN 클라이언트의 해당 파일에 있는 구성으로 변경하여 topology subnetVPN 서버와 클라이언트가 경로를 추가하는 대신 서브넷으로 이동되도록 했습니다. 이번에는 오류가 반환되지 않았지만 여전히 아무 것도 반환되지 않았습니다. 하지만 뭔가 달라졌다(의 경우).ifconfig-push 10.8.0.6 255.255.255.0ccd/24/32route add -net 192.168.1.0 netmask 255.255.255.0 gw 10.8.0.6route add -net 192.168.1.0 netmask 255.255.255.0 dev tun0ping 192.168.1.102netstat -anrroute add -net 192.168.1.0 netmask 255.255.255.0 gw 10.8.0.6

Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         10.255.255.1    0.0.0.0         UG        0 0          0 eth0
10.8.0.0        0.0.0.0         255.255.255.0   U         0 0          0 tun0
10.255.255.1    0.0.0.0         255.255.255.255 UH        0 0          0 eth0
192.168.1.0     10.8.0.6        255.255.255.0   UG        0 0          0 tun0

답변1

다음 지침을 읽었습니다.

https://openvpn.net/index.php/open-source/documentation/howto.html#scope

내 VPS와 클라이언트 측의 해당 파일 route 192.168.1.0 255.255.255.0에 추가했습니다 . 그런 다음 명령을 사용하면 그게 전부입니다! VPS에서 OpenVPN 클라이언트 뒤의 클라이언트에 핑을 보낼 수 있습니다 . :Dserver.confiroute 192.168.1.0 255.255.255.0ccdroute add -net 192.168.1.0 netmask 255.255.255.0 gw 10.8.0.6192.168.1.102

추신: 저는 아직 subnet topology모드에 있습니다. 일반적인 상황에서는 시도하지 않았지만 p2p topology정상적으로 작동할 것이라고 생각합니다.

답변2

명확히 하자면, 이것은 제가 이해하기 매우 어렵습니다.

  • OpenVPN 클라이언트 소프트웨어를 실행하는 컴퓨터에서 OpenVPN은 route구성 파일의 ("i" 제외) 지시문에 대한 응답으로 경로를 생성해야 합니다. 이는 트래픽이 tunX가상 장치를 통해 라우팅되고 OpenVPN이 이를 인식하는지 확인하기 위한 것입니다. OpenVPN이 연결된 로컬 서브넷의 라우터 역할을 하는 경우 "게이트웨이로 전송된" 들어오는 트래픽을 "캡처"하고 이를 OpenVPN에 제출하여 전달하기 위해 라우팅이 필요합니다.(운영 체제가 해당 가상 장치를 통해 라우팅하지 않으면 OpenVPN은 이를 볼 수 없습니다.)
  • 대상 주소가 OpenVPN이 이미 알고 있는 주소가 아닌 경우... 양쪽의 로컬 주소가 아닌 원격 서브넷입니다. irouteOpenVPN에 서브넷이 존재한다는 사실을 ("i" 사용) 알려야 합니다. 어떤 리모컨으로 보낼 것인지 트래픽을 지정합니다. (그렇지 않은 경우 결과적으로 패킷이 삭제된 OpenVPN 로그를 볼 수 있습니다.)
  • 모든 트래픽은 "TCP/IP 라우터와 마찬가지로" 라우팅되어야 합니다. 모든 "점프"는 올바르게 수행되어야 합니다. ( 은( traceroute는) 친구입니다.) 또한 트래픽은 다음에서 발생합니다.존재하다OpenVPN 클라이언트를 실행하는 시스템은 일반적으로 OpenVPN에서 이 목적으로 할당한 IP 주소를 갖는 것으로 간주되므로 10.8.0.x이 주소 범위를 올바르게 라우팅해야 합니다.(어디에나...)게다가. 터널이 성공적으로 연결되었지만 통신할 수 없다면 다른 유형의 라우터 장치와 마찬가지로 "TCP/IP 라우팅 문제가 있는 것"입니다.

이러한 추가 의견이 귀하에게 도움이 되기를 바랍니다.

관련 정보