私は動的なWAN IPを持っているので、それが変更された場合、私のiptablesは適用されなくなります。
これが私の作業ヘアピンnatです。ここで、x.x.x.xは私のWAN IP
br0 - LAN
eth1 - WAN
-A PREROUTING -d x.x.x.x -p tcp --dport 80 -j DNAT --to-destination 192.168.0.9
-A POSTROUTING -s 192.168.0.0/27 -d 192.168.0.0/27 -o br0 -j MASQUERADE
-A POSTROUTING -s 192.168.0.0/27 -o eth1 -j MASQUERADE
特に私のWAN IPが変更された場合に備えて、-d x.x.x.x
を使用する必要がない別の方法はありますか?
最初のルールを次のように書き直します。
iptables -t nat -A PREROUTING -m addrtype --dst-type LOCAL -p tcp --dport 80 -j DNAT --to-destination 192.168.0.9
これにより、LANIPのポート80への接続もリダイレクトされることに注意してください。
それを避けたい場合は、LAN IP a.b.c.d
ルールを次のように変更します。
iptables -t nat -A PREROUTING \! -d a.b.c.d -m addrtype --dst-type LOCAL -p tcp --dport 80 -j DNAT --to-destination 192.168.0.9
DNATルールでは、-d x.x.x.x
の代わりに-i eth1 -m addrtype --dst-type LOCAL
を使用します。