时间:2024-05-04
李 璐 莫正鹏
1(西安电子科技大学通信工程学院 陕西 西安 710071) 2(杭州华三通信技术有限公司 北京 100000)
基于IPv4隧道的校园网专网互通的研究
李 璐1莫正鹏2
1(西安电子科技大学通信工程学院 陕西 西安 710071)2(杭州华三通信技术有限公司 北京 100000)
在分析IPv6 over IPv4手动隧道和自动隧道优缺点的基础上,针对校园网的组网现状和改造成本等因素,提出在相互隔离的IPv6 校园网之间创建IPv6 over IPv4 手动隧道的方案从而实现校际信息交流和资源共享。综述了VPN实例的技术内容,结合校园网络需要安全稳定、简洁实用的安全体系的要求,充分发挥VPN技术的组网优势,重点研究基于手动隧道创建VPN 实例和实例与隧道绑定的实现方式。最后对系统进行了连通性测试,确保了可行性,为VPN在IPv6校园网建设中提供一种新的运用思路,具有一定的实践应用价值。
IPv6 over IPv4 隧道 VPN实例 隧道绑定VPN
近年来,随着中国教育和科研计算机网的开通,我国高等院校的校园网开始迈进协议的时代,目前全国百余所高校校园网已实现IPv6 全覆盖。这些IPv6 校园网犹如一个个“孤岛”,互访时受到IPv4公共网络的限制。现在已经出现了多种过渡机制[1-3]和互通方案,但是校园网的网络需求及管理方式与其他网络有较大差异,因此关于安全和管理就必须具备更高的能力。VPN 技术[4-5]具有将校园网公用信道改造成私有网络的独特优势,使其在校园网互连通信建设中受到高度关注,而MPLS L3VPN则以其稳定可靠、安全保密等诸多优点,在校园网实际部署及运行过程中得到充分的研究和应用。本文提出利用隧道过渡机制实现跨校区互通,并根据MPLS L3VPN 的特点提出隧道和VPN实例相关联,从而提高数据传输过程中的安全性,打造校外网专属通道。
1.1 IPv6 over IPv4 隧道技术
隧道技术由封装、数据传输和解封装过程组成。IPv6 over IPv4 隧道是在IPv6报文穿越IPv4 公共网络时,在外层IPv6 数据报文前封装上IPv4的报文头,从而使得隔离的IPv6 网络可以通信。接口配置的源和目的IP地址组成了隧道封装报文的内容。如果IPv6 over IPv4 隧道的IPv4 源和目的地址均需手动配置,此隧道称为手动隧道;而如果源地址需要手工配置,目的地址从IPv6 嵌入报文中获取,此隧道就被认定为自动隧道。几种隧道的实现方式和功能支持情况如表1所示。以往的互通方案大多采用自动隧道[6-8],然而受限于交换机芯片的支持度和更换设备成本和通信稳定性等因素,自动隧道的方案现在并没有广泛应用于校园网建设。手工隧道方案对通信使用的IPv6 目的地址没有严格要求,便于基于隧道对端地址实现站点与主机间的连接。此外,高、低端交换机产品普遍支持创建手工隧道,这些优势使其成为校园网互连通信最适合的方案。
表1 IPv6 over IPv4隧道技术对照表
1.2 VPN实例
MPLS L3VPN解决了传统VPN技术的地址重叠问题。主要是以下内容:
1) 本地路由冲突
如图1,在PE设备上本地接口上送来的不同VPN 用户路由通过建立不同的VPN(VRF)实例来区分。不同VPN 用户之间的路由是相互隔离独立的,彼此之间不能互访,这正是VPN数据安全性的体现。每个PE设备维护一个或多个私网域路由的同时,还可以兼顾管理一个公共路由表。使用过程中,VRF=0用来定义公共网络,而非0 VRF用来定义用户VPN。
图1 VRF路由隔离
2) 网络传输冲突
在网络传递过程中,解决一台PE设备分辨收到的路由是属于VPN的私网路由还是公共网络上的全局路由的方法是:给VPN路由加上了一个特定的标记,由不同的标记来标示不同的路由,由PE设备根据这个标记来控制VPN路由信息的发布。该标记是BGP 扩展团体属性-VPN Target,也称为RT(Router Target)。RT由两部分组成:Export Target 与 Import Target。本地PE将从与VRF直接相连的Site学习到的IPv4路由转换成VPN-IPv4路由,并给其设置Export Target属性然后将此路由发布给其他PE。其他PE接收到发布来的路由时,需要先检查其携带的Export Target属性能否和PE上某个VPN实例的Import Target属性相匹配,只有两者匹配时才把该路由加入到该私网路由表中。
由于不同的VPN地址空间在某个网段可能是重合的,VPN路由仅具有RT属性是远远不够的。例如VPN 1和VPN 2均使用20.100.20.0/24 网段的地址,两者具有相同的IPv4地址前缀,接收端没有能力辨别出到底是哪个VPN路由。因此引入路由标识符RD(Router Distinguisher)标记。PE发布路由时,RD和IPv4地址绑定在一起,使IPv4地址前缀成为全局唯一的VPN-IPv4 前缀。RD、RT属性属于VPN实例管理信息的重要信息,在创建VPN实例的时候需要同时设置上这两个标记。
校际交流的网络体系必须能够承载大量的信息交互以及高强度的数据涉密保护,VPN虚拟和专用的特点恰恰满足建设的需求[9-11]。然而大多数情况下都是采用VPN网络接入或者是专用的VPN监管平台等方式,对于交换机上接口和VPN绑定的实现研究少之又少。
2.1 整体方案
利用VPN实例可以和接口关联的特性打造校园网专用网络。如图2,隧道报文分为封装报文和解封装报文,因此隧道接口绑定VPN有两种绑定方式。
图2 隧道报文通信过程
一种方式是使隧道的封装报文路由存在于私网域里,具体做法是配置隧道接口Tunnel Binding VPN。但是配置后只能保证隧道的目的地址在VRF路由表里。隧道接口链路状态UP,三层转发才可以进行,所以构成报文的隧道的源地址和目的地址就需要绑定同一VPN实例。要使源地址也加入到VRF路由表里,使用隧道的源三层接口VLAN和VPN实例关联即可。
另一种方式是隧道接口IP Binding VPN,实现的功能是指定隧道的解封装报文走私网转发。入隧道之前的初始报文和出隧道之后的解封装报文几乎是一样的,因此配置解封装报文在私网域里,需要保证原始报文也在私网域里。实现方式是IPv6节点也即报文入接口和出接口的三层接口VLAN和 VPN实例关联。需要注意,由于不同VPN实例之间相互隔离,不能互访,IP Binding 的VPN实例必须和IPv6 节点关联的VPN实例保持一致,否则无法进行通信。然而,由于隧道封装和解封装报文在转发过程中是不同的阶段,各个虚拟路由器也是独立工作的,所以Tunnel Binding 和 IP Binding 这两种方式可以同时使用,所绑定的VPN 也可以是不同的。
为了便于操作和控制,交换机使用软件平台化的思想,分为三层,上层是平台,主要将信息提交给下层;底层是SDK,用于封装不同的ASIC 硬件功能;中间是驱动,用来完成平台和SDK的中间适配工作。本文设计部分主要基于驱动层面。如图3所示,驱动层实现隧道功能分为以下几个模块。
图3 驱动层隧道实现整体模块划分
(1) 规格定制模块:平台与驱动的接口函数挂接,用于在配置隧道、隧道接口状态等变化时通知驱动。
(2) 命令行响应模块:根据实际需求,设计平台下发的命令字。驱动响应命令字进行相关的处理。
(3) 资源管理模块:隧道的资源管理分为软件表资源管理和全局资源的管理。软件表存储隧道的所有信息,具有实时性,一旦对隧道进行操作,软件表信息必须同步更新。
(4) 同步模块:本设计是基于分布式交换机实现,具有主控板和接口板,因此隧道全局资源需要在各板间同步。
(5) 通信模块:隧道通信需要根据平台下发的参数构造封装和解封装的结构体,此外也需要在设备刚启动完成后初始化隧道的状态信息。
2.2 接口绑定VPN实现
本文主要介绍驱动响应隧道绑定VPN命令字的实现。设计如下结构体保存隧道软件表信息:
typedef struct stXXX
{
UINT uiTunnelState; /*隧道状态*/
UINT uiIntfId;/*分配给隧道的三层虚接口表索引*/
UINT uiEgressIntf;/*分配给隧道的下一跳索引*/
TUNNEL_CFGDATA_S stTunnel;/*保存平台隧道参数*/
UINT uiTransState;/*隧道封装状态*/
UINT uiIntfTrans;/*隧道封装intf*/
UINT uiInRifTrans;/*隧道封装inRif*/
UINT uiEncapIdTrans;/*隧道封装的下一跳索引*/
……
}XXX;
typedef struct tagTUNNEL_CfgData
{
VRF_INDEX vrfIndex;/*隧道解封装报文所属VPN*/
VRF_INDEX vrfIndexTransLayer;/*隧道封装报文所属VPN*/
INADDR_S stIPv4SrcAddr;/*隧道源地址*/
INADDR_S stIPv4DstAddr;/*隧道目的地址*/
……
}TUNNEL_CFGDATA_S;
2.1节提到隧道绑定VPN有两种方式,驱动层实现过程如下:
1) 隧道解封装报文绑定VPN
实现较简单,取出三层接口出口InRIF(三层逻辑端口概念,值为配置隧道所需的保留VLAN的值),调用SDK函数下发VRF即可。VRF的值是从隧道软件表TUNNEL_CFGDATA_S 结构体里取得。此结构包含了隧道封装和解封装报文所属的VPN。
2) 隧道封装报文绑定VPN
封装报文绑定VPN的流程图如图4所示。从隧道软件表的TUNNEL_CFGDATA_S 结构体里取得隧道封装报文所属的VPN。判断当前VPN是否为0。
图4 封装报文绑定VPN流程图
(1) 当前VPN不为0,即是绑定状态
从隧道软件表结构里取出当前隧道封装状态。如果当前状态是无效值,也即VPN是第一次下发硬件,则获取封装的InRIF和下一跳索引,并检查索引的有效性。索引值有效的情况下,创建三层接口,获取三层接口MAC。接着创建下一跳,并将封装的InRIF 和 下一跳索引下发硬件。将当前隧道封装的三层接口端口值、InRIF和下一跳索引更新到隧道软件表中,同时将当前隧道封装状态改为有效值。如果第一步时判断的隧道封装状态为有效值,直接从隧道软件表结构里取出封装的InRIF 索引即可。得到InRIF 后,调用SDK函数设置VRF 。此时的VRF值是由平台传下来的。
(2) 当前VPN 为0,即解绑定状态
从隧道软件表里取出当前隧道封装状态。如果当前隧道状态是无效值,也即已经解绑定了,则直接返回成功不再进行操作。否则从当前隧道软件表里取出封装的三层接口,InRIF和下一跳索引,调用SDK函数,设置VRF为0。解绑定VPN后,相应的配置(源地址和目的地址)都会被删除,因此删除下一跳和三层接口并释放三层接口表项。最后更新软件表,将分配给该隧道的三层接口表的索引置0,隧道封装的InRIF 和下一跳索引也置0,并将隧道封装状态设置为无效值。
2.1节提到,为了隧道能正常UP进行三层转发,必须实现报文三层接口VLAN绑定VPN。使用以下结构体来存储平台下发的信息:
typedef struct tagXXX
{
IF_INDEX ifIndex;/*接口索引*/
VRF_INDEX vrfIndex;/*VRF 索引*/
}XXX;
接口绑定VPN时,将接口索引转化成VLANID,通过VLANID查找三层接口信息,如果当前三层接口未创建,则不进行绑定,否则把VLANID和VRF下发SDK。由于在去绑定操作时,接口管理已经删除对应三层接口的相关信息,因此底层三层接口信息由接口软件表项里获取。然后将获取到的VLANID和VRF(0)下发SDK。
如图5所示,将两台支持Ipv4/Ipv6双协议栈的交换机设备模拟为两个孤立的IPv6校园网,两校之间建立IPv6 over IPv4 手动隧道,并建立私网域:创建VPN 实例并制定RT和RD属性。配置隧道Tunnel Binding VPN 和 IP Binding VPN,配置报文入口VLAN、出口VLAN和隧道的源端口关联VPN。为方便起见,VPN只创建一个,使隧道封装和解封装报文属于同一个私网域。利用串口服务器将待测试版本加载至交换机设备,向各设备输入相关配置命令,Switch-A 的详细配置如图6所示,Switch-B的配置类似,不再赘述。
图5 系统测试组网图
图6 Switch-A详细配置命令
如图7,在Swich B 上ping 对端Switch A,可以ping 通。说明两个孤立的IPv6校园网是私网域互通的,符合设计的功能要求。
图7 系统连通性测试结果
随着IPv6技术的深入发展,IPv4和IPv6互通的需求不断增长。VPN满足远程互连的大中型业务专网对于“隔离”的需求,其特有的标签协议限制了其他非VPN用户的入侵。在校园网实际部署过程中可以根据业务网络的需求,建立不同的VPN实例,实现不同业务的隔离,同时将隧道技术和VPN实例结合打造安全隔离的专网专用的通道,保障校园内、外网资源的安全访问。
[1] 王魏.IPv4/IPv6过渡阶段应用代理系统研究与实现[D].黑龙江:哈尔滨工程大学,2013.
[2] 李小菲.校园网IPv6过渡策略与技术实现[D].河北:河北大学,2015.
[3] 李晓杰.基于双栈网络的IPv4/IPv6校园过渡方案研究[J].计算机技术与发展,2016,26(8):171-173.
[4] 李智宏.VPN技术在局域网中的应用[J].电子测试,2016(11):68-69.
[5] 敖令攀.基于MPLS VPN技术的多园区校园网构建实验性研究[D].云南:云南大学,2015.
[6] 林珑.IPv6快速部署的研究与实现[D].湖北:武汉理工大学,2014.
[7] 杨尚楠.IPv4/IPv6隧道安全应急处理的研究与实现[D].广东:华南理工大学,2010.
[8] 周伟.IPv6隧道技术在校园网中的应用[J].西昌学院学报(自然科学版),2013(1):62-64,67.
[9] 谢芳.基于VPN技术的安防远程监管平台的研究与实现[D].陕西:西安电子科技大学,2015.
[10] 符冰.MPLS VPN技术在校园网的研究和实现[D].上海:上海交通大学,2012.
[11] 刘冬邻.安全、高效的智慧校园网络架构设计[J].网络安全技术与应用,2016(3):86-87.
RESEARCHONINTERCONNECTIONOFPRIVATENETWORKOFCAMPUSNETWORKBASEDONIPV4TUNNEL
Li Lu1Mo Zhengpeng2
1(SchoolofTelecommunicationsEngineering,XidianUniversity,Xi’an710071,Shaanxi,China)2(H3CCommunicationTechnologyCorporation,Beijing100000,China)
Considering the campus network for the status, transformation costs and other factors, this paper proposed an IPv6 over IPv4 manual tunnel to establish a virtual link to isolate the IPv6 campus network based on the analysis of the advantages and disadvantages of IPv6 over IPv4 tunnels. Combing the advantages of secure, stable and practical security system in campus network, it summarized the technical contents of VPN, and gave full play to the networking advantages of VPN technology and focused on creating a VPN instance and completing binding between instance and the tunnel. Finally, the connectivity test of the system is carried out to ensure the feasibility. It provides a new application idea for VPN in the construction of IPv6 campus network, and has certain practical application value.
IPv6 over IPv4 tunnel VPN instance Tunnel binding VPN
2017-01-07。李璐,硕士生,主研领域:网络驱动,信道编码。莫正鹏,高工。
TP393.18
A
10.3969/j.issn.1000-386x.2017.11.032
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!