【Linux】IPTablesでトラフィックを別のサーバー(IPアドレス)へリダイレクトする方法
このチュートリアルでは、Linuxマシンで受信したインターネットトラフィックを、別のIPアドレスへリダイレクト(転送)する方法を解説します。
サーバー移行時に起こる「DNS切り替え待ち」の問題
WebサービスやWebサイトをあるサーバーから別のサーバーへ移行した経験があるなら、その作業がどれほど手間のかかるものかご存じでしょう。ただ、プロセスを明確なステップに分解し、こまめに動作確認を重ねれば、負担はかなり軽減できます。
移行の終盤でよく直面するのが、「新しいサーバー上ではサイトがすでに正常に稼働しているのに、ドメインのDNS切り替え(伝播)が完了するのを待たなければならない期間」です。この間、サービスを停止して待つこともできますが、よりスマートな方法として、旧サーバー側で受信したすべてのトラフィックを新サーバーへ転送する設定があります。ここでは、LinuxマシンのIPTablesを使ってこれを実現する手順を見ていきましょう。
IPTablesとは
IPTablesは、多くのLinuxディストリビューションに標準搭載されているソフトウェアファイアウォールです。非常に強力なツールで、ファイアウォールとしての用途にとどまらず、NATやポート転送など幅広い用途に活用できます。
今回の例では、LinuxサーバーのIPTablesを設定し、ポート80(Webサーバーのデフォルトポート)に届いたすべてのトラフィックを、IPアドレス 122.164.34.240 のサーバーへ転送します。
ステップ1:IPフォワーディングを有効化する
まず、Linuxマシンがパケット転送(フォワーディング)を行えるようにします。ターミナルを開き、rootユーザーとしてログインして、以下のコマンドを実行してください。
# echo 1 > /proc/sys/net/ipv4/ip_forward
ステップ2:DNATでトラフィックを新サーバーへ転送する
次に、IPTablesに対して、受信したトラフィックを新しいサーバーへリダイレクトするよう指示します。
# iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 122.164.34.240
ステップ3:MASQUERADEで送信元アドレスを書き換える
ここからがIPTablesの真骨頂です。最後のステップでは、新サーバーのポート80宛ての接続について送信元アドレスを書き換え、あたかも旧サーバーから接続されているように見せかけます。
# iptables -t nat -A POSTROUTING -p tcp -d 122.164.34.240 --dport 80 -j MASQUERADE
このステップが必須なのは、新サーバー上のWebサーバーに対して「接続は実際にはクライアントマシンから来ている」と正しく伝えないと、新サーバー側がすべての接続を旧サーバーからのものと誤認してしまうためです。MASQUERADEを設定することで、応答パケットも適切にクライアントへ返されるようになります。
補足:再起動後も設定を維持するには
上記の /proc/sys/net/ipv4/ip_forward への設定は一時的なもので、サーバーを再起動すると失われます。永続化するには、/etc/sysctl.conf に以下の行を追加します。
net.ipv4.ip_forward = 1
また、IPTablesのルールも iptables-save コマンドなどで保存しておけば、再起動後も自動的に復元されます(Debian系ディストリビューションでは iptables-persistent パッケージを利用すると便利です)。
これらの設定により、ドメインのDNS切り替えが完了するまでの間も、旧サーバー経由でアクセスしたユーザーをシームレスに新サーバーへ誘導できるようになります。
-
Linuxサーバーで高トラフィックのWebサイトに対応させるApacheとPHPの構成方法
LAMPスタック(Linux、Apache、MySQL、PHP)のインストール手順を解説するチュートリアルのほとんどは、PHPスクリプトの処理にApacheの組み込みモジュールを使うことを推奨しています。例えばUbuntuでは、sudo apt install libapache2-mod-phpというコマンドでパッケージをインストールした時点でこの設定が有効になります。その結果、Apacheはmpm_preforkを使用せざるを得なくなり、訪問者がサイトにアクセスするたびに新しいプロセスが起動されて接続を処理することになります。トラフィックが少ないうちはこれでも十分に機能します。しかし、アク
-
Microsoft Officeを別のパソコンに移行する3つの方法【初心者向け完全ガイド】
記事の概要:新しいパソコンに買い替えた後、「Microsoft Officeをどうやって移行すればいいの?」とお悩みではありませんか。本記事では、サードパーティ製ツール「EaseUS Todo PCTrans」を使った簡単な移行方法をはじめ、Office 365サブスクリプションを利用する方法、手動でライセンスキーを入力する方法まで、3つの手法をわかりやすく解説します。 新しいパソコンへのデータ移行は嬉しいイベントですが、計画性がないと意外と手間がかかるものです。ドキュメントや音楽、動画、画像などのファイルの移し方は分かっても、アプリケーションの引っ越しとなると途端に難しく感じる方が多いので