這個頁面說明如何新增、更新及刪除資源記錄集。
如要查看支援的資源記錄類型清單,請參閱這一節。
事前準備
建立代管區域:完成建立代管區域的前置步驟,並建立代管區域。
選取支援的資源記錄類型:為資源記錄集選擇資源記錄類型。
新增資源記錄集
請按照下列步驟新增資源記錄集:
控制台
前往 Google Cloud 控制台的「Cloud DNS zones」(Cloud DNS 區域) 頁面。
按一下要新增記錄的代管區域名稱。
在「Zone details」(區域詳細資料) 頁面中,按一下「Add standard」(新增標準)。
在「Create record set」(建立記錄集) 頁面的「DNS Name」(DNS 名稱) 欄位中,輸入 DNS 區域的子網域,例如
mail。系統會自動在結尾處加上點號。如要建立萬用字元 DNS 記錄,請輸入星號,例如
*.example.com。@ 字元不會動建立頂端節點記錄。 如要在網域頂層節點建立資源記錄,請將「DNS name」(DNS 名稱) 欄位留空。
選取「Resource record type」(資源記錄類型),例如
MX。在「TTL」(存留時間) 欄位中,輸入資源記錄存留時間的數字值,也就是記錄可快取的時間。這個值必須是正整數
從「TTL unit」(TTL 單位) 選單中選取時間單位,例如
minutes。視您選取的資源記錄類型而定,填入剩餘欄位。
如要輸入其他資訊,請按一下「Add item」(新增項目)。
點按「Create」(建立)。
gcloud
使用 gcloud dns record-sets create 指令新增資源記錄集:
gcloud dns record-sets create RRSET_NAME \
--rrdatas=RR_DATA \
--ttl=TTL \
--type=RRSET_TYPE \
--zone=MANAGED_ZONE
更改下列內容:
RRSET_NAME:與這個區域的 DNS 名稱相符的 DNS 名稱,做為傳入查詢的後置字串,例如test.example.comRR_DATA:與資源記錄集相關聯的任意值,例如198.51.100.5。您也可以輸入多個值 (rrdata1rrdata2rrdata3),例如198.51.100.510.2.3.4...TTL:解析器快取這個資源記錄集的存留時間 (以秒為單位),例如30RRSET_TYPE:這個資源記錄集的資源記錄類型,例如AMANAGED_ZONE:這個資源記錄集所屬的代管區域,例如my-zone-name。這個資源記錄集的名稱必須使用代管區域的 DNS 名稱做為後置字串
API
使用 resourceRecordSets.create 方法即可新增資源記錄集:
POST https://dns.googleapis.com/dns/v1/projects/PROJECT_ID/managedZones/MANAGED_ZONE/rrsets
{
"name": "RRSET_NAME",
"type": "RRSET_TYPE",
"ttl": TTL,
"rrdatas": [ RR_DATA ]
}
更改下列內容:
PROJECT_ID:專案 IDMANAGED_ZONE:這個資源記錄集所屬的代管區域,例如my-zone-name。這個資源記錄集的名稱必須使用代管區域的 DNS 名稱做為後置字串RRSET_NAME:與這個區域的 DNS 名稱相符的 DNS 名稱,做為傳入查詢的後置字串,例如test.example.comRRSET_TYPE:這個資源記錄集的資源記錄類型,例如ATTL:解析器快取這個資源記錄集的存留時間 (以秒為單位),例如30RR_DATA:與資源記錄集相關聯的任意值,例如"198.51.100.5"。您也可以半形逗號分隔方式輸入多個值,例如"198.51.100.5","10.2.3.4"
Terraform
在交易中新增資源記錄集
您可以建立指定變更的交易,藉此新增多個資源記錄集。交易是指包含一或多項 DNS 記錄變更的群組,必須以單元形式套用。整個交易不是成功就是失敗,確保您的資料絕不會處於不一致的狀態。您只能使用 gcloud CLI 或 Cloud DNS API 建立交易。
如要建立交易,請按照下列步驟操作:
gcloud
使用
gcloud dns record-sets transaction start指令即可開始交易:gcloud dns record-sets transaction start \ --zone=MANAGED_ZONE
將
MANAGED_ZONE替換成要管理資源記錄集的代管區域名稱,例如my-zone-name。使用
gcloud dns record-sets transaction add指令,將資源記錄集新增為交易的一部分:gcloud dns record-sets transaction add RR_DATA \ --name=DNS_NAME \ --ttl=TTL \ --type=RECORD_TYPE \ --zone=MANAGED_ZONE
更改下列內容:
RR_DATA:與資源記錄集相關聯的任意值,例如198.51.100.5。您也可以輸入多個值 (rrdata1rrdata2rrdata3),例如198.51.100.510.2.3.4...DNS_NAME:要新增的記錄集 DNS 或網域名稱,例如test.example.comTTL:記錄集的存留時間 (TTL),以秒為單位,例如300RECORD_TYPE:記錄類型,例如AMANAGED_ZONE:要管理的資源記錄集所屬的代管區域名稱,例如my-zone-name
使用
gcloud dns record-sets transaction execute指令來執行交易:gcloud dns record-sets transaction execute \ --zone=MANAGED_ZONE
使用
gcloud dns record-sets transaction add指令來新增萬用字元交易:gcloud dns record-sets transaction add \ --zone=MANAGED_ZONE \ --name=WILDCARD_DNS_NAME \ --type=RECORD_TYPE \ --ttl=TTL
更改下列內容:
MANAGED_ZONE:要管理的資源記錄集所屬的代管區域名稱,例如my-zone-nameWILDCARD_DNS_NAME:要新增的資源記錄集的 DNS 或網域名稱,例如*.example.com.(請注意結尾處的點號)RECORD_TYPE:記錄類型,例如CNAMETTL:記錄集的存留時間,以秒為單位,例如300
API
使用 changes.create 方法即可建立包含新資源記錄集的交易:
POST https://dns.googleapis.com/dns/v1/projects/PROJECT_ID/managedZones/MANAGED_ZONE/changes
{
"deletions": []
"additions": [
{
"name": DNS_NAME,
"type": RECORD_TYPE,
"ttl": TTL,
"rrdatas": [
RR_DATA
]
}
]
}
更改下列內容:
PROJECT_ID:您的專案 IDMANAGED_ZONE:代管區域名稱或 IDDNS_NAME:記錄集的 DNS 或網域名稱,例如test.example.com.(請注意結尾處的點號)RECORD_TYPE:記錄類型TTL:記錄集的存留時間 (TTL),以秒為單位,例如30RR_DATA:與資源記錄集相關聯的任意值,例如198.51.100.5。您也可以輸入多個值 (rrdata1rrdata2rrdata3),例如198.51.100.510.2.3.4...
如要將電子郵件傳送到網域,請在區域中新增 MX 記錄。假如您使用 Google Workspace 做為簡易郵件傳輸通訊協定 (SMTP) 供應商,請參閱「設定 Google Workspace 的 MX 記錄」一文。否則,請使用供應商提供的 MX 記錄詳細資料,並完成 Google Workspace 所述的設定程序。
查看區域的資源記錄集
如要查看區域的資源記錄集,請按照下列步驟操作:
控制台
前往 Google Cloud 控制台的「Cloud DNS」頁面。
在「Zones」(區域) 分頁中,點按要查看資源記錄集的區域。
「Zone details」(區域詳細資料) 頁面會顯示該區域中所有資源記錄集的詳細資料。
gcloud
使用 gcloud dns record-sets list 指令來查看區域的 DNS 記錄:
gcloud dns record-sets list \ --zone="ZONE_NAME"
將 ZONE_NAME 替換成專案中的 DNS 區域名稱。
此指令會以含有前 100 筆記錄的資源記錄集,輸出 JSON 回應。您可以指定下列額外參數:
--limit:要列出的記錄集數量上限--name:只列出使用這個確切網域名稱的資源記錄集--type:只列出這類記錄。如果存在,也必須存在--name參數
API
使用 resourceRecordSets.list 方法即可查看區域的 DNS 記錄:
GET https://dns.googleapis.com/dns/v1/projects/PROJECT_ID/managedZones/MANAGED_ZONE/rrsets
更改下列內容:
PROJECT_ID:專案 IDMANAGED_ZONE:這個資源記錄集所屬的代管區域,例如my-zone-name。這個資源記錄集的名稱必須使用代管區域的 DNS 名稱做為後置字串
查看資源記錄集詳細資料
這項程序假設您已在代管的 Cloud DNS 區域中建立資源記錄集。
如要查看現有資源記錄集的詳細資料,請按照下列步驟操作:
控制台
前往 Google Cloud 控制台的「Cloud DNS zones」(Cloud DNS 區域) 頁面。
按一下包含資源記錄集的區域。
按一下要查看詳細資料的資源記錄集。
「Resource record set details」(資源記錄集詳細資料) 頁面會顯示資源記錄集的詳細資料。
gcloud
使用 gcloud dns record-sets describe 指令來查看現有資源記錄集的詳細資料:
gcloud dns record-sets describe RRSET_NAME \ --type=RRSET_TYPE \ --zone=MANAGED_ZONE
更改下列內容:
RRSET_NAME:與這個區域的 DNS 名稱相符的 DNS 名稱,做為傳入查詢的後置字串,例如test.example.comRRSET_TYPE:這個資源記錄集的資源記錄類型,例如AMANAGED_ZONE:這個資源記錄集所屬的代管區域,例如my-zone-name。這個資源記錄集的名稱必須使用代管區域的 DNS 名稱做為後置字串
API
使用 resourceRecordSets.get 方法即可取得現有資源記錄集的詳細資料:
GET https://dns.googleapis.com/dns/v1/projects/PROJECT_ID/managedZones/MANAGED_ZONE/rrsets/RRSET_NAME/RRSET_TYPE
更改下列內容:
PROJECT_ID:專案 IDMANAGED_ZONE:這個資源記錄集所屬的代管區域,例如my-zone-name。這個資源記錄集的名稱必須使用代管區域的 DNS 名稱做為後置字串RRSET_NAME:與這個區域的 DNS 名稱相符的 DNS 名稱,做為傳入查詢的後置字串,例如test.example.comRRSET_TYPE:這個資源記錄集的記錄類型,例如A
更新資源記錄集
如要修改記錄集,請按照下列步驟操作:
控制台
如要為現有的資源記錄集套用部分更新,請按照下列步驟操作:
前往 Google Cloud 控制台的「Cloud DNS 區域」頁面。
按一下要更新資源記錄集的區域。
在「Zone details」(區域詳細資料) 頁面中,按一下要更新的資源記錄集旁邊的「編輯」圖示 edit。
進行必要更新後,按一下「Save」(儲存)。
gcloud
使用 gcloud dns record-sets update 指令即可為現有的資源記錄集套用部分更新:
gcloud dns record-sets update RRSET_NAME \
--rrdatas=RR_DATA \
--ttl=TTL \
--type=RRSET_TYPE \
--zone=MANAGED_ZONE
更改下列內容:
RRSET_NAME:與這個區域的 DNS 名稱相符的 DNS 名稱,做為傳入查詢的後置字串,例如test.example.comRR_DATA:與資源記錄集相關聯的任意值,例如198.51.100.5。您也可以輸入多個值 (rrdata1rrdata2rrdata3),例如198.51.100.510.2.3.4...TTL:解析器快取這個資源記錄集的存留時間 (以秒為單位),例如30RRSET_TYPE:這個資源記錄集的資源記錄類型,例如AMANAGED_ZONE:這個資源記錄集所屬的代管區域,例如my-zone-name。這個資源記錄集的名稱必須使用代管區域的 DNS 名稱做為後置字串
API
使用 resourceRecordSets.patch 方法即可為現有的資源記錄集套用部分更新:
PATCH https://dns.googleapis.com/dns/v1/projects/PROJECT_ID/managedZones/MANAGED_ZONE/rrsets/RRSET_NAME/RRSET_TYPE
{
"ttl": TTL,
"rrdatas": RR_DATA,
"update_mask": {
"paths": ["rrset.ttl", "rrset.rrdatas"]
}
}
更改下列內容:
PROJECT_ID:專案 IDMANAGED_ZONE:這個資源記錄集所屬的代管區域,例如my-zone-name。這個資源記錄集的名稱必須使用代管區域的 DNS 名稱做為後置字串RRSET_NAME:與這個區域的 DNS 名稱相符的 DNS 名稱,做為傳入查詢的後置字串,例如test.example.comRRSET_TYPE:這個資源記錄集的資源記錄類型,例如ATTL:解析器快取這個資源記錄集的存留時間 (以秒為單位),例如30RR_DATA:與資源記錄集相關聯的任意值,例如198.51.100.5。您也可以輸入多個值 (rrdata1rrdata2rrdata3),例如198.51.100.510.2.3.4...
刪除資源記錄集
如果刪除資源記錄集,系統會永久移除其 DNS 記錄,且無法復原。為避免 DNS 記錄遺失,請先匯出資源記錄集再刪除。想瞭解如何匯出資源記錄集,請參閱「匯入及匯出資源記錄集」一節。
Cloud DNS 公開區域是授權區域,名稱伺服器 (NS) 和起始授權機構 (SOA) 記錄類型位於區域頂端節點,也就是該網域的根層級。
Cloud DNS 會在區域頂端節點自動建立 NS 和 SOA 記錄。這些記錄無法使用 Cloud DNS API 刪除,但會在區域刪除後自動刪除。詳情請參閱 RFC 1034。
如要刪除資源記錄集,請按照下列步驟操作:
控制台
前往 Google Cloud 控制台的「Cloud DNS」頁面。
區域的記錄會列於「Zone details」(區域詳細資料) 頁面。
按一下區域名稱,以便刪除區域中的資源記錄集。
在要刪除的資源記錄集旁,勾選核取方塊。
按一下「Delete record sets」(刪除記錄集)。
gcloud
使用 gcloud dns record-sets delete 指令即可刪除現有的資源記錄集:
gcloud dns record-sets delete RRSET_NAME \
--type=RRSET_TYPE \
--zone=MANAGED_ZONE
更改下列內容:
RRSET_NAME:與這個區域的 DNS 名稱相符的 DNS 名稱,做為傳入查詢的後置字串,例如test.example.comRRSET_TYPE:這個資源記錄集的資源記錄類型,例如AMANAGED_ZONE:這個資源記錄集所屬的代管區域,例如my-zone-name。這個資源記錄集的名稱必須使用代管區域的 DNS 名稱做為後置字串
API
使用 resourceRecordSets.delete 方法即可刪除現有的資源記錄集:
DELETE https://dns.googleapis.com/dns/v1/projects/PROJECT_ID/managedZones/MANAGED_ZONE/rrsets/RRSET_NAME/RRSET_TYPE
更改下列內容:
PROJECT_ID:專案 IDMANAGED_ZONE:這個資源記錄集所屬的代管區域,例如my-zone-name。這個資源記錄集的名稱必須使用代管區域的 DNS 名稱做為後置字串RRSET_NAME:與這個區域的 DNS 名稱相符的 DNS 名稱,做為傳入查詢的後置字串,例如test.example.comRRSET_TYPE:這個資源記錄集的資源記錄類型,例如A
匯入及匯出資源記錄集
如要將資源記錄集複製到代管區域,或從代管區域複製資源記錄集,可以使用 import 和 export 指令。您可以從 BIND 區域檔案格式或 YAML 檔案格式匯入資料記錄集,也可以將資料記錄集匯出成這些格式。
gcloud
使用
dns record-sets import指令即可匯入資源記錄集:gcloud dns record-sets import -z=ZONE_NAME
如要指定區域檔案的格式,請使用先前的指令搭配
--zone-file-format旗標。如果省略這個旗標,則必須提供 YAML 格式的區域檔案。將
ZONE_NAME替換成區域的新名稱。使用
gcloud dns record-sets import指令和--replace-origin-ns旗標時,系統會將區域的 NS 記錄替換成區域檔案中指定的 NS 記錄。這些記錄必須與 Cloud DNS 指派的名稱伺服器相符,才能託管區域。此外,這些記錄也必須與上層 (委派) 區域中指定的NS記錄相符。根據預設,Cloud DNS 不會覆寫NS記錄。如果使用這個旗標,請務必確認NS記錄正確無誤。以 BIND 區域格式檔案匯入記錄集時,請移除表示區域頂端節點的 @ 符號。在 BIND 區域格式檔案中,對於
example.com之類的 DNS 名稱,@ 符號是指example.com.。不過,在 Cloud DNS 中定義記錄名稱時,系統會將 @ 符號視為單純的符號。如要在 Cloud DNS 中為區域的頂層節點建立資源記錄集,請使用完整網域名稱,例如example.com.。in.smtp IN MX 5 gmail-smtp-in.l.google.com in.smtp.example.com. IN MX 5 gmail-smtp-in.l.google.com.example.com.
如要匯入區域檔案,請在任何必須完全合格的網域名稱結尾加上點號 (
.)。
使用
dns record-sets export指令即可匯出資源記錄集。如要指定將資源記錄集匯出成 BIND 區域格式檔案,請使用--zone-file-format旗標。例如:example.com. 21600 IN NS ns-gcp-private.googledomains.com. example.com. 21600 IN SOA ns-gcp-private.googledomains.com. cloud-dns-hostmaster.google.com. 1 21600 3600 259200 300 host1.example.com. 300 IN A 192.0.2.91
如果省略
--zone-file-format旗標,export會將資源記錄集匯出成 YAML 格式記錄檔案:gcloud dns record-sets export example.zone -z=examplezonename
例如:
--- kind: dns#resourceRecordSet name: example.com. rrdatas: - ns-gcp-private.googledomains.com. ttl: 21600 type: NS --- kind: dns#resourceRecordSet name: example.com. rrdatas: - ns-gcp-private.googledomains.com. cloud-dns-hostmaster.google.com. 1 21600 3600 259200 300 ttl: 21600 type: SOA --- kind: dns#resourceRecordSet name: host1.example.com. rrdatas: - 192.0.2.91 ttl: 300 type: ACloud DNS 支援
ALIAS記錄類型,但這並非標準 DNS 記錄類型,且BIND不支援。如要將資源記錄集匯出成BIND,系統會略過ALIAS記錄。假如區域設有路由政策,系統會將其匯出成資源記錄資料 (rrdata) 為空的記錄。
支援的資源記錄類型
| 記錄類型 | 要輸入的值 |
|---|---|
A |
主機的數值位址 (採用 IPv4 加點十進位格式)。 |
AAAA |
主機的數值 IP 位址 (採用 IPv6 十六進制格式)。 |
ALIAS (預先發布版) |
要為傳入的位址查詢解析的正規名稱,例如 |
CAA |
有權為這個網域核發憑證的憑證授權單位,例如
建立 |
CNAME |
您也可以使用
名稱伺服器有時會傳回 |
DNSKEY |
解析器用來驗證記錄真實性的 DNSSEC 公開金鑰 (驗證時會使用 ZSK 和 KSK 金鑰),例如
您只能在處於 |
DS |
用於安全委任區域的 DNSSEC 金鑰指紋,例如 您只能在公開區域中新增這個記錄類型。除非您為委派的區域啟用並啟動 DNSSEC,否則這個記錄類型不會啟動這個區域的 DNSSEC。根據預設,系統不會替區域啟用 DNSSEC。 |
HTTPS、SVCB |
服務優先順序 ( |
IPSECVPNKEY |
IPsec 公開 VPN 金鑰。 您只能在公開區域中新增這個記錄類型。 |
MX |
偏好數值和郵件交換伺服器的 DNS 名稱,該伺服器會代表您的網域接收電子郵件。SMTP 伺服器會優先使用偏好數值較小的伺服器。您可以輸入的最小偏好數值為 範例: 請務必在偏好數值與 DNS 名稱之間加入一個空格。輸入 MX 記錄時,必須在結尾處加上點號 ( 您可以建立多筆記錄,並設定不同的優先順序,藉此設定備份郵件伺服器,或使用相同的優先順序,在多部郵件伺服器之間分配負載。 舉例來說,如要將電子郵件導向 Google Workspace 帳戶,請輸入下列內容:
|
NAPTR |
動態委派探索系統 (DDDS) 應用程式用來對應統一資源名稱 (URN) 的名稱授權指標規則,例如
DDDS 應用程式會使用 |
NS |
為網域或子網域提供 DNS 服務的授權名稱伺服器 DNS 名稱。您的 |
PTR |
網域的完整網域名稱 (FQDN) 或正規名稱會對應至 IP 位址,例如
|
SPF |
|
SRV |
指定特定服務伺服器位置的資料,也就是主機名稱和通訊埠號碼,例如 詳情請參閱 RFC 2782。 |
SSHFP |
SSH 伺服器演算法編號、指紋類型編號和金鑰指紋,例如 請只在已為區域啟用 DNSSEC 時,才使用這個記錄類型。 |
TLSA |
具名實體 DNS 驗證 (DANE) TLSA 憑證協會資訊。
TLSA 記錄包含的資訊可用來驗證 X.509 憑證 (例如 HTTPS 使用的憑證),且驗證時不需要簽署憑證的預先設定憑證授權單位 (CA),例如 請只在已為區域啟用 DNSSEC 時,才使用這個記錄類型。 |
TXT |
文字資料,可包含任意文字,也可用來定義機器可解讀的資料,例如安全資訊或濫用防範資訊。 TXT 記錄可含有一或多個文字字串,每個字串的長度上限為 255 個字元。如果記錄資料超過 255 個位元組,請將記錄分成 255 個位元組的字串,並以引號括住每個字串,例如 郵件代理和其他軟體代理會串聯多個字串。 請使用引號括住每個字串,例如 每筆 TXT 記錄的長度上限為 1000 個字元。如要提高上限,請聯絡 Google Cloud 支援團隊。 |
後續步驟
- 如要瞭解資源記錄集適用的
gcloud指令,請參閱gcloud dns record-sets。 - 如要查看
gcloud或 API 作業的狀態,請參閱「監控 DNS 傳播」一節。 - 如要瞭解使用 Cloud DNS 時可能遇到的常見問題解決方案,請參閱這篇文章。
- 如要查看 Cloud DNS 總覽,請參閱這篇文章。