日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

8、ISATAP隧道

發布時間:2023/12/8 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 8、ISATAP隧道 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

基本概念

?ISATAP(Intra-SiteAutomatic Tunnel Addressing Protocol)
?ISATAP是一種非常容易部署和使用的IPv6過渡機制。在一個IPv4網絡中,我們可以非常輕松的進行ISATAP的部署,首先你的PC需是V4/V6雙棧PC,然后,需要有一臺支持ISATAP的路由器,ISATAP路由器可以在網絡中的任何位置,只要PC能夠ping通它(當然,你要知道路由器的IPv4地址)。那么接下去,我們可以通過在路由器上部署ISATAP,這樣網絡中支持ISATAP的雙棧主機,在需要訪問IPv6資源時,可以與ISATAP路由器建立起ISATAP隧道,ISATAP主機根據ISATAP路由器下發的IPv6前綴構造自己的IPv6地址(這個IPv6地址是被自動關聯到ISATAP主機本地產生的一個ISATAP虛擬網卡上),并且將這臺ISATAP路由器設置為自己的IPv6默認網關,如此一來,后續的這臺主機就能夠通過這臺ISATAP路由器去訪問IPv6的資源。

?這種方法部署起來非常簡單,在許多場合,客戶為了節省成本,又希望網絡中的IPv6主機能夠訪問V6資源,同時又不愿意對現有網絡做大規模的變更及設備升級,那么就可以采用這種方法,購買一臺支持ISATAP的路由器,甚至可以將ISATAP路由器旁掛在網絡上,只要它能夠訪問V6資源并且響應ISATAPPC的隧道建立請求。

ISATAP的功能組件如下

1、自動隧道:
ISATAP的隧道機制也是自動的,隧道在主機和ISATAP路由器之間被創建。主機首選需要知道ISATAP路由器的IPv4地址。

2、ISATAP地址格式:
分配給ISATAP路由器的IPv6地址是全局單播地址,該地址的前綴將被ISATAP主機用于自己的IPv6地址構造。ISATAP主機通過在IPv4建立起來的ISATAP隧道從ISATAP路由器發送的消息中接收/64的IPv6前綴,并且使用這個前綴結合“特殊的接口標識”來構造自己的IPv6地址。

3、接口標識:

ISATAP在主機上啟用后,會產生一個ISATAP虛擬網卡,該虛擬網卡會產生一個64bits的特殊接口標識,有點類似EUI-64,但是產生機制不同,它是由專為ISATAP保留的32位的0200:5EFE加上主機上配置的IPv4地址構成,如下圖,假設ISATAP主機配置的IPv4地址為1.1.1.1,那么ISATAP虛擬網卡的64bits接口標識就是:


另一方面,在路由器上部署ISATAP后,路由器也會產生一個tunnel接口,用于響應ISATAP主機的隧道建立請求,這個tunnel接口同樣會產生接口標識。地址的格式是IANA保留給ISATAP的32比特的0000:5EFE后追加32比特的IPv4地址。如下圖,假設給ISATAP路由器配置的IPv4地址(用于隧道的)是2.2.2.2,那么ISATAPtunnel的接口標識就是:


這里關于64bits的接口標識中“為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的相關草案上找到的更多是0200:5efe的描述,在我所作的測試環境中,windows主機上系統使用的是0200:5ede,而CISCO路由器上用的是0000:5efe。

ISATAP主機和ISATAP路由器產生的這個64btis的接口標識,可進一步用于構造隧道接口的Linklocal地址,以及IPv6全局單播地址。這個下面會描述到。

另外,因為ISATAP的操作范圍在站點內,所以ISATAP主機和ISATAP路由器的IPv4地址可以是私有IP,也可以是公有IP。

工作機制


首先,我們有一個IPv4的網絡,IPv4網絡中絕大部分網路設備都不支持IPv6,除了終端主機,以及一臺路由器,這臺能夠訪問我們需要的IPv6資源。現在,一種最廉價的方式是,在這臺路由器上部署ISATAP,終端ISATAP主機與路由器之間建立一個ISATAPtunnel,這樣一來PC可以直接將IPv6流量放進tunnel傳到ISATAP路由器從而穿越整個IPv4網絡。

1)現在我們在ISATAP路由器上進行相應的配置,給路由器分配的IPv4地址是2.2.2.2/24,同時建立一個tunnel接口用于ISATAP,此時tunnel接口會根據IPv4地址產生一個64bits的接口標識。這個接口標識搭配上高位的fe80::就形成了tunnel接口的Linklocal地址:fe80::0000:5efe:202:202。另外,還需給ISATAPtunnel接口配置一個全局單播IPv6地址,這里可以手工配置,也可以通過前綴+EUI64的方式來構建,這里的EUI-64就是上面所述的特殊的64bits接口標識。如上圖,構建出來的IPv6地址就是2001:1111::0000:5efe:0202.0202/64,因此IPv4的前綴為2001:1111::/64,這個前綴稍后會通過tunnel下發給ISATAP主機,從而使它能夠構建自己的IPv6地址。

2)現在我們在ISATAP主機上,配置ISATAP,一般來說,在WIN7系統上默認安裝了IPv6協議棧,默認就會有一個ISATAP的虛擬網卡。在我們給PC的物理網卡配置IPv4地址如1.1.1.1/24后,ISATAP虛擬網卡就會自動根據這個IPv4地址計算出上面所講的特殊的接口標識:0200:5efe:1.1.1.1,注意這種格式等同與0200:5efe:0101.0101,在windows系統上我們可以看到前者的簡便寫法。

3)當我們在主機上配置了ISATAP路由器之后(指向的是ISATAP路由器的IPv4地址),ISATAP主機開始向ISATAP路由器發送RS消息,如下圖:


這個RS消息是通過IPv4隧道傳輸的,外層是IPv4的頭,源地址是ISATAP的IPv4地址1.1.1.1,目的地址是2.2.2.2,也就是ISATAP的IPv4地址。IPv4頭里面裹著IPv6的報文,源地址是ISATAP主機的ISATAP虛擬網卡的Linklocal地址,目的地址是ISATAP路由器的Linklocal地址。

4)ISATAP主機發出的這個RS消息,會在IPv4網絡中被路由,最終轉發到ISATAP路由器。這將使得路由器立即以一個RA進行回應:


而這個回應的RA消息里,就包含ISATAP上所配置的那個IPv6全局單播地址的/64前綴。

5)ISATAP主機收到這個RA回應后,會拿出里頭的IPv6前綴,隨后在后面加上自己ISATAP虛擬網卡的64bits的接口標識地址,構成128bits的IPv6全局單播地址,同時會產生一條默認路由,指向ISATAP路由器的Linklocal地址:

6)從現在起,ISATAP主機需要訪問IPv6資源的時候,將IPv6數據包封裝在IPv4的隧道里,也就是說,套上ISATAP


隧道的IPv4頭,然后傳給ISATAP路由器,再由ISATAP路由器解封裝,再幫忙轉發IPv6數據。


四、典型實驗


環境描述

PC是ISATAP主機,它是一臺雙棧PC,這里我們使用的是一臺win7系統的電腦做測試。電腦網卡的IP地址為1.1.1.1/24,網關為1.1.1.254,網關是SW1的interfacevlan10。

SW1創建兩個VLAN:VLAN10及20,分別對應PC及ISATAP路由器。VLAN20的SVI口IP為2.2.2.254,是ISATAP路由器的默認網關。

ISATAPRouter的接口IP為2.2.2.2。該IPv4地址在后續的ISATAP配置中使用到,ISATAP主機就是通過這個IP找到ISATAPRouter并與之建立ISATAP tunnel。ISATAPRouter同時連接到了一個IPv6網絡,這里我們用loopback模擬:2001:8888::8/64,用于后續的測試。

最終的實驗結果是首先PC要能夠ping通ISATAP Router的IPv4地址也就是2.2.2.2。然后PC與ISATAProuter建立隧道并拿到IPv6地址,而且要能夠ping通20001:8888::8

設備配置

PC1的配置:
網卡配置IP地址1.1.1.1/24,網關為1.1.1.254
安裝IPv6協議棧,此時Win7會自動產生一個ISATAP隧道虛擬接口:
隧道適配器isatap.{0DB7233C-89B7-49DB-A8C0-D1AA005F4E6A}:

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/0ip address 2.2.2.2 255.255.255.0no shutdown ! interface Tunnel1ip unnumbered fastEthernet 0/0 !! 這個IPv4地址就是ISATAP隧道的目的地址ipv6 enableipv6 address 2001:1111::/64 eui-64 !!這個IPv6地址的前綴會被通告給ISATAP主機no ipv6 nd suppress-ratunnel source fastEthernet 0/0tunnel mode ipv6ip isatap ! interface loopback0ipv6 enableipv6 address 2001:8888::8/64 ! ip route 0.0.0.0 0.0.0.0 2.2.2.254

注意ISATAP路由器的配置,關鍵部分在于tunnel的配置,tunnel模式是ipv6ipisatap的,同時注意在tunnel這里配置的IPV4地址,就是對應的ISATAP主機上配置的那條CMD命令里ISATAP路由器的地址。我們這個實驗演示的是tunnel直接用fa0/0的地址,當然,tunnel也可以有自己的IPv4地址,只要保證ISATAP主機到這個IPv4地址路由可達就行。另外tunnel的IPv6地址,對應的前綴就是稍后要下發給ISATAP主機的前綴,這個實驗中,我們tunnel的IPv6全局單播地址使用的是前綴+eui-64的配置方式,這里的eui-64實際上指的就是前面我們介紹的那個特殊的64bits接口標識。

實驗測試

我們首先在路由器上查看一下:

R2#show ipv6 interface brief FastEthernet0/0 Tunnel0 FE80::5EFE:202:202 2001:1111::5EFE:202:202

注意,這里的Linklocal地址:FE80::5EFE:202:202就是一個ISATAP格式的地址,最后的64bits是由32bits的0000:5EFE加上32bits的接口IPv4地址(這里是2.2.2.2)構成的,如下圖。而IPv6全局單播地址,也是使用64bits的接口標識構成的,當然,你也可以手工配置IPv6全局單播地址,不一定要使用接口標識。


接下去,我們在ISATAP主機上,CMD模式下輸入:
netsh interface ipv6 isatap set router 2.2.2.2

PC就會開始發送RS,報文如下:


我們看到這個RS的ICMPv6報文外是IPv6的頭,IPv6的頭外是IPv4的頭。
注意外層IPv4的頭,源是1.1.1.1,目的是2.2.2.2
然后內層IPv6的頭,源是ISATAP主機的Linklocal地址,目的是ISATAP路由器的Linklocal地址

在路由器收到RS后回回應一個RA:


路由器回應的這個RA里,就有一個ICMPv6的Option,其中就包含著ISATAP路由器的IPv6前綴。而ISATAP主機就可以根據這個前綴,結合自己的接口標識構建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@默認網關. . . . . . . . . . .. . : fe80::5efe:2.2.2.2@

我們看到PC首先根據自己本地配置的IPv4地址:1.1.1.1,生成64bits的接口ID:


這個64bits的接口ID,與從ISATAP路由器獲取到的IPv6全局單播地址前綴2001:1111::的前64bits,構成了PC的IPv6全局單播地址:2001:1111::200:5efe:1.1.1.1。
?這個64bits的接口ID,與FE80::/10構成了PC的Linklocal地址:fe80::200:5efe:1.1.1.1
同時,PC將ISATAP路由器的Linklocal地址fe80::5efe:2.2.2.2設置為默認網關
?當主機與其它IPv6主機進行通訊時,從隧道接口轉發,將從報文的下一跳IPv6地址中取出IPv4地址作為IPv4封裝的目的地址。如果目的主機在本站點內,則下一跳就是目的主機本身,如果目的主機不在本站點內,則下一跳為ISATAP路由器的地址。

我們最后再做一個測試,就是ISATAP主機去ping 2008:8888::1。


這個到達ISATAP的loopback的IPv6數據包,被套上一個ISATAP的IPv4隧道頭,然后傳給ISATAP路由器,由路由器進行下一步的IPv6轉發。


總結

以上是生活随笔為你收集整理的8、ISATAP隧道的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。