DNS术语,组件和概念介绍
DNS術語,組件和概念介紹
??介紹
DNS或域名系統往往是學習如何配置網站和服務器的一個非常困難的部分。了解DNS如何工作將幫助您診斷配置訪問您的網站的問題,并可以讓您擴大對幕后發生的事情的理解。
在本指南中,我們將討論一些基本的DNS概念,這些概念將幫助您在DNS配置方面實現目標。處理完本指南之后,您應準備好使用DigitalOcean?設置您的域名或設置您自己的DNS服務器。
在我們開始設置自己的服務器來解析您的域名或在控制面板中設置我們的域名之前,讓我們回顧一下這些實際工作的一些基本概念。
域名術語
我們應該首先定義我們的條款。雖然其中一些主題在其他情況下很常見,但是在討論域名和DNS時,有許多術語在其他計算領域不常用。
讓我們開始輕松:
域名系統
通常被稱為“DNS”的域名系統是允許我們將人性化名稱解析為唯一地址的網絡系統。
域名
域名是我們習慣與互聯網資源相關聯的人性化名稱。例如,“google.com”是一個域名。有人會說,“谷歌”的部分是域名,但我們通常可以將組合形式稱為域名。
網址“google.com”與Google Inc.所擁有的服務器相關聯。當我們在瀏覽器中輸入“google.com”時,域名系統允許我們訪問Google服務器。
IP地址
一個IP地址就是我們所說的網絡地址。每個IP地址在其網絡中必須是唯一的。當我們談論網站時,這個網絡就是整個互聯網。
IPv4是最常見的地址形式,被寫成四組數字,每組最多有三位數字,每組由一個點分開。例如,“111.222.111.222”可能是有效的IPv4 IP地址。使用DNS,我們將一個名稱映射到該地址,這樣您就不必為每個想要在網絡上訪問的地方記住一組復雜的數字。
頂級域名
頂級域名或頂級域名(TLD)是域名中最普通的部分。頂級域是最右邊的部分(用點分隔)。常見的頂級域名是“com”,“net”,“org”,“gov”,“edu”和“io”。
頂級域名在域名方面處于頂層。由ICANN(互聯網名稱與數字地址分配機構)對某些當事方進行頂級域名的管理控制。然后,這些當事方可以通過域名注冊商在TLD下分配域名。
主機
在域內,域所有者可以定義單個主機,這些主機指的是通過域可訪問的單獨的計算機或服務。例如,大多數域所有者通過裸域(example.com)以及“主機”定義“www”(www.example.com)使其Web服務器可訪問。
您可以在通用域下使用其他主機定義。您可以通過“api”主機(api.example.com)訪問API,也可以通過定義名為“ftp”或“files”的主機(ftp.example.com或files.example.com)來訪問ftp。主機名稱可以是任意的,只要它們對于域是唯一的即可。
子域
與主機相關的主題是子域。
DNS在層次結構中工作。頂級域名下可以有許多域名。例如,“com”頂級域名下面有“google.com”和“ubuntu.com”。“子域”是指屬于較大域的任何域。在這種情況下,“ubuntu.com”可以說是“com”的一個子域。這通常被稱為域或“Ubuntu”部分被稱為SLD,這意味著二級域。
同樣,每個域可以控制位于其下的“子域”。這通常是我們所說的子域名。例如,你可以在www.history.school.edu上為你的學校的歷史系設置一個子域。“歷史”部分是一個子域。
主機名和子域的區別在于主機定義了計算機或資源,而子域擴展了父域。這是一個細分領域本身的方法。
無論是討論子域還是主機,你都可以開始看到域的最左邊部分是最具體的。這就是DNS的工作方式:從左到右閱讀時,從最多到最不特定。
完全合格的域名
一個完全合格的域名,通常被稱為FQDN,就是我們所說的絕對域名。DNS系統中的域可以相對于另一個域給出,因此可能有些不明確。FQDN是一個絕對名稱,指定其相對于域名系統的絕對根的位置。
這意味著它指定了包括TLD的每個父域。正確的FQDN以點結束,表示DNS層次結構的根。FQDN的一個例子是“mail.google.com”。有時候,要求FQDN的軟件不需要結束點,但是要求結尾的點符合ICANN標準。
名稱服務器
名稱服務器是指定將域名轉換為IP地址的計算機。這些服務器完成DNS系統中的大部分工作。由于任何一臺服務器的域名翻譯總數太多,每個服務器可能會將請求重定向到其他域名服務器,或者委托他們負責的子域名的一個子集。
名稱服務器可以是“權威的”,這意味著他們給予他們控制的域名查詢的答案。否則,他們可能會指向其他服務器,或者提供其他名稱服務器數據的緩存副本。
區域文件
區域文件是一個簡單的文本文件,其中包含域名和IP地址之間的映射。這就是當用戶請求某個域名時,DNS系統如何最終找出應該聯系哪個IP地址。
區域文件駐留在名稱服務器中,通常定義特定域下可用的資源,或者可以獲取該信息的地方。
記錄
在一個區域文件中,記錄被保存。在最簡單的形式中,記錄基本上是資源和名稱之間的單一映射。這些可以將域名映射到IP地址,定義域的名稱服務器,定義域的郵件服務器等。
DNS如何工作
現在您已經熟悉DNS所涉及的一些術語,系統實際上是如何工作的?
這個系統非常簡單,但是在查看細節時非常復雜。總體而言,這是一個非常可靠的基礎設施,對我們今天所知道的互聯網的采用至關重要。
根服務器
正如我們上面所說的,DNS的核心是一個分層系統。這個系統的頂部是所謂的“根服務器”。這些服務器由各種組織控制,并由ICANN(互聯網名稱與數字地址分配機構)授權。
目前有13個根服務器正在運行。但是,由于每分鐘都有數量驚人的名稱需要解析,所以這些服務器中的每一個實際上都是鏡像的。關于這個設置的有趣的事情是,單個根服務器的每個鏡像共享相同的IP地址。當對某個根服務器發出請求時,該請求將被路由到該根服務器的最近鏡像。
這些根服務器是做什么的?根服務器處理有關頂級域信息的請求。因此,如果某個請求是針對某個較低級名稱服務器無法解析的內容進行的,則會向該域的根服務器進行查詢。
根服務器實際上并不知道域托管的位置。但是,他們將能夠將請求者引導到處理特定請求的頂級域名的名稱服務器。
因此,如果向根服務器發出“?www.wikipedia.org?”?的請求,根服務器將不會在其記錄中找到結果。它將檢查其區域文件中是否有與“?www.wikipedia.org?”?匹配的列表。它不會找到一個。
它將找到“組織”TLD的記錄,并為請求實體提供負責“組織”地址的名稱服務器的地址。
TLD服務器
然后請求者發送一個新的請求到負責請求的頂級域的IP地址(由根服務器給予的)。
所以,繼續我們的例子,它會發送一個請求到負責了解“org”域的名字服務器,看它是否知道“?www.wikipedia.org?”的位置。
請求者再次在其區域文件中查找“?www.wikipdia.org?”。它不會在它的文件中找到這個記錄。
但是,它會找到一個記錄,列出負責“wikipedia.org”的名稱服務器的IP地址。這更接近我們想要的答案。
域名服務器
此時,請求者具有負責了解資源實際IP地址的名稱服務器的IP地址。它會向名稱服務器發送一個新的請求,再次詢問是否可以解析“?www.wikipedia.org?”。
名稱服務器檢查其區域文件,發現它具有與“wikipedia.org”相關聯的區域文件。在這個文件里面,有一個“www”主機的記錄。該記錄告訴該主機所在的IP地址。名稱服務器將最終答案返回給請求者。
什么是解析名稱服務器?
在上述情況下,我們提到了“請求者”。在這種情況下請求者是什么?
在幾乎所有情況下,請求者將是我們所說的“解析名稱服務器”。解析名稱服務器是配置為詢問其他服務器的問題。它基本上是一個用戶緩存以前的查詢結果,以提高速度,并知道根服務器的地址,能夠“解決”對于它不知道的事情的請求的中介。
基本上,用戶通常會在其計算機系統上配置一些解析名稱服務器。解析名稱服務器通常由ISP或其他組織提供。例如,Google提供了解析您可以查詢的DNS服務器。這些可以在您的計算機上自動或手動配置。
當您在瀏覽器的地址欄中鍵入URL時,您的計算機首先會查看是否可以在本地找到資源所在的位置。它檢查計算機和其他幾個位置上的“主機”文件。然后將請求發送到解析名稱服務器,并等待接收該資源的IP地址。
解析名稱服務器然后檢查其緩存的答案。如果沒有找到它,它將通過上面列出的步驟。
解析名稱服務器基本上壓縮了最終用戶的請求過程。客戶只需要知道如何查詢資源所在的解析名稱服務器,并確信他們將調查并返回最終答案。
區域文件
我們在上述過程中提到了“區域文件”和“記錄”的概念。
區域文件是名稱服務器存儲關于他們所了解的域的信息的方式。名稱服務器知道的每個域都存儲在區域文件中。大多數請求到平均名稱服務器不是服務器將有區域文件的東西。
如果將它配置為處理遞歸查詢,如解析名稱服務器,則會找出答案并將其返回。否則,它會告訴請求方在哪里看下一個。
名稱服務器所具有的區域文件越多,它就能夠以權威的方式回答更多的請求。
區域文件描述了一個DNS“區域”,它基本上是整個DNS命名系統的一個子集。它通常用于配置一個單一的域。它可以包含許多記錄,這些記錄定義了所涉及域的資源。
該區域$ORIGIN是默認情況下等于區域最高級別的參數。
所以如果使用區域文件來配置“example.com”。域,$ORIGIN將被設置為example.com.。
這可以配置在區域文件的頂部,也可以在引用區域文件的DNS服務器的配置文件中定義。無論哪種方式,這個參數描述了該區域將是權威的。
同樣,$TTL配置它提供的信息的“生存時間”。這基本上是一個計時器。緩存名稱服務器可以使用以前查詢的結果來回答問題,直到TTL值用完。
記錄類型
在區域文件中,我們可以有許多不同的記錄類型。我們將在這里介紹一些更常見的(或強制類型)。
SOA記錄
權限的開始或SOA記錄是所有區域文件中的強制記錄。它必須是文件中的第一個真實記錄(盡管$ ORIGIN或$ TTL規格可能出現在上面)。這也是最難理解的一個。
權限記錄的開始看起來像這樣:
domain.com。 在SOA ns1.domain.com中。admin.domain.com。(12083; 序列號 3h; 刷新間隔 30m; 重試間隔 3w; 有效期 1h; 負TTL )我們來解釋一下每個部分的用途:
-
domain.com。:這是區域的根。這指定區域文件是domain.com.域的。通常情況下,你會看到這個替換@,這只是一個占位符,用$ORIGIN我們上面學到的變量的內容。
-
在SOA中:“IN”部分意味著互聯網(并將出現在許多記錄中)。SOA是這是一個權威記錄開始的指標。
-
ns1.domain.com。:這為此域定義了主要的主要名稱服務器。名稱服務器可以是主服務器,也可以是從服務器,如果配置了動態DNS,則一臺服務器需要成為“主服務器”。如果您還沒有配置動態DNS,那么這只是您的主名稱服務器之一。
-
admin.domain.com。:這是此區域管理員的電子郵件地址。“@”被電子郵件地址中的一個點替換。如果電子郵件地址的名稱部分通常有一個點,則在此部分用“\”替換(your.name@domain.com成為您的\ name.domain.com)。
-
12083:這是區域文件的序列號。每次編輯區域文件時,都必須遞增該區域文件的編號才能正確傳播。從屬服務器將檢查主服務器的序列號是否大于其系統上的序列號。如果是,則請求新的區域文件,如果不是,則繼續提供原始文件。
-
3h:這是該區域的刷新間隔。這是輪詢主區域更改區域之前從屬服務器等待的時間。
-
30m:這是該區域的重試間隔。如果從站在刷新周期結束后無法連接到主站,則會等待此時間,然后重試輪詢主站。
-
3w:這是到期時間。如果從屬名稱服務器在這段時間內無法聯系主服務器,則不再返回作為該區域權威來源的響應。
-
1h:如果名稱服務器在該文件中找不到請求的名稱,則這是名稱服務器將緩存名稱錯誤的時間。
A和AAAA記錄
這兩個記錄都將主機映射到IP地址。“A”記錄用于將主機映射到IPv4 IP地址,而“AAAA”記錄用于將主機映射到IPv6地址。
這些記錄的一般格式是這樣的:
主機 IN IPv4_address 主機 IN AAAA IPv6_address因此,由于我們的SOA記錄在“ns1.domain.com”中調用了主要主服務器,因此“ns1.domain.com”位于“domain.com”區域內的情況下,我們必須將其映射到IP地址該文件正在定義。
記錄可能看起來像這樣:
ns1 IN A 111.222.111.222請注意,我們不必提供全名。我們可以給主機,沒有FQDN和DNS服務器將用$ ORIGIN值填充其余的。但是,如果我們覺得自己是語義的話,我們可以輕松地使用整個FQDN:
ns1.domain.com. IN A 111.222.111.222在大多數情況下,這是您將Web服務器定義為“www”的地方:
www IN A 222.222.222.222我們也應該告訴基地域解決的地方。我們可以這樣做:
domain.com. IN A 222.222.222.222我們可以使用“@”來代替基本域:
@ IN A 222.222.222.222我們也可以選擇解決這個領域中沒有明確定義到這個服務器的東西。我們可以用“*”通配符來做到這一點:
* IN A 222.222.222.222所有這些與IPv6地址的AAA??A記錄一樣好。
CNAME記錄
CNAME記錄為您的服務器定義了規范名稱的別名(由A或AAAA記錄定義的名稱)。
例如,我們可以有一個定義“server1”主機的名稱記錄,然后使用“www”作為該主機的別名:
server1 IN A 111.111.111.111 www IN CNAME server1請注意,這些別名會帶來一些性能損失,因為它們需要對服務器進行額外的查詢。大多數情況下,使用附加的A或AAAA記錄可以獲得相同的結果。
建議使用CNAME的一種情況是為當前區域外的資源提供別名。
MX記錄
MX記錄用于定義用于域的郵件交換。這有助于電子郵件正確地到達您的郵件服務器。
與許多其他記錄類型不同,郵件記錄通常不會將主機映射到某個東西,因為它們適用于整個區域。因此,他們通常看起來像這樣:
IN MX 10 mail.domain.com.請注意,開始時沒有主機名。
另外請注意,那里有一個額外的數字。如果定義了多個郵件服務器,這是幫助計算機決定將郵件發送到哪個服務器的首選項編號。數字越小,優先級越高。
MX記錄通常應指向由A或AAAA記錄定義的主機,而不是由CNAME定義的主機。
所以,假設我們有兩個郵件服務器。必須有這樣的記錄:
IN MX 10 mail1.domain.com.IN MX 50 mail2.domain.com. mail1 IN A 111.111.111.111 mail2 IN A 222.222.222.222在這個例子中,“mail1”主機是首選的電子郵件交換服務器。
我們也可以這樣寫:
IN MX 10 mail1IN MX 50 mail2 mail1 IN A 111.111.111.111 mail2 IN A 222.222.222.222NS記錄
此記錄類型定義用于此區域的名稱服務器。
您可能想知道,“如果區域文件駐留在名稱服務器上,為什么需要引用它?”。使得DNS如此成功的部分原因是它的多級緩存。在區域文件中定義名稱服務器的一個原因是,區域文件可能實際上是從另一個名稱服務器上的緩存副本提供的。還有其他的原因需要名稱服務器本身定義的名稱服務器,但我們不會在這里進入。
和MX記錄一樣,這些是區域范圍的參數,所以它們也不占用主機。一般來說,他們看起來像這樣:
IN NS ns1.domain.com.IN NS ns2.domain.com.如果一臺服務器出現問題,您應該在每個區域文件中至少定義兩臺名稱服務器,以便正確運行。如果只有一個名稱服務器,大多數DNS服務器軟件會將區域文件視為無效。
與往常一樣,包含A或AAAA記錄的主機的映射:
IN NS ns1.domain.com.IN NS ns2.domain.com. ns1 IN A 111.222.111.111 ns2 IN A 123.211.111.233還有其他幾種可以使用的記錄類型,但這些可能是您遇到的最常見的類型。
PTR記錄
PTR記錄用于定義與IP地址關聯的名稱。PTR記錄是A或AAAA記錄的倒數。PTR記錄是獨一無二的,因為它們從.arpa根開始并被委托給IP地址的所有者。地區互聯網注冊管理機構(RIR)管理組織和服務提供商的IP地址代表團。地區互聯網注冊管理機構包括APNIC,ARIN,RIPE NCC,LACNIC和AFRINIC。
下面是一個111.222.333.444的PTR記錄的例子:
444.333.222.111.in-addr.arpa. 33692 IN PTR host.example.com.這個IPv6地址PTR記錄的例子顯示了Google的IPv6 DNS服務器反向的半字節格式2001:4860:4860::8888。
8.8.8.8.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.6.8.4.0.6.8.4.1.0.0.2.ip6.arpa. 86400IN PTR google-public-dns-a.google.com.dig具有該-x標志的命令行工具可用于查找IP地址的反向DNS名稱。
這是一個dig命令的例子。+short附加的是將輸出減少到反向DNS名稱。
- dig -x 8.8.4.4 +short
上面的dig命令的輸出將是IP地址的PTR記錄中的域名:
google-public-dns-b.google.com.互聯網上的服務器使用PTR記錄在日志條目中放置域名,做出明智的垃圾郵件處理決策,并顯示??有關其他設備的易于閱讀的詳細信息。
大多數常用的電子郵件服務器將查找接收電子郵件的IP地址的PTR記錄。如果源IP地址沒有與其關聯的PTR記錄,則發送的電子郵件可能被視為垃圾郵件并被拒絕。PTR中的FQDN與正在發送的電子郵件的域名相匹配并不重要。重要的是有一個有效的PTR記錄,并有一個相應的正確的A記錄。
通常,互聯網上的網絡路由器被賦予與其物理位置相對應的PTR記錄。例如,紐約市或芝加哥的路由器可能會引用“NYC”或“CHI”。這在運行traceroute或MTR并查看Internet流量正在進行的路徑時非常有用。
大多數提供專用服務器或VPS服務的提供商將允許客戶為其IP地址設置PTR記錄。當Droplet以域名命名時,DigitalOcean將自動分配任何Droplet的PTR記錄。Droplet名稱在創建過程中被分配,并且可以稍后使用Droplet控制面板的設置頁面進行編輯。
注意:?PTR記錄中的FQDN具有相應的匹配的正向A記錄是很重要的。示例:111.222.333.444具有server.example.com的PTR,server.example.com是指向111.222.333.444的A記錄。
CAA記錄
CAA記錄用于指定哪些證書頒發機構(CA)可以為您的域頒發SSL / TLS證書。截至2017年9月8日,所有的CA都需要在簽發證書前檢查這些記錄。如果沒有記錄,任何CA都可以頒發證書。否則,只有指定的CA可以頒發證書。CAA記錄可以應用于單個主機或整個域。
CAA記錄的一個例子如下:
example.com. IN CAA 0 issue "letsencrypt.org"主機,IN和記錄類型(CAA)是常見的DNS字段。上面的CAA特定的信息是這個0 issue "letsencrypt.org"部分。它由三部分組成:flags(0),tags(issue)和values("letsencrypt.org")。
- 標志是一個整數,表示CA如何處理它不理解的標簽。如果該標志是0,該記錄將被忽略。如果1,CA必須拒絕頒發證書。
- 標簽是表示CAA記錄目的的字符串。目前,他們可以issue授權CA為特定主機名創建證書,issuewild授權通配符證書或iodef定義CA可以報告策略違規的URL。
- 值是與記錄的標記相關聯的字符串。對于issue和issuewild這通常是CA的域您授予權限。對于iodef這可能是一個接觸的形式的URL或mailto:鏈接的電子郵件反饋。
您可以使用dig以下選項來獲取CAA記錄:
- dig example.com type257
有關CAA記錄的更多詳細信息,請參閱RFC 6844或我們的教程如何使用DigitalOcean DNS創建和管理CAA記錄
結論
你現在應該對DNS的工作有一個很好的把握。一旦熟悉戰略,總體思路相對容易理解,但對于缺乏經驗的管理者來說,這仍然是一件困難的事情。
有關概述,請查看DigitalOcean控制面板中的如何設置域。
超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生總結
以上是生活随笔為你收集整理的DNS术语,组件和概念介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: nginx无法加载css
- 下一篇: RabbitMQ服务客户端的的业务逻辑