チュートリアル一覧に戻る : Oracle Cloud Infrastructure チュートリアル
OCIではプライベートDNSが使用可能で独自のプライベートDNSドメイン名を使用し、関連付けられたゾーンおよびレコードを管理して、VCN内またはVCN間で実行されているアプリケーションなどのホスト名で名前解決を行えます。
プライベートDNSのゾーン、クエリ、およびリゾルバーエンドポイントは無料です。
※無料トライアル環境ではプライベートDNSビューの作成はできないのでご注意ください。
所要時間 : 約30分
前提条件 :
- Oracle Cloud Infrastructure で、作成済みのVCNおよびLinuxインスタンスがあること
注意 : チュートリアル内の画面ショットについては Oracle Cloud Infrastructure の現在のコンソール画面と異なっている場合があります
1. PrivateDNSとは?
概要
プライベートDNSはVCNの名前解決を行います。
VCNを作る際にDHCPオプションをオンにしていると、デフォルトでプライベートビューとプライベートDNSゾーンがあり、インスタンスを作成したときに「*.oraclevcn.com
」というFQDNが割り当てられています。
DNSリゾルバは問い合わせを受けるとビュー、ゾーン、転送ルール、インターネットDNSの順に応答を返します。
今回のチュートリアルでは新たにDNSゾーンを作成し、「aoyama.com
」という任意のドメイン名を付けて名前解決を行います。
用語説明
-
DNSゾーンレコード : DNSに定義するレコード。AレコードにはIPアドレスとホスト名の関連付けを定義する。Aレコード以外も定義可能。
-
プライベートDNSゾーン : hogehoge.comなど、ユーザーが定義した任意のドメイン名に属するレコードの集合。VCN内のプライベートIPなどVCN内のリソースを定義できる。
-
プライベートDNSビュー : プライベートDNSゾーン情報をまとめたもの。
-
プライベートDNSリゾルバ : DNSクエリに対して名前解決を行う仕組み。デフォルトではVCNのプライベートDNSビューだけだが、他の同リージョンのプライベートDNSビュー、他リージョンのプライベートDNSやオンプレミスのDNSと連携できる。
ポリシーの付与
必要なIAMポリシー 管理者グループ内のユーザーの場合、必要な権限を持っています。ユーザーが管理者グループに属していない場合、次のようなポリシーにより、特定のグループがプライベートDNSを管理できます。
Allow group <GroupName> to manage dns in tenancy where target.dns.scope = 'private'
2. 同一リージョン・同一VCNでの名前解決
環境構築
まず下記のように同一リージョン・同一VCN内にインスタンスを構成します。インスタンスの名前は自由につけてもらって構いません。
この章では赤線で囲ったaoyama.comという名前の独自のプライベートDNSゾーンを作成してDNSレコードを追加します。
DNSゾーンの追加
-
コンソールメニューから [ネットワーキング] → [DNS管理] → [ゾーン]
-
[プライベート・ゾーン]タブを選択し、[ゾーンの作成]
- ゾーン名
aoyama.com
- プライベートビュー: Tokyo_VCNという名前のプライベートビューに
aoyama.com
のゾーンを追加
- ゾーン名
DNSレコードの追加
- 新しく作成した[aoyama.comゾーン] → [レコードの追加]を押す
- ここからAoyama_1_Instanceのレコードを追加していく。
- レコード型 : A – Ipv4アドレス
- 名前 : soccer
- TTL : 30
- RDATAモード : 基本
- ADDRESS : Aoyama_1_Instanceのプライベートアドレス
- 同様にAoyama_2_Instanceについてもレコードを追加する
- 合計二つのプライベートビューとその中にAレコードのゾーン情報が入っていることを確認した後、[変更の公開]を押してゾーン情報を更新
Aoyama_1_instanceでFQDNを確認する
以下のコマンドを打ちAoyama_1_instanceのホスト名とIPアドレスを確認します。
cat /etc/hosts
続いて以下のコマンドを打ちデフォルトのゾーン情報と作成したゾーン情報は同じIPアドレスのAレコードが登録されていることを確認します。
host <FQDN名 or Aレコードに追加した名前>
Aoyama_2_instanceからAoyama_1_InstanceへFQDNで名前解決をする
nslookupで名前解決が行われていることを確認します。
nslookup <Aoyama_1_Instanceの作成したAレコード名>
以上で、同一リージョン・同一VCNでの名前解決は完了です。
Note サーバー名だけで名前解決をする場合
検索ドメインはデフォルトのVCNドメイン名しかないため、nslookupなどでsoccerというサーバー名だけで名前解決を行えません。そのため検索ドメインにaoyama.comというドメインを追加する必要があります。ただし、DHCPオプションのセットに指定できる検索ドメインは1つのみです。
-
[VCN] → [DHCPオプション] → デフォルトのDHCPオプションを[編集]
-
カスタム検索ドメインを選択し、
aoyama.com
のゾーン情報を追加して[変更の保存] -
インスタンスを再起動して設定を反映させます。
DNSリゾルバの設定は/etc/resolv.confにあり、検索ドメインに「aoyama.com
」が追加されていることを確認します。
cat /etc/resolv.conf
Aoyama_2_instanceからAoyama_1_Instanceのサーバー名で名前解決を行う。
$ nslookup soccer
Server: 169.254.169.254
Address: 169.254.169.254#53
Non-authoritative answer:
Name: soccer.aoyama.com
Address: 10.0.0.64
サーバー名だけで名前解決を行えました。
3. 同一リージョン・異なるVCNでの名前解決
環境構築
続いて下記のように新しくVCNとインスタンスを作成した後、VCN同士をローカルピアリングゲートウェイで接続します。ここではAkasaka_VCNを新しく作りインスタンスを作成後、akasaka.comという名前のプライベートゾーンを作成し、インスタンスのゾーン情報を追加します。
AoyamaVCNのプライベートDNSリゾルバは自身のプライベートビューだけを参照しているため、新しく作ったAkasaka_VCNの赤線で囲ったプライベートビューを参照する設定を行います。
DNSリゾルバの設定
VCNの詳細から[DNSリゾルバ]→デフォルト・プライベートビューを確認後、[関連付けられたプライベートビューの管理]から相手のプライベートビューを追加します。
同様に、もう一つのDNSリゾルバに対しても同じ作業を行い、両方のDNSリゾルバがお互いのプライベートビューを参照していることを確認してください。
疎通確認
デフォルトのセキュリティ・ルールではpingが許可されてないため、それぞれのサブネットのセキュリティリストに以下のICMPタイプ8のIngressルールを追加しておきます。
Source | Protocol | Type |
---|---|---|
10.0.0.0/16 | ICMP | 8 |
10.1.0.0/16 | ICMP | 8 |
Aoyama_1_instanceからakasaka_1へping疎通確認をします。
ここでpingが通らない場合、ローカルピアリングを見直して疎通を確認してください。
ping <相手のプライベートIPアドレス> -c 3
異なるVCNにあるインスタンスの名前解決
疎通を確認した後、お互いのインスタンスについて名前解決を行ってください。
Aoyama_1_instanceからAkasaka_1へnslookup
$ nslookup rugby.akasaka.com
Server: 169.254.169.254
Address: 169.254.169.254#53
Non-authoritative answer:
Name: rugby.akasaka.com
Address: 10.1.0.107
Akasaka_1 からAoyama_1_instanceへnslookup
$ nslookup soccer.aoyama.com
Server: 169.254.169.254
Address: 169.254.169.254#53
Non-authoritative answer:
Name: soccer.aoyama.com
Address: 10.0.0.64
DNSリゾルバは相手のプライベートビューを参照して名前解決を行えました。
以上で、この章の作業は終了です。
チュートリアル一覧に戻る : Oracle Cloud Infrastructure チュートリアル