DNS相關內容學習筆記1

記錄dns協議學習中的一些內容,全程無圖。

DNS簡介

DNS查詢過程

訪問網站的基本過程:
1、瀏覽器向DNS服務器發起DNS請求;
2、DNS服務器查到結果,響應DNS請求;
3、瀏覽器拿到IP並向指定IP的HTTP服務發起HTTP請求;
4、HTTP服務器響應,瀏覽器渲染結果。

DNS緩存

假如每一臺DNS服務器都儲存了很多IP地址和域名的對應關係記錄,這樣會導致兩個問題:1、數據量很大,有些記錄是低頻的,浪費空間,查找效率低;2、如果需要更變,變更過程的效率也不高。

因此DNS服務器中加入了緩存機制,當你一定時間內重複詢問同一個網址時,查詢程序會直接找出緩存記錄並響應。
緩存有過期時間,超時未更新會刪除緩存。多數瀏覽器支持本地DNS緩存,可以減少DNS請求,加快響應。

chrome可以查看DNS緩存,在地址欄中輸入如下URL:
chrome://net-internals/#dns

DNS劫持

域名劫持通過攻擊DNS服務器或僞造DNS服務器的方法,把目標網站域名解析到錯誤的IP地址,造成用戶無法訪問目標網站或惡意迫使用戶訪問指定IP。

DNS劫持的關鍵在於DNS服務器與你之間的鏈接爲“明文傳輸”,而非“加密傳輸”。這就可能導致通信的每個環節上都能隨意修改其中的數據內容。

DoH基本原理

DoH可以認爲在DNS外面套一層HTTPS,通常一次請求的時間會變長。流程變成了:

瀏覽器 -> DoH服務器 -> DNS服務器 -> DoH服務器 -> 瀏覽器

該過程中的所有流量皆受到HTTPS加密鏈接強加密。

Firefox開啓DoH

Firefox從v62版開始已支持DoH,DoH(DNS over HTTPS)協議可以加密 DNS 請求和響應,能夠有效解決因DNS污染無法正常訪問某些網站,也可以避免DNS查詢記錄被惡意收集監控或者被改過至虛假釣魚網站。

操作方法:

1、在菜單裏點擊“首選項”;
2、進入“常規”選項;
3、滾動頁面到最下方,選擇“網絡設置”;
4、在彈出窗口最下方選擇“啓用基於HTTPS的DNS”,點擊“使用默認值”即可。

DNS報文格式

DNS分爲查詢請求和查詢響應,請求和響應的報文結構基本相同,在標誌位上有差別。

這部分的內容較多,大體瞭解即可。梳理後會放到下次放出。

DNS幾個關鍵字段

DNS類型字段

dns協議中的type字段,請求類型的集合叫做QTYPES,有一部分的type是dns請求獨有的。(不常用的沒有進行翻譯)

DNS類型

類型名 十進制代碼 含義 參考
A 1 指定域名對應IPv4地址 [RFC1035]
NS 2 權威的名稱服務器地址 [RFC1035]
MD 3 指定郵件接收站(廢棄,使用MX代替) [RFC1035]
MF 4 指定郵件中轉站(廢棄,使用MX代替) [RFC1035]
CNAME 5 指定別名名稱 [RFC1035]
SOA 6 用於 DNS 區域的“起始授權機構” [RFC1035]
MB 7 郵箱域名(實驗性) [RFC1035]
MG 8 郵件組成員 (實驗性) [RFC1035]
MR 9 郵件重命名域名 (實驗性) [RFC1035]
NULL 10 空(實驗性) [RFC1035]
WKS 11 描述已知服務 [RFC1035]
PTR 12 指針,如果查詢是 IP 地址響應計算機名 [RFC1035]
HINFO 13 主機信息 [RFC1035]
MINFO 14 郵箱或郵件列表信息 [RFC1035]
MX 15 郵件交換器 [RFC1035]
TXT 16 文本信息 [RFC1035]
RP 17 for Responsible Person [RFC1183]
AFSDB 18 for AFS Data Base location [RFC1183][RFC5864]
X25 19 for X.25 PSDN address [RFC1183]
ISDN 20 for ISDN address [RFC1183]
RT 21 for Route Through [RFC1183]
NSAP 22 for NSAP address, NSAP style A record [RFC1706]
NSAP-PTR 23 for domain name pointer, NSAP style [RFC1348][RFC1637][RFC1706]
SIG 24 for security signature
KEY 25 for security key
PX 26 X.400 mail mapping information [RFC2163]
GPOS 27 Geographical Position [RFC1712]
AAAA 28 解析IPv6地址 [RFC3596]
LOC 29 Location Information [RFC1876]
NXT 30 Next Domain (OBSOLETE) [RFC3755][RFC2535]
EID 31 Endpoint Identifier
NIMLOC 32 Nimrod Locator
SRV 33 Server Selection [RFC2782]
ATMA 34 ATM Address
NAPTR 35 Naming Authority Pointer [RFC2915][RFC2168][RFC3403]
KX 36 Key Exchanger [RFC2230]
CERT 37 CERT [RFC4398]
A6 38 A6 (OBSOLETE - use AAAA) [RFC3226][RFC2874][RFC6563]
DNAME 39 DNAME [RFC6672]
SINK 40 SINK
OPT 41 OPT [RFC6891][RFC3225]
APL 42 APL [RFC3123]
DS 43 Delegation Signer [RFC4034][RFC3658]
SSHFP 44 SSH Key Fingerprint [RFC4255]
IPSECKEY 45 IPSECKEY [RFC4025]
RRSIG 46 RRSIG [RFC4034][RFC3755]
NSEC 47 NSEC [RFC4034][RFC3755]
DNSKEY 48 DNSKEY [RFC4034][RFC3755]
DHCID 49 DHCID [RFC4701]
NSEC3 50 NSEC3 [RFC5155]
NSEC3PARAM 51 NSEC3PARAM [RFC5155]
TLSA 52 TLSA [RFC6698]
Unassigned 53-54
HIP 55 Host Identity Protocol [RFC5205]
NINFO 56 NINFO
RKEY 57 RKEY
TALINK 58 Trust Anchor LINK
CDS 59 Child DS
Unassigned 60-98
SPF 99 Sender Policy Framework郵件反垃圾 [RFC4408]
UINFO 100 用戶信息 [IANA-Reserved]
UID 101 用戶標識符 [IANA-Reserved]
GID 102 組標識符 [IANA-Reserved]
UNSPEC 103 [IANA-Reserved]
NID 104 [RFC6742]
L32 105 [RFC6742]
L64 106 [RFC6742]
LP 107 [RFC6742]
EUI48 108 an EUI-48 address [RFC7043]
EUI64 109 an EUI-64 address [RFC7043]
Unassigned 110-248
TKEY 249 Transaction Key [RFC2930]
TSIG 250 Transaction Signature [RFC2845]
IXFR 251 增量區域傳送 [RFC1995]
AXFR 252 完全區域傳送 [RFC1035][RFC5936]
MAILB 253 mailbox-related RRs (MB, MG or MR) [RFC1035]
MAILA 254 mail agent RRs (OBSOLETE - see MX) [RFC1035]
ANY 255 返回所有有效的記錄 [RFC1035][RFC6895]
URI 256 URI
CAA 257 Certification Authority Restriction [RFC6844]
Unassigned 258-32767
TA 32768 DNSSEC Trust Authorities
DLV 32769 DNSSEC Lookaside Validation [RFC4431]
Unassigned 32770-65279
Private use 65280-65534
Reserved 65535

DNS類字段

標記爲class的字段。
通常只有5種:

類型 代碼 說明
IN 1 互聯網
CS 2 csnet(廢棄)
CH 3 chaos
HS 4 Hesiod
* 255 任何類型

泛解析

泛解析是指利用*來做子域名,實現所有的子域名都指向同一個IP地址(記錄值)。例如域名 dns.com,設置泛解析 *.dns.com ,則該域名下所有的子域名(如 a.dns.com,b.dns.com,c.dns.com等)都將指向與 *.dns.com 相同的IP地址。

泛解析的優先級低於指定子域名解析,也就是說存在*.dns.com和www.dns.com兩條記錄的情況下,訪問www.dns.com會優先用後者解析。

具體實踐方法:windows server支持DNS泛解析;如果擁有域名,在域名解析中也可以使用*解析。

泛解析作用

泛域名在實際運用非常廣泛,比如實現無限二級域名功能,提供免費的url轉發,在IDC部門實現自動分配免費網址,在大型企業中實現網址分類管理等等,都發揮了巨大的作用:

1、可以讓域名支持無限的子域名(這也是泛域名解析最大的用途)。
2、防止用戶錯誤輸入導致的網站不能訪問的問題
3、可以讓直接輸入網址登陸網站的用戶輸入簡潔的網址即可訪問網站
4、在域名前添加任何子域名,均可訪問到所指向的WEB地址
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章