艾銻知識(shí)—服務(wù)器運(yùn)維
2020-04-24 17:37 作者:艾銻無限 瀏覽量:
為什么我們從來不需要設(shè)置 DNS 服務(wù)器呢?這是因?yàn)楝F(xiàn)代路由器大多具備 DHCP 服務(wù)器的功能,DHCP 服務(wù)器自動(dòng)為我們提供默認(rèn)的 DNS 服務(wù)器地址。
路由器會(huì)將連接到自身所有設(shè)備的 DNS 服務(wù)器地址設(shè)置為自己的 IP 地址。連接該路由器的手機(jī)、電腦等網(wǎng)絡(luò)設(shè)備的 DNS 請(qǐng)求,統(tǒng)一發(fā)送至路由器 IP 地址,此時(shí)路由器扮演各設(shè)備的 DNS 服務(wù)器。然后,路由
器轉(zhuǎn)發(fā) DNS 請(qǐng)求,到實(shí)際的 DNS 服務(wù)器。實(shí)際的 DNS 服務(wù)器解析域名 IP,返回給路由器。最后,路由器再把 IP 返回給終端設(shè)備。
發(fā)送 DNS 請(qǐng)求到 DNS 服務(wù)器獲取網(wǎng)站真實(shí)的 IP 地址,這個(gè)過程需要一定的時(shí)間,影響這個(gè)時(shí)間的因素之一就是 DNS 服務(wù)器的地理位置。DNS 服務(wù)器離你越近,傳輸數(shù)據(jù)自然更快。因此默認(rèn)情況下,路由器
將從網(wǎng)絡(luò)提供商提供獲取最近的 DNS 服務(wù)器地址,實(shí)現(xiàn)最快的網(wǎng)絡(luò)響應(yīng)。
2. ARP
只要確定了 IP 地址,就可以向這個(gè)目標(biāo)地址發(fā)送 IP 數(shù)據(jù)報(bào)。然而,在底層數(shù)據(jù)鏈路層,進(jìn)行實(shí)際通信卻有必要了解每個(gè) IP 地址所對(duì)應(yīng)的 MAC 地址。
于是需要一種方法,根據(jù)目的主機(jī)的 IP 地址,獲得其 MAC 地址。這就是 ARP 協(xié)議要做的事情。所謂地址解析(address resolution)就是主機(jī)在發(fā)送幀前將目標(biāo) IP 地址轉(zhuǎn)換成目標(biāo) MAC 地址的過程。
另外,當(dāng)發(fā)送主機(jī)和目的主機(jī)不在同一個(gè)局域網(wǎng)中時(shí),即便知道對(duì)方的 MAC 地址,兩者也不能直接通信,必須經(jīng)過路由轉(zhuǎn)發(fā)才可以。所以此時(shí),發(fā)送主機(jī)通過 ARP 協(xié)議獲得的將不是目的主機(jī)的真實(shí) MAC 地
址,而是一臺(tái)可以通往局域網(wǎng)外的路由器的 MAC 地址。于是此后發(fā)送主機(jī)發(fā)往目的主機(jī)的所有幀,都將發(fā)往該路由器,通過它向外發(fā)送。這種情況稱為委托 ARP 或 ARP代理(ARP Proxy)。
(1) ARP工作原理
ARP 是如何知道 MAC 地址的呢?簡單來說,ARP 是借助 ARP 請(qǐng)求與 ARP 響應(yīng)兩種類型的包確定 MAC 地址的。
在每臺(tái)安裝有 TCP/IP 協(xié)議的電腦或路由器里都有一個(gè) ARP 緩存表,表里的 IP 地址與 MAC 地址是一對(duì)應(yīng)的,如下表所示。
以主機(jī)A(192.168.38.10)向主機(jī)B(192.168.38.11)發(fā)送數(shù)據(jù)為例。
-
當(dāng)發(fā)送數(shù)據(jù)時(shí),主機(jī)A會(huì)在自己的 ARP 緩存表中尋找是否有目標(biāo) IP 地址。如果找到就知道目標(biāo) MAC 地址為(00-BB-00-62-C2-02),直接把目標(biāo) MAC 地址寫入幀里面發(fā)送就可。
-
如果在 ARP 緩存表中沒有找到相對(duì)應(yīng)的 IP 地址,主機(jī)A就會(huì)在網(wǎng)絡(luò)上發(fā)送一個(gè)廣播(ARP request),目標(biāo) MAC 地址是“FF.FF.FF.FF.FF.FF”,這表示向同一網(wǎng)段內(nèi)的所有主機(jī)發(fā)出這樣的詢問:“192.168.38.11的 MAC 地址是什么?”
-
網(wǎng)絡(luò)上其他主機(jī)并不響應(yīng) ARP 詢問,只有主機(jī)B接收到這個(gè)幀時(shí),才向主機(jī)A做出這樣的回應(yīng)(ARP response):“192.168.38.11的 MAC 地址是00-BB-00-62-C2-02”,此回應(yīng)以單播方式。這樣,主機(jī)A就知道主機(jī)B的 MAC 地址,它就可以向主機(jī)B發(fā)送信息。同時(shí)它還更新自己的 ARP 高速緩存(ARP cache),下次再向主機(jī)B發(fā)送信息時(shí),直接從 ARP 緩存表里查找就可。
需要注意,示例的主機(jī) A 和主機(jī) B 屬于同一網(wǎng)段。如果主機(jī) A 和主機(jī) B 不屬于同一網(wǎng)段,那么主機(jī) A 發(fā)送的廣播(ARP request)主機(jī) B 就不可能收到。
所以,在發(fā)送廣播(ARP request)前,主機(jī) A 會(huì)判斷主機(jī) B 是否屬于同一網(wǎng)段,如果不屬于,就會(huì)在自己的 ARP 緩存表中尋找網(wǎng)關(guān)(也就是路由器)的 MAC 地址。如果沒有找到,主機(jī) A 就會(huì)在網(wǎng)絡(luò)上發(fā)送一個(gè)廣
播(ARP request)詢問網(wǎng)關(guān)(路由器)的 MAC 地址。
ARP 緩存表采用老化機(jī)制,在一段時(shí)間內(nèi)如果表中的某一行沒有使用,就會(huì)被刪除,這樣可減少緩存表的長度,加快查詢速度。
(2) 查看本機(jī)ARP
如何查看本機(jī) ARP 緩存表呢?
-
-
Windows:開始 → 運(yùn)行 → cmd → arp -a(參數(shù)a表示顯示所有內(nèi)容)
-
-
Linux:終端 → arp -nv
-
MacOS:終端 → arp -nla
3. DHCP
如果逐一為每一臺(tái)主機(jī)設(shè)置 IP 地址會(huì)是非常繁瑣的事情。于是,為了實(shí)現(xiàn)自動(dòng)設(shè)置 IP 地址、統(tǒng)一管理 IP 地址分配,就產(chǎn)生了 DHCP 協(xié)議。
如下圖所示,Mac 電腦可以在「系統(tǒng)偏好設(shè)置 - 網(wǎng)絡(luò) - Wi-Fi - 高級(jí) - TCP/IP」查看當(dāng)前本地 IP 配置。