はじめに
Azure Private Linkを使用前提で色々と構築をしていた際
注意点について勉強したので備忘録として書き記します。
割り当てられるIPアドレス
本来パブリックIPでアクセスしなければならないPaaSサービスですが、
Private Linkを使用することでプライベートIPにて通信可能にしてくれます。
しかし、この割り当てられるIPアドレスは次のような留意点があります。
サブネットからの動的プライベート IP アドレスが割り当てられます。
きちんとFQDNで名前解決させてあげる必要があります。
※私はこの仕様に気づかず、静的に無理やり解決させていたことがあったりします(しばらく使えていましたが、よくないやり方)
Azure DNS(168.63.129.16)
通信例の図を見るとわかりますが、
Azure DNSと通信してからPrivate DNSと通信します。
そして、このAzure DNSはAzure上からの名前解決リクエストのみ応答するようになっています。
Azure では、パブリック DNS 名の解決と共に、同じ仮想ネットワークまたはクラウド サービス内に存在する VM とロール インスタンス用に内部の名前解決が提供されます。
DNSフォワーダ
Azure DNSの仕様があるため、オンプレからの通信をする際はDNSフォワーダが必須です。
オンプレ環境から参照しているDNSがAzure上に存在する場合は、
Azure上のDNSからフォワーダでAzure DNS(168.63.129.16)を指定しれあげればOKです。
逆にオンプレミス側のDNSを参照していた場合は、直接Azure DNS(168.63.129.16)をフォワーダ登録しても名前解決できません。そのためオンプレDNSの参照先用にAzure上へDNSサーバ※をたて、Azure上のDNSサーバからAzureDNSを参照させます。
※Azure上のDNSはいくつか選択肢があります
- VM上にDNSを構築する
- Azureプライベートリゾルバーを使う
- Azure FWのDNSプロキシを使う
複数のフォワーダが登録されている場合
Private Linkを使う際は実質フォワーダが必須になるわけですが、
既にフォワーダとして登録しているサーバがあった場合は下記を留意しておく必要があります。
フォワーダの場合
フォワーダ
⇒無条件にフォワードする設定
・クエリ応答までの待機時間:既定値3秒
・フォワーダ全体に対しての待機時間:既定値8秒
1つ目のDNSへ3秒⇒2つ目のDNSへ3秒⇒・・・4台目は到達不可能
条件付きフォワーダの場合
条件付きフォワーダ
⇒指定したドメイン名の名前解決を指定フォワーダへフォワードする設定
・クエリ応答までの待機時間:既定値5秒
・フォワーダ全体に対しての待機時間:既定値8秒
1つ目のDNSへ5秒⇒2つ目のDNSへ5秒⇒・・・3台目は到達不可能
既存環境の設定値は要チェックです。