web-dev-qa-db-ja.com

MACと高可用性フェイルオーバーに関する初心者の質問

高可用性について読んでいますが、次のことを理解できません。フェイルオーバー時にプライマリIPがバックアップサーバーに移行しますが、MACアドレスも移行する必要があります。

具体的には、すべてのマシンには、マシン内のすべてのインターフェイスで使用できる一意のアドレスMACがあることを読みました。この部分はわかりません。 MACはNICに属していませんか?この文のインターフェースとはどういう意味ですか?

また、フェイルオーバー時に、クライアントはIP/MACマッピングを更新する必要があり、その3つの方法を見つける必要があります。そのうちの1つは、カスタムMACを使用し、パブリックIPとともにプライマリからバックアップに移動することです。これはどのように可能ですか?高可用性ソフトウェアを実行します。ペースメーカーはこれを行いますか?どうやって?

2
user76678

この本は正しいですが、省略されている部分があります。

  • MACアドレスは思ったほど固定されていません。ほとんどのハイエンドNICには、MACアドレスを特定のものに変更する機能があります。 NICのBIOSまたはドライバー自体のいずれか。
  • 「仮想」システム用に確保されたMACアドレスの特定の範囲があります( 仮想マシンに安全に使用できるMACアドレスの範囲はどれですか? を参照)
  • クラスタリングソフトウェアは、これらの取り置き範囲のMACアドレスを使用して、クラスタIPサービスを提示する場合があります。
  • Linuxネットワークスタックには、特定のMACアドレスを使用して仮想NICを作成する機能があります。

仮想MACアドレスに基づいてサービスを作成するためにソフトウェアをクラスタリングする手順は非常に簡単です。サービスが起動すると、特定のIPアドレスが仮想MACアドレスにあることを示すGratuitousArpパケットが提供されます。フェイルオーバーが発生すると、「ダウン」ノードはローカルIP/MACバインディングを削除し、新しいノードはその仮想MACアドレスとIPの組み合わせのリッスンを開始します。騒ぎも大騒ぎもありません。

クラスタリングソフトウェアで使用されるもう1つの方法は、仮想MACをまったく気にせず、GratuitousARPに完全に依存することです。このようなシステムの起動/フェイルオーバーシーケンスは次のようになります。

  1. クラスタソフトウェアはIPをNode Aにバインドします。
  2. ノードAG-ARP「192.168.244.60は02-00-ab-cd-ef-01にあります」
  3. サブネット上のすべてのデバイスは、ARPテーブルを更新します。
  4. 時を経て。
  5. ノードAがクラッシュします。
  6. クラスターソフトウェアはIPをNode Bにバインドします。
  7. ノードBG-ARP「192.168.244.60は02-00-ab-cd-41-baにあります」
  8. サブネット上のすべてのデバイスは、ARPテーブルを更新します。

私の経験では、2番目の方法である純粋なG-ARPは、最近のほとんどのLinuxクラスタリングで使用されている方法です。ただし、どちらの方法も有効であり、使用されています。 G-ARP方式の利点は、仮想MACアドレスの割り当てについていじくり回す必要がないことです。純粋な仮想MAC方式の利点は、特定のサブネットで動作するG-ARPに依存しないことです。

5
sysadmin1138

これはあなたがかなり悪い読み物を見つけるように聞こえます。参照を投稿してもよろしいですか?

一般的に、OSI層モデルはこれらの問題のほとんどを解決し、一度に複数の層で作業する必要はほとんどありません。

MACアドレスは、イーサネットセグメントに1回だけ表示されます。物理マシンでは、これらはグローバルに一意であり、2回表示されることはありません(同じマシン上の複数のNICでも表示されません)。仮想マシンでは、ソフトウェアでMACを設定し、プライベートIP範囲と同様のプライベートMAC範囲の一部を使用する必要があります。

IPの高可用性を実現するには、別のホストでIPを構成するだけで十分です。レイヤー2のオペレーティングシステムとネットワークインフラストラクチャは、MAC/IPマッピングを自動的に更新します。

ただし、一部の機器は頑固であり、キャッシュを更新するように強制するために「無償の」ARP要求が必要です。

Linuxでは、「ucarp」と追加のスクリプトを使用して、これらの「クラスター」IPでマシンを自動的に構成します。

1
Theuni

高可用性または負荷分散の2つの形式を混同している可能性があります。

リンクボンディング同じホスト上の複数のインターフェイスに同じIPアドレスを割り当てる(できます)。

cluster HAを使用した負荷分散の場合、マシンにはすべて同じIPが割り当てられ、MACは異なります。 1台のマシンがすべてのトラフィックを受信しますが、同じIPを持っているため、直接応答できる他のマシンに転送できます。マスターマシンに障害が発生すると、新しいマシンが選出され、Gratuitous ARPが実行されて、新しいマシンにIPがあることがデバイスに通知されます。

1
Anton Cohen

一部のHAシナリオでは、HAイベントで、IPアドレスのみがスタンバイノードによって取り戻されます。この場合、スタンバイノードは、同じイーサネットセグメント上のデバイスのARPテーブルを更新するために、一方的なARPパケットをブロードキャストする必要があります。未承諾のARPパケットを受信すると、デバイスは通常、ARPテーブルを直接更新しませんが(ネットワークを簡単にハッキングできるようになります)、対応するIPアドレスのARPエントリを無効にします。次回デバイスがHAサービスと通信する必要があるとき、デバイスはARP要求を実行して、IPアドレスに対応するMACを取得します。

他のいくつかのHAシナリオ(一部のルーターやファイアウォールなど)では、MACアドレスとIPアドレスの両方がスタンバイノードによって取り戻されます。これにより、同じイーサネットセグメント上のクライアントは、ARPテーブルをそのまま維持できますが、スタンバイノードがARPブロードキャスト(または他の形式のネットワークトラフィック)を保存できることを意味するわけではありません。この場合、トラフィックがデッドデバイスポートで終了しないように、スイッチのMAC-to-portテーブルを更新するためにARPブロードキャスト(または他のネットワークトラフィック)が必要です。

詳細については、これを読むことができます(スイッチの詳細な内部動作)[ ネットワークスニッフィングソフトウェアはスイッチ上でどのように動作しますか?

0
jfg956