初始DNS伺服器地址是哪裡來的?

NO IMAGE

DNS 是網際網路中非常重要的一個系統。任何主機、裝置,要想訪問網路,幾乎都需要先通過 DNS 伺服器,查詢主機的 IP 地址,然後才能與目標主機通訊。通常情況下,我們都是無需為主機或裝置設定 DNS 伺服器地址的,那麼那些 DNS 伺服器地址究竟是哪裡來的呢?難道是廠商事先在計算機裡面埋的靜態地址麼?如果是這樣的話,如果 DNS 伺服器的 IP 地址改變了要如何處理呢?這裡我們就通過 Wireshark 抓包,分析一下計算機的初始 DNS 伺服器地址到底是哪裡來的。

手機在啟動之後,首先會通過DHCP協議,來獲得自己的IP地址。如下圖:

1240

DHCP

在 DHCP 協議中,需要分配 IP 地址的裝置傳送一個廣播包,也就是 DHCP Request,如圖中的第 31 號包所示,其中包含有一個 Transaction ID。由此可見 DHCP 協議是執行於 UDP 之上的。DHCP Request 廣播由請求分配 IP 地址的裝置的 UDP 68 號埠發出,發向廣播的 UDP 67 號埠,如下圖:

1240

然而 DHCP 協議不僅僅用於分配 IP 地址,如上圖的第 32 號包的 DHCP Request 的 Parameter Request List option 如下:

1240

可見 DHCP 還會被用於,獲取子網掩碼、域名以及域名解析伺服器的地址等資訊。

區域網中的 DHCP 伺服器在收到 DHCP Request 訊息之後,會發出一個 DHCP NACK 作為響應。如 32 和 33 號包。

裝置又傳送了一個 DHCP Discover 包,這個包的內容與前面的 DHCP Request 包大同小異。DHCP 伺服器在收到 DHCP Discover 包之後,將響應一個 DHCP Offer 包,在這個包中將攜帶有為裝置分配的IP地址,可用的域名伺服器地址等資訊,如第 37 號包:

1240

對於我們這個 case,裝置被分配的 IP 地址為 192.168.23.2 ,DHCP 為裝置提供了 3 個域名解析伺服器地址,分別為 192.168.130.33, 192.168.130.31,和 114.114.114.114,這些域名解析伺服器 IP 地址按照優先順序進行排列。

後續的DNS請求,我們可以看到,都是發向 192.168.130.33 的,如下圖:

1240

由此可見,計算機的域名解析伺服器的地址,通常都是來自於 DHCP 伺服器的。

Done。