ISATAP隧道技术及实践
生活随笔
收集整理的這篇文章主要介紹了
ISATAP隧道技术及实践
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
(原文最初我在Sina博客中看到,SIna博客中的圖片需要登錄才能看到,為了免去大家登錄的麻煩,我轉(zhuǎn)載到我的博客,原文地址http://blog.sina.com.cn/s/blog_5ec353710101e513.html)
一、基本概念
? ? ISATAP(Intra-SiteAutomatic Tunnel Addressing Protocol) ?ISATAP是一種非常容易部署和使用的IPv6過渡機(jī)制。在一個IPv4網(wǎng)絡(luò)中,我們可以非常輕松的進(jìn)行ISATAP的部署,首先你的PC需是V4/V6雙棧PC,然后,需要有一臺支持ISATAP的路由器,ISATAP路由器可以在網(wǎng)絡(luò)中的任何位置,只要PC能夠ping通它(當(dāng)然,你要知道路由器的IPv4地址)。那么接下去,我們可以通過在路由器上部署ISATAP,這樣網(wǎng)絡(luò)中支持ISATAP的雙棧主機(jī),在需要訪問IPv6資源時,可以與ISATAP路由器建立起ISATAP隧道,ISATAP主機(jī)根據(jù)ISATAP路由器下發(fā)的IPv6前綴構(gòu)造自己的IPv6地址(這個IPv6地址是被自動關(guān)聯(lián)到ISATAP主機(jī)本地產(chǎn)生的一個ISATAP虛擬網(wǎng)卡上),并且將這臺ISATAP路由器設(shè)置為自己的IPv6默認(rèn)網(wǎng)關(guān),如此一來,后續(xù)的這臺主機(jī)就能夠通過這臺ISATAP路由器去訪問IPv6的資源。 ?這種方法部署起來非常簡單,在許多場合,客戶為了節(jié)省成本,又希望網(wǎng)絡(luò)中的IPv6主機(jī)能夠訪問V6資源,同時又不愿意對現(xiàn)有網(wǎng)絡(luò)做大規(guī)模的變更及設(shè)備升級,那么就可以采用這種方法,購買一臺支持ISATAP的路由器,甚至可以將ISATAP路由器旁掛在網(wǎng)絡(luò)上,只要它能夠訪問V6資源并且響應(yīng)ISATAPPC的隧道建立請求。
二、ISATAP的功能組件如下: ? 1、自動隧道: ISATAP的隧道機(jī)制也是自動的,隧道在主機(jī)和ISATAP路由器之間被創(chuàng)建。主機(jī)首選需要知道ISATAP路由器的IPv4地址。
2、ISATAP地址格式: 分配給ISATAP路由器的IPv6地址是全局單播地址,該地址的前綴將被ISATAP主機(jī)用于自己的IPv6地址構(gòu)造。ISATAP主機(jī)通過在IPv4建立起來的ISATAP隧道從ISATAP路由器發(fā)送的消息中接收/64的IPv6前綴,并且使用這個前綴結(jié)合“特殊的接口標(biāo)識”來構(gòu)造自己的IPv6地址。
3、接口標(biāo)識: ISATAP在主機(jī)上啟用后,會產(chǎn)生一個ISATAP虛擬網(wǎng)卡,該虛擬網(wǎng)卡會產(chǎn)生一個64bits的特殊接口標(biāo)識,有點(diǎn)類似EUI-64,但是產(chǎn)生機(jī)制不同,它是由專為ISATAP保留的32位的0200:5EFE加上主機(jī)上配置的IPv4地址構(gòu)成,如下圖,假設(shè)ISATAP主機(jī)配置的IPv4地址為1.1.1.1,那么ISATAP虛擬網(wǎng)卡的64bits接口標(biāo)識就是:
另一方面,在路由器上部署ISATAP后,路由器也會產(chǎn)生一個tunnel接口,用于響應(yīng)ISATAP主機(jī)的隧道建立請求,這個tunnel接口同樣會產(chǎn)生接口標(biāo)識。地址的格式是IANA保留給ISATAP的32比特的0000:5EFE后追加32比特的IPv4地址。如下圖,假設(shè)給ISATAP路由器配置的IPv4地址(用于隧道的)是2.2.2.2,那么ISATAPtunnel的接口標(biāo)識就是:
?這里關(guān)于64bits的接口標(biāo)識中“為ISATAP保留的”高階32bits在維基百科上有這么一段描述:“The link-localaddress is determined by concatenatingfe80:0000:0000:0000:0200:5efe: for global unique andfe80:0000:0000:0000:0000:5efe: for private addresses with the 32bits of the host's IPv4address.”。貌似有全局唯一和私有之分,不過在IETF的相關(guān)草案上找到的更多是0200:5efe的描述,在我所作的測試環(huán)境中,windows主機(jī)上系統(tǒng)使用的是0200:5ede,而CISCO路由器上用的是0000:5efe。 ?ISATAP主機(jī)和ISATAP路由器產(chǎn)生的這個64btis的接口標(biāo)識,可進(jìn)一步用于構(gòu)造隧道接口的Linklocal地址,以及IPv6全局單播地址。這個下面會描述到。 ?另外,因?yàn)镮SATAP的操作范圍在站點(diǎn)內(nèi),所以ISATAP主機(jī)和ISATAP路由器的IPv4地址可以是私有IP,也可以是公有IP。
三、工作機(jī)制
?首先,我們有一個IPv4的網(wǎng)絡(luò),IPv4網(wǎng)絡(luò)中絕大部分網(wǎng)路設(shè)備都不支持IPv6,除了終端主機(jī),以及一臺路由器,這臺能夠訪問我們需要的IPv6資源。現(xiàn)在,一種最廉價的方式是,在這臺路由器上部署ISATAP,終端ISATAP主機(jī)與路由器之間建立一個ISATAPtunnel,這樣一來PC可以直接將IPv6流量放進(jìn)tunnel傳到ISATAP路由器從而穿越整個IPv4網(wǎng)絡(luò)。
1)現(xiàn)在我們在ISATAP路由器上進(jìn)行相應(yīng)的配置,給路由器分配的IPv4地址是2.2.2.2/24,同時建立一個tunnel接口用于ISATAP,此時tunnel接口會根據(jù)IPv4地址產(chǎn)生一個64bits的接口標(biāo)識。這個接口標(biāo)識搭配上高位的fe80::就形成了tunnel接口的Linklocal地址:fe80::0000:5efe:202:202。另外,還需給ISATAPtunnel接口配置一個全局單播IPv6地址,這里可以手工配置,也可以通過前綴+EUI64的方式來構(gòu)建,這里的EUI-64就是上面所述的特殊的64bits接口標(biāo)識。如上圖,構(gòu)建出來的IPv6地址就是2001:1111::0000:5efe:0202.0202/64,因此IPv4的前綴為2001:1111::/64,這個前綴稍后會通過tunnel下發(fā)給ISATAP主機(jī),從而使它能夠構(gòu)建自己的IPv6地址。
2)現(xiàn)在我們在ISATAP主機(jī)上,配置ISATAP,一般來說,在WIN7系統(tǒng)上默認(rèn)安裝了IPv6協(xié)議棧,默認(rèn)就會有一個ISATAP的虛擬網(wǎng)卡。在我們給PC的物理網(wǎng)卡配置IPv4地址如1.1.1.1/24后,ISATAP虛擬網(wǎng)卡就會自動根據(jù)這個IPv4地址計算出上面所講的特殊的接口標(biāo)識:0200:5efe:1.1.1.1,注意這種格式等同與0200:5efe:0101.0101,在windows系統(tǒng)上我們可以看到前者的簡便寫法。
3)當(dāng)我們在主機(jī)上配置了ISATAP路由器之后(指向的是ISATAP路由器的IPv4地址),ISATAP主機(jī)開始向ISATAP路由器發(fā)送RS消息,如下圖:
?這個RS消息是通過IPv4隧道傳輸?shù)?#xff0c;外層是IPv4的頭,源地址是ISATAP的IPv4地址1.1.1.1,目的地址是2.2.2.2,也就是ISATAP的IPv4地址。IPv4頭里面裹著IPv6的報文,源地址是ISATAP主機(jī)的ISATAP虛擬網(wǎng)卡的Linklocal地址,目的地址是ISATAP路由器的Linklocal地址。
4)ISATAP主機(jī)發(fā)出的這個RS消息,會在IPv4網(wǎng)絡(luò)中被路由,最終轉(zhuǎn)發(fā)到ISATAP路由器。這將使得路由器立即以一個RA進(jìn)行回應(yīng):
?而這個回應(yīng)的RA消息里,就包含ISATAP上所配置的那個IPv6全局單播地址的/64前綴。
5)ISATAP主機(jī)收到這個RA回應(yīng)后,會拿出里頭的IPv6前綴,隨后在后面加上自己ISATAP虛擬網(wǎng)卡的64bits的接口標(biāo)識地址,構(gòu)成128bits的IPv6全局單播地址,同時會產(chǎn)生一條默認(rèn)路由,指向ISATAP路由器的Linklocal地址:
6)從現(xiàn)在起,ISATAP主機(jī)需要訪問IPv6資源的時候,將IPv6數(shù)據(jù)包封裝在IPv4的隧道里,也就是說,套上ISATAP隧道的IPv4頭,然后傳給ISATAP路由器,再由ISATAP路由器解封裝,再幫忙轉(zhuǎn)發(fā)IPv6數(shù)據(jù)。
四、典型實(shí)驗(yàn)
PC是ISATAP主機(jī),它是一臺雙棧PC,這里我們使用的是一臺win7系統(tǒng)的電腦做測試。電腦網(wǎng)卡的IP地址為1.1.1.1/24,網(wǎng)關(guān)為1.1.1.254,網(wǎng)關(guān)是SW1的interfacevlan10。 SW1創(chuàng)建兩個VLAN:VLAN10及20,分別對應(yīng)PC及ISATAP路由器。VLAN20的SVI口IP為2.2.2.254,是ISATAP路由器的默認(rèn)網(wǎng)關(guān)。 ISATAPRouter的接口IP為2.2.2.2。該IPv4地址在后續(xù)的ISATAP配置中使用到,ISATAP主機(jī)就是通過這個IP找到ISATAPRouter并與之建立ISATAP tunnel。ISATAPRouter同時連接到了一個IPv6網(wǎng)絡(luò),這里我們用loopback模擬:2001:8888::8/64,用于后續(xù)的測試。 最終的實(shí)驗(yàn)結(jié)果是首先PC要能夠ping通ISATAP Router的IPv4地址也就是2.2.2.2。然后PC與ISATAProuter建立隧道并拿到IPv6地址,而且要能夠ping通20001:8888::8
SW1的配置: vlan 10 vlan 20 interface fast0/1 switchport access vlan 10 interface fast0/15 switchport access vlan 20 interface vlan 10 ip address 1.1.1.254 255.255.255.0 interface vlan 20 ip address 2.2.2.254 255.255.255.0
Router的配置: ipv6 unicast-routing ! interface FastEthernet0/0 ip address 2.2.2.2 255.255.255.0 no shutdown ! interface Tunnel1 ip unnumbered?fastEthernet 0/0 ?? ? ?? ? ?!! 這個IPv4地址就是ISATAP隧道的目的地址 ipv6 enable ipv6 address 2001:1111::/64 eui-64? ? ?? ? ?!!這個IPv6地址的前綴會被通告給ISATAP主機(jī) no ipv6 nd suppress-ra tunnel source fastEthernet 0/0 tunnel mode ipv6ip isatap ! interface loopback0 ipv6 enable ipv6 address 2001:8888::8/64 ! ip route 0.0.0.0 0.0.0.0 2.2.2.254
注意ISATAP路由器的配置,關(guān)鍵部分在于tunnel的配置,tunnel模式是ipv6ipisatap的,同時注意在tunnel這里配置的IPV4地址,就是對應(yīng)的ISATAP主機(jī)上配置的那條CMD命令里ISATAP路由器的地址。我們這個實(shí)驗(yàn)演示的是tunnel直接用fa0/0的地址,當(dāng)然,tunnel也可以有自己的IPv4地址,只要保證ISATAP主機(jī)到這個IPv4地址路由可達(dá)就行。另外tunnel的IPv6地址,對應(yīng)的前綴就是稍后要下發(fā)給ISATAP主機(jī)的前綴,這個實(shí)驗(yàn)中,我們tunnel的IPv6全局單播地址使用的是前綴+eui-64的配置方式,這里的eui-64實(shí)際上指的就是前面我們介紹的那個特殊的64bits接口標(biāo)識。(紅茶三杯原創(chuàng)博文,版權(quán)所有,轉(zhuǎn)載請注明出處http://weibo.com/vinsoney)
?注意,這里的Linklocal地址:FE80::5EFE:202:202就是一個ISATAP格式的地址,最后的64bits是由32bits的0000:5EFE加上32bits的接口IPv4地址(這里是2.2.2.2)構(gòu)成的,如下圖。而IPv6全局單播地址,也是使用64bits的接口標(biāo)識構(gòu)成的,當(dāng)然,你也可以手工配置IPv6全局單播地址,不一定要使用接口標(biāo)識。
接下去,我們在ISATAP主機(jī)上,CMD模式下輸入: netsh interface ipv6 isatap set router 2.2.2.2
PC就會開始發(fā)送RS,報文如下:
我們看到這個RS的ICMPv6報文外是IPv6的頭,IPv6的頭外是IPv4的頭。 注意外層IPv4的頭,源是1.1.1.1,目的是2.2.2.2 然后內(nèi)層IPv6的頭,源是ISATAP主機(jī)的Linklocal地址,目的是ISATAP路由器的Linklocal地址
在路由器收到RS后回回應(yīng)一個RA:
路由器回應(yīng)的這個RA里,就有一個ICMPv6的Option,其中就包含著ISATAP路由器的IPv6前綴。而ISATAP主機(jī)就可以根據(jù)這個前綴,結(jié)合自己的接口標(biāo)識構(gòu)建IPv6地址。
最終PC獲取到的IPv4地址如下: 隧道適配器 isatap.{0DB7233C-89B7-49DB-A8C0-D1AA005F4E6A}: ?連接特定的 DNS 后綴 . . . . . .. : ?IPv6 地址 . . . . . . . . .. . . : 2001:1111::200:5efe:1.1.1.1 ?本地鏈接 IPv6 地址. . . . . . .. : fe80::200:5efe:1.1.1.1@ ?默認(rèn)網(wǎng)關(guān). . . . . . . . . . .. . : fe80::5efe:2.2.2.2@ 我們看到PC首先根據(jù)自己本地配置的IPv4地址:1.1.1.1,生成64bits的接口ID:
?這個64bits的接口ID,與從ISATAP路由器獲取到的IPv6全局單播地址前綴2001:1111::的前64bits,構(gòu)成了PC的IPv6全局單播地址:2001:1111::200:5efe:1.1.1.1。 ?這個64bits的接口ID,與FE80::/10構(gòu)成了PC的Linklocal地址:fe80::200:5efe:1.1.1.1 同時,PC將ISATAP路由器的Linklocal地址fe80::5efe:2.2.2.2設(shè)置為默認(rèn)網(wǎng)關(guān) ?當(dāng)主機(jī)與其它IPv6主機(jī)進(jìn)行通訊時,從隧道接口轉(zhuǎn)發(fā),將從報文的下一跳IPv6地址中取出IPv4地址作為IPv4封裝的目的地址。如果目的主機(jī)在本站點(diǎn)內(nèi),則下一跳就是目的主機(jī)本身,如果目的主機(jī)不在本站點(diǎn)內(nèi),則下一跳為ISATAP路由器的地址。
我們最后再做一個測試,就是ISATAP主機(jī)去ping 2008:8888::1。
這個到達(dá)ISATAP的loopback的IPv6數(shù)據(jù)包,被套上一個ISATAP的IPv4隧道頭,然后傳給ISATAP路由器,由路由器進(jìn)行下一步的IPv6轉(zhuǎn)發(fā)。
(紅茶三杯 原創(chuàng)博文,版權(quán)所有,轉(zhuǎn)載請注明出處http://weibo.com/vinsoney)
一、基本概念
? ? ISATAP(Intra-SiteAutomatic Tunnel Addressing Protocol) ?ISATAP是一種非常容易部署和使用的IPv6過渡機(jī)制。在一個IPv4網(wǎng)絡(luò)中,我們可以非常輕松的進(jìn)行ISATAP的部署,首先你的PC需是V4/V6雙棧PC,然后,需要有一臺支持ISATAP的路由器,ISATAP路由器可以在網(wǎng)絡(luò)中的任何位置,只要PC能夠ping通它(當(dāng)然,你要知道路由器的IPv4地址)。那么接下去,我們可以通過在路由器上部署ISATAP,這樣網(wǎng)絡(luò)中支持ISATAP的雙棧主機(jī),在需要訪問IPv6資源時,可以與ISATAP路由器建立起ISATAP隧道,ISATAP主機(jī)根據(jù)ISATAP路由器下發(fā)的IPv6前綴構(gòu)造自己的IPv6地址(這個IPv6地址是被自動關(guān)聯(lián)到ISATAP主機(jī)本地產(chǎn)生的一個ISATAP虛擬網(wǎng)卡上),并且將這臺ISATAP路由器設(shè)置為自己的IPv6默認(rèn)網(wǎng)關(guān),如此一來,后續(xù)的這臺主機(jī)就能夠通過這臺ISATAP路由器去訪問IPv6的資源。 ?這種方法部署起來非常簡單,在許多場合,客戶為了節(jié)省成本,又希望網(wǎng)絡(luò)中的IPv6主機(jī)能夠訪問V6資源,同時又不愿意對現(xiàn)有網(wǎng)絡(luò)做大規(guī)模的變更及設(shè)備升級,那么就可以采用這種方法,購買一臺支持ISATAP的路由器,甚至可以將ISATAP路由器旁掛在網(wǎng)絡(luò)上,只要它能夠訪問V6資源并且響應(yīng)ISATAPPC的隧道建立請求。
二、ISATAP的功能組件如下: ? 1、自動隧道: ISATAP的隧道機(jī)制也是自動的,隧道在主機(jī)和ISATAP路由器之間被創(chuàng)建。主機(jī)首選需要知道ISATAP路由器的IPv4地址。
2、ISATAP地址格式: 分配給ISATAP路由器的IPv6地址是全局單播地址,該地址的前綴將被ISATAP主機(jī)用于自己的IPv6地址構(gòu)造。ISATAP主機(jī)通過在IPv4建立起來的ISATAP隧道從ISATAP路由器發(fā)送的消息中接收/64的IPv6前綴,并且使用這個前綴結(jié)合“特殊的接口標(biāo)識”來構(gòu)造自己的IPv6地址。
3、接口標(biāo)識: ISATAP在主機(jī)上啟用后,會產(chǎn)生一個ISATAP虛擬網(wǎng)卡,該虛擬網(wǎng)卡會產(chǎn)生一個64bits的特殊接口標(biāo)識,有點(diǎn)類似EUI-64,但是產(chǎn)生機(jī)制不同,它是由專為ISATAP保留的32位的0200:5EFE加上主機(jī)上配置的IPv4地址構(gòu)成,如下圖,假設(shè)ISATAP主機(jī)配置的IPv4地址為1.1.1.1,那么ISATAP虛擬網(wǎng)卡的64bits接口標(biāo)識就是:
另一方面,在路由器上部署ISATAP后,路由器也會產(chǎn)生一個tunnel接口,用于響應(yīng)ISATAP主機(jī)的隧道建立請求,這個tunnel接口同樣會產(chǎn)生接口標(biāo)識。地址的格式是IANA保留給ISATAP的32比特的0000:5EFE后追加32比特的IPv4地址。如下圖,假設(shè)給ISATAP路由器配置的IPv4地址(用于隧道的)是2.2.2.2,那么ISATAPtunnel的接口標(biāo)識就是:
?這里關(guān)于64bits的接口標(biāo)識中“為ISATAP保留的”高階32bits在維基百科上有這么一段描述:“The link-localaddress is determined by concatenatingfe80:0000:0000:0000:0200:5efe: for global unique andfe80:0000:0000:0000:0000:5efe: for private addresses with the 32bits of the host's IPv4address.”。貌似有全局唯一和私有之分,不過在IETF的相關(guān)草案上找到的更多是0200:5efe的描述,在我所作的測試環(huán)境中,windows主機(jī)上系統(tǒng)使用的是0200:5ede,而CISCO路由器上用的是0000:5efe。 ?ISATAP主機(jī)和ISATAP路由器產(chǎn)生的這個64btis的接口標(biāo)識,可進(jìn)一步用于構(gòu)造隧道接口的Linklocal地址,以及IPv6全局單播地址。這個下面會描述到。 ?另外,因?yàn)镮SATAP的操作范圍在站點(diǎn)內(nèi),所以ISATAP主機(jī)和ISATAP路由器的IPv4地址可以是私有IP,也可以是公有IP。
三、工作機(jī)制
?首先,我們有一個IPv4的網(wǎng)絡(luò),IPv4網(wǎng)絡(luò)中絕大部分網(wǎng)路設(shè)備都不支持IPv6,除了終端主機(jī),以及一臺路由器,這臺能夠訪問我們需要的IPv6資源。現(xiàn)在,一種最廉價的方式是,在這臺路由器上部署ISATAP,終端ISATAP主機(jī)與路由器之間建立一個ISATAPtunnel,這樣一來PC可以直接將IPv6流量放進(jìn)tunnel傳到ISATAP路由器從而穿越整個IPv4網(wǎng)絡(luò)。
1)現(xiàn)在我們在ISATAP路由器上進(jìn)行相應(yīng)的配置,給路由器分配的IPv4地址是2.2.2.2/24,同時建立一個tunnel接口用于ISATAP,此時tunnel接口會根據(jù)IPv4地址產(chǎn)生一個64bits的接口標(biāo)識。這個接口標(biāo)識搭配上高位的fe80::就形成了tunnel接口的Linklocal地址:fe80::0000:5efe:202:202。另外,還需給ISATAPtunnel接口配置一個全局單播IPv6地址,這里可以手工配置,也可以通過前綴+EUI64的方式來構(gòu)建,這里的EUI-64就是上面所述的特殊的64bits接口標(biāo)識。如上圖,構(gòu)建出來的IPv6地址就是2001:1111::0000:5efe:0202.0202/64,因此IPv4的前綴為2001:1111::/64,這個前綴稍后會通過tunnel下發(fā)給ISATAP主機(jī),從而使它能夠構(gòu)建自己的IPv6地址。
2)現(xiàn)在我們在ISATAP主機(jī)上,配置ISATAP,一般來說,在WIN7系統(tǒng)上默認(rèn)安裝了IPv6協(xié)議棧,默認(rèn)就會有一個ISATAP的虛擬網(wǎng)卡。在我們給PC的物理網(wǎng)卡配置IPv4地址如1.1.1.1/24后,ISATAP虛擬網(wǎng)卡就會自動根據(jù)這個IPv4地址計算出上面所講的特殊的接口標(biāo)識:0200:5efe:1.1.1.1,注意這種格式等同與0200:5efe:0101.0101,在windows系統(tǒng)上我們可以看到前者的簡便寫法。
3)當(dāng)我們在主機(jī)上配置了ISATAP路由器之后(指向的是ISATAP路由器的IPv4地址),ISATAP主機(jī)開始向ISATAP路由器發(fā)送RS消息,如下圖:
?這個RS消息是通過IPv4隧道傳輸?shù)?#xff0c;外層是IPv4的頭,源地址是ISATAP的IPv4地址1.1.1.1,目的地址是2.2.2.2,也就是ISATAP的IPv4地址。IPv4頭里面裹著IPv6的報文,源地址是ISATAP主機(jī)的ISATAP虛擬網(wǎng)卡的Linklocal地址,目的地址是ISATAP路由器的Linklocal地址。
4)ISATAP主機(jī)發(fā)出的這個RS消息,會在IPv4網(wǎng)絡(luò)中被路由,最終轉(zhuǎn)發(fā)到ISATAP路由器。這將使得路由器立即以一個RA進(jìn)行回應(yīng):
?而這個回應(yīng)的RA消息里,就包含ISATAP上所配置的那個IPv6全局單播地址的/64前綴。
5)ISATAP主機(jī)收到這個RA回應(yīng)后,會拿出里頭的IPv6前綴,隨后在后面加上自己ISATAP虛擬網(wǎng)卡的64bits的接口標(biāo)識地址,構(gòu)成128bits的IPv6全局單播地址,同時會產(chǎn)生一條默認(rèn)路由,指向ISATAP路由器的Linklocal地址:
6)從現(xiàn)在起,ISATAP主機(jī)需要訪問IPv6資源的時候,將IPv6數(shù)據(jù)包封裝在IPv4的隧道里,也就是說,套上ISATAP隧道的IPv4頭,然后傳給ISATAP路由器,再由ISATAP路由器解封裝,再幫忙轉(zhuǎn)發(fā)IPv6數(shù)據(jù)。
四、典型實(shí)驗(yàn)
- 環(huán)境描述
- 設(shè)備配置
SW1的配置: vlan 10 vlan 20 interface fast0/1 switchport access vlan 10 interface fast0/15 switchport access vlan 20 interface vlan 10 ip address 1.1.1.254 255.255.255.0 interface vlan 20 ip address 2.2.2.254 255.255.255.0
Router的配置: ipv6 unicast-routing ! interface FastEthernet0/0 ip address 2.2.2.2 255.255.255.0 no shutdown ! interface Tunnel1 ip unnumbered?fastEthernet 0/0 ?? ? ?? ? ?!! 這個IPv4地址就是ISATAP隧道的目的地址 ipv6 enable ipv6 address 2001:1111::/64 eui-64? ? ?? ? ?!!這個IPv6地址的前綴會被通告給ISATAP主機(jī) no ipv6 nd suppress-ra tunnel source fastEthernet 0/0 tunnel mode ipv6ip isatap ! interface loopback0 ipv6 enable ipv6 address 2001:8888::8/64 ! ip route 0.0.0.0 0.0.0.0 2.2.2.254
注意ISATAP路由器的配置,關(guān)鍵部分在于tunnel的配置,tunnel模式是ipv6ipisatap的,同時注意在tunnel這里配置的IPV4地址,就是對應(yīng)的ISATAP主機(jī)上配置的那條CMD命令里ISATAP路由器的地址。我們這個實(shí)驗(yàn)演示的是tunnel直接用fa0/0的地址,當(dāng)然,tunnel也可以有自己的IPv4地址,只要保證ISATAP主機(jī)到這個IPv4地址路由可達(dá)就行。另外tunnel的IPv6地址,對應(yīng)的前綴就是稍后要下發(fā)給ISATAP主機(jī)的前綴,這個實(shí)驗(yàn)中,我們tunnel的IPv6全局單播地址使用的是前綴+eui-64的配置方式,這里的eui-64實(shí)際上指的就是前面我們介紹的那個特殊的64bits接口標(biāo)識。(紅茶三杯原創(chuàng)博文,版權(quán)所有,轉(zhuǎn)載請注明出處http://weibo.com/vinsoney)
- 實(shí)驗(yàn)測試
?注意,這里的Linklocal地址:FE80::5EFE:202:202就是一個ISATAP格式的地址,最后的64bits是由32bits的0000:5EFE加上32bits的接口IPv4地址(這里是2.2.2.2)構(gòu)成的,如下圖。而IPv6全局單播地址,也是使用64bits的接口標(biāo)識構(gòu)成的,當(dāng)然,你也可以手工配置IPv6全局單播地址,不一定要使用接口標(biāo)識。
接下去,我們在ISATAP主機(jī)上,CMD模式下輸入: netsh interface ipv6 isatap set router 2.2.2.2
PC就會開始發(fā)送RS,報文如下:
我們看到這個RS的ICMPv6報文外是IPv6的頭,IPv6的頭外是IPv4的頭。 注意外層IPv4的頭,源是1.1.1.1,目的是2.2.2.2 然后內(nèi)層IPv6的頭,源是ISATAP主機(jī)的Linklocal地址,目的是ISATAP路由器的Linklocal地址
在路由器收到RS后回回應(yīng)一個RA:
路由器回應(yīng)的這個RA里,就有一個ICMPv6的Option,其中就包含著ISATAP路由器的IPv6前綴。而ISATAP主機(jī)就可以根據(jù)這個前綴,結(jié)合自己的接口標(biāo)識構(gòu)建IPv6地址。
最終PC獲取到的IPv4地址如下: 隧道適配器 isatap.{0DB7233C-89B7-49DB-A8C0-D1AA005F4E6A}: ?連接特定的 DNS 后綴 . . . . . .. : ?IPv6 地址 . . . . . . . . .. . . : 2001:1111::200:5efe:1.1.1.1 ?本地鏈接 IPv6 地址. . . . . . .. : fe80::200:5efe:1.1.1.1@ ?默認(rèn)網(wǎng)關(guān). . . . . . . . . . .. . : fe80::5efe:2.2.2.2@ 我們看到PC首先根據(jù)自己本地配置的IPv4地址:1.1.1.1,生成64bits的接口ID:
?這個64bits的接口ID,與從ISATAP路由器獲取到的IPv6全局單播地址前綴2001:1111::的前64bits,構(gòu)成了PC的IPv6全局單播地址:2001:1111::200:5efe:1.1.1.1。 ?這個64bits的接口ID,與FE80::/10構(gòu)成了PC的Linklocal地址:fe80::200:5efe:1.1.1.1 同時,PC將ISATAP路由器的Linklocal地址fe80::5efe:2.2.2.2設(shè)置為默認(rèn)網(wǎng)關(guān) ?當(dāng)主機(jī)與其它IPv6主機(jī)進(jìn)行通訊時,從隧道接口轉(zhuǎn)發(fā),將從報文的下一跳IPv6地址中取出IPv4地址作為IPv4封裝的目的地址。如果目的主機(jī)在本站點(diǎn)內(nèi),則下一跳就是目的主機(jī)本身,如果目的主機(jī)不在本站點(diǎn)內(nèi),則下一跳為ISATAP路由器的地址。
我們最后再做一個測試,就是ISATAP主機(jī)去ping 2008:8888::1。
這個到達(dá)ISATAP的loopback的IPv6數(shù)據(jù)包,被套上一個ISATAP的IPv4隧道頭,然后傳給ISATAP路由器,由路由器進(jìn)行下一步的IPv6轉(zhuǎn)發(fā)。
(紅茶三杯 原創(chuàng)博文,版權(quán)所有,轉(zhuǎn)載請注明出處http://weibo.com/vinsoney)
總結(jié)
以上是生活随笔為你收集整理的ISATAP隧道技术及实践的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 霍尔传感器测量转向的方法
- 下一篇: 对matlab中colormap的解释及