雖然很多人都知道何謂網址,可能大多數人也聽過DNS,但是詳細的技術內容可能就很少人知道,因此本文將要介紹負責運作網址與IP位址相關資料的DNS背景知識。
Zero-Configuration技術簡介
Zero Configuration Networking簡稱為Zeroconf,顧名思義,其精神在於希望把網路設定這件事情自動化,達到零設定(無須手動設定)的目的。這技術是基於TCP/IP,前提條件是,各種硬體的連接動作都已經完成,例如網路線、電源等等。
簡單來說,Zeroconf技術主要包含以下三個部分:
·指派位址(Address Selection)
·名稱解析(Name Resolution)
·服務搜尋(Service Discovery)
如果沒有使用Zeroconf技術,網路管理人員或使用者就必須到每一台電腦設備中設定DHCP和DNS等資訊。眾所周知,在網路中IP位址是用於定址的技術,其功用就像是電話號碼,好比地址一樣,讓人方便找到對方目的地在哪裡,以便進行溝通(打電話或書信往來)。而以電話系統和地址系統來說,這些都算是中控系統,由某些組織來控管,並且指派給使用者。但是在網路的世界裡,手動設定的動作是需要的。
但也不是所有的網路型態,都希望能藉由自動化的方式來完成用戶端的設定。一般來說,可以把網路分成區域網路(LAN)和廣域網路(WAN)。區域網路係指平常使用的小型網路,例如每個人家中無線網路基地台所架設的網路,或是公司內部使用的網路。而廣域網路則是指範圍比較廣的網路區段,例如一般跨國型的企業都會使用廣域網路將各個不同國家的分部連結起來,以便讓資訊能在各個國家的分部之間流通。
就區域網路來說,大多會希望許多事情可以自動化,這樣新增或移除網路設備時所帶來的影響也會比較小,讓網路管理人員更能專注在其他的事情上。以前Apple公司所推出的AppleTalk協定就是採用Zeroconf的區域網路協定,在1980年代的麥金塔電腦中被廣為使用,其好處是很多網路設定都會自動地完成,而且包含印表機或檔案伺服器等設定都可以自動地加入,而網路位址也能夠透過如AARP協定設定好。相對地,廣域網路則多半都希望可以中控管理,而且是透過認證的機構來手動驗證,並指派所需要的位址。
Link-Local與分散式名稱解析說明
在網路中,Link-local指的是「只用於在同一個廣播網域中的通訊」。以IPv4來說,自動化設定的時候會採用169.254.0.0/16的IP位址區段。而IPv6則會採用fe80::/10的IP位址區段。沒錯!就是稍早提到的兩個區段。
也許有人會覺得,那Link-local位址與所謂的私有位址(Private Address)有何不同?Link-local位址用於「當找不到DHCP伺服器,或是沒有設定好靜態IP位址的時候,先暫時使用的IP位址」。也就是說,Link-local就是自動化設定好IP所使用的位址。而私有位址則是用於私有網路,必須是透過網路管理人員手動設定好的IP位址。
也因為Link-local位址的特性,因此Link-local位址傳遞的資料並不會被路由器所處理,又因為這些位址只用於私有網路(非公用網路)而且是同一個廣播網路區段,所以所占用的IP位址區段,又不能與私有網路安排的區段互相衝突。
剛才提到IPv4在找不到DHCP伺服器時會採用Link-local位址,不然就是會使用DHCP所給予的IP位址,其中一個原因是,因為IPv4在每一個介面(Interface)上並不需要支援多個位址,雖然事實上是可以這麼做的。
除了上述的原因之外,另外一個原因是由於不是所有採用IPv4的主機都有使用分散式名稱解析的服務(例如Multicast DNS),也因此,在網路上要得知其他主機自動產生的Link-local位址就沒那麼容易了。
<本文作者:胡凱智,目前在Solera Holdings Inc.擔任亞太區首席技術長,曾於美商Mozilla擔任全球技術專案總監,並在趨勢科技任職七年多,有兩年美國矽谷工作經驗,在美國專利局擁有軟體專利。讀者交流建議:https://www.facebook.com/khu.page>