トラフィック分析が有効化されているリージョンおよび仮想プライベートクラウド (VPC) のみで、Simple Log Service (SLS) へのログ保存が可能です。ログ保存を有効化すると、自動的にトラフィック分析も有効化されます。トラフィック分析を無効化した場合、ログデータは一切収集されません。詳細については、「ネットワークトラフィック分析の有効化または無効化」をご参照ください。
適用範囲/利用シーン
コンプライアンスおよびセキュリティ上の要件により、組織ではネットワークログの保存および分析が義務付けられることが多くあります。プライベートゾーンの名前解決ログは、お客様のプライベートネットワーク内でドメイン名がどのように使用されているかを詳細に記録します。これにより、ユーザー活動の監査や、潜在的なセキュリティリスクの早期検出が可能になります。
プライベートゾーン名前解決ログ
プライベートゾーン名前解決ログは、特定の Alibaba Cloud アカウントに関連付けられたすべての仮想プライベートクラウド (VPC) 内のエンドポイントから発生する DNS クエリおよび応答活動を記録します。各ログエントリには、リージョン、VPC ID、送信元 IP アドレス、宛先 IP アドレス(DNS サーバーのアドレス)、クエリ対象のドメイン名、RecordType、応答内容などの情報が含まれます。クエリ対象のドメイン名には、PrivateZone で設定された権限のあるプライベートドメイン名と、外部のパブリックドメイン名の両方が含まれます。マルチアカウントおよびクロスリージョン環境におけるログ収集・管理・分析の簡素化のため、Alibaba Cloud DNS および Simple Log Service (SLS) は、ログ監査アプリケーションでワンクリックログ機能を提供しています。
プライベートゾーン名前解決ログは、内部エンドポイントからのドメイン名クエリおよび応答を記録します。クエリ対象のドメイン名は、以下の 4 つのカテゴリに分類されます。
1. 組み込みの権限のあるドメイン名
PrivateZone は、Alibaba Cloud の仮想プライベートクラウド (VPC) 環境に基づくプライベート DNS サービスを提供します。このサービスにより、1 つ以上の VPC 内でカスタムのプライベートドメイン名を IP アドレスにマッピングできます。これらのカスタムプライベートドメイン名を用いて、ECS ホスト名、SLB インスタンス、OSS バケットなど、VPC 内の Alibaba Cloud リソースを管理できます。これらのプライベートドメイン名は VPC 外部からはアクセスできません。また、専用回線または VPN を使用して VPC を従来のデータセンターと接続することも可能です。これにより、データセンターと VPC 間でのプライベートドメイン名を介したリソース共有が実現します。
2. クラウドプロダクトインスタンスのドメイン名
クラウド基盤の DNS は、Alibaba Cloud プロダクトから提供されるすべてのインスタンスのドメイン名を解決します。
3. 転送された外部ドメイン名
転送機能により、VPC からのドメイン名解決要求をお客様のデータセンターの DNS システムに転送できます。
4. 再帰的に解決されたパブリックドメイン名
パブリック権威 DNS サーバーとは、「example.com」などの特定のパブリックドメイン名に対して、ドメインレジストリまたはドメイン指定業者で設定された DNS サーバーです。これらのサーバーは、ルートドメイン、トップレベルドメイン、その他のドメイン階層の権威データを管理および解決します。パブリック権威 DNS サーバーは、自らが管理するドメイン名のみを解決し、それ以外のドメイン名に対する要求は拒否します。
プライベートゾーン名前解決ログのフィールド
1. リクエストログ
パラメーター | 説明 | 例 |
dns_msg_flags | DNS メッセージフラグ。
| RD |
dns_msg_id | DNS クエリの固有 ID。 | 30914 |
dst_addr | 宛先 IP アドレス。 | 100.100.2.136 |
dst_port | 宛先ポート。 | 53 |
ecs_hostname | ECS ホスト名。 | iZbp1b1mx9fhe34k***** |
ecs_id | ECS インスタンス ID。 | i-bp1b1mx9fhe34kh**** |
module_type | ログを生成したモジュール。リクエストログの場合、常に
| GLOBAL |
query_name | クエリ対象のドメイン名。 | www.example.com. |
query_type | クエリの RecordType(例:A、AAAA、CNAME、TXT、MX)。 | A |
region_id | リージョン ID。 | cn-shanghai |
src_addr | 送信元 IP アドレス。 | 192.168.0.1 |
src_port | 送信元ポート。 | 42071 |
transport | トランスポートプロトコル。 | UDP |
user_id | Alibaba Cloud アカウント ID。 | 139749398683**** |
vpc_id | VPC ID。 | vpc-bp1eyy43516itw78**** |
edns | DNS 拡張プロトコル (EDNS)。このフィールドはクエリログおよび応答ログのいずれにも出現する可能性があります。 | "flags: DO udp: 1408 CLIENT-SUBNET: 1.1.XX.XX/32/24" |
2. グローバル応答ログ
パラメーター | 説明 | 例 |
answer_rrset | 応答リソースレコードセット。 | JSON 配列: ["www.example.com. 600 A 192.168.1.1", "www.example.com 600 A 192.168.1.2", ] |
authority_rrset | 権威リソースレコードセット。 | JSON 配列: ["example.com. 600 SOA ns1.example.com. hostmaster.example.com. 2023010101 3600 1200 3600 360" ] |
additional_rrset | 追加リソースレコードセット。 | JSON 配列: ["ns1.example.com. 600 A 100.100.2.136"] |
dns_msg_flags |
| QR |
dns_msg_id | DNS クエリの固有 ID。 | 30914 |
dst_addr | 宛先 IP アドレス。 | 192.168.0.1 |
dst_port | 宛先ポート。 | 42071 |
ecs_hostname | ECS ホスト名。 | iZbp1b1mx9fhe34k***** |
ecs_id | ECS インスタンス ID。 | i-bp1b1mx9fhe34kh**** |
module_type | ログを生成したモジュール。
| GLOBAL |
query_name | クエリ対象のドメイン名。 | www.example.com. |
query_type | クエリの RecordType(例:A、AAAA、CNAME、TXT、MX)。 | A |
rcode | 応答コード。
| 0 |
region_id | リージョン | cn-shanghai |
resolve_path | 解析パス(グローバル応答ログのみに含まれる)。半角カンマ「,」で区切られ、それぞれ権威高速化ゾーン、権威標準ゾーン、キャッシュモジュール、転送モジュール、再帰モジュールを表します。 1:該当モジュールを通過したことを意味します。 0:該当モジュールをスキップしたことを意味します。 CNAME 解析が複数段階にわたる場合、複数の桁が「1」になることがあります。 | 1,0,0,0,0 |
rt | 応答時延:
| 10ms |
src_addr | 送信元 IP アドレス | 100.100.2.136 |
src_port | 送信元ポート | 53 |
transport | トランスポートプロトコル | UDP |
user_id | Alibaba Cloud アカウント ID | 139749398683**** |
vpc_id | VPC インスタンス ID | vpc-bp1eyy43516itw78**** |
edns | DNS 拡張プロトコル。クエリ/応答ログに含まれる場合があります。 | "flags: DO udp: 1408 CLIENT-SUBNET: 1.1.XX.XX/32/24" |
3. モジュール応答ログの例
ログフィールド | 説明 | サンプルデータ(フォーマット参考用) |
answer_rrset | 応答リソースレコードセット | JSON 配列: ["www.example.com. 600 A 192.168.1.1", "www.example.com 600 A 192.168.1.2", ] |
authority_rrset | 権威リソースレコードセット | JSON 配列: ["example.com. 600 SOA ns1.example.com. hostmaster.example.com. 2023010101 3600 1200 3600 360" ] |
additional_rrset | 追加リソースレコードセット | JSON 配列: ["ns1.example.com. 600 A 100.100.2.136"] |
dns_msg_id | DNS メッセージ ID。今回の DNS クエリを一意に識別するコードです。 | 30914 |
dst_addr | 目的 IP アドレス | 100.100.2.136 |
dst_port | 目的ポート | 53 |
ecs_hostname | ECS ホスト名 | iZbp1b1mx9fhe34k***** |
ecs_id | ECS インスタンス ID | i-bp1b1mx9fhe34kh**** |
module_type | モジュールログタイプ:
| AUTH_FAST |
query_name | クエリ対象のドメイン名 | www.example.com. |
query_type | クエリの RecordType(例:A、AAAA、CNAME、TXT、MX) | A |
rcode | 応答ステータスコード:
| 0 |
region_id | リージョン | cn-shanghai |
rt | 応答時延:
| 1ms |
src_addr | 送信元 IP アドレス | 192.168.0.1 |
src_port | 送信元ポート | 42071 |
transport | トランスポートプロトコル | UDP |
user_id | Alibaba Cloud アカウント ID | 139749398683**** |
vpc_id | VPC インスタンス ID | vpc-bp1eyy43516itw78**** |
edns | DNS 拡張プロトコル。クエリ/応答ログに含まれる場合があります。 | "flags: DO udp: 1408 CLIENT-SUBNET: 1.1.XX.XX/32/24" |
プライベート DNS ログ監査
1. 監査ログとは
ログ監査サービス は、Alibaba Cloud Log Service SLS プラットフォーム上のアプリケーションです。Log Service SLS のすべての機能を継承しており、マルチアカウント管理およびクロスリージョンでの Alibaba Cloud プロダクトログ収集といった強力な機能を提供します。また、リソースディレクトリ を活用することで、複数アカウントにまたがるクラウドプロダクトインスタンスのログ情報を集中かつ体系的に管理・記録できます。
2. プライベート DNS 監査ログの有効化
内部 DNS ログ監査機能は、中国 (上海)、中国 (北京)、中国 (広州)、中国 (深セン)、中国 (杭州)、中国 (青島)、中国 (張家口)、シンガポール、中国 (香港)、中国 (深セン) Finance の各リージョンでご利用いただけます。他のリージョンで本機能をご利用になりたい場合は、チケット をご提出ください。製品チームにて要望を評価し、対応可否を判断いたします。
ログ監査アプリケーションコンソール にログインします。
グローバル設定 ページで、内部 DNS のログ監査スイッチをオンにし、中央プロジェクトリージョン(例:cn-hangzhou)を選択します。詳細については、「ログ収集の有効化」をご参照ください。

3. その他の機能
ログ監査は、メンバーアカウントのプライベートゾーン名前解決ログを中央管理アカウントに統合する強力な クロスアカウント 収集機能を提供します。ログ監査は、マルチアカウント管理のための以下の 2 種類の構成モードをサポートしています。
ログ監査の強力な クロスアカウント 収集機能により、マルチアカウント環境において、メンバーアカウントの内部 DNS ログを中央アカウントに一元的に収集できます。ログ監査は、マルチアカウント管理のための以下の 2 種類の構成モードをサポートしています。
リソースディレクトリ管理モード
カスタム認証管理モード
詳細な構成手順については、「マルチアカウントのクラウドプロダクトログの収集」をご参照ください。
Terraform はオープンソースツールであり、コマンドラインインターフェイス (CLI) を使用して、Alibaba Cloud またはその他の対応クラウド上で構成ファイルを簡単にデプロイおよびバージョン管理できます。ログ監査および Terraform を使用したクラウドプロダクトのログ収集構成手順については、「ログ監査サービスの Terraform を使用した構成」をご参照ください。
Terraform は、Alibaba Cloud またはその他の対応クラウド上で構成ファイルをデプロイおよびバージョン管理するためのコマンドラインインターフェイス (CLI) を提供するオープンソースツールです。ログ監査で Terraform を使用してクラウドプロダクトのログ収集を構成する手順については、「Terraform を使用してログ監査サービスを構成する」をご参照ください。
以下に、Terraform を使用してプライベート DNS のログ収集を構成する例を示します。
resource "alicloud_log_audit" "dns_example" {
display_name = "tf-audit-test-dns"
aliuid = "1480************" // 管理アカウント。
variable_map = {
"dns_intranet_enabled" = "true", // 内部 DNS ログの収集を有効化します。
"dns_sync_enabled" = "true", // 地域ごとのログを中央プロジェクトへ同期することを有効化します。
"dns_intranet_ttl" = "3", // 地域ごとのログの保存期間:3 日間。
"dns_sync_ttl" = "185" // 中央集約ログの保存期間:185 日間。
"dns_intranet_collection_policy" = "accept tag.env == \\\"test\\\"\\ndrop \\\"*\\\"" // タグ key が env、value が test の VPC インスタンスのみで内部 DNS ログの収集を有効化します。
}
multi_account = ["1039************"] // マルチアカウント構成。
}プライベートゾーン名前解決ログの収集を細かく制御できます。ログ収集の最小単位は VPC インスタンスであり、VPC インスタンスの情報をもとに DNS ログ収集を制御できます。
内部 DNS ログの収集を細かく制御できます。収集の最小粒度は VPC インスタンスであり、各 VPC ごとにログ収集を制御できます。
ログ監査コンソールで収集ポリシーを管理できます。以下の図は、タグキー env およびタグ値 prod を持つ VPC インスタンスからのみ内部 DNS ログを収集するように構成されたポリシーの例です。収集ポリシーを構成することで、細かい粒度での収集管理を実現し、不要なログ収集を削減できます。

ログ分析のベストプラクティス
以下は、内部 DNS ログのクエリおよび分析によくあるシナリオです。実際の要件に応じて、独自のクエリおよび分析文を作成することもできます。さらに、SQL クエリの結果をダッシュボードに追加したり、クイッククエリとして保存したり、アラートを作成したりして、後続の分析および処理に活用できます。
1. DNS 解析結果の種類
特定の時間帯における指定された VPC 内での、異なるドメイン名に対する DNS 要求の分布。
* and vpc_id: vpc-2ze9dducyc3t6p8aeksb3 |select count(*) as total_req, query_name group by query_name
2. DNS 解析応答時間の問題
特定の時間帯における、指定された VPC、ドメイン名、クエリタイプに対する DNS 解析応答時間の統計分析。
* and vpc_id: vpc-2ze9dducyc3t6p8aeksb3 and query_name: "metrichub-cn-beijing.aliyun.com." and query_type: A | select stddev(__time__) as RT, dns_msg_id GROUP by dns_msg_id
3. 解析例外の分析
あるお客様の Alibaba Cloud ECS サーバーで、ドメイン名のクエリ時に解析異常が発生しました。お客様は プライベートゾーン名前解決ログを有効化し、関連ログを SLS に保存して、異常の原因をさらに分析しました。SLS のログ記録には、以下の 3 種類のログが含まれる可能性があります。 リクエストログ、グローバル応答ログ、モジュール応答ログ。
分析手順は以下のとおりです。
src_portおよびdns_msg_idパラメーターを使用して、単一の名前解決要求に関するすべてのログエントリを特定およびフィルターします。以下のフィールドを使用して、3 種類のログを区別します。
rt:リクエストログではこのフィールドは空です。resolve_path:モジュール応答ログではこのフィールドは空です。グローバル応答ログでは、このフィールドは空ではありません。
エラー結果の例
上記のルールに基づき、最初のエントリは リクエストログ、2 番目は モジュール応答ログ、3 番目は グローバル応答ログ です。

クライアントが再帰クエリの DNS 要求を送信します。
要求は再帰モジュールに送信されますが、解析に失敗します。
100.100.2.136 のサーバーがクライアントに失敗結果を返します。
成功結果の例

クライアントが再帰クエリの DNS 要求を送信します。
要求は再帰モジュールに送信され、解析が成功します。
100.100.2.136 のサーバーがクライアントに解析結果を返します。