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を使用しています。

何が問題なのでしょうか?この問題をデバッグするにはどこにありますか?

ベストアンサー1

おすすめ記事