全部產品
Search
文件中心

:內網DNS解析日誌轉存SLS

更新時間:Jan 24, 2025

重要

您只能在SLS配置對已經開啟了流量分析的Region、VPC做轉存,開啟日誌轉存服務預設開啟流量分析服務,如果關閉流量分析服務,會導致日誌轉存服務沒有日誌資料。具體請參考開啟流量分析

應用情境

出於合規和安全性的考慮,公司通常要求對部落格進行儲存和分析。通過內網DNS日誌,可以清晰瞭解企業內網網域名稱的使用方式,協助企業對內網使用者行為進行審計,及時發現潛在的安全問題。

什麼是內網DNS解析日誌

內網DNS解析日誌(Intranet DNS Resolution Log)記錄了指定阿里雲UID下所有VPC網路內終端產生的DNS網域名稱解析請求和應答(包括請求的地區、請求的VPC ID、源IP地址、目的IP地址(DNS服務地址)、查詢的網域名稱、記錄類型、應答的結果等),終端請求的這些網域名稱既包含了配置在PrivateZone上的內網權威網域名稱,也包含了外部公網網域名稱。為了滿足使用者可以快速、簡單實現多帳號、多地區情境下內網DNS日誌的採集、管理、中心化查詢分析等需求,DNS與SLS聯合開發,在SLS日誌審計應用中發布一鍵開啟內網DNS日誌的功能。

內網DNS日誌記錄的是內網終端的網域名稱解析請求和應答記錄,請求的網域名稱主要來自於以下四類:

1、內建權威網域名稱

內網DNS解析是基於阿里雲Virtual Private Cloud(Virtual Private Cloud)環境的私人DNS服務。該服務允許您在一個或多個VPC中將自訂私人網域名稱映射到IP地址。通過內網DNS解析,您可以方便地使用自訂私人網域名稱來管理VPC中的ECS主機名稱、SLB、OSS等阿里雲資源,而這些私人網域名稱在VPC之外將無法訪問。此外,您還可以通過專線或VPN等串連方式,將您的VPC與傳統資料中心相連,實現傳統資料中心與阿里雲VPC之間通過私人網域名稱進行資源互相訪問。

2、配置在飛天雲平台DNS(雲底座DNS)上的雲產品執行個體網域名稱

雲底座DNS,是內建於阿里雲飛天平台的底層DNS,阿里雲的所有雲產品提供的執行個體網域名稱,都是通過雲底座DNS進行解析的。

3、轉寄到外部DNS上的外部網域名稱

外部DNS,通常指的是您資料中心的內網DNS系統,通過轉寄管理的功能,將來自VPC的網域名稱解析請求,轉寄到您資料中心的DNS系統進行解析,從而實現阿里雲VPC的ECS主機可以訪問您資料中心的應用網域名稱。

4、遞迴到外部公網權威DNS上的公網網域名稱

公網權威DNS,是特定公網網域名稱(例如“example.com”)在網域名稱註冊局或者網域名稱註冊商處所設定的DNS伺服器。公網權威DNS可以為根網域名稱、頂級網域名稱和其他各級網域名稱提供網域名稱權威資料的管理和解析服務。公網權威DNS伺服器只對自己所擁有的網域名稱進行網域名稱解析,對於不是自己的網域名稱則拒絕訪問。

內網DNS日誌欄位資訊

1、請求日誌樣本

日誌欄位

說明

樣本資料(僅做格式參考)

dns_msg_flags

DNS資訊Flags:

  • QR:0表示用戶端請求包,1表示服務端響應包;

  • RD:0表示不期望進行遞迴查詢,1表示期望進行遞迴查詢;

  • AA:0表示應答伺服器不是該網域名稱的權威伺服器,1表示是權威伺服器;

  • TC:0表示報文未截斷,1表示報文過長被截斷;

  • AD:0表示應答伺服器驗證查詢網域名稱DNSSEC數位簽章未通過,1表示已驗證DNSSEC數位簽章;請求報文攜帶此欄位表示希望遞迴DNS能夠對DNSSEC應答驗證。

  • CD:0表示需要進行DNSSEC數位簽章的驗證,若驗證不通過則不響應,1表示應答伺服器需應答,不管DNSSEC驗證是否通過;

RD

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

模組日誌類型,請求日誌只有全域日誌:

  • GLOBAL:全域

GLOBAL

query_name

查詢網域名稱名稱

www.example.com.

query_type

查詢記錄類型,例如A,AAAA,CNAME,TXT,MX等

A

region_id

地區

cn-shanghai

src_addr

源IP地址

192.168.0.1

src_port

源連接埠

42071

transport

傳輸協議

UDP

user_id

阿里雲帳號ID

139749398683****

vpc_id

VPC執行個體ID

vpc-bp1eyy43516itw78****

edns

DNS擴充協議,查詢/應答日誌可能包含

"flags: DO udp: 1408 CLIENT-SUBNET: 1.1.XX.XX/32/24"

2、全域應答日誌樣本

日誌欄位

說明

樣本資料(僅做格式參考)

answer_rrset

回答資源記錄集

Json array:

["www.example.com. 600 A 192.168.1.1", "www.example.com 600 A 192.168.1.2", ]

authority_rrset

權威資源記錄集

Json array:

["example.com. 600 SOA ns1.example.com. hostmaster.example.com. 2023010101 3600 1200 3600 360" ]

additional_rrset

其他資源記錄集

Json array:

["ns1.example.com. 600 A 100.100.2.136"]

dns_msg_flags

  • QR:0表示用戶端請求包,1表示服務端響應包;

  • RD:0表示不期望進行遞迴查詢,1表示期望進行遞迴查詢;

  • AA:0表示應答伺服器不是該網域名稱的權威伺服器,1表示是權威伺服器;

  • TC:0表示報文未截斷,1表示報文過長被截斷;

  • AD:0表示應答伺服器驗證查詢網域名稱DNSSEC數位簽章未通過,1表示已驗證DNSSEC數位簽章;

  • CD:0表示需要進行DNSSEC數位簽章的驗證,若驗證不通過則不響應,1表示應答伺服器需應答,不管DNSSEC驗證是否通過;

QR

dns_msg_id

DNS資訊ID,表示本次DNS查詢的唯一識別碼

30914

dst_addr

目的IP地址

192.168.0.1

dst_port

目的連接埠

42071

ecs_hostname

ECS 主機名稱

iZbp1b1mx9fhe34k*****

ecs_id

ECS 執行個體ID

i-bp1b1mx9fhe34kh****

module_type

模組日誌類型:

  • GLOBAL:全域

GLOBAL

query_name

查詢網域名稱名稱

www.example.com.

query_type

查詢記錄類型,例如A,AAAA,CNAME,TXT,MX等

A

rcode

響應狀態代碼:

  • 0: NOERROR,沒有錯誤查詢網域名稱成功

  • 1: FORMERR,格式錯誤,DNS 無法解析該請求

  • 2: SERVFAIL,DNS 伺服器遇到內部錯誤或者逾時引起的解析失敗

  • 3: NXDOMAIN,網域名稱未找到

  • 4: NOTIMP,伺服器不支援指定的作業碼

  • 5: REFUSED,DNS伺服器因為策略或者安全原因拒絕應答

0

region_id

地區

cn-shanghai

resolve_path

解析路徑,僅全域應答日誌包含。使用半形逗號“,”分割,分別表示權威加速區、權威普通區、緩衝模組、轉寄模組、遞迴模組

1:表示經過該模組

0:表示跳過該模組

當涉及多級CNAME解析時,可能會出現多位為“1”的情況。

1,0,0,0,0

rt

響應時延:

  • 全域應答rt表示整個查詢到應答的時延;

  • 模組日誌rt表示在模組內部消耗的時延

10ms

src_addr

源IP地址

100.100.2.136

src_port

源連接埠

53

transport

傳輸協議

UDP

user_id

阿里雲帳號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 array:

["www.example.com. 600 A 192.168.1.1", "www.example.com 600 A 192.168.1.2", ]

authority_rrset

權威資源記錄集

Json array:

["example.com. 600 SOA ns1.example.com. hostmaster.example.com. 2023010101 3600 1200 3600 360" ]

additional_rrset

其他資源記錄集

Json array:

["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:權威加速區

  • AUTH_SLOW:權威普通區

  • FORWARD:轉寄模組

  • CACHE:緩衝模組

  • RECURSION:遞迴模組

AUTH_FAST

query_name

查詢網域名稱名稱

www.example.com.

query_type

查詢記錄類型,例如A,AAAA,CNAME,TXT,MX等

A

rcode

響應狀態代碼:

  • 0: NOERROR,沒有錯誤查詢網域名稱成功

  • 1: FORMERR,格式錯誤,DNS 無法解析該請求

  • 2: SERVFAIL,DNS 伺服器遇到內部錯誤或者逾時引起的解析失敗

  • 3: NXDOMAIN,網域名稱未找到

  • 4: NOTIMP,伺服器不支援指定的作業碼

  • 5: REFUSED,DNS伺服器因為策略或者安全原因拒絕應答

0

region_id

地區

cn-shanghai

rt

響應時延:

  • 全域應答rt表示整個查詢到應答的時延;

  • 模組日誌rt表示在模組內部消耗的時延

1ms

src_addr

源IP地址

192.168.0.1

src_port

源連接埠

42071

transport

傳輸協議

UDP

user_id

阿里雲帳號ID

139749398683****

vpc_id

VPC執行個體ID

vpc-bp1eyy43516itw78****

edns

DNS擴充協議,查詢/應答日誌可能包含

"flags: DO udp: 1408 CLIENT-SUBNET: 1.1.XX.XX/32/24"

內網DNS日誌審計

一、什麼是審計日誌

日誌審計服務是阿里雲Log ServiceSLS平台下的一款應用,它在繼承了Log ServiceSLS的全部功能以外,還有強大的多帳號管理及跨地區採集阿里雲各種雲產品日誌的功能,並且支援通過資來源目錄(Resource Directory)的方式有組織地統一管理和記錄多帳號下雲產品執行個體的日誌資訊。

二、內網DNS審計日誌開通

  1. 登入日誌審計應用控制台

  2. 全域配置 頁面,將內網DNS的日誌審計開關開啟並選擇 中心專案Project所在地區 ,例如 cn-hangzhou ;詳細操作步驟參見開啟日誌採集功能

    image

三、內網DNS審計日誌開發地區

內網DNS日誌審計功能目前在華東2(上海)華北2(北京)華南3(廣州)華南1(深圳)華東1(杭州)華北1(青島)華北3(張家口)新加坡中國香港華南1 金融雲等地區開放使用,如果您有其他地區日誌審計需求,可通過工單反饋給產品側,產品側會綜合評估後決定是否支援。

多帳號配置

日誌審計強大的跨帳號採集能力可以滿足使用者多帳號情境下將成員帳號的內網DNS日誌統一採集到中心帳號的需求。日誌審計支援兩種多帳號管理配置:

  • 資來源目錄管理員模式

  • 自訂鑒權管理員模式

詳細配置步驟請參見採集多帳號雲產品日誌

Terraform配置

Terraform是一種開源工具,其命令列介面(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",     //開啟地區化日誌同步到中心project
		"dns_intranet_ttl" = "3",        //日誌地區化儲存天數3天
		"dns_sync_ttl" = "185"					 //日誌中心化儲存天數185天
		"dns_intranet_collection_policy" = "accept tag.env == \\\"test\\\"\\ndrop \\\"*\\\"" //僅開啟標籤健為env下標籤值為prod的VPC執行個體下的內網DNS日誌
	  }  
	multi_account = ["1039************"] //多帳號配置
  }

採集策略

內網DNS日誌可以進行精細採集管理。內網DNS日誌最小採集粒度為VPC執行個體,可以根據VPC執行個體的資訊進行DNS日誌的採集控制。

使用者可以在日誌審計控制台進行採集策略的管理配置,下圖是一個“僅開啟標籤鍵為env下標籤值為prod的所有VPC執行個體下的內網DNS日誌”的策略配置樣本。通過採集策略的配置,可以協助使用者實現精細化採集管理,減少不必要的日誌採集。

image.png

日誌分析最佳實務

下面列舉幾類常見的內網DNS日誌的查詢分析情境,使用者也可以根據實際需求自訂查詢分析語句。此外,使用者還可以將SQL語句查詢結果添加到儀錶盤、或者另存新檔快速查詢、另存新檔警示等進行後續分析處理。

一、DNS解析結果類

某時間段內,指定VPC下,不同查詢網域名稱的DNS請求量分布。

* and vpc_id: vpc-2ze9dducyc3t6p8aeksb3 |select count(*) as total_req, query_name group by  query_name

image

二、DNS解析RT類

某時間段內,指定VPC,指定網域名稱,指定queryType的DNS解析RT統計分析。

* 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

image