首页> 中国专利> 通过VxLAN技术实现IPv6灵活部署的系统及方法

通过VxLAN技术实现IPv6灵活部署的系统及方法

摘要

本发明公开了一种基于SDN框架通过VxLan技术实现IPv6灵活部署的系统及方法,涉及数据中心采用的VxLAN领域。该系统的SDN控制器包括SDN OpenFlow接口模块、互通域管理模块、拓扑管理模块、ARP/NS/NA处理模块和IPV4/IPv6处理模块;VxLANGateway包括配置管理模块、VxLAN OpenFlow接口模块、流表管理模块、IPv4/IPv6隧道封装模块、IPv4/IPv6隧道解封装模块和VxLAN收发包模块;VLAN交换机包括VLAN收发包模块和VLAN ID模块。本发明能够在同样的设备上分别部署不同网络业务,不仅能够保证业务的连续性,比较灵活,而且对设备的性能要求较低,延迟较小,配置和维护比较简单。

著录项

  • 公开/公告号CN104486227A

    专利类型发明专利

  • 公开/公告日2015-04-01

    原文格式PDF

  • 申请/专利号CN201410766973.6

  • 发明设计人 余平;孙雷;姚晶;陈斌;

    申请日2014-12-11

  • 分类号H04L12/749;H04L12/46;H04L12/24;H04L29/12;

  • 代理机构北京捷诚信通专利事务所(普通合伙);

  • 代理人魏殿绅

  • 地址 430223 湖北省武汉市东湖高新区光谷软件园中路E1-701

  • 入库时间 2023-12-17 04:48:46

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2023-08-01

    专利权质押合同登记的注销 IPC(主分类):H04L12/749 授权公告日:20171013 申请日:20141211 专利号:ZL2014107669736 登记号:Y2022420000052 出质人:武汉绿色网络信息服务有限责任公司 质权人:兴业银行股份有限公司武汉分行 解除日:20230717

    专利权质押合同登记的生效、变更及注销

  • 2022-03-22

    专利权质押合同登记的生效 IPC(主分类):H04L12/749 专利号:ZL2014107669736 登记号:Y2022420000052 登记生效日:20220307 出质人:武汉绿色网络信息服务有限责任公司 质权人:兴业银行股份有限公司武汉分行 发明名称:通过VxLAN技术实现IPv6灵活部署的系统及方法 申请日:20141211 授权公告日:20171013

    专利权质押合同登记的生效、变更及注销

  • 2017-10-13

    授权

    授权

  • 2015-04-29

    实质审查的生效 IPC(主分类):H04L12/749 申请日:20141211

    实质审查的生效

  • 2015-04-01

    公开

    公开

说明书

技术领域

本发明涉及数据中心采用的VxLAN(Virtual extensible LAN,虚 拟可扩展局域网)领域,具体涉及一种基于SDN(Software Defined  Network,软件定义网关)框架通过VxLan技术实现IPv6(Internet  Protocol Version 6,因特网协议版本6)灵活部署的系统及方法。

背景技术

SDN是Emulex网络一种新型网络创新架构,SDN能够高效地将 网络数据流处理从控制数据流的逻辑和规则中进行分离,进而使得运 营商和企业能够控制管理自己的数据,实现不同规则的路由(例如决 定哪些类型的数据在本地、哪些类型的数据在远程处理)。本质上, SDN让组织机构能够精细地看到并控制对网络和资源的访问,让IT 经理得以解决影响网络的具体问题。随着社会的发展,SDN已经广 泛用于社会之中。

随着通信技术的进步,IPv6的部署是逐步扩大,IPv6网络中的 节点访问原有IPv4(互联网协议第四版)网络中的服务时,一般通过 IPv4-over_IPv6(IPv4封装在IPv6内)隧道技术连接到原有的IPv4 网络。IPv4-over_IPv6隧道技术主要采用LAFT6(Lightweight Address  Family Transition for IPv6,轻量级过渡技术)和DS-Lite(Dual  Stack-Lite,双栈精简)。

IPv6网络通过DS-Lite和LAFT6技术,虽然能够实现对现有IPv4 业务的应用,但是存在以下缺陷:

(1)LAFT6和DS-Lite均需要分别在用户侧和网络侧部署,部 署设备后不能随意改变,进而导致IPv6的部署固定化,不便于用户 使用。

(2)DS-lite和LAFT6技术中使用时均需要NAT(Network  Address Translation,网络地址转换)技术,使用NAT技术会造成端 到端的透明性,还需要设备采用大容量流表进行,不仅对设备的性能 要求较高,而且延迟较大,配置和维护比较复杂。

发明内容

针对现有技术中存在的缺陷,本发明的目的在于提供一种通过 VxLAN技术实现IPv6灵活部署的系统及方法,本发明能够在同样的 设备上分别部署不同网络业务,不仅能够保证业务的连续性,比较灵 活,而且对设备的性能要求较低,延迟较小,配置和维护比较简单。

为达到以上目的,本发明提供的:一种通过VxLAN技术实现IPv6 灵活部署的系统,包括SDN控制器、若干可扩展局域网网关VxLAN Gateway和若干VLAN交换机;SDN控制器通过网络交换OpenFlow 协议与所有VxLAN Gateway相连,每台VxLAN Gateway与若干台 VLAN交换机相连;

所述SDN控制器包括SDN OpenFlow接口模块、互通域管理模 块、拓扑管理模块、地址解析协议/邻居请求/邻居公告ARP/NS/NA 处理模块和IPV4/IPv6处理模块;

所述SDN OpenFlow接口模块用于:接收并处理VxLAN Gateway 上报至SDN控制器的流;下发SDN控制器的处理数据包至VxLAN  Gateway;

所述互通域管理模块用于:接收并读取SDN控制器与所有 VxLAN Gateway之间的通讯配置,转发通讯配置至拓扑管理模块;

所述拓扑管理模块包括VxLAN Gateway管理子模块、VLAN交 换机管理子模块和用户管理子模块;

所述VxLAN Gateway管理子模块用于:根据通讯配置保存所有 VxLAN Gateway的VxLAN通信信息;

所述VLAN交换机管理子模块用于:保存所有VLAN交换机的 VLAN通信信息;

所述用户管理子模块用于:保存所有VLAN交换机下的用户信 息;

所述ARP/NS/NA处理模块包括ARP处理子模块和NS/NA处理 子模块;

所述ARP处理子模块用于:为SDN控制器代理请求ARP消息, 将ARP请求在源VxLAN Gateway的LAN口重新广播代理查询;为 SDN控制器代理应答ARP消息;

所述NS/NA处理子模块用于:为SDN控制器代理请求NS消息, 将NS消息在源VxLAN Gateway的LAN口重新广播代理查询;为 SDN控制器代理应答NA消息;

所述IPV4/IPv6处理模块用于:根据通讯配置获取所有VxLan  Gateway上报的ARP数据类型、NS/NA类型之外的IPv4和IPv6数 据类型流的处理流程;

所述VxLAN Gateway包括配置管理模块、VxLAN OpenFlow接 口模块、流表管理模块、IPv4/IPv6隧道封装模块、IPv4/IPv6隧道解 封装模块和VxLAN收发包模块;

所述配置管理模块用于:读取VxLAN Gateway程序运行后的参 数信息,根据参数信息获取VxLAN Gateway需要连接的SDN控制器 IP地址和SDN OpenFlow接口;

所述VxLAN OpenFlow接口模块采用OpenFlow协议标准,其用 于:在VxLAN Gateway和SDN控制器之间建立连接;上报VxLAN Gateway在流表管理模块中未找到的流至SDN控制器;接收并处理 SDN控制器下发的处理数据包;

所述流表管理模块用于:保存SDN控制器对VxLAN Gateway 上报的流的处理流程;

所述IPv4/IPv6隧道封装模块用于:在VxLAN Gateway接收到上 行流后,通过流表管理模块获取当前上行流的处理流程,根据上行流 的处理流程为当前上行流添加VxLAN隧道,形成封装数据包;

所述IPv4/IPv6隧道解封装模块用于:VxLAN Gateway接收到下 行流后,通过流表管理模块获取当前下行流的处理流程,根据下行流 的处理流程为当前下行流去除VxLAN隧道、并修改VLAN ID,形成 解封数据包;

所述VxLAN收发包模块包括VxLAN收包子模块和VxLAN发 包子模块;

所述VxLAN收包子模块用于:接收VxLAN Gateway所有网口 的数据包;

所述VxLAN发包子模块用于:将封装数据包和解封数据包通过 SDN控制器要求的网口转发;

所述VLAN交换机包括VLAN收发包模块和VLAN ID模块;

所述VLAN收发包模块包括VLAN收包子模块和VLAN发包子 模块;

所述VLAN收包子模块用于:接收VLAN交换机所有网口的数 据包,数据包包括上行数据包和下行数据包;

所述VLAN发包子模块用于:将VLAN收包子模块接收的上行 数据包发送至VxLAN Gateway;将VLAN收包子模块接收的下行数 据包发送至所属于VLAN的用户;

所述VLAN ID模块包括VLAN ID添加子模块和VLAN ID删除 子模块;

所述VLAN ID添加子模块用于:为VLAN交换机接收的上行数 据包添加VLAN头部,VLAN头部包括VLAN ID信息;

所述VLAN ID删除子模块用于:为VLAN交换机接收的下行数 据包去除VLAN头部。

在上述技术方案的基础上,所述SDN控制器与所有VxLAN  Gateway之间的通讯配置通过web界面或配置文件配置;通讯配置包 括VxLAN Gateway的IP地址、局域网LAN口值、LAN口的MAC 地址、广域网WAN口值、WAN口的MAC地址、WAN口IPv4地址、 WAN口IPv6地址、WAN口下一跳路由IPv4地址、WAN口下一跳 路由IPv6地址和下一跳路由MAC地址。

在上述技术方案的基础上,所述VLAN通信信息包括VLAN交 换机的VLAN ID、互通域VNI值、以及VLAN交换机所属的VxLAN  Gateway的WAN口IP地址;所述所有VLAN交换机下的用户信息 包括用户的IP地址、MAC地址、用户所属VxLAN Gateway的WAN 口IP地址;所述IPv4和IPv6数据类型流的处理流程包括VLAN ID 的修改、隧道的封装和隧道的解封装;

所述流表管理模块保存SDN控制器对VxLAN Gateway上报流的 处理流程包括以下步骤:VxLAN Gateway接收到上行流或下行流时, 流表管理模块查找当前上行流或下行流是否存在,若是,确定当前上 行流或下行流不是首次发送,按照当前上行流或下行流处理流程处理 并发送当前上行流或下行流;否则确定当前上行流或下行流为首次发 送,将当前上行流或下行流通过VxLAN OpenFlow接口模块发送至 SDN控制器OpenFlow接口模块。

本发明提供的基于上述系统的通过VxLAN技术实现IPv6灵活 部署的方法,包括以下步骤:

S1:在SDN控制器的互通域管理模块预设所有VxLAN Gateway 的通信配置,转到步骤S2;

S2:定义发出网络控制报文协议ICMP请求的用户为请求用户 HostA,HostA使用的VLAN交换机为VLAN A,VLAN A所属的 VxLAN Gateway为VxLAN Gateway A;与HostA不同VLAN、且为 HostA发送ICMP回复请求包的用户为目的用户HostB,HostB使用 的VLAN交换机为VLAN B,VLAN B的VxLAN Gateway为VxLAN  Gateway B;

HostA向HostB发送ICMP请求时,HostA向VLAN A的收包子 模块发送ICMP请求包,VLAN A的VLAN ID添加子模块为当前 ICMP请求包添加VLAN头部,转到步骤S3;

S3:VLAN A的VLAN发包子模块将当前ICMP请求包发送至 VxLAN Gateway A的VxLAN收发包模块,VxLAN收发包模块通过 当前ICMP请求包的五元组组成一条流;

VxLAN GatewayA的流表管理模块查看当前流是否存在,若是, 按照当前流的处理流程处理,结束;否则将当前ICMP请求包通过 VxLAN OpenFlow接口模块上报至SDN OpenFlow接口模块,转到步 骤S4;

S4:SDN OpenFlow接口模块确定当前ICMP请求包的类型:若 当前ICMP请求包的类型为ARP或者NS/NA类型,将当前ICMP请 求包转发至ARP/NS/NA处理子模块,转到步骤S5;若当前ICMP请 求包的类型为IPv4或IPv6类型,将当前ICMP请求包转发至 IPV4/IPv6处理模块,转到步骤S6;

S5:ARP/NS/NA处理子模块按照现有的流程对当前ICMP请求 包进行处理,结束;

S6:IPV4/IPv6处理模块告知拓扑管理模块的用户管理子模块查 询HostA的用户信息是否存在,若是,转到步骤S8,否则转到步骤 S7;

S7:用户管理子模块根据当前ICMP请求包获取HostA用户信息, 控制器中的拓扑管理模块保存HostA的用户信息,转到步骤S8;

S8:用户管理子模块查询HostB是否存在,若是,转到步骤S9;

否则确定HostB使用的接入网,若HostB使用的接入网为IPv4, SDN控制器构建ARP类型中的ARP请求数据包,将当前ARP请求 数据包作为ICMP请求包去获取Host B用户信息,转到步骤S5;若 HostB使用的接入网为IPv6,SDN控制器构建NS/NA类型中的NS 请求数据包,将当前NS请求数据包作为ICMP请求包去获取Host B 用户信息转到步骤S5;

S9:SDN控制器的拓扑管理模块获取当前ICMP请求包的 VxLAN Gateway A配置信息,得知封装VxLAN头部的值以及该上 报ICMP数据出去的WAN口值;SDN控制器下发OpenFlow协议中 的OFPT_FLOW_MOD信息和OFPT_PACKET_OUT信息至VxLAN GatewayA,转到步骤S10;

S10:VxLAN GatewayA的VxLAN OpenFlow接口模块接收SDN 控制器下发的OFPT_FLOW_MOD消息和OFPT_PACKET_OUT消 息;VxLAN GatewayA的流表管理模块通过OFPT_FLOW_MOD消 息新建当前ICMP请求包的流及该流处理流程;VxLAN GatewayA通 过OFPT_PACKET_OUT消息为新建的当前ICMP请求包的流封装 VxLAN头部,形成封装数据包;VxLAN GatewayA根据 OFPT_PACKET_OUT消息将当前封装数据包发送至VxLAN  GatewayB,转到步骤S11;

S11:VxLAN GatewayB的VxLAN收包子模块接收到封装 VxLAN隧道的封装数据包后,在流表管理模块中查找当前封装数据 包是否存在,若是,按照流表管理模块中的流表处理流程处理当前封 装数据包形成下行数据包,转到步骤S14;否则通过VxLAN OpenFlow 接口模块中OpenFlow协议的OFPT_PACKET_IN消息,将当前封装 数据包上报至SDN OpenFlow接口模块,转到步骤S12;

S12:SDN OpenFlow接口模块对当前封装数据包进行解析,得 到当前封装数据包的VNI值;SDN控制器的拓扑管理模块中查找 HostB的信息是否存在,若不是,丢弃当前封装数据包,结束;若是, SDN控制器根据HostB的信息告知VxLAN Gateway B修改并新建当 前封装数据包的流和处理流程,形成下行数据包,转到步骤S13;

S13:VxLAN Gateway B的VxLAN发包子模块将当前下行数据 包转发至VLAN B,转到步骤S14;

S14:VLAN B的VLAN收包子模块将当前下行数据包转发至 VLAN ID删除子模块,VLAN ID删除子模块删除当前下行数据包的 VLAN ID后,通过VLAN发包子模块发送至HostB,转到步骤S15;

S15:HostB根据当前下行数据包的请求类型进行回复,结束。

在上述技术方案的基础上,步骤S6中所述拓扑管理模块的用户 管理子模块查询HostA的用户信息是否存在,具体包括以下步骤:用 户管理子模块查询是否存在HostA的MAC地址和IP地址,若是, HostA的用户信息存在,转到步骤S8,否则HostA的用户信息不存 在,转到步骤S7。

在上述技术方案的基础上,步骤S7中所述用户管理子模块根据 当前ICMP请求包获取HostA用户信息,具体包括以下步骤:用户管 理子模块根据当前ICMP请求包中的VxLAN Gateway IP地址,确定 HostA所属的VxLAN Gateway;用户管理子模块根据当前ICMP请求 包VLAN头部中的VLAN ID,确定HostA使用的VLAN、以及该 VLAN所属的VNI值。

在上述技术方案的基础上,步骤S10中所述为新建的当前ICMP 请求包的流封装VxLAN头部具体包括以下步骤:为当前ICMP请求 包的流封装VxLAN头部的源MAC地址、目的MAC地址、以太网 类型、源IP地址、目的IP地址、IP层下一类型、VNI值和输出整数 到硬件OUTPORT端口;

封装VxLAN头部的源MAC地址、目的MAC地址、IP层下一 类型、VNI值和OUTPORT端口时,将拓扑管理模块中的VxLAN  GatewayA的WAN口MAC地址作为封装VxLAN头部的源MAC地 址;将拓扑管理模块中的VxLAN GatewayA的下一跳路由MAC地址 作为封装VxLAN头部的目的MAC地址;IP层下一类型为UDP, UDP源端口和目的端口为4789;VNI值为通过VLAN A的VLAN ID 查找的VLAN交换机下的VNI值;OUTPORT为VxLAN GatewayA  WAN口值;

封装VxLAN头部的以太网类型、源IP地址和目的IP地址时:

若VxLAN GatewayA的WAN口地址为IPv6类型,以太网类型 IP;源IP地址为VxLAN GatewayA的WAN口IPv6地址;目的IPv6 地址为VxLAN GatewayA的下一跳路由IPv6地址;

若VxLAN GatewayA的WAN口地址为IPv4类型:以太网类型 为IP,源IP地址为VxLAN GatewayA的WAN口IP地址,目的IP 地址为VxLAN GatewayA的下一跳路由IP地址。

在上述技术方案的基础上,步骤S12中所述VxLAN Gateway B 修改并新建当前封装数据包的流和处理流程,具体包括以下步骤: VxLAN Gateway B根据HostB的信息获取VLAN B的VLAN ID;SDN 控制器根据OFPT_PACKET_OUT告知VxLAN Gateway B去掉当前 封装数据包的VxLAN隧道;VxLAN Gateway B将当前封装数据包的 VLAN ID修改为值为VLAN B的VLAN ID;VxLAN Gateway B将当 前封装数据包的OUTPORT值修改为VxLAN Gateway B的LAN口 值。

在上述技术方案的基础上,步骤S1中所述通信配置包括VxLAN  Gateway的WAN口地址、WAN口下一跳路由IP地址、属于同一个 互通域的VxLAN Gateway信息;

当VxLAN Gateway的接入网为IPv6时,WAN口地址和WAN 口下一跳路由IP地址均为IPv6地址;VxLAN Gateway的接入网为 IPv4时,WAN口地址和WAN口下一跳路由IP地址均为IPv4地址;

步骤S2中当HostA、HostB采用的接入网均为IPv4时,ICMP 请求包为ICMP v4请求包,ICMP回复请求包为ICMPv4回复请求包; 当HostA、HostB采用的接入网均为IPv6时,ICMP请求包为ICMPv6 请求包,ICMP回复请求包为ICMPv6回复请求包;

步骤S3中所述ICMP请求包的五元组包括ICMP请求包的源IP 地址、目的IP地址、源MAC地址、目的MAC地址和数据类型;

步骤S9中所述ICMP请求包的五元组包括ICMP请求包的源IP 地址、目的IP地址、源MAC地址、目的MAC地址和数据类型。

在上述技术方案的基础上,步骤S15具体包括以下步骤:若当前 下行数据包为ARP请求,HostB回复ARP Reply,结束;若当前下行 数据包为ICMP请求,HostB回复ICMP reply,结束;若当前下行数 据包为NS请求,HostB回复NA,结束;若当前下行数据包为ICMPv6 请求,HostB回复ICMPv6reply,结束。

与现有技术相比,本发明的优点在于:

(1)本发明根据VxLAN在SDN框架下实现IPv6的灵活部署, VxLAN是一种可扩展的虚拟局域网,VxLAN应用于数据中心内部, VxLAN使得虚拟机能够在不需要改变IP地址和MAC(Media Access  Control,媒体访问控制)地址的条件下,互相连通的三层网络范围内 迁移,进而保证业务的连续性。

与现有技术中根据环境固定部署不同的设备相比,本发明的互通 域管理模块具有通讯配置,本发明使用时,用户能够根据实际中网络 部署情况进行配置(例如接入口为IPv6网络时,配置VxLAN  GatewayWAN口地址为IPv6类型,接入口为IPv4网络时,配置VxLAN  Gateway WAN口地址为IPv4类型)。因此,本发明能够在同样的设 备上分别部署不同网络业务,比较灵活。

(2)与现有技术中的LAFT6和DS_Lite技术相比,本发明能够 在不使用NAT技术的情况下实现IPv4用户穿过IPv6接入口访问IPv4 用户。因此,本发明不仅对设备的性能要求较低,延迟较小,而且配 置和维护比较简单。

附图说明

图1为本发明实施例中SDN框架的IPv6网络部署的结构示意图;

图2为本发明实施例中SDN框架的IPv4网络部署的结构示意图;

图3为本发明实施例中SDN控制器的结构框图;

图4为本发明实施例中VxLAN Gateway的结构框图;

图5为本发明实施例中通过VxLAN技术实现IPv6灵活部署的 方法的流程图。

具体实施方式

以下结合附图及实施例对本发明作进一步详细说明。

参见图1、图2所示,本发明实施例中的通过VxLAN技术实现 IPv6灵活部署的系统,包括软件定义网关SDN框架,SDN框架包括 SDN控制器、若干VxLAN Gateway(可扩展局域网网关)和若干 VLAN交换机。SDN控制器通过OpenFlow(网络交换)协议与所有 VxLAN Gateway相连,每台VxLAN Gateway与若干台VLAN交换 机相连。

本实施例中的VxLAN Gateway为2台:VxLAN GatewayA和 VxLAN Gateway B。VxLAN GatewayA与1台VLAN交换机(VLAN 交换机A)相连,VLAN交换机A的用户为HostA;VxLAN GatewayB 与1台VLAN交换机(VLAN交换机B)相连,VLAN交换机B的 用户为HostB。

参见图3所示,SDN控制器包括顺次相连的SDN OpenFlow接 口模块、互通域管理模块、拓扑管理模块、ARP/NS/NA处理模块 (Address Resolution Protocol,地址解析协议/Neighbor Solicitation, 邻居请求/Neighbor Advertisement,邻居公告)和IPV4/IPv6处理模块。

SDN OpenFlow接口模块用于:接收并处理VxLAN Gateway上 报至SDN控制器的流;下发SDN控制器的处理数据包至VxLAN  Gateway。

互通域管理模块用于:接收并读取SDN控制器与所有VxLAN  Gateway之间的通讯配置,转发通讯配置至拓扑管理模块。

通讯配置能够通过web界面或配置文件配置。通讯配置包括 VxLAN Gateway的IP地址、LAN(Local Area Network,局域网)口 值、LAN口的MAC地址、WAN(Wide Area Network,广域网)口 值、WAN口的MAC地址、WAN口IPv4地址、WAN口IPv6地址、 WAN口下一跳路由IPv4地址、WAN口下一跳路由IPv6地址和下一 跳路由MAC地址。通过配置VxLAN Gateway的WAN口IPv4地址 和下一跳路由IPv4地址能够实现指定VxLAN Gateway之间的互通。 通过配置VxLAN Gateway的WAN口IPv6地址和下一跳路由IPv6 地址能够实现指定VxLAN Gateway之间的互通。

拓扑管理模块包括VxLAN Gateway管理子模块、VLAN交换机 管理子模块和用户管理子模块;VxLAN Gateway管理子模块、VLAN 交换机管理子模块和用户管理子模块通过一个链表(VxLAN Gateway 结构体下有VLAN交换机结构体,VLAN交换机结构体下有用户结 构体)相互关联。VxLAN Gateway管理子模块、VLAN交换机管理 子模块和用户管理子模块能够通过链表互相查找。

VxLAN Gateway管理子模块用于:根据通讯配置保存所有 VxLAN Gateway的VxLAN通信信息。

VLAN交换机管理子模块用于:保存所有VLAN交换机的VLAN 通信信息,VLAN通信信息包括VLAN交换机的VLAN ID、VNI (Vxlan Network Identifier,互通域)值、以及VLAN交换机所属的 VxLAN Gateway的WAN口IP地址。

用户管理子模块用于:保存所有VLAN交换机下的用户信息, 用户信息包括:用户的IP地址、MAC地址、用户所属VxLAN Gateway 的WAN口IP地址。

ARP/NS/NA处理模块包括ARP处理子模块和NS/NA处理子模 块。

ARP处理子模块用于:为SDN控制器代理请求ARP消息,将 ARP请求在源VxLAN Gateway的LAN口重新广播代理查询;为SDN 控制器代理应答ARP消息。SDN控制器通过ARP处理子模块能够获 取IPv4用户的拓扑信息。

NS/NA处理子模块用于:为SDN控制器代理请求NS消息,将 NS消息在源VxLAN Gateway的LAN口重新广播代理查询;为SDN 控制器代理应答NA消息。SDN控制器通过NS/NA处理子模块能够 获得IPv6用户的拓扑信息。

IPV4/IPv6处理模块用于:根据通讯配置获取所有VxLan Gateway 上报的ARP数据类型、NS/NA类型之外的IPv4和IPv6数据类型流 的处理流程,处理流程包括VLAN ID的修改、隧道的封装和隧道的 解封装。

参见图4所示,VxLAN Gateway包括顺次相连的配置管理模块、 VxLAN OpenFlow接口模块、流表管理模块、IPv4/IPv6隧道封装模 块、IPv4/IPv6隧道解封装模块和VxLAN收发包模块。

配置管理模块用于:读取VxLAN Gateway程序运行后的参数信 息,根据参数信息获取VxLAN Gateway需要连接的SDN控制器IP 地址和SDN OpenFlow接口。

VxLAN OpenFlow接口模块采用OpenFlow协议标准,其用于: 在VxLAN Gateway和SDN控制器之间建立连接;上报VxLAN Gateway在流表管理模块中未找到的流至SDN控制器;接收并处理 SDN控制器下发的处理数据包。

流表管理模块用于:保存SDN控制器对VxLAN Gateway上报的 流的处理流程。

流表管理模块保存SDN控制器对VxLAN Gateway上报流的处理 流程包括以下步骤:VxLAN Gateway接收到上行流或下行流时,流 表管理模块查找当前上行流或下行流是否存在,若是,确定当前上行 流或下行流不是首次发送,按照当前上行流或下行流处理流程处理并 发送当前上行流或下行流;否则确定当前上行流或下行流为首次发 送,将当前上行流或下行流通过VxLAN OpenFlow接口模块发送至 SDN控制器OpenFlow接口模块。

IPv4/IPv6隧道封装模块用于:在VxLAN Gateway接收到上行流 后,通过流表管理模块获取当前上行流的处理流程,根据上行流的处 理流程为当前上行流添加VxLAN隧道,形成封装数据包,以使得当 前上行流能够在三层网络中通讯。

IPv4/IPv6隧道解封装模块用于:VxLAN Gateway接收到下行流 后,通过流表管理模块获取当前下行流的处理流程,根据下行流的处 理流程为当前下行流去除VxLAN隧道、并修改VLAN ID,形成解封 数据包,以使得当前下行流能够在二层网络中通讯。

VxLAN收发包模块包括VxLAN收包子模块和VxLAN发包子模 块。

VxLAN收包子模块用于:接收VxLAN Gateway所有网口的数据 包。

VxLAN发包子模块用于:将封装数据包和解封数据包通过SDN 控制器要求的网口转发(封装数据包通过VxLAN Gateway的WAN 口转发,解封数据包通过VxLAN Gateway的LAN口转发)。

VLAN交换机包括VLAN收发包模块和VLAN ID模块。

VLAN收发包模块包括VLAN收包子模块和VLAN发包子模块。

VLAN收包子模块用于:接收VLAN交换机所有网口的数据包, 数据包包括上行数据包和下行数据包。

VLAN发包子模块用于:将VLAN收包子模块接收的上行数据 包发送至VxLAN Gateway;将VLAN收包子模块接收的下行数据包 发送至所属于VLAN的用户。

VLAN ID模块包括VLAN ID添加子模块和VLAN ID删除子模 块。

VLAN ID添加子模块用于:为VLAN交换机接收的上行数据包 添加VLAN头部,VLAN头部包括VLAN ID信息。

VLAN ID删除子模块用于:为VLAN交换机接收的下行数据包 去除VLAN头部。

参见图5所示,本发明提供的基于上述系统的通过VxLAN技术 实现IPv6灵活部署的方法,包括以下步骤:

S1:在SDN控制器的互通域管理模块预设所有VxLAN Gateway 的通信配置。通信配置包括VxLAN Gateway的WAN口地址、WAN 口下一跳路由IP地址、属于同一个互通域的VxLAN Gateway信息(本 实例中VxLAN GatewayA和VxLAN GatewayB在同一个互通域),转 到步骤S2。

S2:定义发出ICMP(Internet Control Message Protocol,网络控 制报文协议)请求的用户为请求用户HostA,HostA使用的VLAN交 换机为VLAN A,VLAN A所属的VxLAN Gateway为VxLAN  Gateway A;与HostA不同VLAN、且为HostA发送ICMP回复请求 包的用户为目的用户HostB,HostB使用的VLAN交换机为VLAN B, VLAN B的VxLAN Gateway为VxLAN Gateway B。

HostA向HostB发送ICMP请求时,HostA向VLAN A的VLAN 收包子模块发送ICMP请求包,VLAN A的VLAN ID添加子模块为 当前ICMP请求包添加VLAN头部,转到步骤S3。

S3:VLAN A的VLAN发包子模块将当前ICMP请求包发送至 VxLAN Gateway A的VxLAN收发包模块,VxLAN收发包模块通过 当前ICMP请求包的五元组(当前ICMP请求包的源IP地址、目的 IP地址、源MAC地址、目的MAC地址和数据类型)组成一条流。

VxLAN GatewayA的流表管理模块查看当前流是否存在,若是, 按照当前流的处理流程处理,结束;否则将当前ICMP请求包通过 VxLAN OpenFlow接口模块上报至SDN OpenFlow接口模块,转到步 骤S4。

S4:SDN OpenFlow接口模块确定当前ICMP请求包的类型:若 当前ICMP请求包的类型为ARP或者NS/NA类型,将当前ICMP请 求包转发至ARP/NS/NA处理子模块,转到步骤S5;若当前ICMP请 求包的类型为IPv4或IPv6类型,将当前ICMP请求包转发至 IPV4/IPv6处理模块,转到步骤S6。

S5:ARP/NS/NA处理子模块按照现有的流程对当前ICMP请求 包进行处理,结束。

S6:IPV4/IPv6处理模块告知拓扑管理模块的用户管理子模块查 询HostA的用户信息是否存在,若是,转到步骤S8,否则转到步骤 S7。

S7:用户管理子模块根据当前ICMP请求包获取HostA用户信息, 控制器中的拓扑管理模块保存HostA的用户信息,转到步骤S8。

S8:用户管理子模块查询HostB是否存在,若是,转到步骤S9;

否则确定HostB使用的接入网,若HostB使用的接入网为IPv4, SDN控制器构建ARP类型中的ARP请求数据包,将当前ARP请求 数据包作为ICMP请求包去获取Host B用户信息,转到步骤S5。若 HostB使用的接入网为IPv6,SDN控制器构建NS/NA类型中的NS 请求数据包,将当前NS请求数据包作为ICMP请求包去获取Host B 用户信息转到步骤S5。

S9:SDN控制器的拓扑管理模块获取当前ICMP请求包的 VxLAN Gateway A配置信息,得知封装VxLAN头部的值以及该上 报ICMP数据出去的端口值(即WAN口值)。SDN控制器下发 OpenFlow协议中的OFPT_FLOW_MOD信息至VxLAN GatewayA, 以告知VxLAN GatewayA的流表管理模块新建当前ICMP请求包的 流及该流处理流程。SDN控制器下发OpenFlow协议中的 OFPT_PACKET_OUT信息至VxLAN GatewayA,以告知VxLAN GatewayA当前ICMP数据包的处理流程。转到步骤S10。

S10:VxLAN GatewayA的VxLAN OpenFlow接口模块接收SDN 控制器下发的OFPT_FLOW_MOD消息和OFPT_PACKET_OUT消 息。VxLAN GatewayA的流表管理模块通过OFPT_FLOW_MOD消 息新建当前ICMP请求包的流及该流处理流程。VxLAN GatewayA通 过OFPT_PACKET_OUT消息中的ACTION操作,为新建的当前ICMP 请求包的流封装VxLAN头部,形成封装数据包,根据 OFPT_PACKET_OUT消息中的OUTPORT值,将当前封装数据包发 送至VxLAN GatewayB,转到步骤S11。

S11:VxLAN GatewayB的VxLAN收包子模块接收到封装 VxLAN隧道的封装数据包后,在流表管理模块中查找当前封装数据 包是否存在,若是,按照流表管理模块中的流表处理流程处理当前封 装数据包形成下行数据包,转到步骤S14,否则通过VxLAN OpenFlow 接口模块中的OFPT_PACKET_IN消息,将当前封装数据包上报至 SDN OpenFlow接口模块,转到步骤S12。

S12:SDN OpenFlow接口模块对当前封装数据包进行解析,得 到当前封装数据包的VNI值(即当前封装数据流需要解封装)。SDN 控制器的拓扑管理模块中查找HostB的信息是否存在,若不是,丢弃 当前封装数据包,结束;若是,SDN控制器根据HostB的信息告知 VxLAN Gateway B修改并新建当前封装数据包的流和处理流程,形 成下行数据包,转到步骤S13。

S13:VxLAN Gateway B的VxLAN发包子模块将当前下行数据 包转发至VLAN B,转到步骤S14。

S14:VLAN B的VLAN收包子模块将当前下行数据包转发至 VLAN ID删除子模块,VLAN ID删除子模块删除当前下行数据包的 VLAN ID后,通过VLAN发包子模块发送至HostB,转到步骤S15。

S15:HostB根据当前下行数据包的请求类型进行回复,结束。

下面对本发明实施例中通过VxLAN技术实现IPv6灵活部署的 方法的部分步骤进行具体说明。

步骤S1中当VxLAN Gateway的接入网为IPv6时,WAN口地址 和WAN口下一跳路由IP地址均为IPv6地址;VxLAN Gateway的接 入网为IPv4时,WAN口地址和WAN口下一跳路由IP地址均为IPv4 地址。

步骤S2中当HostA、HostB采用的接入网均为IPv4时,ICMP 请求包为ICMP v4请求包,ICMP回复请求包为ICMPv4回复请求包; 当HostA、HostB采用的接入网均为IPv6时,ICMP请求包为ICMPv6 请求包,ICMP回复请求包为ICMPv6回复请求包。

步骤S6中的拓扑管理模块的用户管理子模块查询HostA的用户 信息是否存在,具体包括以下步骤:用户管理子模块查询是否存在 HostA的MAC地址和IP地址(IPv4或者IPv6地址),若是,HostA 的用户信息存在,转到步骤S8,否则HostA的用户信息不存在,转 到步骤S7。

步骤S7中用户管理子模块根据当前ICMP请求包获取HostA用 户信息,具体包括以下步骤:用户管理子模块根据当前ICMP请求包 中的VxLAN Gateway IP地址,确定HostA所属的VxLAN Gateway; 用户管理子模块根据当前ICMP请求包VLAN头部中的VLAN ID, 确定HostA使用的VLAN、以及该VLAN所属的VNI值。

步骤S9中ICMP请求包的五元组包括ICMP请求包的源IP地址、 目的IP地址、源MAC地址、目的MAC地址和数据类型。

步骤S10中为新建的当前ICMP请求包的流封装VxLAN头部具 体包括以下步骤:为当前ICMP请求包的流封装VxLAN头部的源 MAC地址、目的MAC地址、以太网类型、源IP地址、目的IP地址、 IP层下一类型、VNI值和OUTPORT(输出整数到硬件)端口。

步骤S10中封装VxLAN头部的以太网类型、源IP地址和目的 IP地址时:

若VxLAN GatewayA的WAN口地址为IPv6类型,以太网类型 IP(0x86dd);源IP地址为VxLAN GatewayA的WAN口IPv6地址; 目的IPv6地址为VxLAN GatewayA的下一跳路由IPv6地址。

若VxLAN GatewayA的WAN口地址为IPv4类型:以太网类型 为IP(0x0800),源IP地址为VxLAN GatewayA的WAN口IP地址, 目的IP地址为VxLAN GatewayA的下一跳路由IP地址。

步骤S10中封装VxLAN头部的源MAC地址、目的MAC地址、 IP层下一类型、VNI值和OUTPORT端口时,将拓扑管理模块中的 VxLAN GatewayA的WAN口MAC地址作为封装VxLAN头部的源 MAC地址;将拓扑管理模块中的VxLAN GatewayA的下一跳路由 MAC地址作为封装VxLAN头部的目的MAC地址;IP层下一类型 为UDP,UDP源端口和目的端口为4789;VNI值为通过VLAN A的 VLAN ID查找的VLAN交换机下的VNI值;OUTPORT为VxLAN GatewayA WAN口值。

步骤S12中VxLAN Gateway B修改并新建当前封装数据包的流 和处理流程,具体包括以下步骤:VxLAN Gateway B根据HostB的 信息获取VLAN B的VLAN ID;SDN控制器根据 OFPT_PACKET_OUT告知VxLAN Gateway B去掉当前封装数据包 的VxLAN隧道;VxLAN Gateway B将当前封装数据包的VLAN ID 修改为值为VLAN B的VLAN ID;VxLAN Gateway B将当前封装数 据包的OUTPORT值修改为为VxLAN Gateway B的LAN口值。

步骤S15具体包括以下步骤:若当前下行数据包为ARP请求, HostB回复ARP Reply,结束;若当前下行数据包为ICMP请求,HostB 回复ICMP reply,结束;若当前下行数据包为NS请求,HostB回复 NA,结束;若当前下行数据包为ICMPv6请求,HostB回复ICMPv6 reply,结束。

本发明实际使用时包括以下准备步骤:

A、准备五台操作系统为linux的硬件设备(例如电脑、虚拟机 等),五台设备中一台为SDN控制器,两台为VxLAN Gateway,两 台为VLAN交换机。分别为五台设备设置相应的IP地址,VxLAN  Gateway的WAN口IPv6地址和下一跳路由IPv6地址需要配置好, 让VxLAN Gateway WAN数据包可以发送到IPv6公网中。

B、编写VxLAN Gateway的配置管理模块,编写配置管理模块 主要是为VxLAN Gateway中的VxLAN OpenFlow接口模块服务, VxLAN Gateway通过OpenFlow协议连接到SDN控制器,VxLAN  Gateway需要知道SDN控制器的IP地址以及OpenFlow端口。在现 实中为了增加项目灵活性,连接的SDN控制器IP地址不能在程序中 写死,可以通过程序运行后的参数进行配置,配置管理模块能够参数, 获取SDN控制器IP地址和OpenFlow端口。

C、编写SDN控制器的SDN OpenFlow接口模块和VxLAN Gateway的VxLAN OpenFlow接口模块,OpenFlow接口能够分离交 换机处理数据和转发数据的能力,实现SDN环境。

D、编写SDN控制器的互通域管理模块,因为一台VLAN交换 机下的VLAN ID有4096个值,在现实中需要实现一个VxLAN  Gateway和另一个VxLAN Gateway通讯,为了隔离每一组的通讯, 需要用VNI来区别,用户需要配置互通域。

互通域的配置能够通过应用层的界面配置互通域,然后把该配置 写入SDN控制器的数据库或者通过应用层接口发送互通域通讯配置 给SDN控制器或者在SDN控制器上创建互通域配置文件。

E、编写SDN控制器的拓扑管理模块,拓扑管理模块实现SDN 控制器具有全局的拓扑信息,拓扑管理模块是通过Hash链表的方式 保存拓扑信息。

F、编写SDN控制器的ARP/NS/NA处理模块,ARP/NS/NA处 理模块包括ARP处理子模块和NS/NA处理子模块。ARP处理子模块 主要实现获取目的IPv4用户的基本信息,NS/NA处理子模块主要实 现获取目的IPv6用户的基本信息。

G、编写SDN控制器的IPV4/IPv6处理模块,IPV4/IPv6处理模 块主要根据通讯配置获取所有VxLan Gateway上报的ARP数据类型、 NS/NA类型之外的IPv4和IPv6数据类型流的处理流程,处理流程包 括VLAN ID的修改、隧道的封装和隧道的解封装。

H、编写VxLAN Gateway中的VxLAN Gateway流表管理模块。 用户的上行流量通过5元组来确定流是否存在,根据自己的情况可以 自己定,例如OpenFlow协议1.0版本是11元组。

I、编写VxLAN Gateway中的IPv4/IPv6隧道封装模块,IPv4/IPv6 隧道解封装模块主要实现将二层网络(IPv4二层网络或者IPv6二层 网络)数据包发送到三层网络(IPv4三层网络或者IPv6三层网络) 中,再逆向把三层网络发送到二层网络中。

J、编写VxLAN Gateway中的收发包模块,收发包模块主要实现 可以抓取用户的上行和下行数据包,转交数据包给其他模块进行处 理。

本发明不局限于上述实施方式,对于本技术领域的普通技术人员 来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰, 这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细 描述的内容属于本领域专业技术人员公知的现有技术。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号