Openvpn을 사용하여 사이트 간 VPN을 설정하려고 합니다. 초기 설정이 완료되었으며 내 openvpn 클라이언트 노드(201.100.0.x)가 openvpn 서버 노드(192.0.0.x)와 통신할 수 있습니다. ).
그러나 서버측 노드(192.0.0.32)에서 임의의 클라이언트 노드(201.100.0.18)로 ping을 실행하면 응답을 받지 못합니다(엔드포인트에 올바른 경로를 추가했습니다). TCP 덤프 분석을 통해 openvpn 서버에 도달하는 ping 재생을 볼 수 있습니다.
서버측 노드: 192.0.0.32(eth0)
서버: 192.0.0.39(eth0), 10.8.0.1(tun0)
클라이언트 노드: 201.100.0.18(eth0)
OpenvpnClient:201.100.0.11(eth0)(10.8.0.6(tun0))
server node> ping 201.100.0.18 -c 1
PING 201.100.0.18 (201.100.0.18) 56(84) bytes of data.
--- 201.100.0.18 ping statistics ---
1 packets transmitted, 0 received, 100% packet loss, time 10000ms
이것은 openvpn 서버 eth0의 TCP 덤프입니다.
vpnserver> tcpdump -nni eth0 icmp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
09:41:00.796021 IP 192.0.0.32 > 201.100.0.18: ICMP echo request, id 47432, seq 1, length 64
09:41:00.836637 IP 201.100.0.18 > 192.0.0.32: ICMP echo reply, id 47432, seq 1, length 64
Ping 응답은 192.0.0.32까지 반환되지 않았지만 192.0.0.39로 전달되지 않았습니다. 이유를 알아야 합니다.
IP 전달이 활성화되었으며 아래에서 기존 방화벽 규칙을 볼 수 있습니다.
*filter
:INPUT ACCEPT [397:39519]
:FORWARD ACCEPT [6:504]
:OUTPUT ACCEPT [362:40521]
-A FORWARD -i tun0 -j ACCEPT
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i tun0 -o eth0 -j ACCEPT
COMMIT
# Completed on Thu Nov 3 09:45:05 2016
# Generated by iptables-save v1.4.7 on Thu Nov 3 09:45:05 2016
*nat
:PREROUTING ACCEPT [31:3889]
:POSTROUTING ACCEPT [22:1848]
:OUTPUT ACCEPT [6:504]
-A POSTROUTING -o eth0 -j MASQUERADE << before adding this rule client sides nodes were not able to access server side nodes
COMMIT