어떤 이유로 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을 사용하고 있습니다.
무엇이 문제일까요? 이 문제를 디버깅하려면 어디에서 찾을 수 있나요?