Spiga

ISATAP 路由器設定

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 位元),所以使用以下對應方式:

IEEE 802 位址到 EUI-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),如下圖:

EUI-64 位址轉換成 IPv6 識別碼

例如 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 的位址了。

參考資料:

Step-by-Step Guide for Setting Up IPv6 in a Test Lab

IPv6 介面識別元

0 意見: