Solaris 11: ILB を使用して 2 つのバックエンドサーバー間で HA ロードバランサを作成するには?

Solaris 11: ILB を使用して 2 つのバックエンドサーバー間で HA ロードバランサを作成するには?

私はSolaris 11のILBを使用して2つのバックエンドDNSサーバー間にロードバランサーを作成しようとしています。これは私の要件です。

2つの外部IP:.XXX.YYY、.XXX.ZZZ - クライアントが接続するDNS IP。この2つの外部IPのHA構成にある2つのILBボックス2つのバックエンドDNSサーバー

2つの異なる着信IPにある2つのDNSサーバー(ns1とns2)の間に2つのILBボックス(ilb1とilb2)のロードバランシングをしたいと思います。私はilb1が.XXX.YYYではプライマリで、.XXX.ZZZではセカンダリで、ilbはその逆であることを望みます。これにより、DNSサーバーまたはILBサーバーが失敗してもDNS要求は影響を受けずに続行されます。ただし、バックエンドサーバーはDNS要求の実際のSRC_IPを表示できる必要があるため、これに対して完全なNATを実行できません。完全なNATを実行すると、DNSサーバーはすべての要求がILBから来ると考えます。ボックスではなく、クライアント自体です。

HALF-NATを採用すると、DNS要求に対してSRC_IPが正しく保持されます。ただし、これはパケットが要求されたILBボックスを介してルーティングされる必要があるため、パケットが正しいIPを使用してクライアントに到達する必要があることを意味します。それ以外の場合、クライアントはパケットを破棄します。 (「予期しないソースの応答」など)。これは難しい質問です。 IPは2つなので、正しいILBボックスを介して要求を確実に再ルーティングするにはどうすればよいですか? DNSボックスの/ etc / defaultrouterは1つのIPしか使用できないため、応答の約半分が削除されます。

この設定は大丈夫ですか?私の説明は泥のように明確ですか?

ベストアンサー1

必要なものはほとんど備えているようですが、魔法が不足しています。

まず、複数のVIPアドレスを処理するには、VRRP(またはエニーキャストも可能ですが、そうではないようです)を使用する必要があります。この部分がうまく機能すると明示的に言及していませんが、おそらくそうだろうと思います。 ILBとルーティングについてのみ議論します。

良いニュースは、ILBを介してルーティングを強制的に再実行する必要がないことです。

あなたが望むものは呼び出されます直接サーバーに戻るそして、ILBの「ステータス非保存」モードを使用してください。

その機能は次のとおりです。

  1. LB は、宛先 L2 イーサネットアドレスを物理サーバー L2 アドレスに変更します。
  2. RSは、実際のL3ソースと実際のL3宛先を含むパケットを受信します。
  3. RS は正しい L3 ソースとターゲットで応答します。

DSRの設定方法に関するOracleドキュメント正しく設定されたDSRでサンプルコードを完成させます。 (メモ:Oracleのドキュメントは正確ですが、構文が悪いです。明確に言えば、ステップ1、3、4はILBで実行され、ステップ2は物理サーバーで実行されます。 )

簡単に説明してください:

  • type=DSRコマンドilbadm create-ruleで使用
  • lo0各物理サーバーにVIPアドレスを追加する

物理サーバーがLinuxの場合は、一部のルーティングおよびarpスプーフィング保護も無効にする必要があります。

echo 0 > /proc/sys/net/ipv4/conf/all/rp_filter
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce

おすすめ記事