ノート:
- このチュートリアルでは、Oracle Cloudへのアクセスが必要です。無料アカウントにサインアップするには、Oracle Cloud Infrastructure Free Tierの開始を参照してください。
- Oracle Cloud Infrastructureの資格証明、テナンシおよびコンパートメントの値の例を使用します。演習を完了するときに、これらの値をクラウド環境に固有の値に置き換えます。
Oracle Cloud InfrastructureのBIND9ドメイン・ネーム・システムでの高可用性の実装
イントロダクション
OraStageは、再生可能エネルギー・ソリューションと革新的な電力技術を専門とするエネルギー部門のリーディング・カンパニーであり、パフォーマンス、スケーラビリティ、セキュリティを強化するためにワークロードをOracle Cloud Infrastructure(OCI)に移行するという戦略的な決定を発表しました。
OraStageが説明した特定のニーズと条件を考慮して、同社はハイブリッド・ドメイン・ネーム・システム(DNS)を必要としています。クラウドでのソリューション、およびハイブリッドでは、OCI DNSサービスに加えて、独自のBerkeley Internet Name Domainバージョン9 (BIND9) DNSシステムを使用することを意味します。ここでは、構築しようとしている最終的なアーキテクチャを次のイメージに示します。
OraStage DNSの要件:
-
会社には複数の内部ドメインおよびサブドメインがあり、それらのすべてをOCIのBIND9 DNSによって解決する必要があります。OraStageは、関連するすべてのゾーンおよびレコードを管理します。これらのドメインの1つは、このチュートリアルで使用する
orastage.com
です。そのため、orastage.com
への問合せは、BIND9に転送する必要があります。 -
場合によっては、OCIネイティブ・ドメイン(
oraclevcn.com
、oraclecloud.com
など)を解決する必要があり、これはOCIプライベートDNSコンポーネント(プライベート・ビュー、エンドポイントとルールの転送、リスニング・エンドポイント)を使用して行われます。 -
すべての問合せは、pfSenseファイアウォール・インスタンスによって検査される必要があります。
-
単一障害点を回避するために、OraStageは別のDNSサーバーを使用し、OCIロード・バランサを利用してプライマリDNSとセカンダリDNS間で問合せを分散することを計画しています。
このチュートリアルシリーズは、上記の概説された要件を達成するためにステップバイステップをガイドし、最初からソリューション全体を構築します。次のリストから各チュートリアルに簡単にナビゲートできます。
-
チュートリアル1: OCIでBIND9 DNSを構成します。コンピュート・インスタンスにBIND9をインストールおよび構成し、それをOCIの2つのテスト環境用のローカルDNSサーバーとする方法について学習します。これらの環境は、それぞれ別のスポーク・ネットワークでホストされる「フロントエンド」および「バックエンド」サーバーで構成されます。BIND9サーバーは、
orastage.com
に送信されたすべてのDNS問合せを処理します。 -
チュートリアル2: OCIのBIND9 DNSシナリオで高可用性を実装します。このチュートリアルでは、セカンダリBIND9サーバーの追加と、両方のサーバー間でDNSトラフィックを分散するためのネットワーク・ロード・バランサ(NLB)の構成に重点を置きます。
orastage.com
へのDNS問合せはNLB IPに送信され、プライマリとセカンダリBIND9サーバー間の負荷が分散されます。1つのサーバーが使用できなくなった場合、DNSの解決はサービスの中断なしで続行されます。 -
チュートリアル3: OCI DNSを使用したネイティブ・ドメインの解決。
oraclevcn.com
やoraclecloud.com
などのネイティブ・ドメインを解決する必要がある場合に備えて、OCIでネイティブDNSコンポーネントを使用する特定のユース・ケースにのみ焦点を当てます。BIND9 DNSはこのチュートリアルでは使用されません。 -
チュートリアル4: pfSenseファイアウォールを使用したDNSアーキテクチャへのセキュリティの追加。OCIのハブVCNにpfSenseファイアウォールをインストールすることに焦点を当て、検査対象のファイアウォールを介して(過去のチュートリアルで実行された)DNS問合せを含むすべての東西トラフィックをルーティングするために必要なネットワーク構成を実行します。
概要
現在、信頼性が高く効率的なDNSインフラストラクチャは、シームレスなネットワーク運用を確保するために重要です。最初のチュートリアル: Oracle Cloud InfrastructureでのBIND9ドメイン・ネーム・システムの構成では、DNSサービスを管理するための堅牢な機能と柔軟性を提供する、最も広く使用されているDNSソフトウェアの1つであるBIND9をOCIでデプロイおよび使用する方法をすでに説明しました。単一のBIND9サーバーはDNSリクエストを効果的に処理できますが、2番目のBIND9サーバーを追加すると、ネットワーク全体のパフォーマンスと信頼性を向上させる多くの利点があります。
このチュートリアルでは、OCIでセカンダリBIND9サーバーとロード・バランサを設定するプロセスを順を追って説明し、この構成の利点について説明します。これを実装すると、次のことが実現します。
-
冗長性:プライマリ・サーバーに障害が発生した場合でも、DNSサービスの継続的な可用性を確保します。
-
ロード・バランシング: DNS問合せの負荷をサーバー間で分散することで、応答時間を短縮し、過負荷のリスクを軽減します。
-
地理的分布:必要に応じて、DNSサーバーを異なる場所に配置すると、グローバル・ユーザーのレスポンス時間が短縮されます。
-
セキュリティの強化: DNSサービスを複数のサーバーに分けて保護することで、リスクを軽減します。
OCIネットワーク・ロード・バランサ
OCI Flexible Network Load Balancer (NLB)は、受信トラフィックを複数のバックエンド・リソースに分散するのに役立つサービスです。これは、大量のトラフィックを管理し、1つ以上のサーバーに障害が発生してもアプリケーションが使用可能で応答性を維持するために特に役立ちます。
OCI Network Load Balancerは、オープン・システム相互接続(OSI)モデルのレイヤー3およびレイヤー4で動作し、Transmission Control Protocol (TCP)、ユーザー・データグラム・プロトコル(UDP)、Internet Control Message Protocol (ICMP)などのプロトコルを処理します。負荷を効率的に分散することで、アプリケーションのパフォーマンスを向上させ、高可用性を実現し、システムの全体的なスケーラビリティを向上させることができます。このサービスには、バックエンド・サーバーのステータスを監視するためのヘルス・チェックなどの機能もあり、トラフィックが正常なインスタンスと運用インスタンスにのみ転送されるようにします。
要約すると、OCIネットワーク・ロード・バランサは、ネットワーク・トラフィックを複数のリソースにインテリジェントに分散することで、アプリケーションの信頼性とスケーラビリティを維持する上で重要な役割を果たします。前述のすべての利点により、DNSソリューションを最適化するためのネットワーク・ロード・バランサをセットアップに追加することにしました。
目的
-
OCIネットワーク・ロード・バランサとセカンダリBIND9サーバーをネットワークにシームレスに統合し、堅牢で回復力のあるDNSインフラストラクチャを確保します。
-
このチュートリアルの主な目的は、FE-VMクライアント(
fe.orastage.com
)がBE-VM (be.orastage.com
)を問い合せること、またはその逆をDNS-NLBがPrimary-DNS (primary-dns.orastage.com
)とSecondary-DNS (secondary-dns.orastage.com
)の間でクライアント・リクエストを分散してすべての問合せに応答できるようにすることです。
最終的なアーキテクチャ
前提条件
-
OCIテナンシへのアクセスと、必要なネットワークおよびコンピュート・サービスを管理するための権限。
-
OCIネットワークのルーティングとセキュリティとその機能(Virtual Cloud Network (VCN)、ルート表、Dynamic Routing Gateway (DRG)、セキュリティ・リスト、要塞およびOCIネットワーク・ロード・バランサ)の基本的な理解。
-
OCIロギング・サービスの基本的な理解。
-
Ubuntu LinuxとDNSの基本的な理解
-
必ず最初のチュートリアルを完了してください: Oracle Cloud InfrastructureでのBIND9ドメイン・ネーム・システムの構成。このチュートリアルでは、次のアーキテクチャをすでに構築している必要があります。
タスク1: セカンダリDNSインスタンスのプロビジョニングおよびBIND9の構成
最初のチュートリアル: Oracle Cloud InfrastructureでのBIND9ドメイン・ネーム・システムの構成(タスク2およびタスク3はプライマリ-DNSインスタンスの作成と構成を示します)を参照してください。セカンダリ-DNSを構成するには同じタスクを実行する必要があります。次の情報を考慮してください:
-
インスタンス名はセカンダリDNSになります。
-
プライマリDNSと同じサブネットに存在し、
10.0.0.20
のIPアドレスを割り当てる必要があります。 -
構成プロセスを通じて、プライマリ-DNS
10.0.0.10
が記述されるたびに、それをセカンダリ-DNS10.0.0.20
に置き換える必要があります。たとえば、このインスタンスのFQDNはsecondary-dns.orastage.com
です。 -
同じSSHキーを使用します。
-
プライマリ-DNSへのアクセスに使用したものと同じOCI要塞を使用して、セカンダリ-DNSにアクセスすることもできますが、新しいセッションを使用できます。
-
プライマリ・インスタンスとセカンダリ・インスタンスの両方の
/var/lib/bind/db.orastage.com
ファイルで、FE-VMおよびBE-VMインスタンスに加えて、両方のDNSサーバーが相互に解決できるように、次のすべてのレコードが存在することを確認します。primary-dns IN A 10.0.0.10 secondary-dns IN A 10.0.0.20 fe IN A 10.1.0.5 be IN A 10.2.0.5
このタスクの最後に、アーキテクチャは次のようになります。
タスク2: OCIネットワーク・ロード・バランサの構成
タスク2.1: 詳細の追加
-
左上隅のハンバーガー・メニュー(≡)をクリックします。
- 「ネットワーキング」をクリックします。
- 「ネットワーク・ロード・バランサ」をクリックします。
-
「ネットワーク・ロード・バランサの作成」をクリックします。
- ロード・バランサ名:名前を入力します。
- 表示タイプの選択: 「プライベート」を選択します。
- ネットワーキングの選択:ネットワーク・ロード・バランサを配置する「DNS-VCN」とそのプライベート・サブネットを選択します。
- 「次」をクリックします。
タスク2.2: リスナーの構成
リスナーは、特定のポート(TCP/ポート80、UDP/ポート21など)を使用して特定のタイプのトラフィックを受信し、バックエンド・サーバーに転送するロード・バランサに不可欠なコンポーネントです。このチュートリアルでは、DNSが両方を使用するため、リスナーがポート53 (TCP)および(UDP)でリスニングするようにします。
-
次の情報を入力します
- リスナー名:名前を入力します。
- リスナーで処理するトラフィック・タイプを指定します: 「UDP/TCP」を選択します。
- ポートの指定:ポート番号53を入力します。
- 「次」をクリックします。
タスク2.3: バックエンド・セットの選択
バックエンド・セットは、ネットワーク・ロード・バランサがトラフィックをルーティングするバックエンド・サーバーの論理グループです。ここでのバックエンド・サーバーは、プライマリ-DNSおよびセカンダリ-DNSになります。
-
次の情報を入力します
- バックエンド・セット名:バックエンド・セット名を入力します。
- 「バックエンドの追加」をクリックします。
- バックエンド・タイプ: 「コンピュート・インスタンス」を選択します。
- バックエンドIPv4コンピュート・インスタンス: DNSサーバー(プライマリ-DNSとセカンダリ-DNS)の両方を選択します。
- 「バックエンドの追加」をクリックします。
- バックエンド・サーバーがセットに追加されていることがわかります。
- ヘルス・チェック・ポリシーの指定:ヘルス・チェック・ポリシーは、リクエストを実行するか接続を試行することで、バックエンド・サーバーの可用性を検証するために使用されます。ネットワーク・ロード・バランサは、このポリシーを使用して、指定された間隔でこれらのヘルス・チェックを実行し、バックエンド・サーバーのステータスを継続的に監視します。
- 「次」をクリックします。
タスク2.4: 確認と作成
-
すべての詳細を確認し、「ネットワーク・ロード・バランサの作成」をクリックします。
-
DNS-NLBが作成されます。タスク3で使用するプライベート IPアドレスに注意してください。
タスク2.5: セキュリティ・ルールの追加
ヘルス・チェックの失敗を回避し、トラフィックを中断することなく円滑な通信を確保するため。
-
DNS-Private-Subnetセキュリティ・リストに次のルールを追加します。これにより、ネットワーク・ロード・バランサからバックエンドに送信されるDNSトラフィックが可能になります。
-
アーキテクチャは、次の図のようになります。
タスク3: OCI DNS転送ルールの構成
タスク3.1: フロントエンドVCN転送ルールの構成
-
左上隅のハンバーガー・メニュー(≡)をクリックします。
- 「ネットワーキング」をクリックします。
- 「仮想クラウド・ネットワーク」をクリックします。
-
「フロントエンド-VCN」をクリックします。
-
VCNの「DNSリゾルバ」をクリックします。
-
下へスクロール
- 「ルール」をクリックします。
- 「ルールの管理」をクリックします。
- 宛先IPアドレスをプライマリ-DNSのIPアドレスから、タスク2で作成したDNS-NLBのIPアドレス(
10.0.0.110
)に変更します。 - 「変更の保存」をクリックします。
- 宛先IPアドレスは正常に変更されました。そのため、FE-VMからのすべてのクエリーが DNS-NLB IPアドレスに転送され、プライマリ DNSサーバーとセカンダリ DNSサーバー間で分散されます。
タスク3.2: バックエンドVCN転送ルールの構成
-
左上隅のハンバーガー・メニュー(≡)をクリックします。
- 「ネットワーキング」をクリックします。
- 「仮想クラウド・ネットワーク」をクリックします。
-
「バックエンドVCN」をクリックします。
-
VCNの「DNSリゾルバ」をクリックします。
-
下へスクロール
- 「ルール」をクリックします。
- 「ルールの管理」をクリックします。
- 宛先IPアドレスをプライマリ-DNSのIPアドレスから、タスク2で作成したDNS-NLBのIPアドレス(
10.0.0.110
)に変更します。 - 「変更の保存」をクリックします。
- 宛先IPアドレスは正常に変更されました。そのため、BE-VMからのすべてのクエリーが DNS-NLB IPアドレスに転送され、プライマリ DNSサーバーとセカンダリ DNSサーバー間で分散されます。
タスク4: テストと検証
前提条件
-
ログの有効化:トラフィックのフローを検証するために、サブネット・フロー・ログを有効化します。これにより、特定のサブネットに入る、または出るネットワーク・トラフィックを監視および追跡できます。これらのログは、発信元と宛先のIPアドレス、ポート番号、転送されるデータの量など、ネットワーク・トラフィックに関する詳細を取得します。ログを有効にするには、次のステップを実行します。
- DNS-VCNプライベート・サブネット(プライマリ-DNS、セカンダリ-DNSおよびDNS-NLBが存在)に移動します。
- 「ログ」をクリックします。
- 「ログの有効化」を選択します。
ログの詳細とOCIでの利用方法については、次を参照してください。
- VCN Flow Logs.
- VCNフロー・ログの詳細 - ログの内容の読取り方法を学習します。
- OCI内のハブ内のパケットおよびスポークVCNルーティング・アーキテクチャのフォロー - ファイアウォール・パケット・キャプチャ、サブネット・ログ、TCPdumpなどの複数の方法を使用してOCI環境内のネットワーク・パケットをトレースする方法を知るための便利なチュートリアル。タスク6およびタスク13に従います。
- タスク6: プライベート・サブネットのスポークでのロギング(すべてのログ)の有効化
- タスク13: すべてのロギング・ポイントおよびパケット取得を確認し、パス- ロギング・ポイントBに従います。
これで、このサブネットのすべてのイングレスおよびエグレス・トラフィックがログに記録されます。
テスト・シナリオ1: セカンダリDNSが停止している場合、プライマリ-DNSがFE-VM問合せに応答します
セカンダリDNSで障害が発生した場合は、DNS-NLBがトラフィックを転送しているため、プライマリDNSがFE-VMからの問合せに応答することを確認する必要があります。
-
次の図は、達成を目指すテスト・シナリオを示しています。
-
現在、すべてのインスタンスが稼働しています。まず、セカンダリDNSインスタンスを停止します。左上隅のハンバーガー・メニュー(≡)をクリックします。
- 「計算」をクリックします。
- 「インスタンス」をクリックします。
- インスタンスの横にあるチェックボックスを選択します。
- 「処理」をクリックします。
- 「停止」をクリックします。
- 「停止」をクリックします。
- これで、インスタンスは「停止済」状態になります。
-
FE-VMにアクセスし、問合せを実行してテストを実行します。そのためには、OCI Bastionサービスを使用します。左上隅のハンバーガー・メニュー(≡)をクリックします。
- 「アイデンティティとセキュリティ」をクリックします。
- 「要塞」をクリックします。
-
FEBastionをクリックします。
-
「セッションの作成」をクリックします。
-
次の情報を入力します
- セッション・タイプ: 「管理対象SSHセッション」を選択します。
- セッション名:セッションの名前を入力します。
- ユーザー名:ユーザー名を入力してくださいOracle Linuxインスタンスの場合、デフォルト・ユーザー名はopcです。
- コンピュート・インスタンス: FE-VMインスタンスを選択します。
- チュートリアル1: タスク2.1: SSHキー・ペアの生成で生成されたものと同じ公開キーを貼り付けます。
- 「セッションの作成」をクリックします。
-
セッションの作成後、3つのドットおよびSSHのコピー・コマンドをクリックします。
コマンドは次のようになります。
ssh -i <privateKey> -o ProxyCommand="ssh -i <privateKey> -W %h:%p -p 22 ocid1.bastionsession.oc1.eu-milan-1.amaaaaaaldij5aiaxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxzo2q7dka@host.bastion.eu-milan-1.oci.oraclecloud.com" -p 22 opc@10.1.0.5
-
OCIクラウド・シェルを開きます。
cd .ssh
コマンドを使用して、.ssh
ディレクトリに移動します。- SSHコマンドを貼り付けます。
<privateKey>
を秘密キー・ファイル名id_rsa
に置き換えてください。 - yesと入力します。
-
正常にログインされました。ここで、
host
コマンドを使用して、FE-VMからbe.orastage.com
へのテスト問合せを実行します。問合せが成功し、レスポンスが受信されたことを確認します。 -
リクエストを処理する正常なバックエンド・サーバーは1つのみ(プライマリ-DNS)であることがわかっています。ここでは、DNS問合せのフローを確認し、OCIサブネット・ログを使用してその問合せに応答したサーバーを確認します。
- ログをクリックします。
- リクエストは、FE-VMと同じサブネットに配置された転送エンドポイント(
10.1.0.6
)から、DNS-VCNのNLB IPアドレス(10.0.0.110
)に送信されました。 - 次に、NLB IPアドレス(
10.0.0.110
)から、リクエストがプライマリ-DNS (10.0.0.10
)に送信されます。
テストは正常に完了しました。プライマリ-DNSは、セカンダリ-DNSが停止した場合にDNS問合せを処理できました。
テスト・シナリオ2: プライマリDNSが停止すると、セカンダリDNSがFE-VM問合せに応答します
プライマリ-DNSで障害が発生した場合は、DNS-NLBがトラフィックを転送しているため、セカンダリ-DNSがFE-VMからの問合せに応答することを確認する必要があります。
-
次の図は、達成を目指すテスト・シナリオを示しています。
-
まず、プライマリ-DNSインスタンスを停止します。左上隅のハンバーガー・メニュー(≡)をクリックします。
- 「計算」をクリックします。
- 「インスタンス」をクリックします。
- インスタンスの横にあるチェックボックスを選択します。
- 「処理」をクリックします。
- 「停止」をクリックします。
- 「停止」をクリックします。
- これで、インスタンスは「停止済」状態になります。
-
セカンダリDNSインスタンスを開始します。
- インスタンスの横にあるチェックボックスを選択します。
- 「処理」をクリックします。
- 「スタート」をクリックします
- 「スタート」をクリックします
- これで、インスタンスは「実行中」状態になります。
-
次に、FE-VMにアクセスし、問合せを実行してテストを実行します。そのためには、OCI Bastionサービスを使用します。左上隅のハンバーガー・メニュー(≡)をクリックします。
- 「アイデンティティとセキュリティ」をクリックします。
- 「要塞」をクリックします。
-
FEBastionをクリックします。
-
「セッションの作成」をクリックします。
-
次の情報を入力します
- セッション・タイプ: 「管理対象SSHセッション」を選択します。
- セッション名:セッションの名前を入力します。
- ユーザー名:ユーザー名を入力してくださいOracle Linuxインスタンスの場合、デフォルト・ユーザー名はopcです。
- コンピュート・インスタンス: FE-VMインスタンスを選択します。
- チュートリアル1: タスク2.1: SSHキー・ペアの生成で生成されたものと同じ公開キーを貼り付けます。
- 「セッションの作成」をクリックします。
-
セッションの作成後、3つのドットおよびSSHのコピー・コマンドをクリックします。
コマンドは次のようになります。
ssh -i <privateKey> -o ProxyCommand="ssh -i <privateKey> -W %h:%p -p 22 ocid1.bastionsession.oc1.eu-milan-1.amaaaaaaldij5axxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxzo2q7dka@host.bastion.eu-milan-1.oci.oraclecloud.com" -p 22 opc@10.1.0.5
-
OCIクラウド・シェルを開きます。
cd .ssh
コマンドを使用して、.ssh
ディレクトリに移動します。- SSHコマンドを貼り付けます。
<privateKey>
を秘密キー・ファイル名id_rsa
に置き換えてください。 - yesと入力します。
-
正常にログインされました。ここで、
host
コマンドを使用して、FE-VMからbe.orastage.com
へのテスト問合せを実行します。問合せが成功し、レスポンスが受信されたことを確認します。 -
リクエストを処理する正常なバックエンド・サーバーは1つのみ(セカンダリDNS)であることがわかっています。ここでは、DNS問合せのフローを確認し、OCIサブネット・ログを使用してその問合せに応答したサーバーを確認します。
- ログをクリックします。
- リクエストは、FE-VMと同じサブネットに配置された転送エンドポイント(
10.1.0.6
)から、DNS-VCNのNLB IPアドレス(10.0.0.110
)に送信されました。 - 次に、NLB (
10.0.0.110
)から、リクエストがセカンダリDNS (10.0.0.20
)に送信されます。
テストは正常に完了しました。セカンダリDNSは、プライマリDNSが停止した場合にDNS問合せを処理できます。
テスト・シナリオ3: セカンダリDNSが停止しているときにプライマリ-DNSがBE-VM問合せに応答する
セカンダリDNSで障害が発生した場合は、DNS-NLBがトラフィックを転送しているため、プライマリDNSがBE-VMからの問合せに応答することを確認する必要があります。
-
次の図は、達成を目指すテスト・シナリオを示しています。
-
現在、すべてのインスタンスが稼働しています。まず、セカンダリDNSインスタンスを停止します。左上隅のハンバーガー・メニュー(≡)をクリックします。
- 「計算」をクリックします。
- 「インスタンス」をクリックします。
- インスタンスの横にあるチェックボックスを選択します。
- 「処理」をクリックします。
- 「停止」をクリックします。
- 「停止」をクリックします。
- これで、インスタンスは「停止済」状態になります。
-
次に、BE-VMにアクセスし、問合せを実行してテストを実行します。そのためには、OCI Bastionサービスを使用します。左上隅のハンバーガー・メニュー(≡)をクリックします。
- 「アイデンティティとセキュリティ」をクリックします。
- 「要塞」をクリックします。
-
BEBastionをクリックします。
-
「セッションの作成」をクリックします。
-
次の情報を入力します
- セッション・タイプ: 「管理対象SSHセッション」を選択します。
- セッション名:セッションの名前を入力します。
- ユーザー名:ユーザー名を入力してくださいOracle Linuxインスタンスの場合、デフォルト・ユーザー名はopcです。
- コンピュート・インスタンス: BE-VMインスタンスを選択します。
- チュートリアル1: タスク2.1: SSHキー・ペアの生成で生成されたものと同じ公開キーを貼り付けます。
- 「セッションの作成」をクリックします。
-
セッションの作成後、3つのドットおよびSSHのコピー・コマンドをクリックします。
コマンドは次のようになります。
ssh -i <privateKey> -o ProxyCommand="ssh -i <privateKey> -W %h:%p -p 22 ocid1.bastionsession.oc1.eu-milan-1.amaaaaaaldij5axxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxuk7pafla@host.bastion.eu-milan-1.oci.oraclecloud.com" -p 22 opc@10.2.0.5
-
OCIクラウド・シェルを開きます。
cd .ssh
コマンドを使用して、.ssh
ディレクトリに移動します。- SSHコマンドを貼り付けます。
<privateKey>
を秘密キー・ファイル名id_rsa
に置き換えてください。 - yesと入力します。
-
正常にログインされました。ここで、
host
コマンドを使用して、BE-VMからfe.orastage.com
へのテスト問合せを実行します。問合せが成功し、レスポンスが受信されたことを確認します。 -
リクエストを処理する正常なバックエンド・サーバーは1つのみ(プライマリ-DNS)であることがわかっています。ここでは、DNS問合せのフローを確認し、OCIサブネット・ログを使用してその問合せに応答したサーバーを確認します。
- ログをクリックします。
- リクエストは、BE-VMと同じサブネットに配置された転送エンドポイント(
10.2.0.6
)から、DNS-VCNのNLB IPアドレス(10.0.0.110
)に送信されました。 - 次に、NLB (
10.0.0.110
)から、リクエストがプライマリ-DNS (10.0.0.10
)に送信されます。
テストは正常に完了しました。プライマリ-DNSは、セカンダリ-DNSが停止した場合にDNS問合せを処理できました。
テスト・シナリオ4: プライマリDNSが停止すると、セカンダリDNSがBE-VM問合せに応答します
プライマリ-DNSで障害が発生した場合、セカンダリ-DNSがBE-VMからの問合せに応答することを確認する必要があります。これは、DNS-NLBがトラフィックを転送しているためです。
-
次の図は、達成を目指すテスト・シナリオを示しています。
-
まず、プライマリ-DNSインスタンスを停止します。左上隅のハンバーガー・メニュー(≡)をクリックします。
- 「計算」をクリックします。
- 「インスタンス」をクリックします。
- インスタンスの横にあるチェックボックスを選択します。
- 「処理」をクリックします。
- 「停止」をクリックします。
- 「停止」をクリックします。
- これで、インスタンスは「停止済」状態になります。
-
セカンダリDNSインスタンスを開始します。
- インスタンスの横にあるチェックボックスを選択します。
- 「処理」をクリックします。
- 「スタート」をクリックします
- 「スタート」をクリックします
- これで、インスタンスは「実行中」状態になります。
-
次に、BE-VMにアクセスし、問合せを実行してテストを実行します。そのためには、OCI Bastionサービスを使用します。左上隅のハンバーガー・メニュー(≡)をクリックします。
- 「アイデンティティとセキュリティ」をクリックします。
- 「要塞」をクリックします。
-
BEBastionをクリックします。
-
「セッションの作成」をクリックします。
-
次の情報を入力します
- セッション・タイプ: 「管理対象SSHセッション」を選択します。
- セッション名:セッションの名前を入力します。
- ユーザー名:ユーザー名を入力してくださいOracle Linuxインスタンスの場合、デフォルト・ユーザー名はopcです。
- コンピュート・インスタンス: BE-VMインスタンスを選択します。
- チュートリアル1: タスク2.1: SSHキー・ペアの生成で生成されたものと同じ公開キーを貼り付けます。
- 「セッションの作成」をクリックします。
-
セッションの作成後、3つのドットおよびSSHのコピー・コマンドをクリックします。
コマンドは次のようになります。
ssh -i <privateKey> -o ProxyCommand="ssh -i <privateKey> -W %h:%p -p 22 ocid1.bastionsession.oc1.eu-milan-1.amaaaaaaldij5aia73xcxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxa@host.bastion.eu-milan-1.oci.oraclecloud.com" -p 22 opc@10.2.0.5
-
OCIクラウド・シェルを開きます。
cd .ssh
コマンドを使用して、.ssh
ディレクトリに移動します。- SSHコマンドを貼り付けます。
<privateKey>
を秘密キー・ファイル名id_rsa
に置き換えてください。 - yesと入力します。
-
正常にログインされました。ここで、
host
コマンドを使用して、BE-VMからfe.orastage.com
へのテスト問合せを実行します。問合せが成功し、レスポンスが受信されたことを確認します。 -
リクエストを処理する正常なバックエンド・サーバーは1つのみ(セカンダリDNS)であることがわかっています。ここでは、DNS問合せのフローを確認し、OCIサブネット・ログを使用してその問合せに応答したサーバーを確認します。
- ログをクリックします。
- リクエストは、BE-VMと同じサブネットに配置された転送エンドポイント(
10.2.0.6
)から、DNS-VCNのNLB IPアドレス(10.0.0.110
)に送信されました。 - 次に、NLB (
10.0.0.110
)から、リクエストがセカンダリDNS (10.0.0.20
)に送信されます。
テストは正常に完了しました。プライマリ-DNSが停止した場合、セカンダリ-DNSはDNS問合せを処理できました。
次のステップ
このチュートリアルでは、OCIネットワーク・ロード・バランサとセカンダリDNSサーバーを統合して、OCIで設定された単純なクライアント・サーバーBIND9 DNSを強化し、プライマリ・サーバーに障害が発生した場合の継続的なサービスの可用性を確保します。
これまで、orastage.com
ドメイン問合せを処理するための高パフォーマンスで信頼性の高いDNSアーキテクチャを開発しました。ただし、OraStage会社には、oraclevcn.com
やoraclecloud.com
などのOCIネイティブ・ドメイン名も解決する必要があり、そのために追加のステップが必要です。次のチュートリアルのOCI DNSを使用したネイティブ・ドメインの解決では、この構成を実現する方法を説明します。
承認
- 作成者 - Anas abdallah (クラウド・ネットワーキング・スペシャリスト)
その他の学習リソース
docs.oracle.com/learnの他のラボを確認するか、Oracle Learning YouTubeチャネルで無料のラーニング・コンテンツにアクセスしてください。また、education.oracle.com/learning-explorerにアクセスしてOracle Learning Explorerになります。
製品ドキュメントについては、Oracle Help Centerを参照してください。
Implement High Availability on BIND9 Domain Name System in Oracle Cloud Infrastructure
G14455-02
Copyright ©2025, Oracle and/or its affiliates.