自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

小菜學(xué)網(wǎng)絡(luò)之DNS記錄類型

網(wǎng)絡(luò) 通信技術(shù)
我們知道,域名可以和指定的 IP 進行關(guān)聯(lián),進而充當(dāng) IP 的別名。我們通過域名來訪問網(wǎng)絡(luò)服務(wù)時,域名系統(tǒng)會幫我們將域名解析成對應(yīng)的 IP 地址。

 [[400276]]

本文轉(zhuǎn)載自微信公眾號「小菜學(xué)編程」,作者fasionchan。轉(zhuǎn)載本文請聯(lián)系小菜學(xué)編程公眾號。

經(jīng)過前面學(xué)習(xí),我們初步掌握了域名系統(tǒng)的基本原理。

我們知道,域名可以和指定的 IP 進行關(guān)聯(lián),進而充當(dāng) IP 的別名。我們通過域名來訪問網(wǎng)絡(luò)服務(wù)時,域名系統(tǒng)會幫我們將域名解析成對應(yīng)的 IP 地址。

那么,域名是否只能關(guān)聯(lián) IP 地址呢?其實并不是。除了 IP 地址,域名還可以關(guān)聯(lián)其他類型的信息。

實際上,域名和與之關(guān)聯(lián)的信息,就構(gòu)成了一條 DNS記錄 ( DNS record )。DNS記錄可以理解成一個鍵值對:

  • 鍵:域名;
  • 值:與域名關(guān)聯(lián)的值;

除了 IP 地址,DNS記錄值還可以是 IPv6 地址、別名、文本等等。據(jù)此,DNS記錄可分為若干不同類型,包括:

  • A ,主機 IP 地址;
  • AAAA ,主機 IPv6 地址;
  • ALIAS ,自動解析的別名( alias );
  • CNAME ,別名的權(quán)威名稱( canonical name );
  • MX ,郵件交換服務(wù)器( Mail eXchange );
  • NS ,域名服務(wù)器( name server );
  • TXT ,描述文本;

記錄類型也就是 DNS 報文中,問題記錄和資源記錄的類型( Type )。

A記錄

A 記錄,表示主機的 IP 地址,這是最常見的 DNS 記錄類型。

  1. root@netbox [ ~ ]  ➜ dig test.fasionchan.com 
  2.  
  3. ; <<>> DiG 9.16.1-Ubuntu <<>> test.fasionchan.com 
  4. ;; global options: +cmd 
  5. ;; Got answer: 
  6. ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 49579 
  7. ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 
  8.  
  9. ;; QUESTION SECTION
  10. ;test.fasionchan.com.  IN A 
  11.  
  12. ;; ANSWER SECTION
  13. test.fasionchan.com. 752 IN A 10.0.0.1 
  14.  
  15. ;; Query time: 71 msec 
  16. ;; SERVER: 192.168.65.1#53(192.168.65.1) 
  17. ;; WHEN: Mon Apr 26 17:22:16 CST 2021 
  18. ;; MSG SIZE  rcvd: 53 

AAAA記錄

AAAA 記錄,表示主機的 IPv6 地址,與 A 記錄類似。IP 地址長度為 4 字節(jié),IPv6 地址長度為 16 字節(jié),這也是 AAAA 記錄的由來。隨著 IPv6 的部署,AAAA 記錄也正變得常用了。

dig 命令默認查詢 A 記錄,如果想查詢 AAAA 記錄,必須通過命令行參數(shù)指定:

  1. root@netbox [ ~ ]  ➜ dig t-aaaa.fasionchan.com AAAA 
  2.  
  3. ; <<>> DiG 9.16.1-Ubuntu <<>> t-aaaa.fasionchan.com AAAA 
  4. ;; global options: +cmd 
  5. ;; Got answer: 
  6. ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 5088 
  7. ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 
  8.  
  9. ;; QUESTION SECTION
  10. ;t-aaaa.fasionchan.com.  IN AAAA 
  11.  
  12. ;; ANSWER SECTION
  13. t-aaaa.fasionchan.com. 752 IN AAAA ::1 
  14.  
  15. ;; Query time: 50 msec 
  16. ;; SERVER: 192.168.65.1#53(192.168.65.1) 
  17. ;; WHEN: Mon Apr 26 17:37:10 CST 2021 
  18. ;; MSG SIZE  rcvd: 67 

CNAME記錄

CNAME 記錄,表示別名的 權(quán)威名稱 ( canonical name )。

域名可以取別名,以 webserver.fasionchan.com 為例,它可以取一個別名,比如:network.fasionchan.com 。如此一來,我們稱前者是后者的 權(quán)威名稱 ,CNAME 記錄則保存權(quán)威名稱。

當(dāng)查詢別名 network.fasionchan.com 時,如果 DNS 服務(wù)器返回的是 CNAME 記錄,我們還需要進一步查詢權(quán)威名稱,才能得到最終結(jié)果。當(dāng)然了,大部分 DNS 緩存服務(wù)器會自動幫我們做這件事情。

那么,域名為什么需要別名呢?CNAME 記錄又有什么典型的應(yīng)用場景呢?

假設(shè)我有一臺 Web 服務(wù)器,它上面部署了多個站點:

  • 我的網(wǎng)絡(luò)專欄:network.fasionchan.com ;
  • 我的 Linux 專欄:linux.fasionchan.com ;
  • 我的 Python 專欄:python.fasionchan.com ;

我可以申請一個域名 webserver.fasionchan.com ,通過 A 記錄指向 Web 服務(wù)器;然后為幾個專欄域名配置 CNAME 記錄,指向 webserver.fasionchan.com :

這樣做有一個好處:如果我調(diào)整了 Web 服務(wù)器,將它遷移到另一臺主機上,我只需修改 webserver.fasionchan.com 一個域名,其他專欄域名均無須調(diào)整。

我的個人網(wǎng)站 fasionchan.com 部署在阿里云 CDN 上,域名也是通過 CNAME 記錄指向一個阿里云域名。不然的話,只要阿里云 CDN 一調(diào)整,我就得修改域名!這肯定會是一場噩夢!

MX記錄

MX 記錄,表示 郵件交換 ( mail exchange )服務(wù),即郵件服務(wù)器。其中,MX 是 Mail eXchange 的縮寫。

電子郵件可以是說是互聯(lián)網(wǎng)中發(fā)展最早,應(yīng)用最為廣泛的應(yīng)用。我們發(fā)送郵件時,客戶端需要根據(jù)自己的郵箱賬號找到郵件服務(wù)器的地址,并通過 SMTP 協(xié)議和它進行通信。

每個郵件廠商都有一個自己的域名,查詢該域名的 MX 記錄,即可找到郵件服務(wù)器的地址。以 QQ郵箱 為例,它的域名是 qq.com 。我們執(zhí)行 dig 命令查詢 qq.com 的 MX 記錄:

  1. root@netbox [ ~ ]  ➜ dig qq.com MX 
  2.  
  3. ; <<>> DiG 9.16.1-Ubuntu <<>> qq.com MX 
  4. ;; global options: +cmd 
  5. ;; Got answer: 
  6. ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 49462 
  7. ;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 4 
  8.  
  9. ;; OPT PSEUDOSECTION: 
  10. ; EDNS: version: 0, flags:; udp: 4000 
  11. ;; QUESTION SECTION
  12. ;qq.com.    IN MX 
  13.  
  14. ;; ANSWER SECTION
  15. qq.com.   1435 IN MX 20 mx2.qq.com. 
  16. qq.com.   1435 IN MX 10 mx3.qq.com. 
  17. qq.com.   1435 IN MX 30 mx1.qq.com. 
  18.  
  19. ;; ADDITIONAL SECTION
  20. mx3.qq.com.  463 IN A 113.96.208.206 
  21. mx3.qq.com.  3 IN AAAA 240e:ff:f101:10::127 
  22. mx1.qq.com.  2409 IN A 14.215.140.20 
  23.  
  24. ;; Query time: 18 msec 
  25. ;; SERVER: 10.2.66.66#53(10.2.66.66) 
  26. ;; WHEN: Wed Apr 28 18:40:03 CST 2021 
  27. ;; MSG SIZE  rcvd: 155 

由此可見,QQ郵箱總共有 3 個郵件交換服務(wù),分別是:

  • mx1.qq.com.
  • mx2.qq.com.
  • mx3.qq.com.

我們可以從中挑選一臺,比如 mx3.qq.com. ,它的 IP 地址是 14.215.140.20 。通過 SMTP 協(xié)議連接上去,認證完畢后,即可正常收發(fā)郵件了。

讀到此處,您可能會有疑問了:根據(jù)域名找到郵件服務(wù)器,A 記錄不也能夠勝任嗎?

確實如此,A 記錄理論上也是可以勝任的。只不過在互聯(lián)網(wǎng)發(fā)展早期,電子郵件是一個重量級應(yīng)用。網(wǎng)絡(luò)先驅(qū)們?yōu)樗氐卦O(shè)計了 MX 記錄,也就不奇怪了。

實際上,騰訊不止 QQ 郵箱一個產(chǎn)品,還有騰訊網(wǎng)。由于郵件服務(wù)有自己的 MX 記錄,騰訊網(wǎng)可以使用 A 記錄。這樣一來,兩者可以使用相同的域名qq.com:

瀏覽器訪問騰訊網(wǎng)時,可以查詢 qq.com 的 A 記錄,得到服務(wù)器地址。我們可以執(zhí)行 dig 命令模擬一下:

  1. root@netbox [ ~ ]  ➜ dig qq.com A 
  2.  
  3. ; <<>> DiG 9.16.1-Ubuntu <<>> qq.com A 
  4. ;; global options: +cmd 
  5. ;; Got answer: 
  6. ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 46166 
  7. ;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 1 
  8.  
  9. ;; OPT PSEUDOSECTION: 
  10. ; EDNS: version: 0, flags:; udp: 4000 
  11. ;; QUESTION SECTION
  12. ;qq.com.    IN A 
  13.  
  14. ;; ANSWER SECTION
  15. qq.com.   193 IN A 203.205.254.157 
  16. qq.com.   193 IN A 61.129.7.47 
  17. qq.com.   193 IN A 183.3.226.35 
  18. qq.com.   193 IN A 123.151.137.18 
  19.  
  20. ;; Query time: 11 msec 
  21. ;; SERVER: 10.2.66.66#53(10.2.66.66) 
  22. ;; WHEN: Wed Apr 28 18:41:16 CST 2021 
  23. ;; MSG SIZE  rcvd: 99 

NS記錄

NS 記錄,保存著負責(zé)該域解析的權(quán)威DNS服務(wù)器,記錄值為DNS服務(wù)器的域名。

以我的域名 fasionchan.com 為例,它在騰訊云 dnspod 上解析。我注冊域名后,需要配置 NS 記錄,指向 dnspod 服務(wù)器。這個 NS 記錄,最終會被同步到 .com 頂級域名服務(wù)器。

由此一來,當(dāng)客戶端發(fā)起迭代解析時,com 域名服務(wù)器就知道查詢該域名應(yīng)該去找 dnspod 。

如果我想將域名轉(zhuǎn)到阿里云上去解析,我只需找我的域名注冊商,修改 NS 記錄指向阿里云的 DNS 服務(wù)器。一切就緒后,我就可以在阿里云上管理我的域名了。

我還可以將子域 lumy.fasionchan.com 送給我的朋友 Lumy ,只要我在 dnspod 上為 lumy.fasionchan.com 添加 NS 記錄,指向 Lumy 選擇的 DNS 服務(wù)器即可。此后,Lumy 就可以在自己的 DNS 服務(wù)上管理該域。

當(dāng)有客戶端迭代查詢 lumy.fasionchan.com 這個子域時,dnspod 將根據(jù)該 NS 記錄,告訴客戶端應(yīng)該去找 Lumy 的 DNS 服務(wù)器查詢(假設(shè) Lumy 在阿里云上管理子域):

由此可見,NS 記錄在 DNS 迭代查詢中扮演著非常重要的角色。上級 DNS 服務(wù)器通過 NS 記錄,找到下級 DNS 服務(wù)器,直到域名查詢完畢。

理論上,根域也需要 NS 記錄,來指向全球的 13 臺根域名服務(wù)器。那根域的 NS 記錄維護在哪里呢?由于根服務(wù)器極少改動,所以可以通過配置的形式指定??蛻舳丝梢圆樵兏?NS 記錄,DNS 緩存服務(wù)器會根據(jù)自己的配置進行回答:

  1. root@netbox [ ~ ]  ➜ dig . NS 
  2.  
  3. ; <<>> DiG 9.16.1-Ubuntu <<>> . NS 
  4. ;; global options: +cmd 
  5. ;; Got answer: 
  6. ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10652 
  7. ;; flags: qr rd ra; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 4 
  8.  
  9. ;; OPT PSEUDOSECTION: 
  10. ; EDNS: version: 0, flags:; udp: 4000 
  11. ;; QUESTION SECTION
  12. ;.    IN NS 
  13.  
  14. ;; ANSWER SECTION
  15. .   1767 IN NS h.root-servers.net. 
  16. .   1767 IN NS l.root-servers.net. 
  17. .   1767 IN NS k.root-servers.net. 
  18. .   1767 IN NS f.root-servers.net. 
  19. .   1767 IN NS b.root-servers.net. 
  20. .   1767 IN NS d.root-servers.net. 
  21. .   1767 IN NS m.root-servers.net. 
  22. .   1767 IN NS i.root-servers.net. 
  23. .   1767 IN NS c.root-servers.net. 
  24. .   1767 IN NS g.root-servers.net. 
  25. .   1767 IN NS e.root-servers.net. 
  26. .   1767 IN NS j.root-servers.net. 
  27. .   1767 IN NS a.root-servers.net. 
  28.  
  29. ;; ADDITIONAL SECTION
  30. h.root-servers.net. 2926 IN A 198.97.190.53 
  31. c.root-servers.net. 37 IN A 192.33.4.12 
  32. a.root-servers.net. 2217 IN A 198.41.0.4 
  33.  
  34. ;; Query time: 17 msec 
  35. ;; SERVER: 10.2.66.66#53(10.2.66.66) 
  36. ;; WHEN: Thu Apr 29 19:45:54 CST 2021 
  37. ;; MSG SIZE  rcvd: 300 

TXT記錄

TXT 記錄用來保存一些文本信息,這些信息可以用作配置,但不太常見。我們舉個例子:

  1. root@netbox [ ~ ]  ➜ dig t-txt.fasionchan.com TXT 
  2.  
  3. ; <<>> DiG 9.16.1-Ubuntu <<>> t-txt.fasionchan.com TXT 
  4. ;; global options: +cmd 
  5. ;; Got answer: 
  6. ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 23557 
  7. ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 
  8.  
  9. ;; OPT PSEUDOSECTION: 
  10. ; EDNS: version: 0, flags:; udp: 4000 
  11. ;; QUESTION SECTION
  12. ;t-txt.fasionchan.com.  IN TXT 
  13.  
  14. ;; ANSWER SECTION
  15. t-txt.fasionchan.com. 600 IN TXT "hello world" 
  16.  
  17. ;; Query time: 55 msec 
  18. ;; SERVER: 10.2.66.66#53(10.2.66.66) 
  19. ;; WHEN: Wed Apr 28 18:04:24 CST 2021 
  20. ;; MSG SIZE  rcvd: 73 

很多云平臺使用 TXT 記錄來驗證域名所有權(quán):先讓域名所有人配置一條特殊的 TXT 記錄,然后查詢該記錄看結(jié)果是否匹配。

 

責(zé)任編輯:武曉燕 來源: 小菜學(xué)編程
相關(guān)推薦

2021-05-11 21:57:17

DNS報文格式

2021-04-21 20:21:07

DNS服務(wù)器網(wǎng)絡(luò)

2025-02-08 10:11:25

2021-04-13 22:17:19

網(wǎng)絡(luò)域名系統(tǒng)

2021-07-06 21:29:16

TCPIP協(xié)議棧

2011-11-16 11:12:46

DNSDNS記錄DNS恢復(fù)

2011-11-18 10:40:16

Windows活動目錄DNS記錄

2019-03-29 09:39:24

域滲透DNSWindows

2011-11-18 10:52:00

2011-11-16 10:02:48

DNSDNS記錄DNS記錄消失

2010-11-15 13:35:28

Oracle記錄類型

2012-06-08 13:54:59

2021-07-27 20:51:02

AndroidDNS網(wǎng)絡(luò)

2010-05-18 10:46:46

2015-04-09 10:58:09

2023-10-19 07:05:27

DNS網(wǎng)絡(luò)安全

2010-09-27 14:10:29

DNS協(xié)議簡介

2017-09-08 13:04:39

2021-09-02 09:24:14

DNSrrDNS安全工具

2010-06-03 13:00:37

DNS故障
點贊
收藏

51CTO技術(shù)棧公眾號