當 Router 的 M-bit (DHCPv6) 設為 1 後,用戶端除了會向 DHCPv6 Server 取得一個位址以外,仍然會使用 RA 所給的 Prefix 生成一個 SLAC 位址(Windows 與 Mac 會再生一個 privacy extension 的位址),總共取得/生成兩個 IPv6 位址(Windows 與 Mac 為三個)。Mac OS 的例子如下:
紅框中第一個是 SLAC 位址,第二個是 Privacy extension 位址,第三個才是 DHCPv6 發放的位址。
那麼如果為了追蹤方便,只希望用戶端只使用 DHCPv6 的位址,要怎麼辦呢?
只要設定 Router 在 Neighbor Discovery 時告訴用戶端不能使用該 prefix 自動設定位址(no-autoconfig)即可。指令如下
interface GigabitEthernet0/0 ipv6 address 2001:B030:D900:62::/64 eui-64 ipv6 nd prefix 2001:B030:D900:62::/64 172800 172800 no-autoconfig ipv6 nd managed-config-flag ipv6 dhcp server STATEFUL-DHCPv6 |
兩個 172800 秒指的是 valid time 與 life time。
設定之後,用戶端的位址就會只剩下 DHCPv6 取得的:
可能有人會問,不是有一個 ipv6 nd prefix no-advertise 的指令也可以做到嗎?
是的,雖然可以達到同樣效果,不過 “no-advertise” 這個指令會讓該 prefix 不會被送出,使用戶端不知道該 prefix ,而未來會視該 prefix 非本地端網路,如果要傳送封包到該 prefix 的端點,就會先送到 Router,再由 Router 送回 redirect 訊息,徒增 Router 的麻煩。
“no-autoconfig”這個指令則只是告訴用戶端不要使用該 prefix 來生成位址,因此可避免上述麻煩。