大部分人對於DHCP協定可能不陌生,但對於DHCP的認知都還是著重在IPv4的版本,而IPv6的版本有什麼不同呢?本文會針對DHCP協定在IPv6的部分多加介紹。而考慮到某些人可能對於DHCP協定的細節以及IPv6的部分不太了解,因此也會從這些方向多加介紹。
網路遮罩表示法
接下來說明IPv4技術中,子網路、網路遮罩、網路位址以及主機位址等知識。首先,必須了解一般對於網路遮罩的寫法,例如:
大家應該經常看到上面這樣的表示法,如果到現在為止,還不了解這樣的表示法,就要好好研讀一下。以上的表示法代表網路位址是172.16.0.0,而後面的16則代表「網路遮罩的二進位表示法中,最後16個數字為0」,因此以上的表示法是用來敘述這樣一個子網路環境。
如果把網路遮罩用二進位來表示,就是相當於以下的表示方式:
最後16個都是0,若把這樣的網路遮罩轉換成10進位,也就是說,網路遮罩為255.255.0.0。
網路位址與主機位址
還有另一個要注意的基本知識,就是網路位址(Network Address)與主機位址(Host Address),以上面的子網路為例:
假設有個IP位址172.16.32.4是位於這個子網路內,那麼網路位址就是172.16.0.0,而主機位址即是172.16.32.4,廣播位址則是把後面主機位址的部分,在二進位的表示法中都為1,若把172.16.0.0轉成二進位表示,如下列所示:
而因為知道遮罩數目為16,所以從後面數過來16個數字都是屬於主機位址可以分配的部分,因此這個網路的廣播位址就只要把這些主機位址可分配的部分都設定為1即可,也就是:
轉成十進位,就是172.16.255.255。
子網路中所能使用的IP數量
網路遮罩到底有什麼用途呢?它能表示這個網路或子網路之中可以使用的IP位址有多少,這是最基本的用途。從上面這個例子來看,由於網路遮罩是255.255.0.0,從二進位來看,它就是:
代表在分配IP位址時,前面16個數字不能變動,只有後面16個數字可以變動,而前面不能變動的部分就是使用網路位址的部分。現在來看看網路位址,在上面的範例中,網路位址是172.16.0.0,轉成二進位就是:
而能夠分配的IP位址為:
轉成十進位的話,就是代表可使用的IP位址範圍為172.16.0.1到172.16.255.254。
所以,這個子網路中可以使用的IP數量為2的16次方減2,也就是216-2=65534個IP位址。減去兩個的部分,分別是172.16.0.0和172.16.255.255這兩個IP位址。
為什麼這兩個位址要減去呢?因為172.16.0.0已經被拿來當做這個子網路的網路位址,而172.16.255.255則是廣播位址,不能被拿來分配成一般IP位址使用。現在大家對於IP位址分配應該已經有初步的概念了。
私有IP位址
接著介紹何謂私有IP位址(Private IP Address),以及說明私有IP位址的範圍。眾所周知,目前IPv4的規格與技術已經被使用很多年,原本所設計的IP位址個數也逐漸不敷使用,所以為了更有效地使用IP位址,於是出現了私有IP位址的設計。
私有IP位址被定義在RFC 1918的規格中,當電腦不需要存取網際網路的時候,可以只用私有IP位址,而私有IP位址並不需要註冊,因為私有IP位址只有內部網路才可以使用。私有IP位址的IP範圍如表1所示。
表1 私有IP位址的IP範圍
一般公司內部的網路都是分配私有IP位址給內部電腦,不僅如此,家裡若有架設無線網路基地台,這個基地台也是分配私有IP位址給每一台連上網路的筆記型電腦。
這些私有的IP位址在外面的網際網路中是「不能見人」的,也因為如此,各個內部網路(Intranet)就可以重複使用這些私有IP位址範圍,以增加IP位址的使用性。
Link-local位址
另外還有一段私有IP位址是被定義在RFC 3330和RFC 3927文件內,這段私有IP位址稱為Link-Local Addresses。
設計這段私有IP位址的目的在於,希望在沒有DHCP伺服器的情況下還能夠提供IP位址。而Link-local Addresses的範圍在於:
但是,在這段範圍內並不是所有的位址都可以使用,目前而言,169.254.0.0/24及169.254.255.0/24被保留起來,以便未來可以提供不同的用途。
如果是使用Windows 9x的作業系統平台(不包含Windows NT作業系統),是不能經由DHCP伺服器來取得IP位址,這個時候就會隨意從169.254.1.0?169.254.254.255這個範圍之間取一個IP位址來使用,但這樣隨意取用的作法很有可能會造成IP衝突,若有IP衝突,就只能手動處理。
Link-local Address比私有IP位址擁有較多的限制,而這些限制都被定義在RFC 1918文件內,另外還有一點必須注意的是,Link-local Address所發送出來的網路封包,以及要送往Link-local Address的網路封包都不能經過路由器,這個限制被定義在RFC 3927,若有興趣,可以參考RFC 3927與RFC 1918文件,這裡就不再額外敘述。