October 16, 2023

Viiisit [Internet] - DNS 跟 IP 是什麼!

#internet#interview

DNS 是什麼?

DNS (Domain Name System) 將人們可讀取的網域名稱 (www.example.com) 轉換為機器可讀取的 IP 地址 (192.0.1.234)。當開啟 Web 瀏覽器進入網站時,不需要記住這些冗長的數字 (IP 地址)進行輸入,而是輸入像 example.com 這樣的網域名稱就可以連接到正確的位置。

簡單來說就是名字與身分證的概念,
每個網域名 (Domain Name) 都會用 DNS 來控制使用者如何找到網站。

當我們想要在瀏覽器輸入網址前往某個網站時,電腦並不知道那個網站是儲存在哪一台主機裡面,
如果想要知道網站在哪一台主機中,就會向 DNS 詢問該網站的主機在哪?
接著 DNS 會回覆我們該網站所在的 IP 地址,
之後電腦才有辦法依照 IP 地址找到存放該網站內容的主機,拜訪後顯示網站於瀏覽器中。

IP 是什麼?

IP 是 Internet Protocol 的縮寫,網際網路上的所有電腦,從智慧型手機或筆記型電腦到為大量零售網站提供內容服務的伺服器,都是使用數字找到彼此並互相通訊,而這些數字稱為 IP 地址。

DNS 的運作流程!

可以試想一下,今天要將東西寄出,是不是要去尋找相對應的地址以及相關資訊,過程中會透過一層一層的搜尋去查到對應的正確地址,而這樣多層次的搜尋概念就像 DNS 在運作的方式!

當使用者在瀏覽器輸入 URL,電腦就會需要解析網址 (www.example.com) ,以獲取相關的 IP 地址
-> 首先,查找本地 DNS 快取,如果找到相應的 IP 地址,則直接解析完成。

本地 DNS 快取是一個臨時的儲存區,通常由操作系統或網絡服務提供商(如 ISP )維護,
用於存儲最近查詢過的域名和相應的 IP 地址。

-> 如果域名的解析訊息不在本地 DNS 快取中,
電腦就會向 ISP (Internet Service Provider)的 DNS 伺服器發出查詢請求。

-> 如果 ISP 的 DNS 伺服器也不知道域名的 IP 地址,將繼續向更高層次的 DNS 伺服器發出查詢請求。首先,將向根域名伺服器查詢,以獲得頂級域名(例如.com、.org、.net等)的 DNS 伺服器的 IP 地址。

-> 根域名伺服器返回頂級域名(TLD)伺服器的 IP 地址,然後 ISP 的 DNS 伺服器將查詢發給適當的 TLD 伺服器。例如,如果域名是 example.com,那麼查詢將發送給 .com頂級域名伺服器。

-> TLD 伺服器返回包含目標域名的權威 DNS 伺服器的 IP 地址。ISP 的 DNS 伺服器繼續查詢,這一次將查詢發給權威 DNS 伺服器,該伺服器最終返回域名的 IP 地址。

-> 一旦 ISP 的 DNS 伺服器收到域名的 IP 地址,將返回給電腦。設備將使用此 IP 地址建立連接,以便訪問目標網站或伺服器。

過程涉及多個層次的 DNS 伺服器,每個層次都有不同的責任,最終都是將域名解析為相應的IP地址,使電腦能夠與目標伺服器建立通信。

DNS Lookup

參考資料:
What is DNS?
DNS Hacking 之 基礎知識:DNS 運作與紀錄類型