LT_06_Private Endpoint_DNS_CNAME

113 Views

October 23, 25

スライド概要

profile-image

IT界隈に生息してるよ!★

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

(ダウンロード不可)

関連スライド

各ページのテキスト
1.

仲良くなりたい、PRIVATE ENDPOINT DNS CNAME 編 yamapan © 2025 yamapan. All rights reserved.

2.

卒 新卒SIer にて インフラ系SE 4年 yamapan ◆ 2016 → 外資ITベンダーにてクラウド系テクサポリード 3年 → 外資ITベンダーにてポストセールスSE 4年目 ◆ 主に Azure ◆ 資格 ◆ IPA いくつか ◆ AZ系資格コンプリート ◆ Microsoft Certified Trainer など ◆ 最近はセキュリティ系に興味 ◆Qiita https://qiita.com/aktsmm ◆ライフワーク: キャリア相談・メンター、転職エージェント、講師業等、コミュニティ運営 ◆趣味 最近エアロバイク その他、麻雀、ポーカー、Fortnite、高校野球観戦、バイク、お金の話全般、邦 楽ロック © 2025 yamapan. All rights reserved.

3.

➢ 閉域化といえば、Private Endpoint ➢ Private Endpoint と言えば名前解決、DNS、 CNAME お客様と会話がもとネタ

4.

基礎知識:名前解決とは 名前解決とは、人間がわかりやすい「名前(例:www.example.com)」を、コンピュータが通信で使う 「実際の識別子(例:IPアドレス 192.0.2.1)」に変換する仕組み。 例) www.example.com → Aレコード → 192.0.2.1 • DNSサーバーにはDNS ゾーンがあり、 A レコードや AAAA に IP レコードに IP アドレスが登録されている。 • クライアントから問い合わせのDNS クエリをDNSリゾル バーに投げている(再帰問合せ)。 • DNSリゾルバー(フルリゾルバー)は各DNSサーバーに対し て問い合わせを行う(非再帰問合せ/反復問い合わせ)。

5.

基礎知識:CNAME とは CNAME (Canonical Name) は、DNSにおける「別名(エイリアス)」を定義するレコード Private Endpoint でも使われますー。 例) www.example.com → A : 192.0.2.10 例) www.example.com → CNAME: web.example.net → A : 192.0.2.10

6.

はじめての名前解決 したことない方は、はじめての名前解決をしてみよう! Win + R → “PowerShell” or “cmd” とか、ターミナルを開いて!!! nslookup www.example.com • DNSサーバーにはDNS ゾーンがあり、 A レコードや AAAA に IP レコードに IP アドレスが登録されている。 • クライアントから問い合わせのDNS クエリをDNSリゾル バーに投げている(再帰問合せ)。 • DNSリゾルバーは各DNSサーバーに対して問い合わせを 行う(非再帰問合せ/反復問い合わせ)。

7.

こっから本題!

8.

では問題です。 CNAME レコードの解決は一旦クライアントまで返されるのか??? 出典:https://dev.classmethod.jp/articles/route53-resolverdnsfirewall-cname/

9.

検証してみた Azure で CNAME といえば、Private Endpoint ですね!!! Private Endpoint の名前解決は以下のように CNAME が使われる • プライベート DNS ゾーンの名前解決ができないとき → Global IP が返却される • FQDN (apim-te.azure-api.net) の名前解決 → CNAME (apim-te.privatelink.azure-api.net) チェーン解決 → Aレコード返却(Global IP) • プライベート DNS ゾーンの名前解決ができるとき → Private IP が返却される • FQDN (apim-te.azure-api.net) の名前解決 → CNAME (apim-te.privatelink.azure-api.net) チェーン解決 → Aレコード返却(Private IP) api management である ことに深い意味はないです なんでもOK (Azure じゃなくても・・・)

10.

検証してみた <状況> デフォルトDNSの設定でPrivate Endpoint の名前解決ができる状態。 DNSフォワーダーとして .privatelink.azure-api.net を Google Public DNS 8.8.8.8を設定。 この状況で FQDN (apim-te.azure-api.net) の名前解決するとどうなる?? ※ apim-te.azure-api.net →CNAME:apim-te.privatelink.azure-api.net → Aレコード 返却 <仮説> クライアントに一度 CNAME が返却され、クライアントから privatelink の CNAME クエリがされるなら... → Global IP(13.78.106.99) が返ってくる .privatelink フォワーダー クライアントには最終解決結果だけが返却されるなら... → Private IP (10.2.0.6) が返ってくる 基本的にこっち

11.

ポンチ絵拡大 この状況で FQDN (apim-te.azure-api.net) の名前解決するとどうなる?? ※ apim-te.azure-api.net →CNAME:apim-te.privatelink.azure-api.net → Aレコード 返却 .privatelink フォワーダー 基本的にこっち

12.

結果は・・・どっち!? <仮説> ➢ クライアントに一度 CNAME が返却され、クライアントから privatelink の CNAME クエリがされるなら... → Global IP(13.78.106.99) が返ってくる ➢ クライアントには最終解決結果だけが返却されるなら... → Private IP (10.2.0.6) が返ってくる

13.

結果は? 結論としては、Private IP が返ってくる パケットキャプチャ 一度のやりとりで完結してる(ハイライト部分)

14.

まとめ • CNAMEを挟んだ名前解決(※)でも、クライアント自身がCNAMEをさ らにクエリーする動作は行わない。 • 再帰問合せでは、リゾルバーがCNAMEを辿って最終的なA/AAAAレ コードを取得し、最終的な結果のみを返す。 • このときレスポンスにはCNAME情報も含まれるが、クライアントは最終 的な解決結果をそのまま利用できる。 ※通常用いられる再帰問合せクエリを投げた場合

15.

おまけの問題 Client → AD(DNSサーバ) ---条件付きフォワーダー → 上位DNS → 世界の権威DNSサーバ という構成のとき、フルリゾルバとして振舞うのはドイツ!? 1.AD(DNSサーバー) 2.上位DNS 3.世界の権威DNSサーバー

16.

参考 今回のネタを記事にした Azure で学ぶ CNAME - Private Endpoint 名前解決 #dns Qiita オススメの本! DNSの教科書 https://amzn.to/4pLgGeE

17.

用語集 • ME-ID DS :Microsoft Entra ID Domain Services。オンプレ AD 不要で Azure 上にマネージドなドメインコントローラ機能を提供。今回は ME-ID DS から 168.63.129.16 にフォワーダー設定を入れている。 • Private Endpoint :Azure の PaaS リソースへ VNet 経由でプライベート IP でアクセスできる仕組み。サービスをインターネットに公開せず安全に 利用できる。閉域化とは切り離せない。 • 168.63.129.16 :Azure 内部で使われる特殊な仮想IP (VIP)。DNS、DHCP、Health probe などの基盤通信に利用。Azure VMからは常にこのIPが見える。 対象 VNet のプライベート DNS ゾーン の名前解決が可能。 • APIM :Azure API Management。APIの公開・認証・スロットリング・監視などを統合管理するPaaSサービス。内外のアプリケーション間のAPIゲート ウェイとして機能。 • Google DNS :Google Public DNS (8.8.8.8 / 8.8.4.4)。無料で利用できる大規模再帰 DNS サービス。 高速・信頼性の高い名前解決を提供。 • 閉域化 :インターネットを経由せず、専用線やVPNなどの閉じたネットワーク内で通信すること。セキュリティや遅延の安定性を重視した設計で用い られる。Private IP での通信が可能。 • Private IP :RFC1918で定義された、内部ネットワーク専用のIPアドレス。直接インターネットには出られない。 例: 10.0.0.0/8、172.16.0.0/12、192.168.0.0/16 (家庭LANの「192.168.1.x」が典型例)。 • Global IP :インターネットに直接到達可能な一意のIPアドレス。外部公開用のリソースで利用される。例: 8.8.8.8(Google DNS)、13.78.106.99 (Azure Public IP)など。 • Resolve-DnsName :Windows PowerShell のコマンドレット。A/AAAAレコードを同時に問い合わせ、詳細な結果を返す。 -Type パラメータでレコード 種類を指定可能で、NRPTやOSのDNS設定を反映する。(今回の環境ではスクリプト rdn で alias を設定している。PowerShell スクリプト こちら) • Add-DnsClientNrptRule :Windows の NRPT (Name Resolution Policy Table) に新しいルールを追加するコマンド。 特定のドメイン名空間に対して使用する DNS サーバや暗号化設定を指定できる。 今回は Client 端末に DNS フォワーダー のような設定を入れるために利用。 参考:Windows Client OS で条件付きフォワーダー的なことをやってみる • Get-DnsClientNrptPolicy :現在クライアントに適用されている NRPT のポリシーを一覧表示するコマンド。 Add/Remove したルールが正しく反映されているかの確認に使う。 • nslookup :古くからあるDNS確認ツール。基本は再帰問い合わせで、対話モードや「set norecurse」で非再帰も可能。 OSの DNS クライアントを通さ ず独自に問い合わせるため、NRPTなどのポリシーは無視することがある。