NAT 설정이 작동하지 않는 이유는 무엇입니까?

NAT 설정이 작동하지 않는 이유는 무엇입니까?

어떤 이유로 tcpdump는 tun0인터페이스에서는 패킷을 볼 수 있지만 인터페이스에서는 볼 수 없습니다 eth0.

직접 연결할 수 없는 컴퓨터에서 Github에 액세스하는 데 사용하는 OpenVPN 서버가 있습니다. OpenVPN은 github 경로를 클라이언트에 푸시하도록 설정되어 있습니다.

port 1194
proto tcp
dev tun
ca ca.crt
cert cloud.crt
key cloud.key
dh dh2048.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt

# github.com
push "route 192.30.253.112 255.255.255.255"
push "route 192.30.253.113 255.255.255.255"

keepalive 10 120
comp-lzo
persist-key
persist-tun
status openvpn-status.log
verb 3

iptables를 통해 서버에 NAT를 추가했습니다.

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE 

(대체 버전도 시도했지만 iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j SNAT --to 82.196.2.80결과는 동일합니다)

tun0인터페이스에 패킷이 표시됩니다.

$ tcpdump -n -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
06:37:47.936890 IP 10.8.0.6.58816 > 192.30.253.112.80: Flags [S], seq 1523900495, win 29200, options [mss 1366,sackOK,TS val 3602297008 ecr 0,nop,wscale 7], length 0
06:37:48.960336 IP 10.8.0.6.58816 > 192.30.253.112.80: Flags [S], seq 1523900495, win 29200, options [mss 1366,sackOK,TS val 3602298033 ecr 0,nop,wscale 7], length 0

하지만 패킷이 없습니다 eth0.

$ tcpdump -n -i eth0 | grep 192.30.253.112
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes

sysctl보고서 전달이 활성화되었습니다:

$ sysctl net.ipv4.ip_forward 
net.ipv4.ip_forward = 1

저는 Ubuntu 16.04.3, Linux 4.4.0-112-generic을 사용하고 있습니다.

무엇이 문제일까요? 이 문제를 디버깅하려면 어디에서 찾을 수 있나요?

관련 정보