Debian 게이트웨이 서버에 OpenVPN을 설정했습니다. OpenVPN 서버 게이트웨이 라우터 LAN은 172.16.20.0/24입니다. 게이트웨이 IP는 172.16.20.254입니다. openvpn.conf 파일에서:
port 1194 proto udp dev tun ca ca.crt cert ccrr.crt key ccrr.key dh dh1024.pem server 172.16.21.0 255.255.255.0 ifconfig-pool-persist ipp.txt keepalive 10 120 comp-lzo user nobody group users persist-key persist-tun status openvpn-status.log verb 4 client-to-client route 192.168.55.0 255.255.255.0 push "route 172.16.20.0 255.255.255.0" push "route 172.16.200.0 255.255.255.0"
클라이언트 LAN 네트워크는 192.168.55.0/24이고 게이트웨이 IP는 192.168.55.254입니다. LAN VPN은 172.16.21.0/24입니다. VPN에 성공적으로 연결되면 VPN 서버에는 다음과 같은 IP 172.16.21.1 및 172.16.21.22 클라이언트가 있습니다. 클라이언트는 서버와 IP 172.16.200.254의 ADSL 라우터를 포함하여 서버에 연결된 모든 LAN에 대해 핑을 보냅니다. OpenVPN ping 서버는 IP 172.16.21.22를 성공적으로 ping하지만 클라이언트 LAN(예: 192.168.55.3) 또는 LAN 클라이언트의 ADSL 게이트웨이(예: 192.168.55.254)의 IP 주소를 ping할 수 없습니다.
다음은 서버 측 경로입니다.
root@ccrr:/# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 172.16.200.254 0.0.0.0 UG 0 0 0 eth0 172.16.20.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1 172.16.21.0 172.16.21.2 255.255.255.0 UG 0 0 0 tun0 172.16.21.2 0.0.0.0 255.255.255.255 UH 0 0 0 tun0 172.16.200.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 192.168.10.0 0.0.0.0 255.255.255.0 U 0 0 0 eth2 192.168.55.0 172.16.21.2 255.255.255.0 UG 0 0 0 tun0
다음 규칙을 사용하여 방화벽 구성을 삽입합니다.
iptables -A INPUT -i tun+ -j ACCEPT iptables -A OUTPUT -o tun+ -j ACCEPT
아래 가이드에 따라 LAN 클라이언트를 찾기 위해 따라야 할 경로를 서버에 지시했습니다. 라우팅된 VPN(dev tun)을 사용할 때 클라이언트의 여러 컴퓨터 포함.
다른 openvpn Debian 게이트웨이 라우터를 클라이언트로 설치하려고 할 때도 동일한 문제가 발생했습니다. 모든 것이 잘 작동합니다. 클라이언트가 서버에 연결되어 있고 게이트웨이 서버와 openvpn을 해당 LAN에 연결된 두 장치에 핑할 수 있지만 그 반대의 경우는 불가능합니다. 즉, VPN 게이트웨이 서버나 해당 LAN에 연결된 장치가 클라이언트에 ping을 시도하면 아무런 응답도 얻지 못합니다.
서버에서 클라이언트로 ping 명령을 보낼 때 tcpdump에서 ICMP 패킷으로 어떤 일이 발생하는지 확인하려고 했는데 결과는 다음과 같습니다.
18:12:01.335462 ip: 172.16.21.1 > 192.168.55.3: ICMP echo request, id 5855, seq 1, length 64 18:12:02.334983 ip: 172.16.21.1 > 192.168.55.3: ICMP echo request, id 5855, seq 2, length 64
이런 일이 발생하는 이유와 해결 방법을 이해하도록 도와주세요. 죄송합니다. 제 영어 실력이 좋지 않습니다. 감사해요.