プライベートネットワークとパブリックネットワーク間のNATゲートウェイとして機能するようにUbuntu14.04を構成しようとしています。
eth0 (178.x.x.x)
eth0:0 (192.168.206.190/17)
iptables
ルールの多くの組み合わせを試しましたが、トラフィックをルーティングできません。ゲートウェイがインターネットを認識でき、プライベートネットワーク上のホストがゲートウェイを認識でき、デフォルトゲートウェイが正しく設定されていることを確認しました。
net.ipv4.ip_forward=1
はsysctl
に設定されます。
私のiptables
ルールは以下のとおりです。私のiptables
の経験は最小限なので、何かを逃した可能性は十分にあります。
# Generated by iptables-save v1.4.21 on Thu Apr 21 12:38:44 2016
*security
:INPUT ACCEPT [215:14912]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [133:16208]
COMMIT
# Completed on Thu Apr 21 12:38:44 2016
# Generated by iptables-save v1.4.21 on Thu Apr 21 12:38:44 2016
*raw
:PREROUTING ACCEPT [215:14912]
:OUTPUT ACCEPT [133:16208]
COMMIT
# Completed on Thu Apr 21 12:38:44 2016
# Generated by iptables-save v1.4.21 on Thu Apr 21 12:38:44 2016
*nat
:PREROUTING ACCEPT [3:132]
:INPUT ACCEPT [3:132]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -o eth0 -j MASQUERADE
COMMIT
# Completed on Thu Apr 21 12:38:44 2016
# Generated by iptables-save v1.4.21 on Thu Apr 21 12:38:44 2016
*mangle
:PREROUTING ACCEPT [215:14912]
:INPUT ACCEPT [215:14912]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [133:16208]
:POSTROUTING ACCEPT [133:16208]
COMMIT
# Completed on Thu Apr 21 12:38:44 2016
# Generated by iptables-save v1.4.21 on Thu Apr 21 12:38:44 2016
*filter
:INPUT ACCEPT [46:3296]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [28:3484]
-A FORWARD -i eth0:0 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth0 -o eth0:0 -j ACCEPT
COMMIT
# Completed on Thu Apr 21 12:38:44 2016
iptables -L -v
Chain INPUT (policy ACCEPT 15 packets, 1044 bytes)
pkts bytes target prot opt in out source destination
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT all -- eth0:0 eth0 anywhere anywhere state RELATED,ESTABLISHED
0 0 ACCEPT all -- eth0 eth0:0 anywhere anywhere
Chain OUTPUT (policy ACCEPT 10 packets, 1016 bytes)
pkts bytes target prot opt in out source destination
プライベートネットワーク上のホストの構成は次のとおりです。
netstat -r
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
default nat 0.0.0.0 UG 0 0 0 eth0
192.168.128.0 * 255.255.128.0 U 0 0 0 eth0
'nat'のpingは、ホストが 'nat'を認識できることを確認します。
ping nat
PING nat (192.168.206.190) 56(84) bytes of data.
64 bytes from nat (192.168.206.190): icmp_seq=1 ttl=64 time=0.359 ms
8.8.8.8のpingは、トラフィックルーティングがないことを示しています。
ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
^C
--- 8.8.8.8 ping statistics ---
3 packets transmitted, 0 received, 100% packet loss, time 1999ms
プロバイダー(Linode)は、ハイパーバイザー/ネットワークレベルでIPアドレスによってトラフィックをフィルタリングするため、パブリックIPアドレスを持つトラフィックはプライベートネットワークをまったく通過しません。プロバイダーを変更しましたが、NAT正常に動作しています。
問題はこのルールにあると思います
-A FORWARD -i eth0:0 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
インターフェイスの位置を変更する必要があります
-A FORWARD -i eth0 -o eth0:0 -m state --state RELATED,ESTABLISHED -j ACCEPT