夏清欢,李可欣,陶骏,宋卫卫
(安徽信息工程学院计算机与软件工程学院,安徽 芜湖 241000)
随着经济的发展,网络用户逐年增多,32位的IPv4的网络地址已无剩余,而128位的IPv6地址提供了充裕的IP地址,是网络应用的最佳解决策略。发展IPv6网络提高了因特网客户容量,使客户共享了全世界的发展成果,保障了经济和社会的发展。
随着IPv6网络的应用,学生通过实验掌握IPv6的基础知识并灵活运用变得非常关键。基于IPv6的网络设备相互之间必须通过IPv6路由协议进行通信,IPv6路由协议包含OSPFv3、DHCPv6和BGP4+等协议,现实的网络中还存在大量的只支持IPv4协议的网络设备和应用系统,而更换这些设备和系统需要耗费大量的物力和财力,所以IPv6网络和IPv4网络还需要共存一个较长的阶段。
IPv6网络通过IPv4网络进行互访需要通过隧道技术解决,在两种区域的交界处的网络设备上设置隧道,隧道类型包括6to4隧道、自动隧道和ISATP隧道等。本文设计了一个融合IPv6网络和IPv4网络的网络实验,首先两个IPv6网络通过6to4隧道跨域IPv4网络进行逻辑互联,其次IPv6网络设备通过OSPFv3路由协议透明穿越IPv4网络进行通信,在网络层通信正常的基础上,IPv6网络中的终端通过DNS解析后能正常地访问Web服务器,通过此实验,学生能够掌握IPv6的基础知识和进行简单的IPv6网络设计[1]。
OSPFv2路由协议是运行在IPv4网络上的路由协议,而OSPFv3路由协议是运行在IPv6网络上的路由协议,OSPFv3路由协议能够直接宣告IPv6地址。
OSPFv3基本继承了OSPFv2的特点,它们使用相同的控制数据报文,比如hello、数据库描述数据包、链路请求数据包、链路状态更新数据包和链路状态通告数据包(LSA);它们的邻居发现和邻接形成机制也基本类似;它们的LSA的泛洪和衰老原理也基本相同[1]。
OSPFv3路由协议和OSPFv2路由协议的不同点在于:OSPFv3协议是运行在接口上面,一条逻辑链路可以配置多个OSPFv3实例;OSPFv3协议新增了两种LSA,一种是链路LSA,一种是区内前缀LSA;OSPFv3协议使用认证数据包头和封装安全有效载荷扩展数据包头作为认证机制;OSPFv3数据包通过IPv6协议进行发送,可以通过隧道穿透IPv4网络进行通信。
隧道的用途在于传送不兼容的网络协议数据,6to4隧道的作用使IPv6的数据包穿过IPv4网络到达另一个IPv6网络,两个IPv6网络通过6to4隧道通信的示意图如图1所示:
图1 IPv6网络穿越IPv4网络图
当IPv6数据包到达6to4隧道发送之前,必须在IPv6数据包插入一个IPv4数据包头,此包头必须包含两个信息:隧道两端的IPv6地址和隧道两端的IPv4地址。当此封装好的数据包到达隧道另一端时,另一端的边界路由器对封装好的数据包进行解封并发送给相应的IPv6网络,所以隧道两侧的路由器必须支持IPv4协议与IPv6协议(双栈)。
同GRE隧道和ISATAP隧道相比,6to4隧道有着配置简单和灵活高效的特点,在网络中有着广泛的应用[2]。
本文所设计的实验网络拓扑图如图2所示。
图2 实验网络拓扑图
实验要求用户区域1的三台终端PC11能访问用户区域2的Web服务。
网络中有两个IPv6的“孤岛”,分别是用户区域1和用户区域2,对于这两个“孤岛”,网络需要建立6to4隧道穿越运营商网络建立通信,这两个“孤岛”网络中路由器通过OSPFv3协议进行数据交换,两个“孤岛”的路由器都位于OSPFv3的同一个域中,IPv4网络对其是透明的。
在用户区域1中,用户终端PC11、PC12、PC13、PC21、PC22和PC23通过DHCPv6协议动态获取IPv6地址,二层接入交换机上AW1和AW2配置VLAN信息和端口的VLAN归属,二层汇聚交换机DW进行VLAN透传。路由器UR11配置OSPFv3协议加入到OSPFv3 0.0.0.1域,路由器UR11上配置IPv6地址池,负责为终端分配地址和下发DNS服务地址,路由器UR1上配置子接口终结二层VLAN。路由器UR10配置OSPFv3协议加入OSPFv3 0.0.0.1域,路由器UR10配置IPv4静态路由和运营商网络进行通信,路由器UR10配置6to4隧道与用户区域2的UR20进行通信。
运营商区域的三台路由器ISP1、ISP2、ISP3、ISP4和ISP5只需要配置EIGRP IPv4路由协议进行保障相互通信[3]。
在用户区域2中,路由器UR20配置OSPFv3协议加入到OSPFv3 0.0.0.1域,路由器UR20配置IPv4静态路由和运营商网络进行通信,路由器UR20配置6to4隧道与用户区域1的UR10进行通信,路由器UR21配置OSPFv3协议加入到OSPFv3 0.0.0.1域,路由器UR21负责接入DNS和Web服务器的接入。在Web服务器上开启HTTP服务并发布网站,在DNS服务器上配置正确的域名解析并发布DNS服务[4]。
实验平台采用Cisco Packet Tracer模拟器软件,其对应软件版本号为6.2,Cisco Packet Tracer模拟器支持IPv6网络中的OSPFv3、BGP4+和DHCPv6等路由协议。实验中的路由器的型号是2911,交换机的型号是2950,在模拟器中连接好的网络配置图如图3所示:
用户区域1的接入交换机AW1的关键配置为:
//交换机命名
hostname AW1
//创建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上创建了2个VLAN,一共划分了两个广播域,PC11和PC12属于VLAN 1000,PC13属于VLAN 2000,这两个VLAN必须通过单臂路由器UR11进行通信。
路由器UR11的关键配置为:
//路由器命名
hostname R11
//开启IPv6功能
ipv6 unicast-routing
//开启ipv6 cef交换
ipv6 cef
//配置DHCP地址池1000
ipv6 dhcp pool 1000
prefix-delegation pool VLAN1000-pool
//下发DNS服务器地址
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
//配置逻辑环回口信息
interface loopback11
ipv6 address 1:B::B/128
ipv6 enable
//端口运行ospf协议
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协议
encapsulation dot1Q 1000
ipv6 address A::1/120
//允许主机使用DHCP获取有状态的IPv6地址
ipv6 nd other-config-flag
//允许主机使用DHCP获取除IPv6地址以外的参数
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全局参数
ipv6 router ospf 1
router-id 110.110.110.110
单臂路由器UR11在打开IPv6功能后,配置了两个DHCPv6的地址池,为接入的VLAN1000和VLAN2000的终端分配IPv6地址;需要配置两个子接口,分别充当VLAN1000和VLAN2000的网关;需要全局配置OSPFv3协议,然后在相关端口上开启OSPFv3协议,而不需要进行OSPFv2的地址段宣告[5]。
用户区域边缘路由器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协议,配置跨域IPv4网络的6to4隧道,需要设置隧道类型、隧道终点、隧道起点和隧道地址,并且需要在隧道上开启OSPFv3协议,然后与对端的UR20路由器建立正确的OSPF邻居关系。
路由器ISP1的关键配置为:
//路由器命名
hostname ISP1
ip cef
//关闭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路由协议
router eigrp 100
//引入直连
redistribute connected
//宣告相关网段
network 101.101.101.101 0.0.0.0
network 172.16.0.0 0.0.0.255
ISP1是运营商管理的路由器,其只运行IPv4协议,除了配置相关端口信息之外,ISP1需要开启eigrp协议,与运营商其他的路由器进行通信。
UR20路由器的配置与UR10类似,UR21路由器的配置与UR11类似,ISP2、ISP3的配置与ISP1类似。
DNS服务器配置好IPv6地址后,需要添加一个A记录,设置具体网站和其对应IP地址的关系,此时域名www.axg.com对应的IPv6地址是E::2。Web服务器配置好IPv6地址后,需要开启HTTP服务和发布Web站点的默认网页,文件index.html就是Web站点的默认网页,可以对其编辑修改后进行个性化发布[6]。
当思科模拟器中的网络设备启动时,每台PC都能动态获取IPv6地址。ISP的路由器建立了EIGRP邻居关系,UR11和UR10通过隧道与UR20和UR21建立OSPFv3邻居关系,当各路由器正常启动并收敛后,PC终端就可以正常访问DNS和Web服务器,终端P12 tracert Web服务器的路由路径如图4所示。
图4 终端PC12 tracert Web服务器的路由路径图
P12的ICMP数据包是跨越6to4隧道访问Web服务器的,所以图中并没有显示ISP路由器的接口信息。PC12访问网站的主页情形如图5所示。
图5 PC12访问网站的主页
PC12访问www.axg.com时,先访问DNS服务器获取域名对应的IPv6地址,再访问Web服务器。当路由器ISP1和ISP2的互联电路中断时,PC12访问网站仍然正常,此时ISP1通过ISP4访问网站,但此时tracert的路径并没有发生变化,因为此时6to4隧道认为ISP的通信电路是透明的,不会因为ISP的通信电路的变化而改变tracert路径[7]。
IPv6网络是IPv4网络有效的替代方式,其相关的通信路由协议,如DHCPv6、ISISv6、BGP4+、OSPFv3和ICMPv6协议已经构成了一个完善的网络协议体系,IPv6的接入网络和IPv6用户也在逐年增多,但是对IPv4网络系统行彻底地更换会导致巨大的投资,所以IPv4网络和IPv6网络会长期共存一段时间。本研究基于此前提设计了一个IPv4和IPv6的融合网络,两个IPv6网络“孤岛”通过6to4隧道穿越IPv4网络。通过OSPFv3协议进行通信,IPv6用户通过DHCPv6动态获取IPv6地址。再以单臂路由器的方式接入IPv6网络,IPv4网络中通过EIGRP协议进行通信,IPv6网络之间互访透明地穿越IPv4网络,最后终端在应用层能正常访问Web服务[8]。
通过此实验,学生可以熟练掌握IPv6的地址体系和IPv6基本的通信协议,对跨越不同类型网络的隧道技术有了一定的了解,同时也熟悉了IPv6网络中DNS和Web服务器的配置。由于本实验都是在同一个自治域中完成的,所以涉及跨越不同的自治域的隧道技术将是下一步的研究方向[9]。