本頁面提供網域名稱系統 (DNS) 的總覽。
如需 Cloud DNS 總覽,請參閱「Cloud DNS 總覽」。如要瞭解 Cloud DNS 相關的專有名詞,請參閱「專有名詞」。
DNS 是一種階層型分散式資料庫,可用來儲存 IP 位址和其他資料,並允許按名稱查詢。
換句話說,DNS 是可讀網域名稱的目錄,可將這些名稱轉譯為電腦用來相互通訊的數字 IP 位址。舉例來說,當您在瀏覽器中輸入網址時,DNS 會將網址轉換為與該名稱相關聯的網頁伺服器 IP 位址。DNS 目錄會儲存在定期更新的網域名稱伺服器上,並分散儲存在世界各地。
下列概念在使用 DNS 時很有幫助。
DNS 伺服器類型
DNS 伺服器會儲存網域名稱資料庫,然後根據網路中用戶端傳來的 DNS 查詢,處理網域名稱。
權威伺服器
權威伺服器是指含有 DNS 名稱記錄 (包括 A、AAAA 和 CNAME) 的伺服器。
非權威伺服器會根據先前對網域的查詢,建構快取檔案。但不會保留原始名稱記錄。
遞迴解析器
遞迴解析器是將查詢傳送至權威或非權威伺服器以進行解析的伺服器。之所以稱為遞迴解析工具,是因為它會針對指定名稱執行每項查詢,並傳回最終結果。
這與迭代解析器相反,後者只會將參照傳回下一個可能有答案的 DNS 伺服器。
舉例來說,在解析名稱 google.com.
時,遞迴解析器必須判斷 .
(DNS 的根區域) 的權威名稱伺服器為何。然後,它會詢問那些名稱伺服器是 .com.
的權威伺服器。最後,它會詢問 google.com.
的權威名稱伺服器,並將 A 記錄的 rdata 傳回給用戶端。
以下是遞迴解析器運作方式的範例;如果您執行 dig +trace google.com
,遞迴解析器會執行下列動作 (8.8.8.8/Google 公用 DNS 就是這類解析器):
dig +trace google.com
; <<>> DiG 9.11.5-P4-5.1-Debian <<>> +trace google.com ;; global options: +cmd . 168383 IN NS a.root-servers.net. . 168383 IN NS b.root-servers.net. . 168383 IN NS c.root-servers.net. . 168383 IN NS d.root-servers.net. . 168383 IN NS e.root-servers.net. . 168383 IN NS f.root-servers.net. . 168383 IN NS g.root-servers.net. . 168383 IN NS h.root-servers.net. . 168383 IN NS i.root-servers.net. . 168383 IN NS j.root-servers.net. . 168383 IN NS k.root-servers.net. . 168383 IN NS l.root-servers.net. . 168383 IN NS m.root-servers.net. . 168383 IN RRSIG NS 8 0 518400 20190810170000 20190728160000 59944 . ITqCp5bSKwoG1P76GpNfDanh4fXxOtHuld5SJzEm9ez0U/K7kpmBm4TE cw82zuqtZlqiGOuq+90KHJEhD1fdX3FujgDqe3kaY/41LgFIo76RBeMP CorYg29lKQOBf7pLPiJWewFmnLsRXsvENzxNXl9mynX80EQSS2YlCWpr 47i2j5SFpGDzmxls7LinB4VvwVLhy0FPwBaVc5NVqQoFS5ZkfKXCUz8x urExPT2OtPJeDiGzrQGmT6vDbYZtJRWWGK5tPIKZQyF/08YSJlrjebNa 1nKZVN8SsO8s7elz6JGmdoM6D/1ByLNFQmKvU55ikaVSnXylqixLbJQI 7LyQoA== ;; Received 525 bytes from 127.0.0.1#53(127.0.0.1) in 22 ms com. 172800 IN NS a.gtld-servers.net. com. 172800 IN NS b.gtld-servers.net. com. 172800 IN NS c.gtld-servers.net. com. 172800 IN NS d.gtld-servers.net. com. 172800 IN NS e.gtld-servers.net. com. 172800 IN NS f.gtld-servers.net. com. 172800 IN NS g.gtld-servers.net. com. 172800 IN NS h.gtld-servers.net. com. 172800 IN NS i.gtld-servers.net. com. 172800 IN NS j.gtld-servers.net. com. 172800 IN NS k.gtld-servers.net. com. 172800 IN NS l.gtld-servers.net. com. 172800 IN NS m.gtld-servers.net. com. 86400 IN DS 30909 8 2 E2D3C916F6DEEAC73294E8268FB5885044A833FC5459588F4A9184CF C41A5766 com. 86400 IN RRSIG DS 8 1 86400 20190811170000 20190729160000 59944 . KXPRdZspxd6hZYRFx3cj7Yp3d6HDzOG5CmoK46ZrrlKnZkCYMPKzyFQ2 15pA+jZ37MbQbhe6+S+C4AHWqv95DDsue85ha3ZmWGhnJxcLnDaL5Twp Z/W/a+1cTHhhbMZua1riw74mqvzRAF1kVerj7jrvWnOAOZCh69Dr4AFJ gRN4MAn+wCZDmPQCtkcGVJ9vyNV7Xra45B4ISqEo0xi8CXewp9cc+aW5 TSjFRhj1RM9d3k+3Mrq6AAV8dVgWofYTg6Ihph/SfoIx4TrTrEbgfdsv MvuLPXvK6Y7oSh5WknbFduw7HQdo1jH3/QR54FORswBJT8VmYD7Zii88 tAjbRQ== ;; Received 1170 bytes from 192.58.128.30#53(j.root-servers.net) in 2 ms google.com. 172800 IN NS ns2.google.com. google.com. 172800 IN NS ns1.google.com. google.com. 172800 IN NS ns3.google.com. google.com. 172800 IN NS ns4.google.com. CK0POJMG874LJREF7EFN8430QVIT8BSM.com. 86400 IN NSEC3 1 1 0 - CK0Q1GIN43N1ARRC9OSM6QPQR81H5M9A NS SOA RRSIG DNSKEY NSEC3PARAM CK0POJMG874LJREF7EFN8430QVIT8BSM.com. 86400 IN RRSIG NSEC3 8 2 86400 20190803044434 20190727033434 17708 com. rMmiNL7bYvJpB3Bc+WnqS2iiczm2PwxBvJcl7SL/vcTj88GsxM1ycTSV PsHZHxfrv1dv2C5BCSZ+mzeVBu8upLoeraQy+UVf3VXyt3i3rNGzcXYV 8HSrHcXrRoAJopFim3Ge1xdZ+uERg3cTIcN2tJxxkCeqt/EcUTqtQl8t EAc= S84BDVKNH5AGDSI7F5J0O3NPRHU0G7JQ.com. 86400 IN NSEC3 1 1 0 - S84CFH3A62N0FJPC5D9IJ2VJR71OGLV5 NS DS RRSIG S84BDVKNH5AGDSI7F5J0O3NPRHU0G7JQ.com. 86400 IN RRSIG NSEC3 8 2 86400 20190804045723 20190728034723 17708 com. jypPsaWVop9rzuf70CFYyiK0hliiJ+YYtkjgb3HVj9ICc57kLmv9DkvG DddF5GBQpqNEakzyJtya179MAdDT7RhJB4XfmY6fu5I5QTeIjchfP5wt 7gU1AL7cqTmBAo2RWu62vtUytV09+O3KGFq5O+Cwr11dSTfq1yYyw6YW cMI= ;; Received 772 bytes from 192.41.162.30#53(l.gtld-servers.net) in 2 ms google.com. 300 IN A 172.217.7.14 ;; Received 55 bytes from 216.239.32.10#53(ns1.google.com) in 13 ms
每個 DNS 用戶端都會查詢名稱伺服器。遞迴解析器會查詢其他名稱伺服器,並在必要時向上查詢頂層名稱伺服器。上層名稱伺服器上區域的 NS 記錄會將解析器向下導向至其他名稱伺服器,最終會到達快取區域的名稱伺服器,或該區域的權威伺服器。
可用區
公共區
公開區域可以在網際網路上顯示。您可以在公開區域中建立 DNS 記錄,以在網際網路上發布您的服務。舉例來說,您可以在公開網站 www.example.com.
的公開區域 example.com.
(注意尾端的點) 中建立 A 記錄。
私人區域
不公開區域是指無法透過公開網際網路查詢的任何區域。
委派的子區域
DNS 可讓區域擁有者使用 NS 記錄,將子網域委派給不同的名稱伺服器。解析器會依據這些記錄,將對於子網域的查詢傳送至委派作業所指定的目標名稱伺服器。
舉例來說,您可以為 example.com
和 subdomain.example.com
建立個別的區域,每個區域都有自己的權威名稱伺服器。由於 subdomain.example.com
是 example.com
的子網域,因此讓子網域的權威名稱伺服器可從父網域的可用區找到的方法稱為委派。委派作業基本上是指向子網域的權威名稱伺服器。如要在 Cloud DNS 中啟用委派功能,您可以在上層網域的區域中為子網域新增 NS 記錄。
水平分割 DNS
分割視界是指在同一個網域中,為內部網路和外部網路 (通常是網際網路) 建立兩個區域的情況。水平分割 DNS 可讓您根據要求者,為相同名稱提供不同的回應 (不同的資源記錄集)。
舉例來說,如果查詢來自開發網路,您可以提供應用程式的開發或測試版本;如果查詢來自公開網際網路,則可提供正式版或公開版的應用程式。
記錄
記錄是 DNS 資源和網域名稱之間的對應關係。每個 DNS 記錄都含有類型 (名稱和編號)、到期時間 (存留時間) 和類型專屬資料。
常用的記錄類型包括:
- A:位址記錄,用來將主機名稱對應至其 IPv4 位址。
- AAAA:IPv6 位址記錄,用來將主機名稱對應至其 IPv6 位址。
- CNAME:正式名稱記錄,用來指定別名。
- MX:郵件交換記錄,用於將要求轉送至郵件伺服器。
- NS:名稱伺服器記錄,將 DNS 區域委派給權威伺服器。
- PTR:指標記錄,定義與 IP 位址相關聯的名稱。
- SOA:權威開始,用於指定負責區域的主要名稱伺服器和管理員。每個在 DNS 伺服器上代管的區域都必須有 SOA (起始點授權) 記錄。您可以視需要修改記錄 (例如,您可以將序號變更為任意號碼,以支援以日期為基準的版本管理)。
記錄集
名稱和類型相同但資料值不同的記錄稱為記錄集。建立記錄時,如果有相同名稱和類型的集合,系統會將記錄加入這個相符的集合。如果沒有相符的記錄集,系統就會建立新的記錄集,並將其新增至記錄集清單的末端。
以下是記錄集的範例,其中有多個記錄具有相同的名稱和類型:
DNS 名稱 | 類型 | TTL (秒) | 資料 |
---|---|---|---|
db-01.dev.gcp.example.com |
A | 50 | 10.128.1.35 |
db-01.dev.gcp.example.com |
A | 50 | 10.128.1.10 |
如需 Cloud DNS 支援的記錄類型清單,請參閱「支援的 DNS 記錄類型」。
委派子網域
建立記錄時,請確認 NS 和 SOA 記錄相符。發生 NS 和 SOA 記錄衝突的情況,可能會導致部分解析器將委派作業視為無效,並拒絕快取查詢的 NO DATA
回應。當解析器針對不存在的記錄查詢您的公開管理區時,這可能會導致第三方遞迴解析器對您的公開管理區進行大量意外查詢。
舉例來說,假設 Cloud DNS 中有兩個子網域:example.com
和 subdomain.example.com
。subdomain.example.com
的 NS 和 SOA 記錄不相符。這兩個區域都沒有任何 AAAA 記錄。當某些第三方遞迴解析器查詢 subdomain.example.com
的 AAAA 記錄並收到 NO DATA
回應時,如果解析器偵測到 subdomain.example.com
的委派無效,就會拒絕快取該區域中不存在的 AAAA 記錄。這會導致重試查詢。並依序查詢所有 Cloud DNS 名稱伺服器,取得這項資訊。
註冊商
網域名稱註冊商是管理公開區域網際網路網域名稱預訂的機構。註冊商必須經過通用頂層網域 (gTLD) 註冊管理機構或國碼頂層網域 (ccTLD) 註冊管理機構的認證。這是上層名稱伺服器同意 SOA 的方式,並更新區域的 NS 記錄,將要求導向至快取或權威名稱伺服器。
SOA 序號
SOA 序號是 DNS 區域的版本號碼。所有名稱伺服器都必須使用相同的 SOA 序號,才能與區域的版本保持一致。每當對區域的記錄集進行交易變更時,在 DNS 代管區域中建立的 SOA 記錄序號就會單調遞增。
不過,您可以將 SOA 記錄的序號變更為任意號碼,包括 RFC 1912 中建議的 ISO 8601 格式日期。
DNSSEC
網域名稱系統安全性擴充功能 (DNSSEC) 可解決 DNS 資料的安全漏洞。DNSSEC 是一套 IETF 規格,可為 DNS 用戶端 (解析器) 提供 DNS 資料驗證、已驗證的存在否,以及資料完整性。簡而言之,DNSSEC 可讓軟體驗證 DNS 資料的來源,並確認資料在傳輸過程中未經修改。
如需 DNSSEC 的詳細資訊,請參閱 RFC 4033。
如需 DNS 常用術語清單,請參閱 RFC 7719。
後續步驟
- 如要開始使用 Cloud DNS,請參閱「快速入門:使用 Cloud DNS 設定網域名稱的 DNS 記錄」。
- 如要新增、刪除或更新記錄,請參閱「新增、修改及刪除記錄」。
- 如要使用受管理的區域,請參閱「建立、修改及刪除區域」。