Intra-Site Automatic Tunnel Addressing Protocol (ISATAP) 是用來讓 IPv4 的網路可以連接到 IPv6 網路的其中一種通道方式 (也可以用 6to4 或 Teredo 通道),假設我們有一台有兩張網路卡的 Windows Server 2008,就可以用來一邊接 IPv4 的網段 (假設是 "區域連線")、一邊接 IPv6 的網段 (假設是 "區域連線2")。
首先,先啓用 IPv6 那一邊的網卡的 IPv6 封包 forward 和 advertise 功能:
netsh interface ipv6 set interface "區域連線2" forwarding=enabled advertise=enabled
加入路由,假設 IPv6 網段的 prefix 是 2001:db8:0:1::/64 :
netsh interface ipv6 add route 2001:db8:0:1::/64 "區域連線2" publish=yes
由於有設定 advertise=enabled 和 publish=yes,所以在 IPv6 那一段的電腦 (停用 IPv4) 的 IPv6 應該都會自動設定成prefix 是 2001:db8:0:1::/64 的 IPv6 EUI-64 位址 (註1)。 ##ReadMore##
接下來要設定路由器的 IPv4 那一邊網卡的 ISATAP 通道 (區域連線* 8):
netsh interface ipv6 set interface "區域連線* 8" forwarding=enabled advertise=enabled
加入路由,假設 IPv4 網段的 IPv6 通道 prefix 是 2001:db8:0:2::/64 :
netsh interface ipv6 add route 2001:db8:0:2::/64 "區域連線* 8" publish=yes
接下來要啓用 ISATAP 路由器的功能:
netsh interface isatap set state enabled
然後重新啓動路由器。
重新啓動路由器之後,再到 IPv4 的網段中,設定要使用 ISATAP 通道的電腦 (停用 IPv6),將它們的 ISATAP 路由器設定,指向路由器連接這個網段的網卡 IPv4,例如路由器 "區域連線" 的 IP 是 10.10.0.254:
netsh interface isatap set router 10.10.0.254
設定完成之後,你會發現使用 ISATAP 通道的電腦會出現一組 prefix 是 2001:db8:0:2::/64 的 IPv6 EUI-64 位址 (註1),用來連接到 ISATAP 路由器的 "區域連線* 8" (這就是 ISATAP 通道),然後 IPv4 和 IPv6 兩邊的電腦就可以互通了。
註1: Extended Unique Identifier (EUI)-64 位址是原本 802 網路卡位址的延伸,原本的網路卡位址是 48 位元的位址,例如:
10-19-D2-37-CC-6F
由於要轉換成 IPv6 的介面 ID (64 位元),所以使用以下對應方式:
也就是 10-19-D2-37-CC-6F 會變成 10-19-D2-FF-FE-37-CC-6F
不過接下來如果要取得正確 IPv6 unicast 位址的 64 位元介面 ID,則必須在 EUI-64 位址中補充 U/L 位元 (若是 1 設定為 0;若是 0 設定為 1),如下圖:
例如 10-19-D2-FF-FE-37-CC-6F 的第 7 個位元 (第一組 "10" 的前半部 1) 是 0000001,將 0 換成 1 (若是 1 設定為 0;若是 0 設定為 1),所以變成 00000011 = 3,所以 IPv6 的介面 ID 就會是:
30-19-D2-FF-FE-37-CC-6F
假設 IPv6 網段的 prefix 是 2001:DB8:0:1::/64,那麼 EUI-64 的位址就會是:
2001:DB8:0:1:3019:D2FF:FE37:CC6F
也就是我們只要看上面標示有底線的部份,如果是 FF FE 那麼就代表是 EUI-64 的位址了。
參考資料:
0 意見:
張貼留言