DNS A CNAME MX PTR 等記錄有什麼區別

http://www.diantansuo.com/what-is-different-dns-record-types web


在以前的文章中,咱們瞭解了什麼是 DNS以及DNS 系統是如何工做的,如今讓咱們來看看 DNS 記錄有哪些種類,以及它們有什麼做用。緩存

要理解不一樣的 DNS 記錄,首先必須瞭解區域文件是什麼?服務器

區域文件

區域文件是名稱服務器存儲其所知道的域名的信息的方式。名稱服務器知道的每一個域名都存儲在區域文件中。對於名稱服務器來講,大多數請求都不能在它本身服務器中找到區域文件。網絡

若是它被配置成能夠遞歸查詢,如解析名稱服務器,那它會遞歸找到結果並返回。不然,它會告訴請求者方下一步到哪裏查詢。dom

名稱服務器具備的區域文件越多,它可以權威回答的請求越多。ide

區域文件描述 DNS 「區域」,其基本上是整個 DNS 命名系統的子集。它一般只配置一個域名。它能夠包含多個記錄,定義了該域名下的資源位置。性能

區域文件的 $ORIGIN 表示該區域最高等級的權威。google

因此若是一個區域文件被配置爲 「example.com」 域,$ORIGIN 會被設置爲 example.comspa

它配置在區域文件的頂部,或者能夠在引用區域文件的 DNS 服務器的配置文件中定義。不管哪一種方式,此參數描述區域將是什麼等級的權威。日誌

相似地,$TTL 配置它提供的信息的 「生存時間」。它基本上是一個計時器。高速緩存名稱服務器可使用先前查詢的結果來回答問題,直到 TTL 值用完。

SOA 記錄

開始受權,或者說是 SOA,這種記錄是全部區域性文件中的強制性記錄。它必須是一個文件中的第一個記錄($ORIGIN 和 $TTL 會在它以前指定)。它仍是最難理解的一種記錄。

開始權限記錄的看起來像這樣:

domain.com.  IN SOA ns1.domain.com. admin.domain.com. (
                                            12083   ; serial number
                                            3h      ; refresh interval
                                            30m     ; retry interval
                                            3w      ; expiry period
                                            1h      ; negative TTL)

咱們來解釋一下各部分分別表示什麼:

  • domain.com.:這是區域的根。這代表該區域文件用於 domain.com 域名。一般,你會看到這個用 @ 代替,它只是一個佔位符,表示咱們以前學到的 $ORIGIN 變量的內容。

  • IN SOA:」IN」 部分表示互聯網(它會出如今許多記錄中)。 SOA 是表示這是開始權限記錄。

  • ns1.domain.com.:這定義了該域的主名稱服務器。名稱服務器能夠是主服務器或從服務器,若是配置了動態 DNS,就像這裏,則一個服務器須要是 「主服務器」。若是你未配置動態 DNS,那麼這只是你其中一個主名稱服務器。

  • admin.domain.com.:這是這個區域文件管理員的郵箱地址。郵箱地址的 @ 這裏用一個 . 代替。若是你的名字中也有 . 它會用 \ 代替。(好比 your.name@domain.com 變成 your\name.domain.com)

  • 12083:這是區域文件的序列號。每次編輯區域文件時,必須增長此序列號以使區域文件可以正確傳播。從服務器將檢查主服務器的區域序列號是否大於它們在系統上的序列號。若是是,它請求新的區域文件,若是不是,它繼續服務原始文件。

  • 3h:這是區域的刷新間隔。這是從服務器向主服務器輪詢檢查區域文件是否變動之間等待的時間量。

  • 30m:這是此區域的重試間隔。若是從機在刷新週期結束時沒法鏈接到主機,則它將等待此時間並重試輪詢主機。

  • 3w:這是到期時間。若是從服務器在此時間內沒法與主服務器聯繫,則它再也不做爲此區域的權威來源的返回響應。

  • 1h:這是名稱服務器在此文件中找不到所請求的名稱時緩存找不到結果的時間量。

A 和 AAAA 記錄

這兩個記錄都將主機映射到 IP 地址。 「A」 記錄用於將主機映射到 IPv4 IP 地址,而 「AAAA」 記錄用於將主機映射到 IPv6 地址。

這些記錄的通常格式是:

host     IN      A       IPv4_address
host     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

以上這些對於 AAAA 記錄一樣適用。

CNAME 記錄

CNAME 記錄爲您的服務器(由A或AAAA記錄定義的名稱)定義規範名稱的別名。

例如,咱們能夠有一個 A 記錄定義 「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  mail1
        IN  MX  50  mail2
mail1   IN  A       111.111.111.111
mail2   IN  A       222.222.222.222

NS 記錄

此記錄類型定義用於此區域的名稱服務器。

你可能想知道,」若是區域文件放在名稱服務器上,爲何它須要引用自身?」。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 地址的全部者。區域互聯網註冊管理機構(RIRs)管理 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 來檢查網絡流量通過的路徑頗有用。

大多數提供專用服務器或 VPS 服務的提供商容許客戶爲其 IP 地址設置 PTR 記錄。

注意: PTR 記錄中的 FQDN 具備對應的和匹配的正向 A 記錄是很是重要的。示例:111.222.333.444 有一條指向 server.example.com 的 PTR 記錄,那 server.example.com 須要具備一條指向 111.222.333.444 的 A 記錄。

總結

瞭解了不一樣類型的 DNS 記錄以及它們的做用以後,你就能夠根據須要選擇不一樣的 DNS 記錄。

不一樣的域名服務商提供了不同的 DNS 記錄的的配置方法,可是你理解了 DNS 記錄的做用以後,配置對你來講就不是難事了。

相關文章
相關標籤/搜索