0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Azure】DNSフォワード用のサーバーを作る

Last updated at Posted at 2023-06-07

概要

前回記事の続きみたいなもの。
プライベートエンドポイントの作成により、Azure OpenAIにプライベートIPアドレス持たせてリクエストを処理させることに成功したものの、名前解決の問題が残っていた。

AzureのDNSを使っているのであれば何も問題はないのですが、
オンプレミスのDNSを使っている場合、
単純にAzure OpenAIのホスト名(***.oepnai.azure.com)を名前解決しても、
プライベートエンドポイントのプライベートIPアドレスは帰ってこない。
加えて、azure.comドメインなので、こちらのDNSサーバーに名前解決を設定することもできないので。

ならばどうするかというと、以下の3点がポイントになる。

  • AzureのプライベートDNSゾーンを使って、***.openai.azure.comのプライベートIPアドレスの名前解決を登録
  • Azure上に、AzureのDNS(プライベートDNSゾーン)を参照するDNSサーバーを作成
  • オンプレミスのDNSにDNSフォワーディングの設定を行い、Azure上に作成したDNSサーバーにフォワーディングをかける

全体構成図

いろいろやり方はあると思うが、ひとまず下記のような構成で検証する。
image.png

設定

プライベート DNS ゾーンの設定

プライベートエンドポイントを作成するときに、プライベートDNSゾーンと統合するを設定しておくと、自動的に作成されているはず。
image.png

簡単に言えば、仮想ネットワーク内のみに適用されるDNSレコードの設定。
AzureのDNSを参照する場合、ここに登録したレコードを優先して名前解決が行われます。

プライベートDNSゾーンに名前解決が必要なレコードを追加しておく。
image.png

名前解決を試す

プライベートDNSゾーンが含まれる仮想ネットワークに存在する仮想マシンから、
nslookupコマンドを使ってDNSレコードの設定が反映されていることを確認する。
AzureのDNS(168.63.129.16)を参照して名前解決を試す。

# nslookup
> server  168.63.129.16
Default server: 168.63.129.16
Address: 168.63.129.16#53
> ***.openai.azure.com
Server:         168.63.129.16
Address:        168.63.129.16#53

### プライベートDNSゾーンに設定した結果が帰ってくることを確認

DNSフォワード用サーバーの設定

今回はnamed-chrootでDNSサーバーを構築します。
インストールと簡単な初期設定を行う

# dnf install bind bind-chroot
# cp /etc/named.conf /var/named/chroot/etc/
# chown -R named:named /var/named/chroot/var/named/
# chown root:named /var/named/chroot/etc/named.conf
# vi /var/named/chroot/etc/named.conf

named.confを修正

named.conf
// コメントアウトして外部からのLISTENを受けるける
// listen-on port 53 { 127.0.0.1; };

// IPv6はとりあえず無効化
listen-on-v6 { none;};

// DNSフォワード用なので再帰問合せは無効
// recursion yes;

// DNSSEC関連は無効
//dnssec-validation yes;
dnssec-enable no;
dnssec-validation no;

// DNSフォワード設定を追加
zone "azure.com" {
        type forward;
        forward only;
        forwarders {
                168.63.129.16;
        };
};

named-chrootを起動

# systemctl start named-chroot

名前解決を試す

動作を検証する。
nslookupで自身を参照するようにして、プライベートDNSゾーンで設定したホストの名前解決がプライベートIPアドレスでできていればOK。

# nslookup
> server localhost
Default server: localhost
Address: 127.0.0.1#53
> ***.openai.azure.com
Server:         localhost
Address:        127.0.0.1#53

### プライベートDNSゾーンに設定した結果が帰ってくることを確認

オンプレミスDNSの設定

オンプレミスDNSにも、DNSフォワーディングの設定を行う。

# vi /var/named/chroot/etc/named.conf

named.confを修正

named.conf
// DNSフォワード設定を追加
forwarders {
        [作成したフォワード用DNSののIPアドレス];
};

必要に応じて特定ゾーンに設定しても良い

設定を反映

# systemctl restart named-chroot

名前解決を試す

オンプレミスDNSからプライベートDNSゾーンを参照した名前解決ができることを確認する。

# nslookup
> server localhost
Default server: localhost
Address: 127.0.0.1#53
> ***.openai.azure.com
Server:         localhost
Address:        127.0.0.1#53

### プライベートDNSゾーンに設定した結果が帰ってくることを確認
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?