aldy120 / High-Performance-Browser-Networking

A reading note from <High Performance Browser Networking by Ilya Grigorik>.
0 stars 0 forks source link

What is DNS? #4

Open aldy120 opened 5 years ago

aldy120 commented 5 years ago

https://www.appliedtrust.com/sites/default/files/assets/resources/understanding-dns-essential.pdf

What is DNS?

Convert domain name (e.g. example.com) to IP address (e.g. 93.184.216.34).

Types of Name Server

FQDN: Full quality domain name. Host name 指的是 FQDN 最右邊的,其餘剩下的是 Domain name 。 例如 www.example.com ,www 是 hostname ,example.com 是 domain name 。

Authoritative name server 是指具有權威可以發布 domain 的,也就是消息的來源。 Caching name server 則是幫忙分擔查詢壓力的同伴。 Recursive name server 則是幫忙查的小弟。以上是由功能面來區分的,事實上一個 name server 可以具備不同的功能。

舉例來說,你如果要查 example.com 的 IP ,你的電腦會網 ISP 的 DNS resolver 查詢,通常這台機器會具備 recursive name server 跟 caching name server 的功能。然後他再幫你從 TLD 一路查到 authoritative name server ,最後查到之後,自己保留一份 cache ,再傳回給你的電腦。

Reverse mapping

會去 in-addr.arpa 這個 TLD 查詢 IP 到 FQDN 的資料。舉例來說,要查 1.2.3.4 的名稱,事實上是去查 4.3.2.1.in-addr.arpa 這個 domain 的資料。會把 IP address 倒過來的關係是因為 DNS 是由右邊到左邊查詢的,而且這樣查過來比較方便,因為大企業通常會壟斷一堆 IP ,這些 IP 通常左邊都差不多 。

Active Directory

Windows 推出的服務,可以在電腦之間管理相互登入的權限。裡面有用到 DNS 來判斷哪一台電腦的名稱現在對應到哪個 IP 。筆電一接上網路用 DHCP 更新 IP 後,就可以寫入 Active Directory 中,即時更新,這樣別人就知道你的電腦 IP ,連你電腦會比較方便。

aldy120 commented 5 years ago

Anti-phishing

防釣魚,明眼人看 URL ,就可以知道這個網頁是否怪怪的。例如來號稱來自 google 的網頁,domain 的結尾不是 google.com 就很明顯有問題。

Real-Time Blacklist

有一些公司提供信件黑名單的機制,讓 mail server 可以查到從某個 IP 寄出的信件是不是黑名單內。有點類似 reverse DNS 的技巧。比如說你要查 1.2.3.4 是不是在垃圾信公司所提供的黑名單內,你可以查 4.3.2.1.sbl.spamhaus.org

Sender Policy Framework (SPF)

這也是一種防止垃圾信的機制。原理是當一個單位對你寄信,並宣稱他是從 google.com 寄來的,但是 email server 利用 ip 去查,發現 google.com 並沒有說這個 IP 會代表 google.com 寄信,由此可知這是垃圾信。

至於跟他有點類似的 Domain Key Identified Mail (DKIM) 則沒有那麼受到歡迎。

基本原理是,在您的 DNS name server 放一組 txt ,讓想驗證的人來查,這樣他就可以知道他收信時的寄件 IP 是否合法了。

aldy120 commented 5 years ago

Start Of Authority (SOA)

It includes the name of the zone, its nameserver, a technical contact, a serial number, and timeout values.

Route53 裡面好像把它藏起來了,使用者並不能直接設定 SOA 。

Name Server (NS)

可以把某些查詢分散到其他的 name server ,方便分散管理。

Address (A)

告訴你這個 domain 對應到哪個 IP 。大家通常比較關心這個值,因為要瀏覽網站最後還是需要查到一個 IP 。

Mail Exchanger (MX)

列出郵件伺服器

Text (TXT)

可以用來讓別人知道 SPF 所需的資訊。

Canonical Name (CNAME)

有點像是電腦上面的捷徑,可以跟來查的人說,這個 domain name 的 IP 跟 google.com 一樣,這樣如果我並不認識 google.com 的擁有者的話,我也不用怕他突然改 IP 我就連不到了,因為 CNAME 並不用寫死 IP 。

Pointer (PTR)

用來對應 reverse query 。