網路概論(三)

img

前言

在上一篇網路概論(二)我們討論到 IP 位址,其實 IP 的廣播位址不是很重要,會有特定位址(子網路遮罩下的最後一組 IP 位址)是因為在子網路遮罩規則下特意保留的,因為這個 IP 位址不能指派給電腦,所以我們可以安心使用這組 IP 位址,但是廣播(Broadcast)功能最終還是靠交換器。
而交換器地廣播方式就是將目的端 MAC 位址設為 FF:FF:FF:FF:FF:FF,但是其實只要目的端 MAC 位址不存在 MAC Address Table 內就可以觸發廣播,使用 FF:FF:FF:FF:FF:FF 也僅是因為這組 MAC 位址也是保留位址,不會網路設備被拿來使用,所以可以確保廣播功能可以正常觸發。

在網路開始興起的時代,MIS(Management Information System) 這個職務可以說是紅透半邊天(更不用說還有各種可以讓身價翻倍的證照),因為利用網路來交換電子文件,所帶來的執行效率提升十分顯著,他不僅具備電話的即時性,同時也具備紙本文件的可記錄姓,在規模比較龐大的企業內,MIS 的權力說是隻手遮天也不為過,因為它的功能幾乎等同於公司的心臟。
接下來要說的東西筆者認為它們可以說是讓網路普及化的最大功臣,但是”成也風雲、敗也風雲”,它們也是讓不少公司的 MIS 淪落為廉價電腦維修工(有問題扛責任,沒問題沒價值)的主要原因。

動態主機設定協定 (Dynamic Host Configuration Protocol)

IP 位址比起 MAC 位址除任更容易識別之外(這邊指的是一般常見的十進位格式的 IP 位址)還多了可以調整變更的彈性,但是在早期要設定 IP 位址除了比需電腦一台一台逐一設定之外,還需要紙本或是使用電子檔案來記錄這些 IP 位址,以確保不會重複分配 IP 位址,如下圖,我們要設定 IP 位址、子網路遮罩、預設閘道、DNS 伺服器。
img

動態主機設定協定(Dynamic Host Configuration Protocol,簡稱:DHCP)的出現就是要解決這類繁瑣的事情,讓電腦自動取得 IP 位址以及相關設定,整個流程如下:

  • DHCP Discover
    因為一開始用戶端電腦沒有配置 IP 位址,也不知道 DHCP 伺服器位置,所以透過廣播方式發送請求,會內含一組交易代碼(Transaction ID)以及網路相關參數的資訊請求清單(Parameter Request List)。
    img

  • DHCP Offer
    內部網路的 DHCP 伺服器收到請求後,會在找一組沒有使用的 IP 位址回傳給請求的電腦,同時夾帶相關的網路設定資訊。
    img

    如果內部網路有多台 DHCP 伺服器,那電腦就可能收到多組 DHCP Offer,所以有些病毒或木馬會讓自己成為”偽”DHCP 伺服器(他只要發出看似合法的封包即可),為了避免這種狀況發生一般網管型交換器(L3 Switch)提供了 DHCP snooping 功能,可以指定信任(Trust)的 DHCP 伺服器,將其他非信任(Untrust)的 DHCP 封包都捨棄掉,藉此阻斷非法的 DHCP 伺服器。
    img

  • DHCP Request
    電腦收到 DHCP Offer 之後,會以廣播方式說明它想要使用來自哪一個 DHCP 伺服器所配發的 IP 位址,這樣當內部網路內有多台 DHCP 伺服器時,它們就可以自己配發的 IP 位址有沒有被採用。
    img

  • DHCP ACK
    DHCP 伺服器收到電腦確認之後會再發送一個成功確認通知,用戶端收到之後就會套用設定。
    img

我們可以透過 ipconfig /release 指令來釋放 IP 位址,這時候腦會同時傳送 DHCP Release 封包通知 DHCP 伺服器釋放這組 IP 位址。
img

三槌成交

用戶端電腦透過 DHCP 伺服器取得 IP 位址之後,其實還會透過廣播方式發送 ARP Probe 封包,詢問內部網路是否有電腦已經使用這組 IP 位址,如下圖,我們可以看到在 Windows 上它詢問了 3 次,在沒人回復之後再發送一個 ARP Announcement 廣播來通知所有電腦它要使用這組 IP 位址。
img

DHCP Relay

DHCP 中繼代理(DHCP Relay) 有點像閘道器(Gateway)負責轉發網路封包,只是它主要是處理 DHCP 相關的封包,此外還有些差異,用戶端必須要知道閘道器的 IP 位址才能夠傳送,DHCP 中繼代理則不需要,因為電腦一開始發送的 DHCP Discover 是透過廣播方式,所以 DHCP 中繼代理可以直接收到,而他要知道的就是 DHCP 伺服器的 IP 位址。
因此使用情境應該是已經有一台 DHCP 伺服器(或是可以提供 DHCP 服務的主機),但是此伺服器不再交換器連結的網段內,而 DHCP 中繼代理必須要能夠連接到交換器下的網路環境與 DHCP 伺服器,所以硬體架構上與閘道器十分相似,但是這一般會以功能形式存在路由器或是網管型交換器內。

因為要模擬此環境太麻煩,所以就不做測試,而且除了使用機會少之外(感覺需要使用 VLAN 的環境下比較有機會使用到),一般這個功能就只要設定 DHCP 伺服器的 IP 位址就可以啟用。

後記

透過 DHCP 我們可以快速整合內部網路,所以說它是非常重要的東西,但是卻容易被忽略,不論是無線基地台或是我們用手機開 5G/4G 網路分享,其實都會使用到 DHCP,但是一般人只會知道這些設備可以隨插即用、隨連隨通。