接続切り替え用のデフォルトゲートウェイは 2 つありますか?

接続切り替え用のデフォルトゲートウェイは 2 つありますか?

ダウンタイムなしでインフラストラクチャ (会社の Web サイト) への接続を本質的に変更するというタスクがあり、うまくいくかもしれない計画を思いつきました。基本的なセットアップは、すべてのマシンが同じサブネット (172.16.0.0/14) 上にあり、すべてのマシンの古いルーターと現在のデフォルト ゲートウェイが 172.16.1.1 で、新しい接続が 172.18.1.1 として設定されていることです (同じサブネット内にあることに注意してください)。

アイデアは、一時的に新しいルーター/接続を指すすべてのマシン (すべて Linux) に 2 番目のデフォルト ゲートウェイを割り当て、次に DNS を切り替えて新しい接続の新しいパブリック IP を指すようにし、すべての接続がそこに到着するまで待つというものでした。その後、古いルーター/接続を指す元のデフォルト ゲートウェイを削除します。

これがうまくいくと思う人はいますか? または、ダウンタイムが必要だと主張したりせずに、この切り替えを実現できる別の方法はありますか? このために、これらすべてのマシン (約 100 台あります) で複数のルーティング テーブルを構成するのは、あまり望んでいません。

答え1

1 つのオプションとして、両方のゲートウェイ (1 つはデフォルト、もう 1 つはセカンダリ) を備えた新しいマシン ServerA をセットアップすることが考えられます。他のすべてのサーバーを ServerA にルーティングするように再構成し、そこから転送できるようにします。次に、ServerA のデフォルト ゲートウェイを切り替えます。他のすべてのサーバーは引き続き ServerA に接続し、正しいネットワークを介してルーティングされます。その後、他のサーバーをゆっくりと切り替えることができます。ダウンタイムが完全になくなるわけではありませんが、確実に短縮されます。すべて完了したら、ServerA を削除できます。

答え2

パブリックIPがサーバーにアタッチされている場合は、ソースポリシールーティング応答パケットに適切なゲートウェイを選択します。たとえば、古いゲートウェイ 172.16.1.1 のパブリック IP が 198.51.100.0/24 で、新しいゲートウェイ 172.16.1.2 のパブリック IP が 203.0.113.0/24 の場合、サーバーで次のように構成します。

echo 12 isp2 >> /etc/iproute2/rt_tables
ip route add default via 172.16.1.2 table isp2
ip rule add from 203.0.113.0/24 lookup isp2

これにより、トラフィックは新しいパブリック IP を使用して 172.16.1.2 経由でルーティングされ、その他すべて (受信と送信) は 172.16.1.1 経由で送信されます。これで、サーバーは新しいパブリック IP でアクセスできるようになり、DNS エントリを切り替えることができます。古いパブリック IP が使用されなくなったら、デフォルト ルートを 172.16.1.2 に変更し、上記の構成を削除できます。

着信接続がサーバーに NAT される場合は、サーバーに新しいプライベート サブネットを設定し、代わりにこの範囲に NAT するように新しいゲートウェイを構成する必要があります。

関連情報