※ 本記事は、Tim Sammutによる”Using OCI Network Load Balancer to provide highly available DNS services“を翻訳したものです。
2024年6月13日
Oracle Cloud Infrastructure(OCI)は最近、一部のリモート・ネットワークでDNSヘルス・チェックとバックエンドのサポートを商用リージョンのOCI Network Load Balancerサービスに2つ追加リリースしました。この新機能により、NLBのユーティリティが、一般的に要求される特定のユース・ケース(DNSトラフィックのロード・バランシングおよびフォルト・トレラントな処理)に大幅に拡張され、複数のDNSサーバーになります。
この新しいNetwork Load Balancer機能を利用して、DNSサーバーの障害をより正確に検出して処理するドメイン・ネーム・システム(DNS)アーキテクチャを作成できます。DNSサーバーは、OCI内またはオンプレミス・ネットワーク内に柔軟にこれらのアーキテクチャに配置できるようになりました。これらのメリットは、パブリックおよびプライベートのDNS解決用のアーキテクチャに適用できます。
DNS健全性検査の設定
ネットワーク・ロード・バランサは、ヘルス・チェック・ポリシーを使用して、バックエンド・サーバーが正常かどうかを判断します。新しいDNSヘルス・チェックは、ヘルス・チェック・プロトコルとしてDNSを選択することで公開されます。

これらのフィールドの詳細は、ドキュメントを参照してください。問合せ名は、ヘルス・チェックがバックエンド・サーバーからリクエストするDNS名です。ターゲット問合せ名を選択して、バックエンド・サーバーの必要なDNS機能をテストします。たとえば、バックエンドDNSサーバーがインターネット再帰を提供する場合は、oracle.comなどの問合せ名をインターネットで使用します。または、バックエンドDNSサーバーがDNS再帰または転送の使用ではなく、サーバーのみをテストする権限がある問合せ名を使用します。
DNSヘルス・チェック・ポリシーには、新しい「即時フェイルオーバーの有効化」オプションが必要です。DNSは、ユーザー・データグラム・プロトコル(UDP)を使用し、非常に多くのリクエストと応答を持つことができるため、DNSクライアントが UDPソースポートを再利用する必要がある場合があります。このオプションにより、ソースIPおよびポートからの1つのリクエストが正常なバックエンド・サーバーに転送される場合でも、そのサーバーが異常になると、その同じソースIPおよびポートからの後続のリクエストが別の正常なサーバーに転送されます。
ユース・ケースの強化
通常、この新しいNetwork Load Balancer機能は2つのシナリオで使用できます。最初のシナリオでは、新しいDNSヘルス・チェックを使用して、DNSトラフィックのローカル・ロード・バランシングを改善します。このシナリオは、顧客がOCI内で複数の自己管理型DNSサーバーを運用しており、それらのサーバーを単一のIPアドレスで提示する必要がある場合に一般的です。ここで、DNSクライアントまたは他のDNSサーバーは、ネットワーク・ロード・バランサのIPアドレスに問合せを送ります。

この新機能(特にオンプレミス・バックエンドおよびDNSヘルス・チェックのサポート)の恩恵を受ける2番目のDNSアーキテクチャでは、OCIのネットワーク・ロード・バランサを使用して、オンプレミスの場所のサーバーに対して可用性の高い方法でトラフィックをロード・バランシングおよび転送します。このアプローチにより、Microsoft Active Directoryをサポートしていることが多いオンプレミスの内部DNS名のDNS解決が容易になります。

OCIプライベートDNSとの統合
この新機能は、OCIプライベートDNSを顧客管理DNSサーバーと組み合せて使用する場合に、前述のアーキテクチャに特に役立ちます。OCIプライベートDNSでは、別のDNSサーバーへのDNSリクエストの条件付き転送がサポートされています。このユース・ケースは、DNSリクエストを別の仮想クラウド・ネットワーク(VCN)(別のOCIリージョンにある可能性もあります)に転送したり、DNSリクエストをOCIまたはオンプレミスの顧客管理サーバーに転送したりする場合によく見られます。
このシナリオでは、条件付き転送ルールは、トラフィックをネットワーク・ロード・バランサに送信するように構成されます。そのネットワーク・ロード・バランサには、バックエンドとして構成された2つ以上のDNSサーバーがあり、新しいDNS対応ヘルス・チェックを使用します。OCIプライベートDNS転送ルールは、ネットワーク・ロード・バランサのIPアドレスを宛先サーバーのIPアドレスとして指定します。このアプローチは、新しいDNSヘルス・チェックによって強化されたネットワーク・ロード・バランサに依存して、宛先DNSサーバーの状態を判断し、それに応じてトラフィックのバランスをとります。

一般的な誤解は、同じ条件と異なる宛先IPを持つ2つ以上のOCIプライベートDNS転送ルールを作成すると、フォルト・トレランスが追加されることです。トラフィックは常に最初の宛先IPアドレスに送信されるため、この設定ではフォルト・トレランスは向上しません。かわりに、説明に従ってネットワーク・ロード・バランサをネットワークに追加します。
実装のベスト・プラクティス
OCI Network Load Balancerサービスを使用してDNSアーキテクチャを構築する場合は、次の項目を考慮してください:
- ステートレス・セキュリティ・リストを幅広く利用: DNSは、ネットワーク・ロード・バランサを含むOCIのリソースの接続トラッキング表の領域を迅速に消費できる、長寿命の多くのフローを使用します。ネットワーク・ロード・バランサとそのバックエンド、およびサブネットに適用されるセキュリティ・リストで構成されたネットワーク・セキュリティ・グループで、ステートレス・セキュリティ・ルールを構成および使用することが重要です。そうしないと、DNSリクエストおよび応答の割合が高い期間中にパケットが失われる可能性があります。
- DNSトラフィックにUDP/TCPネットワーク・ロード・バランサ・リスナーを使用: DNSが正しく機能するには、UDPおよびTCPトラフィックが必要です。DNS応答が1つの UDPパケットに対して大きすぎる場合、DNSクライアントは自動的にTCPを使用します。
- バックエンドDNSサーバーには、同じDNSデータと転送および再帰構成が必要: ネットワーク・ロード・バランサに到着するDNS問合せは、問合せの内容に関係なくバックエンドに分散されます。一部の名前やタイプの問合せを、別のバックエンドではなく、あるバックエンドに送信することはできません。DNSレスポンスの忠実度とシステム全体の安定性のために、両方のサーバーに同一のDNSデータおよび構成が必要であり、これにより、リクエストしたバックエンド・サービスに関係なく、特定の問合せで同じレスポンスが生成されます。
まとめ
この新しいNetwork Load Balancer機能のリリースは、顧客からの一般的なリクエストに対応し、DNSで重要なユース・ケースを強化します。DNSのユース・ケースでNetwork Load Balancerを現在導入している場合は、新しいDNSヘルス・チェックと実証済のベスト・プラクティスを念頭に置いて確認することをお勧めします。詳細は、ドキュメントを参照してください。
