CN107465770B - 一种sdn网络与非sdn网络通信的方法及装置 - Google Patents

一种sdn网络与非sdn网络通信的方法及装置 Download PDF

Info

Publication number
CN107465770B
CN107465770B CN201710667604.5A CN201710667604A CN107465770B CN 107465770 B CN107465770 B CN 107465770B CN 201710667604 A CN201710667604 A CN 201710667604A CN 107465770 B CN107465770 B CN 107465770B
Authority
CN
China
Prior art keywords
sdn
mac address
sdn network
arp request
forwarding
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
Application number
CN201710667604.5A
Other languages
English (en)
Other versions
CN107465770A (zh
Inventor
刘昱
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to CN201710667604.5A priority Critical patent/CN107465770B/zh
Publication of CN107465770A publication Critical patent/CN107465770A/zh
Application granted granted Critical
Publication of CN107465770B publication Critical patent/CN107465770B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/10Mapping addresses of different types
    • H04L61/103Mapping addresses of different types across network layers, e.g. resolution of network layer into physical layer addresses or address resolution protocol [ARP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种SDN网络与非SDN网络的通信方法,所述SDN网络包括SDN控制器以及SDN转发设备,所述方法包括:接收SDN转发设备转发的第一ARP请求,根据所述第一ARP请求判断所述SDN控制器上是否存在匹配所述第一ARP请求的转发表项;若没有,则发起第二ARP请求;接收所述第二ARP请求的第二ARP响应,根据所述第一ARP请求和所述第二ARP响应生成转发流表,并计算源主机到目标主机之间的转发路径;下发所述转发流表至所述转发路径上的所述SDN转发设备,所述SDN转发设备根据所述转发流表进行数据报文的转发。本发明还公开了一种SDN网络与非SDN网络的通信装置,通过实施上述方案,可以使得SDN网络与非SDN网络的通信过程中配置的更加灵活。

Description

一种SDN网络与非SDN网络通信的方法及装置
技术领域
本发明涉及通信领域,尤其涉及一种SDN网络与非SDN网络的通信方法及装置。
背景技术
SDN(Software Defined Network,软件定义网络)是一种新型网络创新架构,其中一种核心技术是OpenFlow技术,该技术通过将网络设备控制面与转发面分离开来,从而实现了网络流量的灵活控制,为网络应用的创新提供了良好的技术条件。
OpenFlow是一种新型网络技术,该技术通过流表实现用户或程序对网络处理行为的控制。OpenFlow络实现了数据转发层和控制层的分离。其中OpenFlow交换机实现数据层的转发,SDN控制器实现控制层的功能。控制器通过OpenFlow协议对SDN转发设备(OpenFlow交换机)进行控制,从而实现对整个网络进行集中控制。
在TCP/IP网络中,数据需要在各个网络节点间被转发,以使得网络的使用方即信息点实现信息的互通,例如一个数据中心有多个服务器之间需要由交换机和路由器组成的网络系统实现互相通信,也可通过该网络同外部网络通信。传统网络中实现该通信的基础是二层交换和三层路由,二层交换就是通过数据报文的MAC地址进行的交换,三层路由是通过数据包的IP地址进行的路由转发。传统的网络可以将网络清晰的分层并基于分层独立的处理,但是也有一些问题,例如当分属于两个网段的信息点通信时,需要通过“网关”进行转发,一般情况下报文要在沿途经过的所有网关上进行MAC地址的替换,无疑即增加了处理延迟和端到端的处理复杂度,而且网关之间需要建立静态路由或动态协商路由才能实现网关、网段之间的信息点互通。那么在SDN网络与传统网络即非SDN的网络的通信过程中,网络形态需要在每个设备上进行独立的配置,且设备间的配置需要严格对应和协同,对操作者的技能要求较高,容易出错,配置难以进行整体的记录和可视化呈现,更改配置较困难,无法适应现今对网络可视化、自动化、弹性化、敏捷化、联动化和智能化的要求。
发明内容
有鉴于此,本发明的目的是提供一种SDN网络与非SDN网络的通信方法及装置,以实现SDN网络与非SDN网络的通信过程中网络配置的灵活,管理的高效。
本发明实施方式中提供的一种SDN网络与非SDN网络的通信方法,所述SDN网络包括SDN控制器以及SDN转发设备,所述方法包括:接收SDN转发设备转发的第一ARP请求,根据所述第一ARP请求判断所述SDN控制器上是否存在匹配所述第一ARP请求的转发表项;若没有,则发起第二ARP请求;接收所述第二ARP请求的第二ARP响应,根据所述第一ARP请求和所述第二ARP响应生成转发流表,并计算源主机到目标主机之间的转发路径;下发所述转发流表至所述转发路径上的所述SDN转发设备,所述SDN转发设备根据所述转发流表进行数据报文的转发。
优选的,所述接收SDN转发设备转发的第一ARP请求的步骤之后还包括:判断所述源主机和所述目的主机是否属于同一网段;当所述源主机和所述目的主机属于同一网段时,所述第一ARP请求和所述第二ARP请求均用于获取目标主机的MAC地址,所述第二ARP响应还用于生成第一ARP响应,所述第一ARP响应用于生成待转发数据报文。
优选的,所述方法还包括:当所述源主机和所述目的主机不属于同一网段时,判断所述源主机是否位于所述SDN网络内;若是,则判断所述源主机归属的所述网关是否位于所述SDN网络内;若是,利用所述第一ARP请求获取所述源主机所在网关的MAC地址,并在所述发起第二ARP请求的步骤之前回复所述第一ARP响应,并将利用所述第一ARP响应生成的待转发数据报文转发至所述SDN转发设备;判断所述转发路径上所述SDN网络连接非SDN网络的、位于非SDN网络上的三层接口是否需要再经过大于1跳才能抵达所述目的主机;若是,所述第二ARP响应包括所述三层接口的MAC地址,并将所述待转发数据报文中的源MAC地址替换为所述SDN网络连接非SDN网络的并位于非SDN网络上的三层接口所在网关的MAC地址,将所述待转发数据报文中目的MAC地址替换为所述三层接口的MAC地址;若不是,所述第二ARP响应包括所述目标主机的MAC地址,并则将所述待转发数据报文中的源MAC地址替换为所述SDN网络连接非SDN网络的、位于非SDN网络上的三层接口所在网关的MAC地址,将所述待转发数据报文中的目的MAC地址替换为所述目标主机的MAC地址;若所述源主机归属的所述网关不位于所述SDN网络内,所述第一ARP请求和所述第二ARP请求均用于获取所述源主机归属的网关的MAC,所述第二ARP响应还用于生成第一ARP响应,所述第一ARP响应用于生成待转发数据报文。
优选的,所述方法还包括:若所述源主机不位于所述SDN网络内,判断所述目标主机所在网关是否位于所述SDN网络中;若所述目标主机所在网关位于所述SDN网络中,所述第一ARP请求则用于获取位于SDN网络内所述转发路径上的第一跳的MAC,并在所述发起第二ARP请求的步骤之前回复所述第一ARP响应,并将利用所述第一ARP响应生成的待转发数据报文转发至所述SDN转发设备;所述第二ARP响应包括目标主机的MAC地址,并所述待转发数据报文中的源MAC地址替换为所述目标主机所在网关的MAC地址,将所述待转发数据报文中的目的MAC地址替换为所述目标主机的MAC地址。
优选的,所述方法还包括:若所述目标主机所在网关不位于所述SDN网络中,所述第一ARP请求和所述第二ARP请求均用于获取所述位于SDN网络中的目标主机的MAC地址,并将所述转发数据报文中的目的MAC替换为目标主机的MAC地址。
优选的,所述根据所述ARP请求判断所述SDN控制器上是否存在匹配所述ARP请求的转发表项的步骤之前,还包括:根据访问控制策略建立网关之间的静态路由关系;根据预设的访问控制策略判断所述源主机和所述目标主机是否允许通信;若否,则丢弃该ARP请求。
本发明实施方式中提供的一种SDN网络与非SDN网络的装置,所述SDN网络包括SDN控制器以及SDN转发设备,所述SDN网络与非SDN网络的通信装置包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的通信程序,所述通信程序被所述处理器执行时实现如下步骤:接收SDN转发设备转发的第一ARP请求,根据所述第一ARP请求判断所述SDN控制器上是否存在匹配所述第一ARP请求的转发表项;若没有,则发起第二ARP请求;接收所述第二ARP请求的第二ARP响应,根据所述第一ARP请求和所述第二ARP响应生成转发流表,并计算源主机到目标主机之间的转发路径;下发所述转发流表至所述转发路径上的所述SDN转发设备,所述SDN转发设备根据所述转发流表进行数据报文的转发。
优选的,所述接收SDN转发设备转发的第一ARP请求的步骤之后,所述处理器还用于执行所述通信程序,以实现如下步骤:判断所述源主机和所述目的主机是否属于同一网段;当所述源主机和所述目的主机属于同一网段时,所述第一ARP请求和所述第二ARP请求均用于获取目标主机的MAC地址,所述第二ARP响应还用于生成第一ARP响应,所述第一ARP响应用于生成待转发数据报文。
优选的,所述处理器还用于执行所述通信程序,以实现如下步骤:当所述源主机和所述目的主机不属于同一网段时,判断所述源主机是否位于所述SDN网络内;若是,则判断所述源主机归属的所述网关是否位于所述SDN网络内;若是,利用所述第一ARP请求获取所述源主机所在网关的MAC地址,并在所述发起第二ARP请求的步骤之前回复所述第一ARP响应,并将利用所述第一ARP响应生成的待转发数据报文转发至所述SDN转发设备;判断所述转发路径上所述SDN网络连接非SDN网络的、位于非SDN网络上的三层接口是否需要再经过大于1跳才能抵达所述目的主机;若是,所述第二ARP响应包括所述三层接口的MAC地址,并将所述待转发数据报文中的源MAC地址替换为所述SDN网络连接非SDN网络的并位于非SDN网络上的三层接口所在网关的MAC地址,将所述待转发数据报文中目的MAC地址替换为所述三层接口的MAC地址;若不是,所述第二ARP响应包括所述目标主机的MAC地址,并则将所述待转发数据报文中的源MAC地址替换为所述SDN网络连接非SDN网络的、位于非SDN网络上的三层接口所在网关的MAC地址,将所述待转发数据报文中的目的MAC地址替换为所述目标主机的MAC地址;若所述源主机归属的所述网关不位于所述SDN网络内,所述第一ARP请求和所述第二ARP请求均用于获取所述源主机归属的网关的MAC,所述第二ARP响应还用于生成第一ARP响应,所述第一ARP响应用于生成待转发数据报文。
优选的,所述处理器还用于执行所述通信程序,以实现如下步骤:若所述源主机不位于所述SDN网络内,判断所述目标主机所在网关是否位于所述SDN网络中;若所述目标主机所在网关位于所述SDN网络中,所述第一ARP请求则用于获取位于SDN网络内所述转发路径上的第一跳的MAC,并在所述发起第二ARP请求的步骤之前回复所述第一ARP响应,并将利用所述第一ARP响应生成的待转发数据报文转发至所述SDN转发设备;所述第二ARP响应包括目标主机的MAC地址,并所述待转发数据报文中的源MAC地址替换为所述目标主机所在网关的MAC地址,将所述待转发数据报文中的目的MAC地址替换为所述目标主机的MAC地址。
优选的,所述处理器还用于执行所述通信程序,以实现如下步骤:若所述目标主机所在网关不位于所述SDN网络中,所述第一ARP请求和所述第二ARP请求均用于获取所述位于SDN网络中的目标主机的MAC地址,并将所述转发数据报文中的目的MAC替换为目标主机的MAC地址。
优选的,所述根据所述ARP请求判断所述SDN控制器上是否存在匹配所述ARP请求的转发表项的步骤之前,所述处理器还用于执行所述通信程序,以实现如下步骤:根据访问控制策略建立网关之间的静态路由关系;根据预设的访问控制策略判断所述源主机和所述目标主机是否允许通信;若否,则丢弃该ARP请求。
上述SDN网络与非SDN网络的通信方法及装置,可以SDN网络与非SDN网络高效稳定的通信。
以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。
附图说明
图1为本发明一种SDN网络与非SDN网络的通信装置10一实施方式的应用环境图。
图2为本发明一种SDN网络与非SDN网络的通信方法一实施方式的流程图
图3为本发明一种SDN网络与非SDN网络的通信方法基于图2的又一实施方式的流程图。
图4为本发明一种SDN网络与非SDN网络通信装置10一实施方式的功能模块图。
图5为本发明一种SDN网络与非SDN网络通信装置10一实施方式的功能模块图。
主要元件符号说明
Figure BDA0001372245300000061
如下具体实施方式将结合上述附图进一步说明本发明。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明一种SDN网络与非SDN网络的通信装置10一实施方式的应用环境图。在本实施方式中,所述SDN网络包括SDN控制器1、SDN转发设备2,SDN转发设备2直接连接主机3,也可以通过非SDN网络(可称之为传统网络)连接非SDN网络中的主机3,其中SDN转发设备2可以为SDN交换机,而主机3可以是各种PC机或者其他智能上网终端设备。在上述SDN网络和非SDN网络中,各个主机3均可以通过上述网络中的各个设备进行相互的通信。
图2为本发明一种SDN网络与非SDN网络的通信方法一实施方式的流程图,具体流程如下:
在步骤S200,接收SDN转发设备2转发的第一ARP请求,根据所述第一ARP请求判断所述SDN控制器1上是否存在匹配所述第一ARP请求的转发表项,其中,这里的表项可以指ARP表,也可指位于控制器1上的网关或下一跳的MAC地址;
在步骤S202,若SDN控制器1上不存在匹配所述第一ARP请求的转发表项,则发起第二ARP请求;
在步骤S204,接收所述第二ARP请求的第二ARP响应,根据所述第一ARP请求和所述第二ARP响应生成转发流表,并计算源主机到目标主机之间的转发路径;
在步骤S206,下发所述转发流表至所述转发路径上的所述SDN转发设备2,所述SDN转发设备2根据所述转发流表进行数据报文的转发。
图3为本发明一种SDN网络与非SDN网络的通信方法基于图2的又一实施方式的流程图,具体在图2中步骤S200之后,还包括如下流程:
在步骤S300,判断所述源主机和所述目的主机是否属于同一网段。
当所述源主机和所述目的主机属于同一网段时,所述第一ARP请求和所述第二ARP请求均用于获取目标主机的MAC地址,所述第二ARP响应还用于生成第一ARP响应,所述第一ARP响应用于生成待转发数据报文。
在步骤S302,当所述源主机和所述目的主机不属于同一网段时,判断所述源主机是否位于所述SDN网络内;
在步骤S304,若所述源主机位于所述SDN网络内,则判断所述源主机归属的所述网关是否位于所述SDN网络内;
在步骤S306,若所述源主机归属的所述网关位于所述SDN网络内,利用所述第一ARP请求获取所述源主机所在网关的MAC地址,并在所述发起第二ARP请求的步骤之前回复所述第一ARP响应,并将利用所述第一ARP响应生成的待转发数据报文转发至所述SDN转发设备2;
在步骤S308,判断所述转发路径上所述SDN网络连接非SDN网络的、位于非SDN网络上的三层接口是否需要再经过大于1跳才能抵达所述目的主机;
在步骤S310,若所述转发路径上所述SDN网络连接非SDN网络的、位于非SDN网络上的三层接口需要再经过大于1跳才能抵达所述目的主机,所述第二ARP响应包括所述三层接口的MAC地址,并将所述待转发数据报文中的源MAC地址替换为所述SDN网络连接非SDN网络的并位于非SDN网络上的三层接口所在网关的MAC地址,将所述待转发数据报文中目的MAC地址替换为所述三层接口的MAC地址;
在步骤S312,若所述转发路径上所述SDN网络连接非SDN网络的、位于非SDN网络上的三层接口不需要再经过大于1跳才能抵达所述目的主机,所述第二ARP响应包括所述目标主机的MAC地址,则将所述待转发数据报文中的源MAC地址替换为所述SDN网络连接非SDN网络的、位于非SDN网络上的三层接口所在网关的MAC地址,将所述待转发数据报文中的目的MAC地址替换为所述目标主机的MAC地址。
更进一步的,基于上述步骤S304,若所述源主机归属的所述网关不位于所述SDN网络内,所述第一ARP请求和所述第二ARP请求均用于获取所述源主机归属的网关的MAC,所述第二ARP响应还用于生成第一ARP响应,所述第一ARP响应用于生成待转发数据报文。
更进一步地,基于上述步骤S300,若所述源主机不位于所述SDN网络内,判断所述目标主机所在网关是否位于所述SDN网络中;若所述目标主机所在网关位于所述SDN网络中,所述第一ARP请求则用于获取位于SDN网络内所述转发路径上的第一跳的MAC,并在所述发起第二ARP请求的步骤之前回复所述第一ARP响应,并将利用所述第一ARP响应生成的待转发数据报文转发至所述SDN转发设备2(第一ARP用于非SDN网络获取SDN网络的第一跳的MAC,然后才能封装报文发入SDN网络);所述第二ARP响应包括目标主机的MAC地址,并所述待转发数据报文中的源MAC地址替换为所述目标主机所在网关的MAC地址,将所述待转发数据报文中的目的MAC地址替换为所述目标主机的MAC地址(第二ARP请求用于获得目标主机的MAC地址,报文进入SDN网络后第一时间替换MAC地址,并进行转发);若所述目标主机所在网关不位于所述SDN网络中,所述第一ARP请求和所述第二ARP请求均用于获取所述位于SDN网络中的目标主机的MAC地址,并将所述转发数据报文中的目的MAC替换为目标主机的MAC地址。
更进一步地,在上述图2中步骤S200之前,还包括:根据访问控制策略建立网关之间的静态路由关系;根据预设的访问控制策略判断所述源主机和所述目标主机是否允许通信;若否,则丢弃该ARP请求。
图4为本发明一种SDN网络与非SDN网络通信装置10一实施方式的功能模块图,其中SDN网络包括SDN控制器1以及SDN转发设备2。其中SDN网络与非SDN网络通信装置10包括信息接收模块100、判断模块102、信息发起模块104、流表生成模块106。
信息接收模块100用于接收SDN转发设备2转发的第一ARP请求。
判断模块102根据所述第一ARP请求判断所述SDN控制器1上是否存在匹配所述第一ARP请求的转发表项,计算源主机到目标主机之间的转发路径。
信息发起模块102用于在所述SDN控制器1上不存在匹配所述第一ARP请求的转发表项时,发起第二ARP请求,信息接收模块100还用于接收所述第二ARP请求的第二ARP响应。
流表生成模块104用于根据所述第一ARP请求和所述第二ARP响应生成转发流表,并下发所述转发流表至所述转发路径上的所述SDN转发设备2,所述SDN转发设备2根据所述转发流表进行数据报文的转发。
更进一步地,判断模块102还在信息接收模块100接收SDN转发设备2转发的第一ARP请求后,判断所述源主机和所述目的主机是否属于同一网段。当所述源主机和所述目的主机属于同一网段时,所述第一ARP请求和所述第二ARP请求均用于获取目标主机的MAC地址,所述第二ARP响应还用于生成第一ARP响应,所述第一ARP响应用于生成待转发数据报文。
更进一步地,当所述源主机和所述目的主机不属于同一网段时,判断模块102还用于判断所述源主机是否位于所述SDN网络内;若是,判断模块102进一步用于判断所述源主机归属的所述网关是否位于所述SDN网络内;若是,信息接收模块100利用所述第一ARP请求获取所述源主机所在网关的MAC地址,并在所述发起第二ARP请求的步骤之前回复所述第一ARP响应,源主机利用所述第一ARP响应生成待转发数据报文并转发至所述SDN转发设备2;接着,判断模块102判断所述转发路径上所述SDN网络连接非SDN网络的、位于非SDN网络上的三层接口是否需要再经过大于1跳才能抵达所述目的主机,若是,所述第二ARP响应包括所述三层接口的MAC地址,并将所述待转发数据报文中的源MAC地址替换为所述SDN网络连接非SDN网络的并位于非SDN网络上的三层接口所在网关的MAC地址,将所述待转发数据报文中目的MAC地址替换为所述三层接口的MAC地址;若所述转发路径上所述SDN网络连接非SDN网络的、位于非SDN网络上的三层接口不需要再经过大于1跳才能抵达所述目的主机,所述第二ARP响应包括所述目标主机的MAC地址,并则将所述待转发数据报文中的源MAC地址替换为所述SDN网络连接非SDN网络的、位于非SDN网络上的三层接口所在网关的MAC地址,将所述待转发数据报文中的目的MAC地址替换为所述目标主机的MAC地址。
更进一步地,若所述源主机归属的所述网关不位于所述SDN网络内,所述第一ARP请求和所述第二ARP请求均用于获取所述源主机归属的网关的MAC,所述第二ARP响应还用于生成第一ARP响应,所述第一ARP响应用于生成待转发数据报文。
更进一步地,若所述源主机不位于所述SDN网络内,判断模块102判断所述目标主机所在网关是否位于所述SDN网络中;若所述目标主机所在网关位于所述SDN网络中,所述第一ARP请求则用于获取位于SDN网络内所述转发路径上的第一跳的MAC,并在所述发起第二ARP请求的步骤之前回复所述第一ARP响应,并将利用所述第一ARP响应生成的待转发数据报文转发至所述SDN转发设备2(第一ARP用于非SDN网络获取SDN网络的第一跳的MAC,然后才能封装报文发入SDN网络);所述第二ARP响应包括目标主机的MAC地址,并所述待转发数据报文中的源MAC地址替换为所述目标主机所在网关的MAC地址,将所述待转发数据报文中的目的MAC地址替换为所述目标主机的MAC地址(第二ARP请求用于获得目标主机的MAC地址,报文进入SDN网络后第一时间替换MAC地址,并进行转发)。若所述目标主机所在网关不位于所述SDN网络中,所述第一ARP请求和所述第二ARP请求均用于获取所述位于SDN网络中的目标主机的MAC地址,并将所述转发数据报文中的目的MAC替换为目标主机的MAC地址。
更进一步地,在判断模块102根据所述ARP请求判断所述SDN控制器上是否存在匹配所述ARP请求的转发表项的之前,判断模块102还用于根据访问控制策略建立网关之间的静态路由关系,并根据预设的访问控制策略判断所述源主机和所述目标主机是否允许通信;若否,则丢弃该ARP请求。
图5为本发明一种SDN网络与非SDN网络通信装置10一实施方式的功能模块图。在图5中,针对图4中的信息接收模块100、判断模块102、信息发起模块104、流表生成模块106以一种通信程序的形式存储于图5中存储器108上,并由图5中处理器110去执行,所述通信程序被所述处理器110执行时实现如下步骤:
接收SDN转发设备2转发的第一ARP请求,根据所述第一ARP请求判断所述SDN控制器1上是否存在匹配所述第一ARP请求的转发表项,并计算源主机到目标主机之间的转发路径;
若没有,则发起第二ARP请求;
接收所述第二ARP请求的第二ARP响应,根据所述第一ARP请求和所述第二ARP响应生成转发流表;
下发所述转发流表至所述转发路径上的所述SDN转发设备2,所述SDN转发设备2根据所述转发流表进行数据报文的转发。
更进一步地,所述接收SDN转发设备2转发的第一ARP请求的步骤之后还包括:
判断所述源主机和所述目的主机是否属于同一网段。
当所述源主机和所述目的主机属于同一网段时,所述第一ARP请求和所述第二ARP请求均用于获取目标主机的MAC地址,所述第二ARP响应还用于生成第一ARP响应,所述第一ARP响应用于生成待转发数据报文。
更进一步地,所述步骤还包括:
当所述源主机和所述目的主机不属于同一网段时,判断所述源主机是否位于所述SDN网络内;
若是,则判断所述源主机归属的所述网关是否位于所述SDN网络内;
若是,利用所述第一ARP请求获取所述源主机所在网关的MAC地址,并在所述发起第二ARP请求的步骤之前回复所述第一ARP响应,并将利用所述第一ARP响应生成的待转发数据报文转发至所述SDN转发设备2;
判断所述转发路径上所述SDN网络连接非SDN网络的、位于非SDN网络上的三层接口是否需要再经过大于1跳才能抵达所述目的主机;
若是,所述第二ARP响应包括所述三层接口的MAC地址,并将所述待转发数据报文中的源MAC地址替换为所述SDN网络连接非SDN网络的并位于非SDN网络上的三层接口所在网关的MAC地址,将所述待转发数据报文中目的MAC地址替换为所述三层接口的MAC地址;
若不需要,所述第二ARP响应包括所述目标主机的MAC地址,并则将所述待转发数据报文中的源MAC地址替换为所述SDN网络连接非SDN网络的、位于非SDN网络上的三层接口所在网关的MAC地址,将所述待转发数据报文中的目的MAC地址替换为所述目标主机的MAC地址。
若所述源主机归属的所述网关不位于所述SDN网络内,所述第一ARP请求和所述第二ARP请求均用于获取所述源主机归属的网关的MAC,所述第二ARP响应还用于生成第一ARP响应,所述第一ARP响应用于生成待转发数据报文。
更进一步地,所述步骤还包括:若所述源主机不位于所述SDN网络内,判断所述目标主机所在网关是否位于所述SDN网络中;
若所述目标主机所在网关位于所述SDN网络中,所述第一ARP请求则用于获取位于SDN网络内所述转发路径上的第一跳的MAC,并在所述发起第二ARP请求的步骤之前回复所述第一ARP响应,并将利用所述第一ARP响应生成的待转发数据报文转发至所述SDN转发设备2(第一ARP用于非SDN网络获取SDN网络的第一跳的MAC,然后才能封装报文发入SDN网络);
所述第二ARP响应包括目标主机的MAC地址,并所述待转发数据报文中的源MAC地址替换为所述目标主机所在网关的MAC地址,将所述待转发数据报文中的目的MAC地址替换为所述目标主机的MAC地址(第二ARP请求用于获得目标主机的MAC地址,报文进入SDN网络后第一时间替换MAC地址,并进行转发)。
更进一步地,所述步骤还包括:若所述目标主机所在网关不位于所述SDN网络中,所述第一ARP请求和所述第二ARP请求均用于获取所述位于SDN网络中的目标主机的MAC地址,并将所述转发数据报文中的目的MAC替换为目标主机的MAC地址。
更进一步地,所述根据所述ARP请求判断所述SDN控制器上是否存在匹配所述ARP请求的转发表项的步骤之前,还包括:根据访问控制策略建立网关之间的静态路由关系;根据预设的访问控制策略判断所述源主机和所述目标主机是否允许通信;若否,则丢弃该ARP请求。
基于上述实施例的另一方面,本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或多个程序,所述一个或者多个程序可被一个或多个处理器执行,以实现上述SDN网络与非SDN网络的通信方法的步骤。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (8)

1.一种SDN网络与非SDN网络的通信方法,所述SDN网络包括SDN控制器以及SDN转发设备,其特征在于,所述方法包括:
接收SDN转发设备转发的第一ARP请求,根据所述第一ARP请求判断所述SDN控制器上是否存在匹配所述第一ARP请求的转发表项;
若没有,则发起第二ARP请求;
接收所述第二ARP请求的第二ARP响应,根据所述第一ARP请求和所述第二ARP响应生成转发流表,并计算源主机到目标主机之间的转发路径;
下发所述转发流表至所述转发路径上的所述SDN转发设备,所述SDN转发设备根据所述转发流表进行数据报文的转发;
其中,所述接收SDN转发设备转发的第一ARP请求的步骤之后还包括:
判断所述源主机和所述目标主机是否属于同一网段;
当所述源主机和所述目标主机属于同一网段时,所述第一ARP请求和所述第二ARP请求均用于获取目标主机的MAC地址,所述第二ARP响应还用于生成第一ARP响应,所述第一ARP响应用于生成待转发数据报文;
所述方法还包括:
当所述源主机和所述目标主机不属于同一网段时,判断所述源主机是否位于所述SDN网络内;
若是,则判断所述源主机归属的网关是否位于所述SDN网络内;
若是,利用所述第一ARP请求获取所述源主机所在网关的MAC地址,并在所述发起第二ARP请求的步骤之前回复所述第一ARP响应,并将利用所述第一ARP响应生成的待转发数据报文转发至所述SDN转发设备;
判断所述转发路径上所述SDN网络连接非SDN网络的、位于非SDN网络上的三层接口是否需要再经过大于1跳才能抵达所述目标 主机;
若是,所述第二ARP响应包括所述三层接口的MAC地址,并将所述待转发数据报文中的源MAC地址替换为所述SDN网络连接非SDN网络的并位于非SDN网络上的三层接口所在网关的MAC地址,将所述待转发数据报文中目的MAC地址替换为所述三层接口的MAC地址;
若不是,所述第二ARP响应包括所述目标主机的MAC地址,并则将所述待转发数据报文中的源MAC地址替换为所述SDN网络连接非SDN网络的、位于非SDN网络上的三层接口所在网关的MAC地址,将所述待转发数据报文中的目的MAC地址替换为所述目标主机的MAC地址;
若所述源主机归属的所述网关不位于所述SDN网络内,所述第一ARP请求和所述第二ARP请求均用于获取所述源主机归属的网关的MAC,所述第二ARP响应还用于生成第一ARP响应,所述第一ARP响应用于生成待转发数据报文。
2.如权利要求1所述的SDN网络与非SDN网络的通信方法,其特征在于,所述方法还包括:
若所述源主机不位于所述SDN网络内,判断所述目标主机所在网关是否位于所述SDN网络中;
若所述目标主机所在网关位于所述SDN网络中,所述第一ARP请求则用于获取位于SDN网络内所述转发路径上的第一跳的MAC,并在所述发起第二ARP请求的步骤之前回复所述第一ARP响应,并将利用所述第一ARP响应生成的待转发数据报文转发至所述SDN转发设备;
所述第二ARP响应包括目标主机的MAC地址,并所述待转发数据报文中的源MAC地址替换为所述目标主机所在网关的MAC地址,将所述待转发数据报文中的目的MAC地址替换为所述目标主机的MAC地址。
3.如权利要求2所述的SDN网络与非SDN网络的通信方法,其特征在于,所述方法还包括:
若所述目标主机所在网关不位于所述SDN网络中,所述第一ARP请求和所述第二ARP请求均用于获取所述位于SDN网络中的目标主机的MAC地址,并将所述转发数据报文中的目的MAC替换为目标主机的MAC地址。
4.如权利要求1所述的SDN网络与非SDN网络的通信方法,其特征在于,所述根据所述ARP请求判断所述SDN控制器上是否存在匹配所述ARP请求的转发表项的步骤之前,还包括:
根据访问控制策略建立网关之间的静态路由关系;
根据预设的访问控制策略判断所述源主机和所述目标主机是否允许通信;
若否,则丢弃该ARP请求。
5.一种SDN网络与非SDN网络的通信装置,所述SDN网络包括SDN控制器以及SDN转发设备,其特征在于,所述SDN网络与非SDN网络的通信装置包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的通信程序,所述通信程序被所述处理器执行时实现如下步骤:
接收SDN转发设备转发的第一ARP请求,根据所述第一ARP请求判断所述SDN控制器上是否存在匹配所述第一ARP请求的转发表项;
若没有,则发起第二ARP请求;
接收所述第二ARP请求的第二ARP响应,根据所述第一ARP请求和所述第二ARP响应生成转发流表,并计算源主机到目标主机之间的转发路径;
下发所述转发流表至所述转发路径上的所述SDN转发设备,所述SDN转发设备根据所述转发流表进行数据报文的转发;
其中,所述接收SDN转发设备转发的第一ARP请求的步骤之后,所述处理器还用于执行所述通信程序,以实现如下步骤:
判断所述源主机和所述目标主机是否属于同一网段;
当所述源主机和所述目标主机属于同一网段时,所述第一ARP请求和所述第二ARP请求均用于获取目标主机的MAC地址,所述第二ARP响应还用于生成第一ARP响应,所述第一ARP响应用于生成待转发数据报文;
所述处理器还用于执行所述通信程序,以实现如下步骤:
当所述源主机和所述目标主机不属于同一网段时,判断所述源主机是否位于所述SDN网络内;
若是,则判断所述源主机归属的网关是否位于所述SDN网络内;
若是,利用所述第一ARP请求获取所述源主机所在网关的MAC地址,并在所述发起第二ARP请求的步骤之前回复所述第一ARP响应,并将利用所述第一ARP响应生成的待转发数据报文转发至所述SDN转发设备;
判断所述转发路径上所述SDN网络连接非SDN网络的、位于非SDN网络上的三层接口是否需要再经过大于1跳才能抵达所述目标 主机;
若是,所述第二ARP响应包括所述三层接口的MAC地址,并将所述待转发数据报文中的源MAC地址替换为所述SDN网络连接非SDN网络的并位于非SDN网络上的三层接口所在网关的MAC地址,将所述待转发数据报文中目的MAC地址替换为所述三层接口的MAC地址;
若不需要,所述第二ARP响应包括所述目标主机的MAC地址,并则将所述待转发数据报文中的源MAC地址替换为所述SDN网络连接非SDN网络的、位于非SDN网络上的三层接口所在网关的MAC地址,将所述待转发数据报文中的目的MAC地址替换为所述目标主机的MAC地址;
若所述源主机归属的所述网关不位于所述SDN网络内,所述第一ARP请求和所述第二ARP请求均用于获取所述源主机归属的网关的MAC,所述第二ARP响应还用于生成第一ARP响应,所述第一ARP响应用于生成待转发数据报文。
6.如权利要求5所述的SDN网络与非SDN网络的通信装置,其特征在于,所述处理器还用于执行所述通信程序,以实现如下步骤:若所述源主机不位于所述SDN网络内,判断所述目标主机所在网关是否位于所述SDN网络中;若所述目标主机所在网关位于所述SDN网络中,所述第一ARP请求则用于获取位于SDN网络内所述转发路径上的第一跳的MAC,并在所述发起第二ARP请求的步骤之前回复所述第一ARP响应,并将利用所述第一ARP响应生成的待转发数据报文转发至所述SDN转发设备;
所述第二ARP响应包括目标主机的MAC地址,并所述待转发数据报文中的源MAC地址替换为所述目标主机所在网关的MAC地址,将所述待转发数据报文中的目的MAC地址替换为所述目标主机的MAC地址。
7.如权利要求6所述的SDN网络与非SDN网络的通信装置,其特征在于,所述处理器还用于执行所述通信程序,以实现如下步骤:若所述目标主机所在网关不位于所述SDN网络中,所述第一ARP请求和所述第二ARP请求均用于获取所述位于SDN网络中的目标主机的MAC地址,并将所述转发数据报文中的目的MAC替换为目标主机的MAC地址。
8.如权利要求5所述的SDN网络与非SDN网络的通信装置,其特征在于,所述根据所述ARP请求判断所述SDN控制器上是否存在匹配所述ARP请求的转发表项的步骤之前,所述处理器还用于执行所述通信程序,以实现如下步骤:
根据访问控制策略建立网关之间的静态路由关系;
根据预设的访问控制策略判断所述源主机和所述目标主机是否允许通信;
若否,则丢弃该ARP请求。
CN201710667604.5A 2017-08-07 2017-08-07 一种sdn网络与非sdn网络通信的方法及装置 Active CN107465770B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710667604.5A CN107465770B (zh) 2017-08-07 2017-08-07 一种sdn网络与非sdn网络通信的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710667604.5A CN107465770B (zh) 2017-08-07 2017-08-07 一种sdn网络与非sdn网络通信的方法及装置

Publications (2)

Publication Number Publication Date
CN107465770A CN107465770A (zh) 2017-12-12
CN107465770B true CN107465770B (zh) 2022-04-15

Family

ID=60547452

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710667604.5A Active CN107465770B (zh) 2017-08-07 2017-08-07 一种sdn网络与非sdn网络通信的方法及装置

Country Status (1)

Country Link
CN (1) CN107465770B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110430114B (zh) * 2019-07-24 2022-02-11 中国电子科技集团公司第七研究所 一种虚拟路由器及实现sdn网络与传统ip网络互联的方法
CN111884838A (zh) * 2020-07-14 2020-11-03 重庆广播电视大学重庆工商职业学院 一种sdn网络与非sdn网络通信的装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104113474A (zh) * 2013-04-22 2014-10-22 华为技术有限公司 转发路径的生成方法、控制器和系统
CN104202266A (zh) * 2014-08-04 2014-12-10 福建星网锐捷网络有限公司 一种通信方法、交换机、控制器及通信系统
CN105007224A (zh) * 2015-07-28 2015-10-28 清华大学 一种sdn网络和ip网络互联通信系统、通信方法
CN105245632A (zh) * 2015-10-16 2016-01-13 电子科技大学 一种sdn网络中不同网段主机间通信方法
CN105450532A (zh) * 2014-09-28 2016-03-30 杭州华三通信技术有限公司 软件定义网络中的三层转发方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104113474A (zh) * 2013-04-22 2014-10-22 华为技术有限公司 转发路径的生成方法、控制器和系统
CN104202266A (zh) * 2014-08-04 2014-12-10 福建星网锐捷网络有限公司 一种通信方法、交换机、控制器及通信系统
CN105450532A (zh) * 2014-09-28 2016-03-30 杭州华三通信技术有限公司 软件定义网络中的三层转发方法及装置
CN105007224A (zh) * 2015-07-28 2015-10-28 清华大学 一种sdn网络和ip网络互联通信系统、通信方法
CN105245632A (zh) * 2015-10-16 2016-01-13 电子科技大学 一种sdn网络中不同网段主机间通信方法

Also Published As

Publication number Publication date
CN107465770A (zh) 2017-12-12

Similar Documents

Publication Publication Date Title
CN105577548B (zh) 一种软件定义网络中报文处理方法和装置
US9571382B2 (en) Method, controller, and system for processing data packet
US20160301603A1 (en) Integrated routing method based on software-defined network and system thereof
US8750288B2 (en) Physical path determination for virtual network packet flows
CN103905315B (zh) 传送网络中所用的路由信息的虚拟化和分发的方法、设备和系统
US10630508B2 (en) Dynamic customer VLAN identifiers in a telecommunications network
US8891536B2 (en) Layer-3 services for united router farm
US9231848B2 (en) Method and system for an overlay management control network
JP6556151B2 (ja) ネットワークサービスのクラウドベースネットワーク機能注入
CN106789637B (zh) 一种跨域业务互通的路径建立方法、控制器及系统
CN111709014B (zh) 一种应用隔离方法、系统、设备及计算机可读存储介质
CN107181691B (zh) 一种网络中实现报文路由的方法、设备和系统
WO2018149338A1 (zh) 基于sdn的远端流镜像控制方法、实现方法及相关设备
CN113810206B (zh) 一种网络自动化编排管理方法、实体、控制器及电子设备
CN106357542B (zh) 提供组播业务的方法和软件定义网络控制器
CN107104871B (zh) 子网互通方法和装置
US20230269164A1 (en) Method and apparatus for sending route calculation information, device, and storage medium
JP2019519146A (ja) ルーティング確立、パケット送信
CN104980368A (zh) 软件定义网络中的带宽保障方法及装置
CN105657078B (zh) 一种数据传输方法、装置及多层网络管理器
CN107465770B (zh) 一种sdn网络与非sdn网络通信的方法及装置
CN107404546B (zh) 一种sdn网络内的通信方法及装置
EP3155772B1 (en) A new instant messaging(im) routing method and router
WO2018161827A1 (zh) 一种地址自学习的方法、装置及交换机
CN115002029A (zh) 一种流量转发方法、装置、设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant