前 | 2013年 6月 |
次 | ||||
日 | 月 | 火 | 水 | 木 | 金 | 土 |
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 |
良くあるのが DMZ に Firewall機 を置き、内部に公開サーバを設置. Firewall機 へのアクセスを IP や port で内部の公開サーバへ転送する、と云うヤツだ.
現在、そんなのを設定していたりするのだが、今回は内部で完結するサーバでの転送で躓いた.
ローカルで完結なのだが、PREROUTING だけだと上手く動かない(爆)
MySQL のサーバが変わるが、クライアントからは変更が無かったかのように振る舞いたい.
結果として以下の通りで.
大元のサーバ(xxx.xxx.xxx.xxx)にて
iptables -t nat -A PREROUTING -p tcp -i eth0 -d xxx.xxx.xxx.xxx --dport 3306 -j DNAT --to-destination yyy.yyy.yyy.yyy:3306 iptables -t nat -A POSTROUTING -j MASQUERADE
で、新しいサーバ(yyy.yyy.yyy.yyy)では
iptables -t nat -A POSTROUTING -p tcp -o eth0 --sport 3306 -j SNAT --to xxx.xxx.xxx.xxx
転送元のサーバ、設定によっては以下のも必要に.
echo 1 >/proc/sys/net/ipv4/ip_forward
ローカル環境下のみで、eth が一本で使っていたので忘れていたよん(爆)