DHCPv6與SLAAC的差異:IPv6位址的決定方式、狀態管理、閘道與DNS及使用時機比較
IPv6終端自動取得位址的方法有DHCPv6與SLAAC。在SLAAC(無狀態位址自動設定,RFC 4862)中,終端從路由器送出的路由器通告(RA)得知鏈路的前綴,自行產生介面識別碼來組成位址。由於沒有伺服器管理哪個終端使用哪個位址,因此稱為「無狀態」。在DHCPv6(RFC 8415)中,與IPv4的DHCP相同,由伺服器決定位址並附期限出租,同時管理其記錄。不論哪種方法,預設閘道都從RA得知。此外,也有以SLAAC產生位址、只從DHCPv6接收DNS伺服器位址等資訊的「無狀態DHCPv6」組合。
| 項目 | DHCPv6 | SLAAC |
|---|---|---|
| 決定位址者 | DHCPv6伺服器。從伺服器管理的範圍中選出並附期限出租 | 終端自己。把從RA得知的前綴與自己產生的介面識別碼組合 |
| 狀態的管理 | 有狀態。伺服器記錄把哪個位址租給了哪個終端 | 無狀態。沒有記錄位址分配的伺服器 |
| 所需條件 | DHCPv6伺服器(位於其他鏈路時需中繼代理),以及通知終端使用DHCPv6的RA | 送出RA通告前綴的路由器 |
| 使用的訊息 | UDP(用戶端為546號,伺服器與中繼代理為547號)。基本為Solicit、Advertise、Request、Reply四次交換 | ICMPv6鄰居探索(NDP)的路由器請求(RS)與路由器通告(RA) |
| 預設閘道 | DHCPv6不提供。使用送出RA之路由器的鏈路本地位址 | 使用送出RA之路由器的鏈路本地位址 |
| DNS伺服器的位址 | 以DHCPv6的選項通知 | 以RA的選項(RDNSS)或無狀態DHCPv6通知 |
| 介面識別碼(低64位元) | 由伺服器選擇 | 由MAC位址產生的EUI-64格式,或以亂數為基礎的值。為了隱私,許多作業系統使用以亂數為基礎的值 |
| 前綴長度與委派 | 逐一分配位址,因此/64以外的前綴也能使用。也能把整個前綴交給路由器(前綴委派,DHCPv6-PD) | 一般以/64前綴為前提。無法委派前綴 |
| 掌握位址的難易度 | 可從伺服器的記錄得知哪個終端使用哪個位址。用戶端以稱為DUID的識別碼區分 | 沒有伺服器的記錄,要得知終端的位址需查看路由器的鄰居快取等 |
數值為具代表性的大致參考值,會因世代或產品而異。