古いサーバーから新しいサーバーへのMySQLリクエストのリダイレクト

古いサーバーから新しいサーバーへのMySQLリクエストのリダイレクト

Tomcatと2つのMS SQLサーバー(SqlOLD - 192.168.4.23とSqlNew - 192.168.4.28)を持つLinux Webサーバー(CentOS7)があります。古いSQLからのパケットを新しいSQL(ポートtcp / 1433)に転送するには、Webサーバーにルールを追加する必要があります。

固定IPでコンパイルされたWebアプリがいくつかあり、私の方法で再構築できないため、これが必要です。

答え1

これは興味深い質問です。アドレスを書き換える一般的な方法はNATPREROUTINGテーブルを使用することですが、ここでは機能しません。トラフィックは元のWebサーバーに移動せずにあるため、テーブルDNATでは使用できません。代わりに、これは(NATテーブルですが)チェーンに配置する必要がある非常にまれなケースの1つです。PREROUTINGDNATPOSTROUTINGDNATOUTPUT

iptables -t nat -I OUTPUT -o eth0 --dst 192.168.4.23 -j DNAT --to 192.168.4.28

その後、インターフェイスを介して192.168.4.23に送信されたすべての出力ヘッダーを取得しeth0(CentOS環境に合わせて調整する必要があるかもしれません)、192.168.4.28に書き換えます。ポート番号しなければならない絶え間ない。カーネルにconntrackモジュールがある場合は、返されたパケットを自動的に書き換える必要があります。

ルールをリストするには、iptables5つの個別のコマンド(5つのルールセットがある)を実行する必要がありますが、実際にはほとんどの場合、管理したいルールに対して最初の2つのコマンドで十分です。

iptables -nvL                # Blocking and permitting packets ("-t filter")
iptables -t nat -nvL         # Rewriting packets, eg different destinations
iptables -t mangle -nvL      # Not used so often
iptables -t raw -nvL         # Used rarely
iptables -t security -nvL    # SELinux

ルールを削除するには、ルールを繰り返すか、変更-I(挿入)または-A(追加)を-D(削除)します。

これに関する多くのチュートリアルがありますiptables。 CentOSを使用しているので、高度なファイアウォールツールを学ぶ価値があることがわかりますfirewalldman firewalld出発点としてリソースを参照し、もちろん多くのGoogle-fuも参照してください)。

関連情報