OpenVPN 서버를 실행하는 클라우드 VM이 있고, 다른 한편으로는 개인 네트워크 내에 Synology NAS가 있습니다.
서버에서 클라이언트의 LAN(192.168.1.0/24)에 액세스하고 싶습니다.
서버에서 VPN IP를 수정하고 iroute
클라이언트에 보냈습니다.
$ cat /etc/openvpn/ccd/hodor
ifconfig-push 192.168.2.142 255.255.255.0
iroute 192.168.1.0 255.255.255.0
/etc/openvpn/server/server.conf
또한 클라이언트에 대한 경로 도 구성했습니다 .
push "route 192.168.1.0 255.255.255.0"
route 192.168.1.0 255.255.255.0
이제 서버에서 클라이언트(192.168.2.142 및 192.168.1.20)에 ping을 보낼 수 있습니다.
server$ ping -c1 192.168.1.20
PING 192.168.1.20 (192.168.1.20) 56(84) bytes of data.
64 bytes from 192.168.1.20: icmp_seq=1 ttl=64 time=14.8 ms
server$ ping -c1 192.168.2.142
PING 192.168.2.142 (192.168.2.142) 56(84) bytes of data.
64 bytes from 192.168.2.142: icmp_seq=1 ttl=64 time=14.1 ms
클라이언트에서 ARP 요청을 볼 수 있습니다.
client$ tcpdump -i tun0
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on tun0, link-type RAW (Raw IP), capture size 262144 bytes
20:37:17.666777 IP 192.168.2.1 > 192.168.1.20: ICMP echo request, id 14, seq 1, length 64
20:37:17.666813 IP 192.168.1.20 > 192.168.2.1: ICMP echo reply, id 14, seq 1, length 64
20:37:21.022983 IP 192.168.2.1 > 192.168.2.142: ICMP echo request, id 15, seq 1, length 64
20:37:21.023026 IP 192.168.2.142 > 192.168.2.1: ICMP echo reply, id 15, seq 1, length 64
그러나 클라이언트 LAN 인터페이스의 다른 장치에 액세스/핑할 수 없지만 장치가 많습니다.
client$ sudo ip neigh
192.168.1.31 dev ovs_eth3 lladdr a8:a1:59:83:83:0c REACHABLE
192.168.1.3 dev ovs_eth3 lladdr 3c:6a:9d:13:d1:86 STALE
192.168.1.2 dev ovs_eth3 lladdr ec:b5:fa:09:07:ac STALE
172.17.0.4 dev docker0 lladdr 02:42:ac:11:00:04 STALE
192.168.1.1 dev ovs_eth3 lladdr 44:fe:3b:f9:05:1a REACHABLE
172.17.0.6 dev docker0 lladdr 02:42:ac:11:00:06 STALE
192.168.1.18 dev ovs_eth3 lladdr 02:11:32:20:17:25 REACHABLE
172.17.0.2 dev docker0 lladdr 02:42:ac:11:00:02 STALE
192.168.1.11 dev ovs_eth3 lladdr 60:fb:00:8f:cb:8e REACHABLE
172.17.0.3 dev docker0 lladdr 02:42:ac:11:00:03 REACHABLE
192.168.1.9 dev ovs_eth3 lladdr 5c:ea:1d:74:fa:bb STALE
192.168.1.15 dev ovs_eth3 lladdr 9e:12:c6:2f:1a:0b STALE
물론 클라이언트에서 내 장치에 액세스/핑할 수 있습니다.
VPN 서버가 클라이언트 장치에 액세스할 수 있도록 NAS를 어떻게 구성합니까?
답변1
다른 서브넷의 트래픽을 리디렉션하도록 OpenVPN을 구성해야 합니다.
먼저, 다음 줄의 주석 처리를 제거하여 클라이언트의 P2P 구성을 활성화하는 것이 좋습니다 /etc/openvpn/server/server.conf
.
client-config-dir /etc/openvpn/ccd
/etc/openvpn/ccd/client-name
그런 다음 다음 내용으로 파일을 만듭니다 .
ifconfig-push 192.168.2.142 255.255.255.0
iroute 192.168.1.0 255.255.255.0
IP 주소를 push
얻도록 알림 클라이언트를 구성합니다 . 192.168.2.142
따라서 이는 이 클라이언트에 대해 정적입니다.
그러면 명령 이 이 VPN 링크를 통해 iroute
허용됩니다 .192.168.1.0/24
이를 통해 서버의 모든 클라이언트에 대해 ICMP 명령을 실행하고 클라이언트로부터 수신된 대로 이를 평가할 수 있어야 합니다 tcpdump
.
일반적으로 클라이언트의 LAN 포트에서 가장이 활성화되어 있지 않기 때문에 클라이언트에 액세스할 수 없습니다. 이렇게 하려면 eth0(ovs_eth0?) 포트에서 IP 전달 및 마스커레이딩을 활성화해야 합니다.
ip -t nat -A 포스트 라우팅 -j 가장 -o eth0
그러면 작동할 것입니다.
iptables 구성을 저장했는지 확인하세요. NAS가 시작된 후 다음 스크립트를 사용하여 NAS를 구성할 수 있습니다 /usr/local/etc/rc.d/iptables_nat.sh
.