夏清歡,李可欣,陶駿,宋衛(wèi)衛(wèi)
(安徽信息工程學(xué)院計算機與軟件工程學(xué)院,安徽 蕪湖 241000)
隨著經(jīng)濟的發(fā)展,網(wǎng)絡(luò)用戶逐年增多,32位的IPv4的網(wǎng)絡(luò)地址已無剩余,而128位的IPv6地址提供了充裕的IP地址,是網(wǎng)絡(luò)應(yīng)用的最佳解決策略。發(fā)展IPv6網(wǎng)絡(luò)提高了因特網(wǎng)客戶容量,使客戶共享了全世界的發(fā)展成果,保障了經(jīng)濟和社會的發(fā)展。
隨著IPv6網(wǎng)絡(luò)的應(yīng)用,學(xué)生通過實驗掌握IPv6的基礎(chǔ)知識并靈活運用變得非常關(guān)鍵。基于IPv6的網(wǎng)絡(luò)設(shè)備相互之間必須通過IPv6路由協(xié)議進行通信,IPv6路由協(xié)議包含OSPFv3、DHCPv6和BGP4+等協(xié)議,現(xiàn)實的網(wǎng)絡(luò)中還存在大量的只支持IPv4協(xié)議的網(wǎng)絡(luò)設(shè)備和應(yīng)用系統(tǒng),而更換這些設(shè)備和系統(tǒng)需要耗費大量的物力和財力,所以IPv6網(wǎng)絡(luò)和IPv4網(wǎng)絡(luò)還需要共存一個較長的階段。
IPv6網(wǎng)絡(luò)通過IPv4網(wǎng)絡(luò)進行互訪需要通過隧道技術(shù)解決,在兩種區(qū)域的交界處的網(wǎng)絡(luò)設(shè)備上設(shè)置隧道,隧道類型包括6to4隧道、自動隧道和ISATP隧道等。本文設(shè)計了一個融合IPv6網(wǎng)絡(luò)和IPv4網(wǎng)絡(luò)的網(wǎng)絡(luò)實驗,首先兩個IPv6網(wǎng)絡(luò)通過6to4隧道跨域IPv4網(wǎng)絡(luò)進行邏輯互聯(lián),其次IPv6網(wǎng)絡(luò)設(shè)備通過OSPFv3路由協(xié)議透明穿越IPv4網(wǎng)絡(luò)進行通信,在網(wǎng)絡(luò)層通信正常的基礎(chǔ)上,IPv6網(wǎng)絡(luò)中的終端通過DNS解析后能正常地訪問Web服務(wù)器,通過此實驗,學(xué)生能夠掌握IPv6的基礎(chǔ)知識和進行簡單的IPv6網(wǎng)絡(luò)設(shè)計[1]。
OSPFv2路由協(xié)議是運行在IPv4網(wǎng)絡(luò)上的路由協(xié)議,而OSPFv3路由協(xié)議是運行在IPv6網(wǎng)絡(luò)上的路由協(xié)議,OSPFv3路由協(xié)議能夠直接宣告IPv6地址。
OSPFv3基本繼承了OSPFv2的特點,它們使用相同的控制數(shù)據(jù)報文,比如hello、數(shù)據(jù)庫描述數(shù)據(jù)包、鏈路請求數(shù)據(jù)包、鏈路狀態(tài)更新數(shù)據(jù)包和鏈路狀態(tài)通告數(shù)據(jù)包(LSA);它們的鄰居發(fā)現(xiàn)和鄰接形成機制也基本類似;它們的LSA的泛洪和衰老原理也基本相同[1]。
OSPFv3路由協(xié)議和OSPFv2路由協(xié)議的不同點在于:OSPFv3協(xié)議是運行在接口上面,一條邏輯鏈路可以配置多個OSPFv3實例;OSPFv3協(xié)議新增了兩種LSA,一種是鏈路LSA,一種是區(qū)內(nèi)前綴LSA;OSPFv3協(xié)議使用認證數(shù)據(jù)包頭和封裝安全有效載荷擴展數(shù)據(jù)包頭作為認證機制;OSPFv3數(shù)據(jù)包通過IPv6協(xié)議進行發(fā)送,可以通過隧道穿透IPv4網(wǎng)絡(luò)進行通信。
隧道的用途在于傳送不兼容的網(wǎng)絡(luò)協(xié)議數(shù)據(jù),6to4隧道的作用使IPv6的數(shù)據(jù)包穿過IPv4網(wǎng)絡(luò)到達另一個IPv6網(wǎng)絡(luò),兩個IPv6網(wǎng)絡(luò)通過6to4隧道通信的示意圖如圖1所示:

圖1 IPv6網(wǎng)絡(luò)穿越IPv4網(wǎng)絡(luò)圖
當(dāng)IPv6數(shù)據(jù)包到達6to4隧道發(fā)送之前,必須在IPv6數(shù)據(jù)包插入一個IPv4數(shù)據(jù)包頭,此包頭必須包含兩個信息:隧道兩端的IPv6地址和隧道兩端的IPv4地址。當(dāng)此封裝好的數(shù)據(jù)包到達隧道另一端時,另一端的邊界路由器對封裝好的數(shù)據(jù)包進行解封并發(fā)送給相應(yīng)的IPv6網(wǎng)絡(luò),所以隧道兩側(cè)的路由器必須支持IPv4協(xié)議與IPv6協(xié)議(雙棧)。
同GRE隧道和ISATAP隧道相比,6to4隧道有著配置簡單和靈活高效的特點,在網(wǎng)絡(luò)中有著廣泛的應(yīng)用[2]。
本文所設(shè)計的實驗網(wǎng)絡(luò)拓撲圖如圖2所示。

圖2 實驗網(wǎng)絡(luò)拓撲圖
實驗要求用戶區(qū)域1的三臺終端PC11能訪問用戶區(qū)域2的Web服務(wù)。
網(wǎng)絡(luò)中有兩個IPv6的“孤島”,分別是用戶區(qū)域1和用戶區(qū)域2,對于這兩個“孤島”,網(wǎng)絡(luò)需要建立6to4隧道穿越運營商網(wǎng)絡(luò)建立通信,這兩個“孤島”網(wǎng)絡(luò)中路由器通過OSPFv3協(xié)議進行數(shù)據(jù)交換,兩個“孤島”的路由器都位于OSPFv3的同一個域中,IPv4網(wǎng)絡(luò)對其是透明的。
在用戶區(qū)域1中,用戶終端PC11、PC12、PC13、PC21、PC22和PC23通過DHCPv6協(xié)議動態(tài)獲取IPv6地址,二層接入交換機上AW1和AW2配置VLAN信息和端口的VLAN歸屬,二層匯聚交換機DW進行VLAN透傳。路由器UR11配置OSPFv3協(xié)議加入到OSPFv3 0.0.0.1域,路由器UR11上配置IPv6地址池,負責(zé)為終端分配地址和下發(fā)DNS服務(wù)地址,路由器UR1上配置子接口終結(jié)二層VLAN。路由器UR10配置OSPFv3協(xié)議加入OSPFv3 0.0.0.1域,路由器UR10配置IPv4靜態(tài)路由和運營商網(wǎng)絡(luò)進行通信,路由器UR10配置6to4隧道與用戶區(qū)域2的UR20進行通信。
運營商區(qū)域的三臺路由器ISP1、ISP2、ISP3、ISP4和ISP5只需要配置EIGRP IPv4路由協(xié)議進行保障相互通信[3]。
在用戶區(qū)域2中,路由器UR20配置OSPFv3協(xié)議加入到OSPFv3 0.0.0.1域,路由器UR20配置IPv4靜態(tài)路由和運營商網(wǎng)絡(luò)進行通信,路由器UR20配置6to4隧道與用戶區(qū)域1的UR10進行通信,路由器UR21配置OSPFv3協(xié)議加入到OSPFv3 0.0.0.1域,路由器UR21負責(zé)接入DNS和Web服務(wù)器的接入。在Web服務(wù)器上開啟HTTP服務(wù)并發(fā)布網(wǎng)站,在DNS服務(wù)器上配置正確的域名解析并發(fā)布DNS服務(wù)[4]。
實驗平臺采用Cisco Packet Tracer模擬器軟件,其對應(yīng)軟件版本號為6.2,Cisco Packet Tracer模擬器支持IPv6網(wǎng)絡(luò)中的OSPFv3、BGP4+和DHCPv6等路由協(xié)議。實驗中的路由器的型號是2911,交換機的型號是2950,在模擬器中連接好的網(wǎng)絡(luò)配置圖如圖3所示:
用戶區(qū)域1的接入交換機AW1的關(guān)鍵配置為:
//交換機命名
hostname AW1
//創(chuàng)建VLAN
VLAN 1000
VLAN 2000
//上行口配置成透傳模式
interface FastEthernet0/1
switchport mode trunk
//pc11和pc12接入到VLAN 1000
interface FastEthernet0/2
switchport access VLAN 1000
interface FastEthernet0/3
switchport access VLAN 1000
//pc13接入到VLAN 2000
interface FastEthernet0/4
switchport access VLAN 2000
接入交換機AW1上創(chuàng)建了2個VLAN,一共劃分了兩個廣播域,PC11和PC12屬于VLAN 1000,PC13屬于VLAN 2000,這兩個VLAN必須通過單臂路由器UR11進行通信。
路由器UR11的關(guān)鍵配置為:
//路由器命名
hostname R11
//開啟IPv6功能
ipv6 unicast-routing
//開啟ipv6 cef交換
ipv6 cef
//配置DHCP地址池1000
ipv6 dhcp pool 1000
prefix-delegation pool VLAN1000-pool
//下發(fā)DNS服務(wù)器地址
dns-server D::2
//配置DHCP地址池2000
ipv6 dhcp pool 2000
prefix-delegation pool VLAN2000-pool
dns-server D::2
ipv6 local pool VLAN1000-pool A::/118 120
ipv6 local pool VLAN2000-pool B::/118 120
//配置邏輯環(huán)回口信息
interface loopback11
ipv6 address 1:B::B/128
ipv6 enable
//端口運行ospf協(xié)議
ipv6 ospf 1 area 0.0.0.1
//配置連接UR10路由器的端口
interface GigabitEthernet0/0
description to-UR10
ipv6 address 100::2/126
ipv6 enable
ipv6 ospf 1 area 0.0.0.1
//配置單臂路由器端口
interface GigabitEthernet0/1
ipv6 enable
//配置子接口信息
interface GigabitEthernet0/1.1000
//端口封裝dot1Q協(xié)議
encapsulation dot1Q 1000
ipv6 address A::1/120
//允許主機使用DHCP獲取有狀態(tài)的IPv6地址
ipv6 nd other-config-flag
//允許主機使用DHCP獲取除IPv6地址以外的參數(shù)
ipv6 nd managed-config-flag
ipv6 enable
ipv6 ospf 1 area 0.0.0.1
ipv6 dhcp server 1000
interface GigabitEthernet0/1.2000
encapsulation dot1Q 2000
ipv6 address B::1/120
ipv6 nd other-config-flag
ipv6 nd managed-config-flag
ipv6 enable
ipv6 ospf 1 area 0.0.0.1
ipv6 dhcp server 2000
//配置OSPFv3全局參數(shù)
ipv6 router ospf 1
router-id 110.110.110.110
單臂路由器UR11在打開IPv6功能后,配置了兩個DHCPv6的地址池,為接入的VLAN1000和VLAN2000的終端分配IPv6地址;需要配置兩個子接口,分別充當(dāng)VLAN1000和VLAN2000的網(wǎng)關(guān);需要全局配置OSPFv3協(xié)議,然后在相關(guān)端口上開啟OSPFv3協(xié)議,而不需要進行OSPFv2的地址段宣告[5]。
用戶區(qū)域邊緣路由器UR10的配置為:
hostname UR10
//開啟IPv6 cef交換
ipv6 cef
interface loopback0
ipv6 address 1::A/128
ipv6 enable
ipv6 ospf 1 area 0.0.0.1
//配置隧道信息
interface Tunnel0
mtu 1476
ipv6 address 800::1/126
ipv6 enable
ipv6 ospf 1 area 0.0.0.1
//隧道起點端口
tunnel source GigabitEthernet0/0
//隧道終點IPv4地址
tunnel destination 66.66.66.2
//隧道類型
tunnel mode ipv6ip
//配置連接ISP端口
interface GigabitEthernet0/0
description to-ISP1
ip address 88.88.88.1 255.255.255.252
//配置連接UR11路由器端口
interface GigabitEthernet0/1
description to-UR11
ipv6 address 100::1/126
ipv6 enable
ipv6 ospf 1 area 0.0.0.1
interface GigabitEthernet0/2
description to-UR21
ipv6 address 100::5/126
ipv6 enable
ipv6 ospf 1 area 0.0.0.1
ipv6 router ospf 1
router-id 120.120.120.120
//到ISP的默認路由
ip route 0.0.0.0 0.0.0.0 88.88.88.2
UR10上配置全局OSPFv3協(xié)議,配置跨域IPv4網(wǎng)絡(luò)的6to4隧道,需要設(shè)置隧道類型、隧道終點、隧道起點和隧道地址,并且需要在隧道上開啟OSPFv3協(xié)議,然后與對端的UR20路由器建立正確的OSPF鄰居關(guān)系。
路由器ISP1的關(guān)鍵配置為:
//路由器命名
hostname ISP1
ip cef
//關(guān)閉IPv6交換
no ipv6 cef
interface loopback0
ip address 101.101.101.101 255.255.255.255
//連接ISP2的端口
interface GigabitEthernet0/0
description to-ISP2
ip address 172.16.0.1 255.255.255.252
//連接ISP4的端口
interface GigabitEthernet0/2
description to-ISP4
ip address 172.16.0.5 255.255.255.252
//連接路由器UR10端口
interface GigabitEthernet0/1
description to-UR10
ip address 88.88.88.2 255.255.255.252
//開啟eigrp路由協(xié)議
router eigrp 100
//引入直連
redistribute connected
//宣告相關(guān)網(wǎng)段
network 101.101.101.101 0.0.0.0
network 172.16.0.0 0.0.0.255
ISP1是運營商管理的路由器,其只運行IPv4協(xié)議,除了配置相關(guān)端口信息之外,ISP1需要開啟eigrp協(xié)議,與運營商其他的路由器進行通信。
UR20路由器的配置與UR10類似,UR21路由器的配置與UR11類似,ISP2、ISP3的配置與ISP1類似。
DNS服務(wù)器配置好IPv6地址后,需要添加一個A記錄,設(shè)置具體網(wǎng)站和其對應(yīng)IP地址的關(guān)系,此時域名www.axg.com對應(yīng)的IPv6地址是E::2。Web服務(wù)器配置好IPv6地址后,需要開啟HTTP服務(wù)和發(fā)布Web站點的默認網(wǎng)頁,文件index.html就是Web站點的默認網(wǎng)頁,可以對其編輯修改后進行個性化發(fā)布[6]。
當(dāng)思科模擬器中的網(wǎng)絡(luò)設(shè)備啟動時,每臺PC都能動態(tài)獲取IPv6地址。ISP的路由器建立了EIGRP鄰居關(guān)系,UR11和UR10通過隧道與UR20和UR21建立OSPFv3鄰居關(guān)系,當(dāng)各路由器正常啟動并收斂后,PC終端就可以正常訪問DNS和Web服務(wù)器,終端P12 tracert Web服務(wù)器的路由路徑如圖4所示。

圖4 終端PC12 tracert Web服務(wù)器的路由路徑圖
P12的ICMP數(shù)據(jù)包是跨越6to4隧道訪問Web服務(wù)器的,所以圖中并沒有顯示ISP路由器的接口信息。PC12訪問網(wǎng)站的主頁情形如圖5所示。

圖5 PC12訪問網(wǎng)站的主頁
PC12訪問www.axg.com時,先訪問DNS服務(wù)器獲取域名對應(yīng)的IPv6地址,再訪問Web服務(wù)器。當(dāng)路由器ISP1和ISP2的互聯(lián)電路中斷時,PC12訪問網(wǎng)站仍然正常,此時ISP1通過ISP4訪問網(wǎng)站,但此時tracert的路徑并沒有發(fā)生變化,因為此時6to4隧道認為ISP的通信電路是透明的,不會因為ISP的通信電路的變化而改變tracert路徑[7]。
IPv6網(wǎng)絡(luò)是IPv4網(wǎng)絡(luò)有效的替代方式,其相關(guān)的通信路由協(xié)議,如DHCPv6、ISISv6、BGP4+、OSPFv3和ICMPv6協(xié)議已經(jīng)構(gòu)成了一個完善的網(wǎng)絡(luò)協(xié)議體系,IPv6的接入網(wǎng)絡(luò)和IPv6用戶也在逐年增多,但是對IPv4網(wǎng)絡(luò)系統(tǒng)行徹底地更換會導(dǎo)致巨大的投資,所以IPv4網(wǎng)絡(luò)和IPv6網(wǎng)絡(luò)會長期共存一段時間。本研究基于此前提設(shè)計了一個IPv4和IPv6的融合網(wǎng)絡(luò),兩個IPv6網(wǎng)絡(luò)“孤島”通過6to4隧道穿越IPv4網(wǎng)絡(luò)。通過OSPFv3協(xié)議進行通信,IPv6用戶通過DHCPv6動態(tài)獲取IPv6地址。再以單臂路由器的方式接入IPv6網(wǎng)絡(luò),IPv4網(wǎng)絡(luò)中通過EIGRP協(xié)議進行通信,IPv6網(wǎng)絡(luò)之間互訪透明地穿越IPv4網(wǎng)絡(luò),最后終端在應(yīng)用層能正常訪問Web服務(wù)[8]。
通過此實驗,學(xué)生可以熟練掌握IPv6的地址體系和IPv6基本的通信協(xié)議,對跨越不同類型網(wǎng)絡(luò)的隧道技術(shù)有了一定的了解,同時也熟悉了IPv6網(wǎng)絡(luò)中DNS和Web服務(wù)器的配置。由于本實驗都是在同一個自治域中完成的,所以涉及跨越不同的自治域的隧道技術(shù)將是下一步的研究方向[9]。