DAY6 DNS 與 TCP及UDP - daniel-qa/Network GitHub Wiki

DNS / TCP &UDP 介紹

DNS(Domain Name Server)服務在網路的世界當中是非常重要的。

因為大家對於名稱的記憶性遠比一串數字來的還高, 就像是要你**記住網址叫https://www.google.com/ 跟記住 https://64.233.188.113/ 到底是哪一個比較容易呢? **

當然DNS也可以做最陽春的負載平衡設定, 像是你可以架設好多個一樣網站內容的伺服器(IP位置都不一樣), 然後在DNS服務內設定,將這些IP位置都指向同一個網址 這樣子當有人要連接到這個網址的時候,會由DNS隨機指向不同的主機去。缺點是,若其中有某一台機器故障,DNS還是一樣不會管你,一樣會把客戶導去故障的伺服器去。 所以才會說這是最陽春的負載平衡設定,只適合應急,不適合用於一般環境。

EX: 把 64.233.188.113 - 115 這三個IP都指向www.google.com網址,因為是IPv4位置,所以用A紀錄。

www A 64.233.188.113
www A 64.233.188.114
www A 64.233.188.115

這邊先介紹些DNS內的基本資源紀錄(這邊先說一些比較重要的)

A (IPv4的IP位置紀錄)
AAAA (IPv6的IP位置紀錄)
CNAME(別名)
MX (郵件伺服器的紀錄)
NS (用於定義此網域內名稱伺服器的主機名稱)

CNAME 的用法比較有趣,他主要是別名,若是你想將其他(www1)也導向www也可以在這邊設定

設定方法不難, 在windows環境上,只需要點選好紀錄類型後,把IP輸入完成就可以了。 在linux 上比較麻煩些但也不會太難,他的服務套件是bind(相關設定可參考鳥哥)

這邊可以介紹一個查詢DNS內紀錄的指令,原本是只有windows可以使用, linux原本是使用dig指令查訊但現在內有內含此套件了,他的工具名稱是【nslookup】

這邊簡單介紹一下使用方法 若是想要直接查詢網址的IP位置,可以用

nslookup 網址網域名稱

像下圖設定,預設使用這個工具查詢時,他會透過你本機端設定的DNS 伺服器去進行

C:\Users\daniel>nslookup google.com
伺服器:  dns.hinet.net
Address:  168.95.1.1

未經授權的回答:
名稱:    google.com
Addresses:  2404:6800:4012:3::200e
          142.251.42.238

若是你建置了一個新的DNS伺服器,而你想要確認一下到底能不能使用。 一樣可以運用這個指令來達成。

nslookup

【隨後輸入server <DNS的IP位置>,再輸入網址網域名稱,就可以用你指定的server 來查詢DNS紀錄

C:\Users\daniel>nslookup
預設伺服器:  dns.hinet.net
Address:  168.95.1.1

> 8.8.8.8
伺服器:  dns.hinet.net
Address:  168.95.1.1

名稱:    dns.google
Address:  8.8.8.8

> www.google.com
伺服器:  dns.hinet.net
Address:  168.95.1.1

未經授權的回答:
名稱:    www.google.com
Addresses:  2404:6800:4012:4::2004
          142.251.43.4

現在要來稍為介紹一下TCP 與UDP的差別, 在今天之前我們介紹的服務(HTTP、HTTPS、FTP...等),大多數服務都是使用TCP, 今天我們介紹的DNS則是運用UDP, 運用的是UDP-53 port 分這 兩種最主要的原因是在速度? UDP的速度會較TCP快一些!但大多數服務部用UDP的原因在於它傳輸資料的可靠度較TCP來的低, 而我們不管是觀看網站或者傳輸資料,可靠度都是非常重要的。 大家都有下載過壓縮檔的經驗吧, 如果今天你下載的壓縮檔有檔案上的缺陷是不是就會有打不開的情形。 如果你認同,代表你認同大部分需要高可靠的服務必須使用TCP。

那這時候你就會問,為什麼還要有UDP的存在, 因為它很快。 有些服務是掉了一些封包仍然可以正常運行的,這一類的服務我們就會運用UDP服務來進行。 像是DNS服務,我們就是要能夠快速的查詢到網址所對應的IP才行。 若是你查詢IP的速度不快,連帶的就會影響你連結網路的速度。 而且這邊就算封包掉了,再重查就好了。

另外就是直播的影音傳輸(streaming),直播的重點也在於速度性, 更有趣的事情就是今天直播影片的封包若是掉了一兩個也沒關係, 因為憑著人類有視覺暫存的功能,就算LOSE掉一兩張影片你也無法察覺到。

所以因為這些需求,所以UDP也有它的市場性。

明天開始要進入新的里程碑,比較基本的NINS基礎先介紹到這裡,未來有運用到的匯再加以補充。

附註: TCP會穩定且比較慢的原因在於他會進行三項交握他再進行封包傳輸之前必須先與目標端進行聯繫並成功建立連線才行。

⚠️ **GitHub.com Fallback** ⚠️