CN105847157B - 基于sdn的标识网络间端到端的通信方法 - Google Patents
基于sdn的标识网络间端到端的通信方法 Download PDFInfo
- Publication number
- CN105847157B CN105847157B CN201610162384.6A CN201610162384A CN105847157B CN 105847157 B CN105847157 B CN 105847157B CN 201610162384 A CN201610162384 A CN 201610162384A CN 105847157 B CN105847157 B CN 105847157B
- Authority
- CN
- China
- Prior art keywords
- message
- network
- mapping
- flow table
- openflow interchanger
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种基于SDN的标识网络间端到端的通信方法,目的是解决当前SDN网络不能支持标识网络通信的问题。技术方案为先构建由一个位置网络、N个标识网络、N个OpenFlow交换机,一个SDN控制器和一个映射服务器组成的基于SDN的端到端通信网络,SDN控制器上安装有控制器软件,与映射服务器交互映射信息,生成流表下发OpenFlow交换机;由OpenFlow交换机对匹配流表的报文封装、解封装及转发实现标识网络通信。采用本发明使得SDN网络在原有支持传统网络通信的基础上,也能够支持标识网络通信。
Description
技术领域
本发明涉及计算机网络中的通信方法,尤其涉及一种基于SDN的标识网络间的端到端的通信方法。
背景技术
随着数据中心和云计算的飞速发展,虚拟机技术被广泛应用于数据中心。虚拟机在迁移过程中,为了使原有的通信连接不中断,需要保证IP地址不能发生变换,对网络的移动性提出了更高的要求。目前主要采用位置与标识分离方法来解决移动过程中保持IP地址不变的问题。在支持标识通信的同时,数据中心也需要支持传统网络的TCP/IP通信。
位置与标识分离是指将位置与标识分离,即采用不同的地址空间表示节点的位置信息和身份信息。
位置与标识分离方法的步骤是:
第一步,构建一个位置与标识分离的网络,位置与标识分离的网络包含位置网络和标识网络。标识网络是一种实现位置与标识分离的网络,通信的双方只需要知道对方的身份标识(eid),即可进行通信,标识网络中的主机都具有一个标识地址eid。位置网络是基于位置地址(loc)进行通信的网络。而标识网络的边缘路由器作为标识网络与位置网络的接入点,具有一个位置地址loc,用于在位置网络中通信。标识网络中主机的eid与此标识网络的边缘路由器的loc构成映射关系。位置网络中还部署了一台映射服务器,内含映射数据库用于存储所有这样的映射关系。
第二步,令源主机所在的标识网络称为源标识网络,目的主机所在的标识网络称为目的标识网络。源标识网络中的边缘路由器称为源边缘路由器,目的标识网络中的边缘路由器称为目的边缘路由器。报文需要从源标识网络跨越位置网络到达目的标识网络。其具体流程如下:
2.1.源边缘路由器从源标识网络中的源主机接收报文,此报文的源地址为源主机的源eid,目的地址为目的主机的目的eid。由于跨越位置网络传输,源边缘路由器对报文进行封装,封装后报文源地址为源边缘路由器的源loc,目的地址为目的边缘路由器的目的loc,封装后的报文通过位置网络从源loc传输到目的loc。
具体方法是:
2.1.1 源边缘路由器查找缓存中是否有目的eid到目的loc的映射信息;
若存在目的eid到目的loc的映射信息,则直接对报文封装,在报文外层增加IP首部,其中源地址为源loc目的地址为目的loc,转2.1.4。若不存在目的eid到目的loc的映射信息,则源边缘路由器向映射服务器发出针对目的eid的映射请求,转2.1.2。
2.1.2 映射服务器收到映射请求后,根据目的eid查询映射服务器中的映射数据库,找到目的eid到目的loc的映射,将映射应答(包含有目的eid到目的loc的映射信息)返回给源边缘路由器。
2.1.3.源边缘路由器收到映射应答后,缓存目的eid到目的loc的映射信息,同时对报文封装,在报文外层增加IP首部,其中源地址为源loc,目的地址为目的loc。
2.1.4 源边缘路由器根据报文的目的loc,将报文通过位置网络中的网络设备转发给目的边缘路由器。
2.7.目的边缘路由器对收到的报文解封装,目的标识网络根据报文的目的eid发送给目的主机。
同时,随着网络的飞速发展,传统网络架构越来越难以满足网络业务以及流量快速增长的需求。并且来自不同厂商之间的设备差异巨大,增加了网络管理人员的负担。为此相关研究机构提出了具备集中控制、接口统一、可灵活编程的SDN网络,其基本思想是将现有路由器功能进行解耦,实现数据平面与控制平面分离。数据平面由网络转发单元组成,具备对报文处理和转发功能,主要为openflow交换机(运行openflow协议的交换机)。控制平面通过控制器来实现复杂的控制逻辑,并为用户提供统一的北向访问接口。控制平面和数据平面通过协议进行交互,主要为openflow协议。交互内容包括:控制器和交换机之间连接的建立;控制器和交换机之间连接的不间断测试;控制器对交换机的信息获取;控制器对交换机转发表的修改、删除和添加,交换机中的转发表称之为流表;控制器要求交换机发出报文;支持交换机在发生错误的情况下向控制器报告;交换机在端口状态发生变化的情况下向控制器报告;交换机在查询流表失败的情况下向控制器报告。SDN中,数据平面和控制平面分离,采用协议进行交互的方式提供了可编程的网络设备,控制器采用协议对交换机进行各种操作,便于进行新型网络架构和新型网络协议的部署。OpenFlow交换机存在两类表:一级流表和多级流表。一级流表中包含多条流表项,每条流表项包括两部分:匹配项和操作项。匹配项和操作项可以为一个或者多个,其中,匹配项最多包括:匹配源MAC地址和目的MAC地址、匹配源IP地址和目的IP地址和匹配源端口和目的端口(包括TCP和UDP端口),操作项最多包括:封装、解封装、转发和修改某些报文项(比如源MAC地址和目的MAC地址、源IP地址和目的IP地址)。多级流表为多个流表,流表间通过转表操作进行跳转,每个流表的结构与一级流表相同。报文到达时先查询一级流表,如果没有命中,再查询多级流表。查询多级流表命中的情况下,向一级流表添加命中的流,没有命中的情况下,向SDN控制器发出消息。多级流表的流来自SDN控制器,而一级流表的流来自于多级流表。一级流表的查询快于多级流表的查询(因为多级流表需要查询多个表,一级流表只查询一个表),设置一级流表时是为了性能。
目前标识网络的设备不能支持传统网络的TCP/IP通信,不能满足数据中心网络的需求。而SDN网络不支持标识网络通信。因此,现有技术中还没有一种方法,既支持标识网络通信,也支持传统网络通信。
发明内容
本发明要解决的技术问题是提出一种基于SDN的标识网络间端到端的通信方法,解决了SDN网络不能支持标识网络通信的问题。
本发明的技术方案为:
第一步,构建基于SDN的端到端通信网络。该端到端通信网络由一个位置网络、N个标识网络(表示为标识网络标识网络1…网络标识网络i…网络标识网络N,1≤i≤N)、N个OpenFlow交换机(表示为OpenFlow交换机1…OpenFlow交换机i…OpenFlow交换机N)、一个SDN控制器和一个映射服务器组成。位置网络由多台路由器构成,标识网络由主机、非OpenFlow交换机和路由器构成。OpenFlow交换机i作为标识网络i与位置网络的接入点。SDN控制器与N个OpenFlow交换机连接,用于控制N个openflow交换机。
SDN控制器是服务器,其上安装有Linux Foundation组织下的OpenDayLight软件。本发明对OpenDayLight软件在OpenFlow协议插件的基础上增加了报文分类模块、标识管理模块、映射请求模块、映射应答模块、路由管理模块和流表管理模块。OpenFlow协议插件作为SDN控制器收发报文的通道,与映射服务器、OpenFlow交换机、报文分类模块、流表管理模块和映射请求模块相连。OpenFlow协议插件从OpenFlow交换机或映射服务器收到报文,将报文交给报文分类模块;从流表管理模块收到流表,将流表发送给OpenFlow交换机;从映射请求模块收到映射请求报文,将报文发送给映射服务器。报文分类模块从OpenFlow协议插件接收报文,根据报文的端口号将报文区分为数据报文还是映射应答报文,若为数据报文,则将数据报文交给标识管理模块,若为映射应答报文,则将映射应答报文交给映射应答模块;映射应答模块从报文分类模块收到映射应答报文,提取其中的映射信息,将目的eid到目的loc的映射交给标识管理模块;标识管理模块从报文分类模块收到数据报文,提取目的eid,查询缓存中是否有目的eid到目的loc的映射,若有,则将目的eid到目的loc的映射交给流表管理模块,若无,则将目的eid交给映射请求模块;标识管理模块从映射应答模块收到目的eid到目的loc的映射信息,保存到缓存中,将目的eid到目的loc的映射交给流表管理模块;映射请求模块从标识管理模块收到目的eid,构造映射请求报文,将映射请求报文通过OpenFlow协议插件交给映射服务器;流表管理模块从标识管理模块收到目的eid到目的loc的映射,构造流表,将流表通过OpenFlow协议插件交给OpenFlow交换机。
OpenFlow交换机是服务器,其上安装有Apache下的OpenvSwitch软件。
SDN控制器与映射服务器交互映射控制报文,得到映射信息,下发封装与解封装流表给OpenFlow交换机。OpenFlow交换机根据封装与解封装流表,对数据报文进行封装操作与解封装操作。
第二步,将源主机所在的标识网络称为源标识网络,将目的主机所在的标识网络称为目的标识网络,将源标识网络中的OpenFlow交换机称为源OpenFlow交换机,将目的标识网络中的OpenFlow交换机称为目的OpenFlow交换机。源标识网络到目的标识网络的端到端通信过程是:
2.1 启动基于SDN的端到端通信网络,N台OpenFlow交换机开始等待接收来自本标识网络的报文或来自位置网络的报文,即OpenFlow交换机i等待接收来自标识网络i的报文或来自位置网络的报文,若OpenFlow交换机i接收到来自标识网络i的报文,则标识网络i为源标识网络,此时OpenFlow交换机i为源OpenFlow交换机;若OpenFlow交换机i接收到来自位置网络的报文,则标识网络i为目的标识网络,此时OpenFlow交换机i为目的OpenFlow交换机。基于SDN的端到端通信网络中同时会有多个源标识网络到目的标识网络的端到端通信,每个源标识网络到目的标识网络的端到端通信过程均如2.2-2.7所述。
2.2 源OpenFlow交换机从源标识网络接收源主机发往目的主机的报文,将报文匹配源OpenFlow交换机中的流表,具体方法为:
2.2.1 源OpenFlow交换机在源OpenFlow交换机的一级流表中,将报文的IP地址、MAC地址和端口号与流表项中的匹配项中的IP地址、MAC地址和端口号进行匹配,查询是否命中该报文。如果在一级流表中查询到匹配该报文的流表项,则获取该流表项的操作项,转步骤2.2.2。如果在一级流表中未查询到匹配该报文的流表项,则转步骤2.2.3。
2.2.2 源OpenFlow交换机根据流表项的操作项对报文进行封装,修改报文的MAC地址,并将报文转发给位置网络。封装操作是指在原报文的IP层外依次封装UDP首部和IP首部,IP首部的源IP地址和目的IP地址均为位置网络中的地址;修改报文的MAC地址是指将报文的目的MAC地址修改为流表项的操作项中指示的MAC地址。封装后报文的格式如图5-b所示。将报文转发给位置网络指根据操作项中指示的端口号转发报文。转步骤2.5。
2.2.3 源OpenFlow交换机在源OpenFlow交换机的多级流表中,将报文的IP地址、MAC地址和端口号与流表项中的匹配项中的IP地址、MAC地址和端口号进行匹配,查询是否命中该报文。如果在多级流表中匹配到报文,则转步骤2.2.4,如果在多级流表中没有匹配到报文,则转步骤2.2.5。
2.2.4 源OpenFlow交换机在一级流表中添加一条对应该报文的流表项,该流表项的匹配项为:匹配报文的目的标识,操作项为:封装、修改MAC地址和转发。转步骤2.2.2。
2.2.5 源OpenFlow交换机向SDN控制器发送未匹配的报文。
2.3 SDN控制器针对报文的目的eid,查询目的eid到目的loc的映射,构造流表,下发给源OpenFlow交换机和目的OpenFlow交换机。具体方法为:
2.3.1 SDN控制器的OpenFlow协议插件从源OpenFlow交换机接收报文,交给报文分类模块。
2.3.2 报文分类模块根据报文传输层协议是否为UDP和UDP目的端口号对报文分类。若报文传输层协议为UDP且UDP目的端口号为4342(RFC6830中指定映射应答报文的UDP端口号为4342),则为映射应答报文,将映射应答报文交给映射应答模块,转2.3.6;若报文传输层协议不为UDP或UDP目的端口号不为4342,则为数据报文,将数据报文交给标识管理模块,转2.3.3。
2.3.3 标识管理模块根据数据报文的目的eid,查询缓存中是否有目的eid到目的loc的映射,若有,将目的eid到目的loc的映射交给流表管理模块,转2.3.8;若无,将目的eid交给映射请求模块,转2.3.4。
2.3.4 映射请求模块根据目的eid构造映射请求报文(请求目的eid到目的loc的映射),并将映射请求报文通过OpenFlow协议插件发送给映射服务器。
2.3.5 映射服务器收到映射请求报文,根据目的eid,查询映射服务器中的映射数据库,得到目的eid到目的loc的映射,此映射构成映射应答报文,通过SDN控制器的OpenFlow协议插件交给报文分类模块,转2.3.2。
2.3.6 映射应答模块提取映射应答报文中目的eid到目的loc的映射,将目的eid到目的loc的映射交给标识管理模块。
2.3.7 标识管理模块将目的eid到目的loc的映射保存在缓存中,并将目的eid到目的loc的映射交给流表管理模块。
2.3.8 流表管理模块从标识管理模块收到目的eid到目的loc的映射,构造两个流表(封装流表和解封装流表)。封装流表的匹配项是目的IP地址为目的eid,操作项包括封装、转发,封装是指在原报文的外层依次封装UDP首部和IP首部(其中IP首部的源IP地址为源loc,目的IP地址为目的loc),转发是指从源OpenFlow交换机连接位置网络的端口转发。封装流表通过OpenFlow协议插件发送给源OpenFlow交换机。解封装流表的匹配项是源IP地址为源loc,操作项包括解封装、转发,解封装是依次剥除报文的UDP首部和IP首部,转发是指从目的OpenFlow交换机连接目的标识网络的端口转发。解封装流表通过OpenFlow协议插件发送给目的OpenFlow交换机。
2.4 源OpenFlow交换机收到封装流表后,在自己的多级流表中增加流表项。目的OpenFlow交换机收到解封装流表后,在自己的多级流表中增加流表项。源OpenFlow交换机继续接收从源标识网络的源主机发往目的主机的报文,将报文的IP地址、MAC地址和端口号与流表项中的IP地址、MAC地址和端口号进行匹配,转2.2。
2.5 位置网络中的网络设备对封装后的报文按目的loc进行路由转发,将封装后的报文发送给目的OpenFlow交换机。
2.6 目的OpenFlow交换机从位置网络接收封装后的报文,将报文匹配目的OpenFlow交换机中的流表,具体方法为:
2.6.1 目的OpenFlow交换机在目的OpenFlow交换机的一级流表中,将报文的IP地址、MAC地址和端口号与流表项中的匹配项中的IP地址、MAC地址和端口号进行匹配,查询是否命中该报文。如果在一级流表中查询到匹配该报文的流表项,则获取该流表项的操作项,转步骤2.6.2。如果在一级流表中未查询到匹配该报文的流表项,则转步骤2.6.3。
2.6.2 目的OpenFlow交换机根据流表项的操作项对报文进行解封装,修改报文的MAC地址,并将报文转发给目的标识网络。解封装操作即为依次剥除原报文的UDP首部和IP首部,修改MAC地址指将报文的目的MAC地址修改为流表项的操作中指示的MAC地址。转发指根据操作项中指示的端口号转发报文。转步骤2.7。
2.6.3 目的OpenFlow交换机在目的OpenFlow交换机的多级流表中,将报文的IP地址、MAC地址和端口号与流表项中的匹配项中的IP地址、MAC地址和端口号进行匹配,查询是否命中该报文。如果在多级流表中匹配到报文,则转步骤2.6.4,如果在多级流表中没有匹配到报文,则转步骤2.6.5。
2.6.4 目的OpenFlow交换机在一级流表中添加一条对应该报文的流表项,该流表项的匹配项为:匹配报文的目的标识,操作项为:封装、修改MAC地址和转发。转步骤2.6.2。
2.6.5 源OpenFlow交换机向SDN控制器发送未匹配的报文。
2.7 目的标识网络根据报文的目的eid,将报文转发给目的主机。
采用本发明可以达到以下技术效果:由于本发明构建的基于SDN的端到端通信网络中含有安装有控制器软件的SDN控制器,SDN控制器与映射服务器交互映射信息,生成流表下发给各OpenFlow交换机,由OpenFlow交换机对匹配流表的报文封装、解封装及转发实现标识网络通信,使得SDN网络在原有支持传统网络通信的基础上,也能够支持标识网络通信。
附图说明
图1是背景技术所述位置与标识分离方法第一步构建的位置与标识分离网络结构图;
图2是本发明总体流程图。
图3为本发明第一步构建的基于SDN的端到端通信网络结构图。图4为SDN控制器的控制器软件的逻辑结构图。
图5是数据报文封装前后的格式对比图,5-a为数据报文封装前的格式;图5-b为数据报文封装后的格式。
具体实施方式
图2是本发明总体流程图,本发明包括以下步骤:
第一步,构建基于SDN的端到端通信网络。
第二步,源标识网络到目的标识网络的端到端进行通信,过程是:
第2.1步,启动基于SDN的端到端通信网络。
第2.2步,源OpenFlow交换机从源标识网络接收源主机发往目的主机的报文,将报文匹配源OpenFlow交换机中的流表。
第2.3步,SDN控制器针对报文的目的eid,查询目的eid到目的loc的映射,构造流表,下发源和目的OpenFlow交换机。
第2.4步,源OpenFlow交换机收到封装流表后,在自己的多级流表中增加流表项。目的OpenFlow交换机收到解封装流表后,在自己的多级流表中增加流表项。
第2.5步,位置网络中的网络设备对封装后的报文按目的loc进行路由转发,将封装后的报文发送给目的OpenFlow交换机。
第2.6步,目的OpenFlow交换机从位置网络接收封装后的报文,将报文匹配目的OpenFlow交换机中的流表。
第2.7步,目的标识网络根据报文的目的eid,将报文转发给目的主机。
图3为本发明第一步构建的基于SDN的端到端通信网络结构图。
该端到端通信网络由一个位置网络、N个标识网络(表示为标识网络标识网络1…网络标识网络i…网络标识网络N,1≤i≤N)、N个OpenFlow交换机(表示为OpenFlow交换机1…OpenFlow交换机i…OpenFlow交换机N)、一个SDN控制器和一个映射服务器组成。位置网络由多台路由器构成,标识网络由主机、非OpenFlow交换机和路由器构成。OpenFlow交换机i作为标识网络i与位置网络的接入点。SDN控制器与N个OpenFlow交换机连接,用于控制N个openflow交换机。
图4为SDN控制器中控制器软件的模块结构示意图。
SDN控制器是服务器,其上安装有Linux Foundation组织下的OpenDayLight软件。本发明对OpenDayLight软件在OpenFlow协议插件的基础上增加了报文分类模块、标识管理模块、映射请求模块、映射应答模块、路由管理模块和流表管理模块。OpenFlow协议插件作为SDN控制器收发报文的通道,与映射服务器、OpenFlow交换机、报文分类模块、流表管理模块和映射请求模块相连。OpenFlow协议插件从OpenFlow交换机或映射服务器收到报文,将报文交给报文分类模块;从流表管理模块收到流表,将流表发送给OpenFlow交换机;从映射请求模块收到映射请求报文,将报文发送给映射服务器。报文分类模块从OpenFlow协议插件接收报文,根据报文的端口号将报文区分为数据报文还是映射应答报文,若为数据报文,则将数据报文交给标识管理模块,若为映射应答报文,则将映射应答报文交给映射应答模块;映射应答模块从报文分类模块收到映射应答报文,提取其中的映射信息,将目的eid到目的loc的映射交给标识管理模块;标识管理模块从报文分类模块收到数据报文,提取目的eid,查询缓存中是否有目的eid到目的loc的映射,若有,则将目的eid到目的loc的映射交给流表管理模块,若无,则将目的eid交给映射请求模块;标识管理模块从映射应答模块收到目的eid到目的loc的映射信息,保存到缓存中,将目的eid到目的loc的映射交给流表管理模块;映射请求模块从标识管理模块收到目的eid,构造映射请求报文,将映射请求报文通过OpenFlow协议插件交给映射服务器;流表管理模块从标识管理模块收到目的eid到目的loc的映射,构造流表,将流表通过OpenFlow协议插件交给OpenFlow交换机。
图5是数据报文封装前后的格式对比图,图5-a为数据报文封装前的格式;图5-b为数据报文封装后的格式。报文封装前由数据、IP源地址、IP目的地址和以太网头部组成,报文封装后由数据、内层IP源地址、内层IP目的地址、UDP、外层IP源地址、外层IP目的地址和以太网头部组成,内层IP源地址、内层IP目的地址即为报文封装前的IP源地址、IP目的地址。UDP是指UDP首部,外层IP源地址、外层IP目的地址构成IP首部。
Claims (2)
1.一种基于SDN的标识网络间端到端的通信方法,其特征在于包括以下步骤:
第一步,构建基于SDN的端到端通信网络,该端到端通信网络由一个位置网络、N个标识网络、N个OpenFlow交换机、一个SDN控制器和一个映射服务器组成,N个标识网络表示为标识网络标识网络1…网络标识网络i…网络标识网络N,1≤i≤N,N个OpenFlow交换机表示为OpenFlow交换机1…OpenFlow交换机i…OpenFlow交换机N;位置网络由多台路由器构成,标识网络由主机、非OpenFlow交换机和路由器构成;OpenFlow交换机i作为标识网络i与位置网络的接入点;SDN控制器与N个OpenFlow交换机连接,用于控制N个openflow交换机;
SDN控制器是服务器,其上安装有控制器软件,控制器软件是对OpenDayLight软件在OpenFlow协议插件的基础上增加报文分类模块、标识管理模块、映射请求模块、映射应答模块、路由管理模块和流表管理模块,而成;OpenFlow协议插件作为SDN控制器收发报文的通道,与映射服务器、OpenFlow交换机、报文分类模块、流表管理模块和映射请求模块相连;OpenFlow协议插件从OpenFlow交换机或映射服务器收到报文,将报文交给报文分类模块;从流表管理模块收到流表,将流表发送给OpenFlow交换机;从映射请求模块收到映射请求报文,将报文发送给映射服务器;报文分类模块从OpenFlow协议插件接收报文,根据报文的端口号将报文区分为数据报文还是映射应答报文,若为数据报文,则将数据报文交给标识管理模块,若为映射应答报文,则将映射应答报文交给映射应答模块;映射应答模块从报文分类模块收到映射应答报文,提取其中的映射信息,将目的eid到目的loc的映射交给标识管理模块;标识管理模块从报文分类模块收到数据报文,提取目的eid,查询缓存中是否有目的eid到目的loc的映射,若有,则将目的eid到目的loc的映射交给流表管理模块,若无,则将目的eid交给映射请求模块;标识管理模块从映射应答模块收到目的eid到目的loc的映射信息,保存到缓存中,将目的eid到目的loc的映射交给流表管理模块;映射请求模块从标识管理模块收到目的eid,构造映射请求报文,将映射请求报文通过OpenFlow协议插件交给映射服务器;流表管理模块从标识管理模块收到目的eid到目的loc的映射,构造流表,将流表通过OpenFlow协议插件交给OpenFlow交换机;
OpenFlow交换机是服务器,其上安装有Apache下的OpenvSwitch软件;
SDN控制器与映射服务器交互映射控制报文,得到映射信息,下发封装与解封装流表给OpenFlow交换机,OpenFlow交换机根据封装与解封装流表,对数据报文进行封装操作与解封装操作;
第二步,将源主机所在的标识网络称为源标识网络,将目的主机所在的标识网络称为目的标识网络,将源标识网络中的OpenFlow交换机称为源OpenFlow交换机,将目的标识网络中的OpenFlow交换机称为目的OpenFlow交换机,源标识网络到目的标识网络的端到端通信过程是:
2.1启动基于SDN的端到端通信网络,N台OpenFlow交换机开始等待接收来自本标识网络的报文或来自位置网络的报文,即OpenFlow交换机i等待接收来自标识网络i的报文或来自位置网络的报文,若OpenFlow交换机i接收到来自标识网络i的报文,则标识网络i为源标识网络,此时OpenFlow交换机i为源OpenFlow交换机;若OpenFlow交换机i接收到来自位置网络的报文,则标识网络i为目的标识网络,此时OpenFlow交换机i为目的OpenFlow交换机;每个源标识网络到目的标识网络的端到端通信过程为:
2.2源OpenFlow交换机从源标识网络接收源主机发往目的主机的报文,将报文匹配源OpenFlow交换机中的流表,具体方法为:
2.2.1源OpenFlow交换机在源OpenFlow交换机的一级流表中,将报文的IP地址、MAC地址和端口号与流表项中的匹配项中的IP地址、MAC地址和端口号进行匹配,查询是否命中该报文;如果在一级流表中查询到匹配该报文的流表项,则获取该流表项的操作项,转步骤2.2.2,如果在一级流表中未查询到匹配该报文的流表项,则转步骤2.2.3;
2.2.2源OpenFlow交换机根据流表项的操作项对报文进行封装,修改报文的MAC地址,并将报文转发给位置网络;转步骤2.5;所述封装操作是指在原报文的IP层外依次封装UDP首部和IP首部,IP首部的源IP地址和目的IP地址均为位置网络中的地址;所述修改报文的MAC地址是指将报文的目的MAC地址修改为流表项的操作项中指示的MAC地址;所述将报文转发给位置网络是指根据操作项中指示的端口号转发报文;
2.2.3源OpenFlow交换机在源OpenFlow交换机的多级流表中,将报文的IP地址、MAC地址和端口号与流表项中的匹配项中的IP地址、MAC地址和端口号进行匹配,查询是否命中该报文;如果在多级流表中匹配到报文,则转步骤2.2.4,如果在多级流表中没有匹配到报文,则转步骤2.2.5;
2.2.4源OpenFlow交换机在一级流表中添加一条对应该报文的流表项,该流表项的匹配项为:匹配报文的目的标识,操作项为:封装、修改MAC地址和转发,转步骤2.2.2;
2.2.5源OpenFlow交换机向SDN控制器发送未匹配的报文;
2.3SDN控制器针对报文的目的eid,查询目的eid到目的loc的映射,构造流表,下发给源OpenFlow交换机和目的OpenFlow交换机,具体方法为:
2.3.1SDN控制器的OpenFlow协议插件从源OpenFlow交换机接收报文,交给报文分类模块;
2.3.2报文分类模块根据报文传输层协议是否为UDP和UDP目的端口号对报文分类,若报文传输层协议为UDP且UDP目的端口号为4342,则为映射应答报文,将映射应答报文交给映射应答模块,转2.3.6;若报文传输层协议不为UDP或UDP目的端口号不为4342,则为数据报文,将数据报文交给标识管理模块,转2.3.3;
2.3.3标识管理模块根据数据报文的目的eid,查询缓存中是否有目的eid到目的loc的映射,若有,将目的eid到目的loc的映射交给流表管理模块,转2.3.8;若无,将目的eid交给映射请求模块,转2.3.4;
2.3.4映射请求模块根据目的eid构造映射请求报文,并将映射请求报文通过OpenFlow协议插件发送给映射服务器;
2.3.5映射服务器收到映射请求报文,根据目的eid,查询映射服务器中的映射数据库,得到目的eid到目的loc的映射,此映射构成映射应答报文,通过SDN控制器的OpenFlow协议插件交给报文分类模块,转2.3.2;
2.3.6映射应答模块提取映射应答报文中目的eid到目的loc的映射,将目的eid到目的loc的映射交给标识管理模块;
2.3.7标识管理模块将目的eid到目的loc的映射保存在缓存中,并将目的eid到目的loc的映射交给流表管理模块;
2.3.8流表管理模块从标识管理模块收到目的eid到目的loc的映射,构造封装流表和解封装流表,封装流表通过OpenFlow协议插件发送给源OpenFlow交换机;解封装流表通过OpenFlow协议插件发送给目的OpenFlow交换机;
2.4源OpenFlow交换机收到封装流表后,在自己的多级流表中增加流表项;目的OpenFlow交换机收到解封装流表后,在自己的多级流表中增加流表项;源OpenFlow交换机继续接收从源标识网络的源主机发往目的主机的报文,将报文的IP地址、MAC地址和端口号与流表项中的IP地址、MAC地址和端口号进行匹配,转2.2;
2.5位置网络中的网络设备对封装后的报文按目的loc进行路由转发,将封装后的报文发送给目的OpenFlow交换机;
2.6目的OpenFlow交换机从位置网络接收封装后的报文,将报文匹配目的OpenFlow交换机中的流表,具体方法为:
2.6.1目的OpenFlow交换机在目的OpenFlow交换机的一级流表中,将报文的IP地址、MAC地址和端口号与流表项中的匹配项中的IP地址、MAC地址和端口号进行匹配,查询是否命中该报文;如果在一级流表中查询到匹配该报文的流表项,则获取该流表项的操作项,转步骤2.6.2;如果在一级流表中未查询到匹配该报文的流表项,则转步骤2.6.3;
2.6.2目的OpenFlow交换机根据流表项的操作项对报文进行解封装,修改报文的MAC地址,并将报文转发给目的标识网络;解封装操作即为依次剥除原报文的UDP首部和IP首部;修改MAC地址为将报文的目的MAC地址修改为流表项的操作中指示的MAC地址; 转发为根据操作中指示的端口号转发报文;转步骤2.7;
2.6.3目的OpenFlow交换机在目的OpenFlow交换机的多级流表中,将报文的IP地址、MAC地址和端口号与流表项中的匹配项中的IP地址、MAC地址和端口号进行匹配,查询是否命中该报文;如果在多级流表中匹配到报文,则转步骤2.6.4,如果在多级流表中没有匹配到报文,则转步骤2.6.5;
2.6.4目的OpenFlow交换机在一级流表中添加一条对应该报文的流表项,该流表项的匹配项为:匹配报文的目的标识,操作项为:封装、修改MAC地址和转发,转步骤2.6.2;
2.6.5源OpenFlow交换机向SDN控制器发送未匹配的报文;
2.7目的标识网络根据报文的目的eid,将报文转发给目的主机。
2.如权利要求1所述的基于SDN的标识网络间端到端的通信方法,其特征在于2.3.8所述构造封装流表和解封装流表的方法是:封装流表的匹配项是目的IP地址为目的eid,操作项包括封装、转发,封装是在原报文的外层依次封装UDP首部和IP首部,其中IP首部的源IP地址为源loc,目的IP地址为目的loc;转发是指从源OpenFlow交换机连接位置网络的端口转发;解封装流表的匹配项是源IP地址为源loc,操作项包括解封装、转发,解封装是指依次剥除报文的UDP首部和IP首部,转发是从目的OpenFlow交换机连接目的标识网络的端口转发。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610162384.6A CN105847157B (zh) | 2016-03-21 | 2016-03-21 | 基于sdn的标识网络间端到端的通信方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610162384.6A CN105847157B (zh) | 2016-03-21 | 2016-03-21 | 基于sdn的标识网络间端到端的通信方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105847157A CN105847157A (zh) | 2016-08-10 |
CN105847157B true CN105847157B (zh) | 2018-12-18 |
Family
ID=56587646
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610162384.6A Active CN105847157B (zh) | 2016-03-21 | 2016-03-21 | 基于sdn的标识网络间端到端的通信方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105847157B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107070691B (zh) * | 2017-01-12 | 2020-01-21 | 阿里巴巴集团控股有限公司 | Docker容器的跨主机通信方法和系统 |
CN107135121B (zh) * | 2017-04-28 | 2020-02-11 | 新华三技术有限公司 | 一种网络节点的切换方法及装置 |
CN109450811B (zh) * | 2018-11-30 | 2022-08-12 | 新华三云计算技术有限公司 | 流量控制方法、装置及服务器 |
CN109450798B (zh) * | 2018-12-13 | 2022-07-12 | 郑州云海信息技术有限公司 | 路由表信息的管理方法和计算机可读存储介质 |
CN110430114B (zh) * | 2019-07-24 | 2022-02-11 | 中国电子科技集团公司第七研究所 | 一种虚拟路由器及实现sdn网络与传统ip网络互联的方法 |
CN111726305B (zh) * | 2020-06-18 | 2021-03-16 | 广州市品高软件股份有限公司 | 一种面向虚拟机的多级流表管控方法及系统 |
CN113285995B (zh) * | 2021-05-18 | 2023-06-13 | 中国人民解放军陆军工程大学 | 一种基于sdn的微服务请求自适应映射分配系统及方法 |
CN113259859B (zh) | 2021-05-27 | 2021-10-29 | 之江实验室 | 一种面向区域寻址的地理标识转发方法及装置 |
CN113872846B (zh) * | 2021-10-08 | 2023-06-20 | 新华三信息安全技术有限公司 | 报文发送方法及装置 |
CN115190086B (zh) * | 2022-09-13 | 2023-01-06 | 之江实验室 | 基于可编程交换机的身份标识网络流量调度方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104283785A (zh) * | 2014-10-29 | 2015-01-14 | 杭州华三通信技术有限公司 | 一种快速处理流表的方法和装置 |
CN104601432A (zh) * | 2014-12-31 | 2015-05-06 | 杭州华三通信技术有限公司 | 一种报文传输方法和设备 |
CN104796344A (zh) * | 2014-01-16 | 2015-07-22 | 中兴通讯股份有限公司 | 基于SDN实现报文转发的方法、系统、Openflow交换机及服务器 |
-
2016
- 2016-03-21 CN CN201610162384.6A patent/CN105847157B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104796344A (zh) * | 2014-01-16 | 2015-07-22 | 中兴通讯股份有限公司 | 基于SDN实现报文转发的方法、系统、Openflow交换机及服务器 |
CN104283785A (zh) * | 2014-10-29 | 2015-01-14 | 杭州华三通信技术有限公司 | 一种快速处理流表的方法和装置 |
CN104601432A (zh) * | 2014-12-31 | 2015-05-06 | 杭州华三通信技术有限公司 | 一种报文传输方法和设备 |
Also Published As
Publication number | Publication date |
---|---|
CN105847157A (zh) | 2016-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105847157B (zh) | 基于sdn的标识网络间端到端的通信方法 | |
CN106664261B (zh) | 一种配置流表项的方法、装置和系统 | |
CN103227843B (zh) | 一种物理链路地址管理方法及装置 | |
CN105553849B (zh) | 一种传统ip网络与sptn网络互通方法与系统 | |
CN104012052B (zh) | 用于软件定义网络中的流管理的系统和方法 | |
CN103139037B (zh) | 用于实现灵活的虚拟局域网的方法和装置 | |
CN105515978A (zh) | 实现分布式路由、物理主机接入的方法及装置 | |
WO2015062529A1 (en) | Packet forwarding in data center network | |
WO2014136864A1 (ja) | パケット書換装置、制御装置、通信システム、パケット送信方法及びプログラム | |
WO2013026050A4 (en) | Hierarchical controller clusters for interconnecting different logical domains | |
CN106341298B (zh) | 报文发送方法及装置 | |
CN104780111B (zh) | 虚拟化网络中报文转发的方法及装置、虚拟化网络 | |
CN104954218A (zh) | 分布式虚拟交换装置及转发方法 | |
CN103825954A (zh) | 一种OpenFlow控制方法及相应插件、平台和网络 | |
CN112187517A (zh) | 一种数据中心sdn虚拟路由的配置方法、平台及控制器 | |
US9504016B2 (en) | Optimized multicast routing in a Clos-like network | |
CN104601472A (zh) | 在芯片中实现vxlan网关分布式路由的方法及报文处理系统 | |
CN104135446B (zh) | 基于SDN实现IPv4向IPv6过渡的系统及方法 | |
CN104702479A (zh) | Sdn网络中建立隧道的方法和装置 | |
CN106506315B (zh) | 一种报文转发的透明配置方法 | |
CN109474627A (zh) | 一种基于sdn的虚拟租户网络隔离方法及系统 | |
CN104486227B (zh) | 通过VxLAN技术实现IPv6灵活部署的系统及方法 | |
CN107566237A (zh) | 一种数据报文处理方法及装置 | |
CN109729012A (zh) | 一种单播报文传输方法和装置 | |
CN104168209A (zh) | 多接入sdn网络报文转发方法和控制器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |