CN105450532A - 软件定义网络中的三层转发方法及装置 - Google Patents
软件定义网络中的三层转发方法及装置 Download PDFInfo
- Publication number
- CN105450532A CN105450532A CN201410507966.4A CN201410507966A CN105450532A CN 105450532 A CN105450532 A CN 105450532A CN 201410507966 A CN201410507966 A CN 201410507966A CN 105450532 A CN105450532 A CN 105450532A
- Authority
- CN
- China
- Prior art keywords
- address
- message
- sdn
- gateway
- mac
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4633—Interconnection of networks using encapsulation techniques, e.g. tunneling
-
- 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/38—Flow based routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/64—Hybrid switching systems
- H04L12/6418—Hybrid transport
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/084—Configuration by using pre-existing information, e.g. using templates or copying from other elements
- H04L41/0846—Configuration by using pre-existing information, e.g. using templates or copying from other elements based on copy from other elements
-
- 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/02—Topology update or discovery
-
- 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/02—Topology update or discovery
- H04L45/036—Updating the topology between route computation elements, e.g. between OpenFlow controllers
-
- 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/58—Association of routers
- H04L45/586—Association of routers of virtual routers
-
- 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/64—Routing or path finding of packets in data switching networks using an overlay routing layer
-
- 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/66—Layer 2 routing, e.g. in Ethernet based MAN's
-
- 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
- H04L45/745—Address table lookup; Address filtering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/10—Mapping addresses of different types
- H04L61/103—Mapping addresses of different types across network layers, e.g. resolution of network layer into physical layer addresses or address resolution protocol [ARP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/50—Address allocation
- H04L61/5007—Internet protocol [IP] addresses
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/50—Address allocation
- H04L61/5038—Address allocation for local use, e.g. in LAN or USB networks, or in a controller area network [CAN]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2101/00—Indexing scheme associated with group H04L61/00
- H04L2101/60—Types of network addresses
- H04L2101/618—Details of network addresses
- H04L2101/622—Layer-2 addresses, e.g. medium access control [MAC] addresses
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提出软件定义网络中的三层转发方法及装置。方法包括:SDN控制器在SDN网络内的一台混合网络设备上配置各网段的三层网关,并针对每个网关在本控制器上生成一个虚拟主机,该虚拟主机的IP、MAC地址为对应网关的IP、MAC地址,该虚拟主机的端口为Normal端口;接收SDN网络设备发来的封装了三层数据报文的Packet-in消息,根据学习到的SDN网络拓扑及生成的虚拟主机,计算出从数据报文的源MAC地址到目的MAC地址的最优路径,向该最优路径上的各网络设备下发流表项,以使得:各网络设备根据该流表项转发该数据报文。本申请实现了SDN网络中的三层转发。
Description
技术领域
本申请涉及SDN(SoftwareDefinedNetwork,软件定义网络)技术领域,尤其涉及SDN网络中的三层转发方法及装置。
背景技术
SDN是一种新型网络创新架构,其核心思想是将网络设备的控制层面与转发层面分离,以实现对网络流量的灵活控制,为核心网络及应用的创新提供良好的平台。在SDN网络中,目前标准的协议为Openflow协议。
图1为典型的SDN组网示意图,其中,SDN网络主要由通过SDN协议通道连接的SDN网络设备(如:交换机)和SDN控制器组成。
SDN控制器是控制中心,根据用户的配置或者动态运行的协议生成流表发送到SDN网络设备。SDN网络设备接收SDN控制器设置的流表,并根据流表进行报文处理。在SDN网络设备和SDN控制器之间通过SDN协议通道(如:Openflow通道)进行通信。
发明内容
本申请提供SDN网络中的三层转发方法及装置。
本申请的技术方案是这样实现的:
一种SDN网络中的三层转发方法,该方法包括:
SDN控制器在SDN网络内的一台混合网络设备上配置各网段的三层网关,并针对每个网关在本控制器上生成一个虚拟主机,该虚拟主机的IP、MAC地址为对应网关的IP、MAC地址,该虚拟主机的端口为Normal端口;
接收SDN网络设备发来的封装了数据报文的Packet-in消息,根据学习到的SDN网络拓扑及生成的虚拟主机,计算出从数据报文的源MAC地址到目的MAC地址的最优路径,向该最优路径上的各网络设备下发流表项,以使得:各网络设备根据该流表项转发该数据报文。
一种SDN网络中的三层转发方法,该方法包括:
SDN网络中的混合网络设备接收SDN控制器配置的SDN网络内各网段的三层网关的VLAN虚接口和IP地址,为各VLAN虚接口分别生成网关MAC地址,将各网关MAC地址提供给SDN控制器,同时保存各网关的IP地址和MAC地址;接收SDN控制器下发的流表项,流表项中的目的MAC地址为自身配置的三层网关MAC地址,流表项中的动作为Output,流表项中的出端口为Normal端口;
接收SDN网络设备发来的数据报文,该数据报文的源IP、MAC地址为第一网段内的第一主机的IP、MAC地址,目的IP地址为第二网段内第二主机的IP地址,目的MAC地址为第一或第二网段的网关MAC地址,将该报文与所述流表项匹配上,发现流表项中的出端口为Normal端口,则对报文进行传统二/三层转发处理。
一种SDN网络中的三层转发装置,位于SDN控制器上,该装置包括:
网关配置模块:在SDN网络内的一台混合网络设备上配置各网段的三层网关,并针对每个网关在本控制器上生成一个虚拟主机,该虚拟主机的IP、MAC地址为对应网关的IP、MAC地址,该虚拟主机的端口为Normal端口;
流表项下发模块:接收SDN网络设备发来的封装了三层数据报文的Packet-in消息,根据学习到的SDN网络拓扑及生成的虚拟主机,计算出从数据报文的源MAC地址到目的MAC地址的最优路径,向该最优路径上的各网络设备下发流表项,以使得:各网络设备根据该流表项转发该数据报文。
一种SDN网络中的三层转发装置,位于SDN网络中的混合网络设备上,该装置包括:
网关配置保存模块:接收SDN控制器配置的SDN网络内各网段的三层网关的VLAN虚接口和IP地址,为各VLAN虚接口分别生成网关MAC地址,将各网关MAC地址提供给SDN控制器,同时保存各网关的IP地址和MAC地址;
流表项接收模块:接收并保存SDN控制器下发的流表项,流表项中的目的MAC地址为自身配置的三层网关MAC地址,流表项中的动作为Output,流表项中的出端口为Normal端口;
数据转发模块:接收SDN网络设备发来的数据报文,该数据报文的源IP、MAC地址为第一网段内的第一主机的IP、MAC地址,目的IP地址为第一或第二网段内第二主机的IP地址,目的MAC地址为第一网段的网关MAC地址,将该报文与所述流表项匹配上,发现流表项中的出端口为Normal端口,则对报文进行传统二/三层转发处理。
可见,本申请中,通过在SDN网络中的混合网络设备上配置三层网关,实现了SDN网络内以及SDN网络与外部网络的三层通信。
附图说明
图1为典型的SDN组网示意图;
图2为本申请一实施例提供的SDN网络中的三层转发方法流程图;
图3为本申请又一实施例提供的SDN网络中的三层转发方法流程图;
图4为本申请实施例提供的在SDN网络中配置及学习三层网关的方法流程图;
图5为本申请实施例提供的SDN网络内的三层转发方法流程图;
图6为本申请实施例提供的SDN网络与传统网络之间的三层转发方法流程图;
图7为本申请应用示例中的SDN组网示意图;
图8为本申请实施例提供的在图7所示组网中进行网关配置及学习的方法流程图;
图9为本申请实施例提供的在图7所示组网中进行SDN网络内的三层转发方法流程图;
图10为本申请实施例提供的在图7所示组网中进行SDN网络与传统网络之间的三层转发方法流程图;
图11为本申请实施例提供的SDN控制器的硬件结构示意图;
图12为本申请实施例提供的SDN网络中的三层转发装置的组成示意图;
图13为本申请实施例提供的混合SDN网络设备的硬件结构示意图;
图14为本申请又一实施例提供的SDN网络中的三层转发装置的组成示意图。
具体实施方式
目前,SDN网络内无法进行三层通信,SDN网络也无法与外部网络互通。为了解决该技术问题,本申请给出如下解决方案:
为了方便理解本申请,首先给出如下说明:
1)SDN网络是指使能了SDN协议(如:Openflow协议)的网络,包括:SDN网络内的SDN控制器、SDN网络设备以及SDN网络设备下挂的主机;
2)传统网络是指没有使能SDN协议的网络,包括:传统网络中的交换机、主机等;
3)混合网络设备是指同时支持传统网络二、三层转发以及SDN协议功能的网络设备;
4)在混合网络设备上,使能了SDN协议的端口属于SDN网络,未使能SDN协议的端口属于传统网络。
图2为本申请一实施例提供的SDN网络中的三层转发方法流程图,其具体步骤如下:
步骤201:SDN控制器在SDN网络内的一台混合网络设备上配置各网段的三层网关,并针对每个网关在本控制器上生成一个虚拟主机,该虚拟主机的IP、MAC地址为对应网关的IP、MAC地址,该虚拟主机的端口为Normal端口。
优选地,虚拟主机为静态虚拟主机,“静态”的意义是该虚拟主机永远不会老化。
Normal端口为SDN协议中定义的一类端口,端口号为0xfffffffa,Normal端口的特性为:当报文的出端口为Normal端口时,报文的转发行为改为传统二/三层转发。
优选地,当SDN控制器接收到SDN网络设备发来的封装了ARP请求报文的Packet-in消息,该ARP请求报文为该SDN网络设备下挂的主机发出的、且目的IP地址为网关IP地址,则SDN控制器根据该网关IP地址查找到对应的虚拟主机,将该虚拟主机的MAC地址作为网关MAC地址填入到ARP应答报文中,将该ARP应答报文封装到Packet-out消息中通过该SDN网络设备转发给发出该ARP请求报文的主机;同时,SDN控制器在该网关IP地址对应网关上配置ARP表项,表项中的IP、MAC地址为ARP请求报文的源IP、MAC地址,表项中的出端口为该网关到发出该ARP请求报文的主机的最优路径出端口。
步骤202:SDN控制器接收SDN网络设备发来的封装了三层数据报文的Packet-in消息,根据自身学习到的SDN网络拓扑及生成的虚拟主机,计算出从数据报文的源MAC地址到目的MAC地址的最优路径,向该最优路径上的各网络设备下发流表项,以使得:各网络设备根据该流表项转发该数据报文。
其中,当数据报文的源IP、MAC地址为第一网段内的第一主机的IP、MAC地址,目的IP地址为第一或第二网段内第二主机的IP地址,目的MAC地址为第一网段的网关MAC地址时,步骤202中,根据学习到的SDN网络拓扑及生成的虚拟主机,计算出从数据报文的源MAC地址到目的MAC地址的最优路径为:
根据学习到的SDN网络拓扑及生成的虚拟主机,计算出从数据报文的源MAC地址到目的MAC地址的最优路径为:从数据报文在所述SDN网络设备上的入端口到第一网段的网关MAC地址(即数据报文的目的MAC地址)对应的虚拟主机的Normal端口之间的最优路径;
步骤202中,向该最优路径上的各网络设备下发流表项包括:
根据该数据报文及所述最优路径,生成下发给第一网段的网关的流表项,该流表项的内容为:匹配“目的MAC地址为第一网段的网关的MAC地址”的数据报文,动作为:Output,出端口为:Normal端口。
步骤202中,向该最优路径上的各网络设备下发流表项进一步包括:
SDN控制器将该数据报文封装到Packet-out消息中,消息中携带的出端口为:发来Packet-in消息的SDN网络设备到第一网段的网关的最优路径的出端口,将该消息发送给发来Packet-in消息的SDN网络设备,以使得:发来Packet-in消息的SDN网络设备接收到该Packet-out消息后,将该数据报文从该出端口转发出去。
图3为本申请又一实施例提供的SDN网络中的三层转发方法流程图,其具体步骤如下:
步骤301:SDN网络中的混合网络设备接收SDN控制器配置的SDN网络内各网段的三层网关的VLAN虚接口和IP地址,为各VLAN虚接口分别生成网关MAC地址,将各网关MAC地址提供给SDN控制器,同时保存各网关的IP地址和MAC地址。
步骤302:配置了三层网关的混合网络设备接收SDN控制器下发的流表项,流表项中的目的MAC地址为自身配置的三层网关MAC地址,流表项中的动作为Output,流表项中的出端口为Normal端口。
步骤303:配置了三层网关的混合网络设备接收SDN网络设备发来的数据报文,该数据报文的源IP、MAC地址为第一网段内的第一主机的IP、MAC地址,目的IP地址为第一或第二网段内第二主机的IP地址,目的MAC地址为第一网段的网关MAC地址,将该报文与步骤302中的流表项匹配上,发现流表项中的出端口为Normal端口,则对报文进行传统二/三层转发处理。
其中,步骤303中,对报文进行传统三层转发处理包括:
混合网络设备根据报文的目的IP地址,在自身的ARP表项中查找对应的MAC地址和出端口,以查找到的MAC地址替换报文的目的MAC地址,根据报文的目的IP地址所处的第二网段在自身查找到第二网段的网关MAC地址,以该网关MAC地址替换报文的源MAC地址,从查找到的出端口将报文转发出去。
图4为本申请实施例提供的在SDN网络中配置及学习三层网关的方法流程图,其具体步骤如下:
步骤401:管理员在SDN控制器上指定一台SDN网络内的混合网络设备,以用于在该混合网络设备上配置三层网关;同时,管理员针对该SDN网络内所有主机的IP地址所分布的网段,在SDN控制器上分别为每个网段配置一个三层网关IP地址。
步骤402:SDN控制器根据自身配置的所有三层网关IP地址,在该混合网络设备上配置网关VLAN虚接口及三层网关IP地址。
所有的三层网关IP地址分布在多少个VLAN上就配置多少个网关VLAN虚接口。
SDN控制器通过网络配置(Netconf)协议或者命令行的方式在该混合网络设备上配置网关VLAN虚接口及三层网关IP地址。
步骤403:混合网络设备为每个网关VLAN虚接口生成一个MAC地址,该MAC地址即为网关MAC地址,保存所有三层网关的IP地址和MAC地址。
步骤404:SDN控制器从混合网络设备获取到各网关VLAN虚接口的MAC地址(即网关MAC地址),并针对每个三层网关分别生成一个虚拟静态主机,该虚拟静态主机的IP、MAC地址分别为对应网关的IP、MAC地址,该虚拟静态主机所在的网络设备为该混合网络设备,该虚拟静态主机的端口为Normal端口。
SDN控制器可以通过netconf协议或者命令行的方式从混合网络设备获取到各网关VLAN虚接口的MAC地址。
步骤405:SDN控制器接收SDN网络设备发来的Packet-in消息,该消息中封装了ARP请求报文,该报文为该SDN网络设备下挂的主机发来的、且目的IP地址为该主机所在网段的网关IP地址,则根据该网关IP地址查找到对应的虚拟静态主机,将该虚拟静态主机的MAC地址作为网关MAC地址,将网关IP地址、网关MAC地址作为ARP应答报文的源IP、MAC地址,将该ARP应答报文封装到Packet-out消息中,将该Packet-out消息返回给该SDN网络设备,由该SDN网络设备将该ARP应答报文返回给发出该ARP请求报文的主机;同时,SDN控制器在该混合网络设备上配置静态ARP表项,表项中的IP、MAC地址为ARP请求报文的源IP、MAC地址,表项中的出端口为该混合网络设备到发出该ARP请求报文的主机的最优路径出端口。
SDN控制器可以通过netconf协议或者命令行的方式在该混合网络设备上配置静态ARP表项。
通常,当主机要发出跨网段的流量时,主机会发出以网关IP地址为目的IP地址的ARP请求报文,以查询网关MAC地址;当主机接收到ARP应答报文时,会保存报文的源IP、MAC地址即网关IP、MAC地址。
网关IP地址需要预先配置到主机上。在实际应用中,如果网关支持在SDN网络中应答ARP请求,则SDN控制器在收到封装了ARP请求报文的Packet-in消息后,可不进行ARP应答处理,而是将ARP请求报文广播出去,当该ARP请求报文到达ARP应答报文的目的IP地址对应的网关(即配置了网关的混合网络设备)后,网关进行ARP应答处理,并在本地生成静态ARP表项。
图5为本申请实施例提供的SDN网络内的三层转发方法流程图,其具体步骤如下:
步骤501:SDN网络内第一网段的第一主机要与第二网段的第二主机通信,第一主机发出数据报文,报文的源IP、MAC地址为第一主机的IP、MAC地址,目的IP地址为第二主机的IP地址,目的MAC地址为第一主机学习到的第一网段的三层网关MAC地址。
第一主机通过步骤405学习到所在的第一网段的三层网关MAC地址。
步骤502:第一主机的接入SDN网络设备接收该数据报文,在自身未匹配到流表项,则将该报文封装到Packet-in消息中发送给SDN控制器。
步骤503:SDN控制器接收该Packet-in消息,对该消息进行解封装,得到原始的数据报文,根据自身已学习到的SDN网络拓扑及生成的虚拟静态主机,计算出从数据报文的源MAC地址到目的MAC地址的最优路径,根据该数据报文及该最优路径生成下发到该最优路径上的各网络设备的流表项,将各流表项下发到对应的网络设备上,同时,将该数据报文封装到Packet-out消息中,该消息中携带了发来该Packet-in消息的SDN网络设备到目的MAC地址对应的网关(即第一网段的三层网关)的最优路径出端口信息,将该Packet-out消息发送给发来该Packet-in消息的SDN网络设备。
其中,向位于最优路径上(即第一主机与第一网段的三层网关之间)的各SDN网络设备下发的流表项的内容如下:
匹配“源MAC地址为第一主机的MAC地址(即数据报文的源MAC地址),目的MAC地址为第一网段的三层网关的MAC地址(即数据报文的目的MAC地址)”的数据报文,动作为:输出(Output),出端口为:本SDN网络设备到(目的MAC地址对应的)网关的最优路径的出端口;
向(目的MAC地址对应的)网关下发的流表项的内容如下:
匹配“源MAC地址为第一主机的MAC地址(即数据报文的源MAC地址),目的MAC地址为第一网段的三层网关的MAC地址(即数据报文的目的MAC地址)”的数据报文,动作为:Output,出端口为:根据数据报文的目的MAC地址查找到的虚拟静态主机的Normal端口。
可选地,向网关下发的流表项可不匹配源MAC地址,以达到节省流表的作用。
SDN控制器在启动后会学习SDN网络拓扑,具体包括:SDN网络内的网络设备与其下挂主机之间的连接关系、各网络设备之间(包括SDN网络设备之间、混合网络设备之间、SDN网络设备与混合网络设备之间)的连接关系,具体的学习过程属于已有技术,本申请不再赘述。
步骤504:发出该Packet-in消息的SDN网络设备接收SDN控制器发来的封装了数据报文的Packet-out消息,根据该消息携带的出端口信息,将该数据报文从对应出端口转发出去。
步骤505:位于发出该Packet-in消息的SDN网络设备与第一网段的三层网关之间的SDN网络设备接收到上述数据报文,在自身匹配到对应的流表项,根据流表项中的出端口信息,将报文从对应的出端口转发出去。
步骤506:该数据报文到达第一网段的网关(即配置了三层网关的混合网络设备),网关匹配到对应的流表项,发现出端口为Normal端口,则对报文进行传统三层转发处理:根据报文的目的IP地址查找自身的ARP表项,以该表项中的MAC地址替换报文的目的MAC地址,以自身配置的目的IP地址所在的第二网段的三层网关的MAC地址替换报文的源MAC地址,根据该表项中的出端口将报文转发出去。
这里,若混合网络设备上未保存报文的目的IP地址对应的ARP表项,则混合网络设备可发出以该目的IP地址为目的IP地址的ARP请求,以学习到对应的ARP表项。或者,在步骤503中,若SDN控制器发现数据报文的目的IP地址对应的ARP表项还未学习到,则发出以该目的IP地址为目的IP地址的ARP请求,以学习到对应的ARP表项,并将该ARP表项下发给该混合网络设备。
步骤507:网关(即配置了三层网关的混合网络设备)与第二主机之间的SDN网络设备接收到该数据报文,未匹配到该报文对应的流表项,则将该数据报文封装到Packet-in消息中发送给SDN控制器。
步骤508:SDN控制器接收该Packet-in消息,对该消息进行解封装,得到数据报文,根据自身已学习到的SDN网络拓扑,计算出从数据报文的源MAC地址到目的MAC地址的最优路径,根据该最优路径生成下发到该最优路径上的各SDN网络设备的流表项,将各流表项下发到对应的SDN网络设备上,同时,将该数据报文封装到Packet-out消息中,该消息中携带了发来该Packet-in消息的SDN网络设备到目的MAC地址对应的主机的最优路径出端口信息,将该Packet-out消息发送给发来该Packet-in消息的SDN网络设备。
其中,向(源MAC地址对应的)网关(即配置了该网关的混合网络设备)下发的流表项的内容如下:
匹配“源MAC地址为第二网段的三层网关的MAC地址(即数据报文的源MAC地址),目的MAC地址为第二主机的MAC地址(即数据报文的目的MAC地址)”的数据报文,动作为:Output,出端口为:从该网关到第二主机的最优路径的出端口;
向位于最优路径上(即第二网段的三层网关与第二主机之间的各SDN网络设备)下发的流表项的内容如下:
匹配“源MAC地址为第二网段的三层网关的MAC地址(即数据报文的源MAC地址),目的MAC地址为第二主机的MAC地址(即数据报文的目的MAC地址)”的数据报文,动作为:Output,出端口为:本SDN网络设备到(目的MAC地址对应的)第二主机的最优路径的出端口。
步骤509:发出该Packet-in消息的SDN网络设备接收SDN控制器发来的封装了数据报文的Packet-out消息,根据该消息携带的出端口信息,将该数据报文从对应出端口转发出去。
步骤510:位于发出该Packet-in消息的SDN网络设备与第二主机之间的SDN网络设备接收到上述数据报文,在自身匹配到对应的流表项,根据流表项中的出端口信息,将报文从对应的出端口转发出去,该报文最终被转发到第二主机。
图6为本申请实施例提供的SDN网络与传统网络之间的三层转发方法流程图,其具体步骤如下:
步骤601:SDN网络内第一网段的第一主机要与传统网络内第三网段的第三主机通信,第一主机发出数据报文,报文的源IP、MAC地址为第一主机的IP、MAC地址,报文的目的IP地址为第三主机的IP地址,目的MAC地址为第一主机学习到的第一网段的三层网关MAC地址。
步骤602:第一主机的接入SDN网络设备接收该数据报文,在自身未匹配到流表项,则将该报文封装到Packet-in消息中发送给SDN控制器。
步骤603:SDN控制器接收该Packet-in消息,对该消息进行解封装,得到原始的数据报文,根据自身已学习到的SDN网络拓扑及生成的虚拟静态主机,计算出从数据报文的源MAC地址到目的MAC地址的最优路径,根据该数据报文及该最优路径生成下发到该最优路径上的各网络设备的流表项,将各流表项下发到对应的网络设备上,同时,将该数据报文封装到Packet-out消息中,该消息中携带了发来该Packet-in消息的SDN网络设备到目的MAC地址对应的网关(即第一网段的三层网关)的最优路径出端口信息,将该Packet-out消息发送给发来该Packet-in消息的SDN网络设备。
其中,向位于最优路径上(即第一主机与第一网段的三层网关之间)的各SDN网络设备下发的流表项的内容如下:
匹配“源MAC地址为第一主机的MAC地址(即数据报文的源MAC地址),目的MAC地址为第一网段的三层网关的MAC地址(即数据报文的目的MAC地址)”的数据报文,动作为:输出(Output),出端口为:本SDN网络设备到(目的MAC地址对应的)网关的最优路径的出端口;
向(目的MAC地址对应的)网关下发的流表项的内容如下:
匹配“源MAC地址为第一主机的MAC地址(即数据报文的源MAC地址),目的MAC地址为第一网段的三层网关的MAC地址(即数据报文的目的MAC地址)”的数据报文,动作为:Output,出端口为:根据数据报文的目的MAC地址查找到的虚拟静态主机的Normal端口。
可选地,向网关下发的流表项可不匹配源MAC地址,以达到节省流表的作用。
步骤604:发出该Packet-in消息的SDN网络设备接收SDN控制器发来的封装了数据报文的Packet-out消息,根据该消息携带的出端口信息,将该数据报文从对应出端口转发出去。
步骤605:位于发出该Packet-in消息的SDN网络设备与第一网段的三层网关之间的SDN网络设备接收到上述数据报文,在自身匹配到对应的流表项,根据流表项中的出端口信息,将报文从对应的出端口转发出去。
步骤606:该数据报文到达第一网段的网关(即配置了三层网关的混合网络设备),网关匹配到对应的流表项,发现出端口为Normal端口,则对报文进行传统二/三层转发处理,将报文转发到传统网络,该报文最终到达第三主机。
步骤607:第三主机向第一主机发出响应的数据报文,该报文在传统网络中被路由到配置了三层网关的混合网络设备,混合网络设备对该报文进行传统二/三层转发处理,例如:根据报文的目的IP地址在自身查找到对应的ARP表项,根据报文的目的IP地址在自身查找到对应的第一网段的三层网关MAC地址,以该网关MAC地址替换报文的源MAC地址,根据ARP表项中的出端口信息将报文转发出去。
步骤608:位于第一网段的三层网关与第一主机之间的SDN网络设备接收到该数据报文,在自身匹配到流表项,根据该流表项中的出端口信息将报文转发出去,该报文最终到达第一主机。
若位于第一网段的三层网关与第一主机之间的SDN网络设备未匹配到流表项,则将数据报文封装到Packet-in消息中上送SDN控制器,SDN控制器执行与步骤508类似的处理。
图7为本申请应用示例中的SDN组网示意图,图7中,SDN网络内有交换机SW1、SW2、SW3,其中,SW1为混合交换机,SW3下挂主机PC1,PC1的IP地址为10.0.0.2,SW2下挂主机PC2、PC3,PC2、PC3的IP地址分别为10.0.0.3、20.0.0.2,可见,PC1、PC2位于同一网段,而PC1、PC3,PC2、PC3位于不同的网段;主机PC4位于传统网络,PC4的IP地址为100.0.0.1。其中,为了使得附图更清楚,并没有在图7中放入SDN控制器,实际上SW1、SW2、SW3都通过SDN协议通道与SDN控制器连接。
图8为本申请实施例提供的在图7所示组网中进行网关配置及学习的方法流程图,其具体步骤如下:
步骤801:管理员在SDN控制器上指定混合交换机SW1用于配置三层网关;同时,管理员针对PC1、PC2的IP地址所分布的网段,在SDN控制器上为该网段配置一个三层网关IP地址:10.0.0.1,针对PC3的IP地址所分布的网段,在SDN控制器上为该网段配置一个三层网关IP地址:20.0.0.1。
步骤802:SDN控制器根据自身配置的三层网关IP地址:10.0.0.1、20.0.0.1,通过命令行或者NetConf等网络配置协议的方式在SW1上配置两个网关VLAN虚接口及对应的三层网关IP地址。
步骤803:SW1接收到该命令行,为该两网关VLAN虚接口分别生成MAC地址,即网关MAC地址,保存该两网关的IP地址和MAC地址。
步骤804:SDN控制器通过命令行或者NetConf等网络配置协议的方式,向SW1获取该两网关VLAN虚接口的MAC地址,并针对每个三层网关分别生成一个虚拟静态主机,虚拟静态主机的IP、MAC地址分别为对应网关的IP、MAC地址,虚拟静态主机所在的网络设备为SW1,虚拟静态主机的端口为Normal端口。
步骤805:主机PC1要进行跨网段流量转发,则发出以网关IP地址:10.0.0.1为目的IP地址的ARP请求报文,该报文到达SW3,SW3将该报文封装到Packet-in消息中上送SDN控制器。
步骤806:SDN控制器接收该封装了ARP请求报文的Packet-in消息,解封装得到原始的ARP请求报文,根据报文的目的IP地址在自身查找到对应的虚拟静态主机,将该虚拟静态主机的MAC地址作为网关MAC地址,将网关IP地址、网关MAC地址作为ARP应答报文的源IP、MAC地址,将该ARP应答报文封装到Packet-out消息中,将该Packet-out消息返回给SW3,由SW3将该ARP应答报文返回给PC1,PC1学习到网关IP、MAC地址;同时,SDN控制器在配置了网关的SW1上配置静态ARP表项,表项中的IP、MAC地址为ARP请求报文的源IP、MAC地址,表项中的出端口为SW1到PC1的最短路径出端口(如图7中的Port2)。
当主机PC2、PC3要进行跨网段流量转发时,也会执行如PC1所类似的流程。
图9为本申请实施例提供的在图7所示组网中进行SDN网络内的三层转发方法流程图,其具体步骤如下:
步骤901:当PC1要与PC3通信,发出的数据报文的源IP地址为PC1的IP地址:10.0.0.2,目的IP地址为PC3的IP地址:20.0.0.2,源MAC地址为PC1的MAC地址,目的MAC地址为通过步骤805~806学习到的网关10.0.0.1的MAC地址。
步骤902:该数据报文到达SW3,SW3在自身未匹配到流表项,则将该报文封装到Packet-in消息中上送SDN控制器。
步骤903:SDN控制器接收该Packet-in消息,解封装得到原始的数据报文,根据自身已学习到的SDN网络拓扑及生成的虚拟静态主机,计算出从该数据报文的源MAC地址到达目的MAC地址的最短路径为:从SW3的Port1到SW1的PortNormal(数据报文的目的MAC地址对应的虚拟静态主机的端口),则在该最短路径上下发流表项;同时,将该数据报文封装到Packet-out消息中,消息中携带了从SW3到SW1的最短路径出端口(如图7中的Port3),将该消息发送给SW3。
其中,向SW3下发的流表项的内容为:
匹配“源MAC地址为PC1的MAC地址(即数据报文的源MAC地址),目的MAC地址为PC1的网关的MAC地址(即数据报文的目的MAC地址)”的数据报文,动作为Output,出端口为Port3;
向SW1下发的流表项的内容为:
匹配“源MAC地址为PC1的MAC地址(即数据报文的源MAC地址),目的MAC地址为PC1的网关的MAC地址(即数据报文的目的MAC地址)”的数据报文,动作为Output,出端口为Normal。
可选地,向SW1下发的流表项可以简化为:
匹配“目的MAC地址为PC1的网关的MAC地址(即数据报文的目的MAC地址)”的数据报文,动作为Output,出端口为Normal。
步骤904:SW3接收SDN控制器发来的封装了数据报文的Packet-out消息,根据消息中的出端口:Port3,将解封装得到的数据报文从Port3转发出去。
步骤905:SW1接收该数据报文,在自身匹配到流表项,且流表项的出端口为Normal,则对报文进行传统三层转发处理:根据报文的目的IP地址:20.0.0.2查找对应的ARP表项,得到对应的目的MAC地址(即PC3的MAC地址)和出端口(如图7中SW1的Port3),以表项中的目的MAC地址替换数据报文的目的MAC地址,同时根据报文的目的IP地址在自身查找到对应网段的三层网关MAC地址,以该MAC地址替换数据报文的源MAC地址,将该数据报文从表项中的出端口(Port3)转发出去。
步骤906:该数据报文到达SW2,SW2未匹配到对应的流表项,则将该数据报文封装到Packet-in消息中上送SDN控制器。
步骤907:SDN控制器接收SW2发来的该Packet-in消息,解封装得到内部的数据报文,根据自身已学习到的SDN网络拓扑,计算出从该数据报文的源MAC地址到达目的MAC地址的最短路径为:从SW1的Port3到SW2的Port4,则在该最短路径上下发流表项;同时,将该数据报文封装到Packet-out消息中,消息中携带了从SW2到PC3的最短路径出端口(如图7中的Port4),将该消息发送给SW2。
其中,向SW1下发的流表项的内容为:
匹配“源MAC地址为PC3的网关的MAC地址(即数据报文的源MAC地址),目的MAC地址为PC3的MAC地址(即数据报文的目的MAC地址)”的数据报文,动作为Output,出端口为Port3;
向SW2下发的流表项的内容为:
匹配“源MAC地址为PC3的网关的MAC地址(即数据报文的源MAC地址),目的MAC地址为PC3的MAC地址(即数据报文的目的MAC地址)”的数据报文,动作为Output,出端口为Port4。
其中,向SW1下发流表项主要是为了兼容现有SDN协议,可选地,本步骤中,可以选择不向SW1下发流表项。
步骤908:SW2接收SDN控制器发来的封装了数据报文的Packet-out消息,根据消息中的出端口:Port4,将解封装得到的数据报文从Port4转发出去,报文到达PC3。
图10为本申请实施例提供的在图7所示组网中进行SDN网络与传统网络之间的三层转发方法流程图,其具体步骤如下:
步骤1001:当PC1要与PC4通信,发出的数据报文的源IP地址为PC1的IP地址:10.0.0.2,目的IP地址为PC4的IP地址:100.0.0.1,源MAC地址为PC1的MAC地址,目的MAC地址为通过步骤805~806学习到的网关10.0.0.1的MAC地址。
步骤1002:该数据报文到达SW3,SW3在自身未匹配到流表项,则将该报文封装到Packet-in消息中上送SDN控制器。
步骤1003:SDN控制器接收该Packet-in消息,解封装得到原始的数据报文,根据自身已学习到的SDN网络拓扑及生成的虚拟静态主机,计算出从该数据报文的源MAC地址到达目的MAC地址的最短路径为:从SW3的Port1到SW1的PortNormal(数据报文的目的MAC地址对应的虚拟静态主机的端口),则在该最短路径上下发流表项;同时,将该数据报文封装到Packet-out消息中,消息中携带了从SW3到SW1的最短路径出端口(如图7中的Port3),将该消息发送给SW3。
其中,向SW3下发的流表项的内容为:
匹配“源MAC地址为PC1的MAC地址(即数据报文的源MAC地址),目的MAC地址为PC1的网关的MAC地址(即数据报文的目的MAC地址)”的数据报文,动作为Output,出端口为Port3;
向SW1下发的流表项的内容为:
匹配“源MAC地址为PC1的MAC地址(即数据报文的源MAC地址),目的MAC地址为PC1的网关的MAC地址(即数据报文的目的MAC地址)”的数据报文,动作为Output,出端口为Normal。
可选地,向SW1下发的流表项可以简化为:
匹配“目的MAC地址为PC1的网关的MAC地址(即数据报文的目的MAC地址)”,动作为Output,出端口为Normal。
步骤1004:SW3接收SDN控制器发来的封装了数据报文的Packet-out消息,根据消息中的出端口:Port3,将解封装得到的数据报文从Port3转发出去。
步骤1005:SW1接收该数据报文,在自身匹配到流表项,且流表项的出端口为Normal,则对报文进行传统三层转发处理,将报文从指向PC4的端口(如图7中SW1的Port1)转发出去,该报文经过传统网络的转发最终到达PC4。
步骤1006:PC4向PC1发出响应的数据报文,该报文通过传统网络转发到SW1,SW1对该报文进行传统三层转发处理:根据报文的目的IP地址在自身查找到对应的ARP表项,根据报文的目的IP地址在自身查找到对应的第一网段的三层网关MAC地址,以该网关MAC地址替换报文的源MAC地址,根据ARP表项中的出端口(如图7中的Port2)将报文转发出去。
步骤1007:该数据报文到达SW3,SW3在自身匹配到流表项,根据该流表项中的出端口(如图7中的Port1)将报文转发出去,该报文最终到达PC1。
SW3若未匹配到流表项,则将数据报文封装到Packet-in消息中上送SDN控制器,SDN控制器执行与步骤907类似的处理。
需要说明的是,本申请实施例中SDN控制器下发的流表项中也可匹配数据报文的源、目的IP地址。
本申请实施例提供的SDN控制器是可以软硬件结合的可编程设备,从硬件层面而言,SDN控制器的硬件架构示意图具体可以参见图11。图11为本申请实施例提供的包含SDN网络中的三层转发装置的SDN控制器的硬件结构示意图。该SDN控制器中包括:非易失性存储器、CPU、内存和其它硬件,其中:
非易失性存储器:存储指令代码;所述指令代码被CPU执行时完成的操作主要为内存中的实现SDN网络中的三层转发装置完成的功能。
CPU:与非易失性存储器通信,读取和执行非易失性存储器中存储的所述指令代码,完成上述SDN网络中的三层转发装置完成的功能。
内存,当非易失性存储器中的所述指令代码被执行时完成的操作主要为内存中的SDN网络中的三层转发装置完成的功能。
从软件层面而言,如图12所示,应用于SDN控制器中的SDN网络中的三层转发装置主要包括以下模块:网关配置模块和流表项下发模块,其中:
网关配置模块:在SDN网络内的一台混合网络设备上配置各网段的三层网关,并针对每个网关在本控制器上生成一个虚拟主机,该虚拟主机的IP、MAC地址为对应网关的IP、MAC地址,该虚拟主机的端口为Normal端口。
流表项下发模块:接收SDN网络设备发来的封装了三层数据报文的Packet-in消息,根据学习到的SDN网络拓扑及网关配置模块生成的虚拟主机,计算出从数据报文的源MAC地址到目的MAC地址的最优路径,向该最优路径上的各网络设备下发流表项,以使得:各网络设备根据该流表项转发该数据报文。
优选地,当流表项下发模块接收到的所述数据报文的源IP、MAC地址为第一网段内的第一主机的IP、MAC地址,目的IP地址为第一或第二网段内第二主机的IP地址,目的MAC地址为第一网段的网关MAC地址时,流表项下发模块根据学习到的SDN网络拓扑及生成的虚拟主机,计算出从数据报文的源MAC地址到目的MAC地址的最优路径为:
根据学习到的SDN网络拓扑及生成的虚拟主机,计算出从数据报文的源MAC地址到目的MAC地址的最优路径为:从数据报文在所述SDN网络设备上的入端口到第一网段的网关MAC地址对应的虚拟主机的Normal端口之间的最优路径;
流表项下发模块向该最优路径上的各网络设备下发流表项包括:根据该数据报文及所述最优路径,生成下发给第一网段的网关的流表项,该流表项的内容为:匹配“目的MAC地址为第一网段的网关的MAC地址”的数据报文,动作为:Output,出端口为:Normal端口。
优选地,流表项下发模块向该最优路径上的各网络设备下发流表项进一步用于,将该数据报文封装到Packet-out消息中,消息中携带的出端口为:发来Packet-in消息的SDN网络设备到第一网段的网关的最优路径的出端口,将该消息发送给发来Packet-in消息的SDN网络设备,以使得:发来Packet-in消息的SDN网络设备接收到该Packet-out消息后,将该数据报文从该出端口转发出去。
优选地,所述装置进一步包括:ARP表项学习模块,用于当接收到SDN网络设备发来的封装了ARP请求报文的Packet-in消息,该ARP请求报文为该SDN网络设备下挂的主机发出的、且目的IP地址为网关IP地址,则SDN控制器根据该网关IP地址查找到对应的虚拟主机,将该虚拟主机的MAC地址作为网关MAC地址填入到ARP应答报文中,将该ARP应答报文封装到Packet-out消息中通过该SDN网络设备转发给发出该ARP请求报文的主机;同时,SDN控制器在该网关IP地址对应网关上配置ARP表项,表项中的IP、MAC地址为ARP请求报文的源IP、MAC地址,表项中的出端口为该网关到发出该ARP请求报文的主机的最优路径出端口。
上述的SDN网络中的三层转发装置作为一个逻辑意义上的装置,其是通过CPU将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。当对应的计算机程序指令被执行时,形成的SDN网络中的三层转发装置用于按照上述实施例中的SDN网络中的三层转发方法执行相应操作。
本申请实施例提供的混合网络设备是可以软硬件结合的可编程设备,从硬件层面而言,混合网络设备的硬件架构示意图具体可以参见图13。图13为本申请实施例提供的包含SDN网络中的三层转发装置的混合网络设备的硬件结构示意图。该混合网络设备中包括:非易失性存储器、CPU、内存和其它硬件,其中:
非易失性存储器:存储指令代码;所述指令代码被CPU执行时完成的操作主要为内存中的实现SDN网络中的三层转发装置完成的功能。
CPU:与非易失性存储器通信,读取和执行非易失性存储器中存储的所述指令代码,完成上述SDN网络中的三层转发装置完成的功能。
内存,当非易失性存储器中的所述指令代码被执行时完成的操作主要为内存中的SDN网络中的三层转发装置完成的功能。
从软件层面而言,如图14所示,应用于混合网络设备中的SDN网络中的三层转发装置主要包括以下模块:网关配置保存模块、流表项接收模块和数据转发模块,其中:
网关配置保存模块:接收SDN控制器配置的SDN网络内各网段的三层网关的VLAN虚接口和IP地址,为各VLAN虚接口分别生成网关MAC地址,将各网关MAC地址提供给SDN控制器,同时保存各网关的IP地址和MAC地址。
流表项接收模块:接收并保存SDN控制器下发的流表项,流表项中的目的MAC地址为自身配置的三层网关MAC地址,流表项中的动作为Output,流表项中的出端口为Normal端口。
数据转发模块:接收SDN网络设备发来的数据报文,该数据报文的源IP、MAC地址为第一网段内的第一主机的IP、MAC地址,目的IP地址为第一或第二网段内第二主机的IP地址,目的MAC地址为第一网段的网关MAC地址,将该报文与流表项接收模块保存的流表项匹配上,发现流表项中的出端口为Normal端口,则对报文进行传统二/三层转发处理。
优选地,数据转发模块对报文进行传统三层转发处理包括:根据报文的目的IP地址,在自身的ARP表项中查找对应的MAC地址和出端口,以查找到的MAC地址替换报文的目的MAC地址,根据报文的目的IP地址所处的第二网段在网关配置保存模块中查找到第二网段的网关MAC地址,以该网关MAC地址替换报文的源MAC地址,从查找到的出端口将报文转发出去。
上述的SDN网络中的三层转发装置作为一个逻辑意义上的装置,其是通过CPU将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。当对应的计算机程序指令被执行时,形成的SDN网络中的三层转发装置用于按照上述实施例中的SDN网络中的三层转发方法执行相应操作。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (12)
1.一种SDN网络中的三层转发方法,其特征在于,该方法包括:
SDN控制器在SDN网络内的一台混合网络设备上配置各网段的三层网关,并针对每个网关在本控制器上生成一个虚拟主机,该虚拟主机的IP、MAC地址为对应网关的IP、MAC地址,该虚拟主机的端口为Normal端口;
接收SDN网络设备发来的封装了数据报文的Packet-in消息,根据学习到的SDN网络拓扑及生成的虚拟主机,计算出从数据报文的源MAC地址到目的MAC地址的最优路径,向该最优路径上的各网络设备下发流表项,以使得:各网络设备根据该流表项转发该数据报文。
2.根据权利要求1所述的方法,其特征在于,
当所述数据报文的源IP、MAC地址为第一网段内的第一主机的IP、MAC地址,目的IP地址为第一或第二网段内第二主机的IP地址,目的MAC地址为第一网段的网关MAC地址时,
所述根据学习到的SDN网络拓扑及生成的虚拟主机,计算出从数据报文的源MAC地址到目的MAC地址的最优路径为:
根据学习到的SDN网络拓扑及生成的虚拟主机,计算出从数据报文的源MAC地址到目的MAC地址的最优路径为:从数据报文在所述SDN网络设备上的入端口到第一网段的网关MAC地址对应的虚拟主机的Normal端口之间的最优路径;
所述向该最优路径上的各网络设备下发流表项包括:
根据该数据报文及所述最优路径,生成下发给第一网段的网关的流表项,该流表项的内容为:匹配“目的MAC地址为第一网段的网关的MAC地址”的数据报文,动作为:Output,出端口为:Normal端口。
3.根据权利要求2所述的方法,其特征在于,所述向该最优路径上的各网络设备下发流表项进一步包括:
SDN控制器将该数据报文封装到Packet-out消息中,消息中携带的出端口为:发来Packet-in消息的SDN网络设备到第一网段的网关的最优路径的出端口,将该消息发送给发来Packet-in消息的SDN网络设备,以使得:发来Packet-in消息的SDN网络设备接收到该Packet-out消息后,将该数据报文从该出端口转发出去。
4.根据权利要求1所述的方法,其特征在于,所述方法进一步包括:
当SDN控制器接收到SDN网络设备发来的封装了ARP请求报文的Packet-in消息,该ARP请求报文为该SDN网络设备下挂的主机发出的、且目的IP地址为网关IP地址,则SDN控制器根据该网关IP地址查找到对应的虚拟主机,将该虚拟主机的MAC地址作为网关MAC地址填入到ARP应答报文中,将该ARP应答报文封装到Packet-out消息中通过该SDN网络设备转发给发出该ARP请求报文的主机;同时,SDN控制器在该网关IP地址对应网关上配置ARP表项,表项中的IP、MAC地址为ARP请求报文的源IP、MAC地址,表项中的出端口为该网关到发出该ARP请求报文的主机的最优路径出端口。
5.一种SDN网络中的三层转发方法,其特征在于,该方法包括:
SDN网络中的混合网络设备接收SDN控制器配置的SDN网络内各网段的三层网关的VLAN虚接口和IP地址,为各VLAN虚接口分别生成网关MAC地址,将各网关MAC地址提供给SDN控制器,同时保存各网关的IP地址和MAC地址;接收SDN控制器下发的流表项,流表项中的目的MAC地址为自身配置的三层网关MAC地址,流表项中的动作为Output,流表项中的出端口为Normal端口;
接收SDN网络设备发来的数据报文,该数据报文的源IP、MAC地址为第一网段内的第一主机的IP、MAC地址,目的IP地址为第二网段内第二主机的IP地址,目的MAC地址为第一或第二网段的网关MAC地址,将该报文与所述流表项匹配上,发现流表项中的出端口为Normal端口,则对报文进行传统二/三层转发处理。
6.根据权利要求5所述的方法,其特征在于,所述对报文进行传统三层转发处理包括:
混合网络设备根据报文的目的IP地址,在自身的ARP表项中查找对应的MAC地址和出端口,以查找到的MAC地址替换报文的目的MAC地址,根据报文的目的IP地址所处的第二网段在自身查找到第二网段的网关MAC地址,以该网关MAC地址替换报文的源MAC地址,从查找到的出端口将报文转发出去。
7.一种SDN网络中的三层转发装置,位于SDN控制器上,其特征在于,该装置包括:
网关配置模块:在SDN网络内的一台混合网络设备上配置各网段的三层网关,并针对每个网关在本控制器上生成一个虚拟主机,该虚拟主机的IP、MAC地址为对应网关的IP、MAC地址,该虚拟主机的端口为Normal端口;
流表项下发模块:接收SDN网络设备发来的封装了三层数据报文的Packet-in消息,根据学习到的SDN网络拓扑及生成的虚拟主机,计算出从数据报文的源MAC地址到目的MAC地址的最优路径,向该最优路径上的各网络设备下发流表项,以使得:各网络设备根据该流表项转发该数据报文。
8.根据权利要求7所述的装置,其特征在于,
当流表项下发模块接收到的所述数据报文的源IP、MAC地址为第一网段内的第一主机的IP、MAC地址,目的IP地址为第一或第二网段内第二主机的IP地址,目的MAC地址为第一网段的网关MAC地址时,
所述流表项下发模块根据学习到的SDN网络拓扑及生成的虚拟主机,计算出从数据报文的源MAC地址到目的MAC地址的最优路径为:
根据学习到的SDN网络拓扑及生成的虚拟主机,计算出从数据报文的源MAC地址到目的MAC地址的最优路径为:从数据报文在所述SDN网络设备上的入端口到第一网段的网关MAC地址对应的虚拟主机的Normal端口之间的最优路径;
所述流表项下发模块向该最优路径上的各网络设备下发流表项包括:
根据该数据报文及所述最优路径,生成下发给第一网段的网关的流表项,该流表项的内容为:匹配“目的MAC地址为第一网段的网关的MAC地址”的数据报文,动作为:Output,出端口为:Normal端口。
9.根据权利要求8所述的装置,其特征在于,所述流表项下发模块向该最优路径上的各网络设备下发流表项进一步用于,
将该数据报文封装到Packet-out消息中,消息中携带的出端口为:发来Packet-in消息的SDN网络设备到第一网段的网关的最优路径的出端口,将该消息发送给发来Packet-in消息的SDN网络设备,以使得:发来Packet-in消息的SDN网络设备接收到该Packet-out消息后,将该数据报文从该出端口转发出去。
10.根据权利要求7所述的装置,其特征在于,所述装置进一步包括:ARP表项学习模块,用于当接收到SDN网络设备发来的封装了ARP请求报文的Packet-in消息,该ARP请求报文为该SDN网络设备下挂的主机发出的、且目的IP地址为网关IP地址,则SDN控制器根据该网关IP地址查找到对应的虚拟主机,将该虚拟主机的MAC地址作为网关MAC地址填入到ARP应答报文中,将该ARP应答报文封装到Packet-out消息中通过该SDN网络设备转发给发出该ARP请求报文的主机;同时,SDN控制器在该网关IP地址对应网关上配置ARP表项,表项中的IP、MAC地址为ARP请求报文的源IP、MAC地址,表项中的出端口为该网关到发出该ARP请求报文的主机的最优路径出端口。
11.一种SDN网络中的三层转发装置,位于SDN网络中的混合网络设备上,其特征在于,该装置包括:
网关配置保存模块:接收SDN控制器配置的SDN网络内各网段的三层网关的VLAN虚接口和IP地址,为各VLAN虚接口分别生成网关MAC地址,将各网关MAC地址提供给SDN控制器,同时保存各网关的IP地址和MAC地址;
流表项接收模块:接收并保存SDN控制器下发的流表项,流表项中的目的MAC地址为自身配置的三层网关MAC地址,流表项中的动作为Output,流表项中的出端口为Normal端口;
数据转发模块:接收SDN网络设备发来的数据报文,该数据报文的源IP、MAC地址为第一网段内的第一主机的IP、MAC地址,目的IP地址为第一或第二网段内第二主机的IP地址,目的MAC地址为第一网段的网关MAC地址,将该报文与所述流表项匹配上,发现流表项中的出端口为Normal端口,则对报文进行传统二/三层转发处理。
12.根据权利要求11所述的装置,其特征在于,所述数据转发模块对报文进行传统三层转发处理包括:
根据报文的目的IP地址,在自身的ARP表项中查找对应的MAC地址和出端口,以查找到的MAC地址替换报文的目的MAC地址,根据报文的目的IP地址所处的第二网段在自身查找到第二网段的网关MAC地址,以该网关MAC地址替换报文的源MAC地址,从查找到的出端口将报文转发出去。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410507966.4A CN105450532B (zh) | 2014-09-28 | 2014-09-28 | 软件定义网络中的三层转发方法及装置 |
US15/514,601 US20170237655A1 (en) | 2014-09-28 | 2015-09-28 | Forwarding Data Packets In Software Defined Networks |
PCT/CN2015/090895 WO2016045637A1 (en) | 2014-09-28 | 2015-09-28 | Forwarding data packets in software defined network |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410507966.4A CN105450532B (zh) | 2014-09-28 | 2014-09-28 | 软件定义网络中的三层转发方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105450532A true CN105450532A (zh) | 2016-03-30 |
CN105450532B CN105450532B (zh) | 2018-10-09 |
Family
ID=55560328
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410507966.4A Active CN105450532B (zh) | 2014-09-28 | 2014-09-28 | 软件定义网络中的三层转发方法及装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20170237655A1 (zh) |
CN (1) | CN105450532B (zh) |
WO (1) | WO2016045637A1 (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105791110A (zh) * | 2016-04-19 | 2016-07-20 | 杭州华三通信技术有限公司 | 一种建立流路径的方法及装置 |
CN106254267A (zh) * | 2016-08-31 | 2016-12-21 | 浙江宇视科技有限公司 | 一种数据转发路径调整方法及网关设备 |
CN107465770A (zh) * | 2017-08-07 | 2017-12-12 | 刘昱 | 一种sdn网络与非sdn网络通信的方法及装置 |
CN107547404A (zh) * | 2017-07-31 | 2018-01-05 | 新华三技术有限公司 | 流表生成方法及装置以及报文转发方法及装置 |
CN107911297A (zh) * | 2017-11-21 | 2018-04-13 | 迈普通信技术股份有限公司 | 一种sdn网络带内控制通道建立方法及设备 |
CN108600415A (zh) * | 2018-05-28 | 2018-09-28 | 郑州云海信息技术有限公司 | 一种虚拟网络访问外网的方法、系统及sdn控制器 |
CN108632122A (zh) * | 2017-03-20 | 2018-10-09 | 中兴通讯股份有限公司 | 一种实现双控制平面的方法、装置 |
CN109379234A (zh) * | 2018-11-30 | 2019-02-22 | 盛科网络(苏州)有限公司 | 基于Hybrid交换机的报文转发处理方法及系统 |
CN111884838A (zh) * | 2020-07-14 | 2020-11-03 | 重庆广播电视大学重庆工商职业学院 | 一种sdn网络与非sdn网络通信的装置 |
CN112532524A (zh) * | 2020-11-24 | 2021-03-19 | 锐捷网络股份有限公司 | 一种报文处理方法及装置 |
CN113676409A (zh) * | 2021-08-16 | 2021-11-19 | 北京全路通信信号研究设计院集团有限公司 | 一种报文转发方法、装置、电子设备以及存储介质 |
CN116155837A (zh) * | 2022-11-16 | 2023-05-23 | 天翼云科技有限公司 | 一种虚拟交换机的报文转发方法 |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10038632B2 (en) * | 2015-07-23 | 2018-07-31 | Netscout Systems, Inc. | AIA enhancements to support L2 connected networks |
WO2017186316A1 (en) * | 2016-04-27 | 2017-11-02 | Nec Europe Ltd. | Method for controlling a network |
CN107332812B (zh) * | 2016-04-29 | 2020-07-07 | 新华三技术有限公司 | 网络访问控制的实现方法及装置 |
WO2018015425A1 (en) * | 2016-07-19 | 2018-01-25 | Schneider Electric Industries Sas | Time-sensitive software defined networking |
CN109842540B (zh) * | 2017-11-28 | 2022-10-11 | 上海仪电(集团)有限公司中央研究院 | 一种基于软件定义网络的二层组播网络互通装置和方法 |
US10673781B2 (en) * | 2018-01-31 | 2020-06-02 | Hewlett Packard Enterprise Development Lp | Dedicated virtual local area network for peer-to-peer traffic transmitted between switches |
TWI642285B (zh) * | 2018-02-02 | 2018-11-21 | 思銳科技股份有限公司 | 網路交換機的主機狀態偵測方法與系統 |
US10536563B2 (en) * | 2018-02-06 | 2020-01-14 | Nicira, Inc. | Packet handling based on virtual network configuration information in software-defined networking (SDN) environments |
US11012442B2 (en) * | 2019-04-11 | 2021-05-18 | Schweitzer Engineering Laboratories, Inc. | Address resolution protocol response handling |
US11296980B2 (en) | 2019-08-29 | 2022-04-05 | Dell Products L.P. | Multicast transmissions management |
US11290394B2 (en) * | 2019-10-11 | 2022-03-29 | Dell Products L.P. | Traffic control in hybrid networks containing both software defined networking domains and non-SDN IP domains |
US11870677B2 (en) | 2020-06-04 | 2024-01-09 | Juniper Networks, Inc. | Liveness detection and route convergence in software-defined networking distributed system |
CN114039894B (zh) * | 2021-12-23 | 2023-04-18 | 苏州浪潮智能科技有限公司 | 一种基于矢量包的网络性能优化方法、系统、设备、介质 |
US11943110B2 (en) * | 2022-05-13 | 2024-03-26 | Charter Communications Operating, Llc | Automated network generation, validation and implementation in a production environment |
CN116827627B (zh) * | 2023-06-27 | 2023-12-26 | 江苏元信网安科技有限公司 | 一种基于IPsecVPN的源MAC透传系统及方法 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101043380A (zh) * | 2007-04-20 | 2007-09-26 | 北京航空航天大学 | 虚拟机网络拓扑信息的处理方法及装置 |
CN102025535A (zh) * | 2010-11-17 | 2011-04-20 | 福建星网锐捷网络有限公司 | 虚拟机管理方法、装置及网络设备 |
CN103067270A (zh) * | 2013-01-08 | 2013-04-24 | 杭州华三通信技术有限公司 | 一种虚拟机互访安全控制方法及装置 |
CN103152264A (zh) * | 2013-02-25 | 2013-06-12 | 北京百度网讯科技有限公司 | Openflow网络和IP网络互连通信方法及Openflow子网边缘交换机 |
CN103166876A (zh) * | 2011-12-08 | 2013-06-19 | 中兴通讯股份有限公司 | OpenFlow网络域间的数据发送方法及装置 |
US20130329601A1 (en) * | 2012-06-11 | 2013-12-12 | Futurewei Technologies, Inc. | Defining Data Flow Paths in Software-Defined Networks with Application-Layer Traffic Optimization |
CN103501236A (zh) * | 2013-08-26 | 2014-01-08 | 武汉烽火网络有限责任公司 | 网络控制平面逻辑拓扑生成方法及装置 |
CN103763146A (zh) * | 2014-01-29 | 2014-04-30 | 杭州华三通信技术有限公司 | 一种软件定义网络控制器及其生成转发信息的方法 |
CN103763174A (zh) * | 2014-01-08 | 2014-04-30 | 浙江工商大学 | 一种基于功能块的虚拟网络映射方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8923296B2 (en) * | 2012-02-23 | 2014-12-30 | Big Switch Networks, Inc. | System and methods for managing network packet forwarding with a controller |
US8923149B2 (en) * | 2012-04-09 | 2014-12-30 | Futurewei Technologies, Inc. | L3 gateway for VXLAN |
US9769061B2 (en) * | 2012-05-23 | 2017-09-19 | Brocade Communications Systems, Inc. | Integrated heterogeneous software-defined network |
KR102165369B1 (ko) * | 2013-03-07 | 2020-10-15 | 보르그워너 인코퍼레이티드 | 스프링력 제어를 갖는 텐셔너 |
CN103841189B (zh) * | 2014-02-28 | 2018-09-28 | 上海斐讯数据通信技术有限公司 | 控制云计算中心服务器之间数据通信的方法 |
CN103957159B (zh) * | 2014-04-24 | 2017-08-11 | 华为技术有限公司 | 一种确定标签交换路径的方法及路径计算单元 |
US9936059B2 (en) * | 2014-05-29 | 2018-04-03 | Fortinet, Inc. | Management of wireless access points via virtualization |
-
2014
- 2014-09-28 CN CN201410507966.4A patent/CN105450532B/zh active Active
-
2015
- 2015-09-28 WO PCT/CN2015/090895 patent/WO2016045637A1/en active Application Filing
- 2015-09-28 US US15/514,601 patent/US20170237655A1/en not_active Abandoned
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101043380A (zh) * | 2007-04-20 | 2007-09-26 | 北京航空航天大学 | 虚拟机网络拓扑信息的处理方法及装置 |
CN102025535A (zh) * | 2010-11-17 | 2011-04-20 | 福建星网锐捷网络有限公司 | 虚拟机管理方法、装置及网络设备 |
CN103166876A (zh) * | 2011-12-08 | 2013-06-19 | 中兴通讯股份有限公司 | OpenFlow网络域间的数据发送方法及装置 |
US20130329601A1 (en) * | 2012-06-11 | 2013-12-12 | Futurewei Technologies, Inc. | Defining Data Flow Paths in Software-Defined Networks with Application-Layer Traffic Optimization |
CN103067270A (zh) * | 2013-01-08 | 2013-04-24 | 杭州华三通信技术有限公司 | 一种虚拟机互访安全控制方法及装置 |
CN103152264A (zh) * | 2013-02-25 | 2013-06-12 | 北京百度网讯科技有限公司 | Openflow网络和IP网络互连通信方法及Openflow子网边缘交换机 |
CN103501236A (zh) * | 2013-08-26 | 2014-01-08 | 武汉烽火网络有限责任公司 | 网络控制平面逻辑拓扑生成方法及装置 |
CN103763174A (zh) * | 2014-01-08 | 2014-04-30 | 浙江工商大学 | 一种基于功能块的虚拟网络映射方法 |
CN103763146A (zh) * | 2014-01-29 | 2014-04-30 | 杭州华三通信技术有限公司 | 一种软件定义网络控制器及其生成转发信息的方法 |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105791110A (zh) * | 2016-04-19 | 2016-07-20 | 杭州华三通信技术有限公司 | 一种建立流路径的方法及装置 |
CN106254267B (zh) * | 2016-08-31 | 2020-01-14 | 浙江宇视科技有限公司 | 一种数据转发路径调整方法及网关设备 |
CN106254267A (zh) * | 2016-08-31 | 2016-12-21 | 浙江宇视科技有限公司 | 一种数据转发路径调整方法及网关设备 |
CN108632122A (zh) * | 2017-03-20 | 2018-10-09 | 中兴通讯股份有限公司 | 一种实现双控制平面的方法、装置 |
CN108632122B (zh) * | 2017-03-20 | 2022-01-07 | 中兴通讯股份有限公司 | 一种实现双控制平面的方法、装置 |
CN107547404A (zh) * | 2017-07-31 | 2018-01-05 | 新华三技术有限公司 | 流表生成方法及装置以及报文转发方法及装置 |
CN107547404B (zh) * | 2017-07-31 | 2019-11-05 | 新华三技术有限公司 | 流表生成方法及装置以及报文转发方法及装置 |
CN107465770A (zh) * | 2017-08-07 | 2017-12-12 | 刘昱 | 一种sdn网络与非sdn网络通信的方法及装置 |
CN107465770B (zh) * | 2017-08-07 | 2022-04-15 | 刘昱 | 一种sdn网络与非sdn网络通信的方法及装置 |
CN107911297A (zh) * | 2017-11-21 | 2018-04-13 | 迈普通信技术股份有限公司 | 一种sdn网络带内控制通道建立方法及设备 |
CN107911297B (zh) * | 2017-11-21 | 2020-03-24 | 迈普通信技术股份有限公司 | 一种sdn网络带内控制通道建立方法及设备 |
CN108600415A (zh) * | 2018-05-28 | 2018-09-28 | 郑州云海信息技术有限公司 | 一种虚拟网络访问外网的方法、系统及sdn控制器 |
CN109379234B (zh) * | 2018-11-30 | 2021-10-01 | 苏州盛科通信股份有限公司 | 基于Hybrid交换机的报文转发处理方法及系统 |
CN109379234A (zh) * | 2018-11-30 | 2019-02-22 | 盛科网络(苏州)有限公司 | 基于Hybrid交换机的报文转发处理方法及系统 |
CN111884838A (zh) * | 2020-07-14 | 2020-11-03 | 重庆广播电视大学重庆工商职业学院 | 一种sdn网络与非sdn网络通信的装置 |
CN112532524A (zh) * | 2020-11-24 | 2021-03-19 | 锐捷网络股份有限公司 | 一种报文处理方法及装置 |
CN113676409A (zh) * | 2021-08-16 | 2021-11-19 | 北京全路通信信号研究设计院集团有限公司 | 一种报文转发方法、装置、电子设备以及存储介质 |
CN113676409B (zh) * | 2021-08-16 | 2023-04-18 | 北京全路通信信号研究设计院集团有限公司 | 一种报文转发方法、装置、电子设备以及存储介质 |
CN116155837A (zh) * | 2022-11-16 | 2023-05-23 | 天翼云科技有限公司 | 一种虚拟交换机的报文转发方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2016045637A1 (en) | 2016-03-31 |
US20170237655A1 (en) | 2017-08-17 |
CN105450532B (zh) | 2018-10-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105450532A (zh) | 软件定义网络中的三层转发方法及装置 | |
US10826829B2 (en) | Scalable handling of BGP route information in VXLAN with EVPN control plane | |
EP3065358B1 (en) | Method and device for message forwarding | |
CN104869042B (zh) | 报文转发方法和装置 | |
US20130259050A1 (en) | Systems and methods for multi-level switching of data frames | |
CN101552727B (zh) | 一种报文发送和接收方法及运营商边缘路由器 | |
CN102185782B (zh) | 多链接透明传输互连网络的数据发送方法及其装置 | |
US20130003747A1 (en) | Efficient trill forwarding | |
WO2016192686A1 (zh) | 数据报文转发 | |
CN105264493A (zh) | 信息中心网络上的动态虚拟机迁移 | |
CN104350714A (zh) | 一种报文转发方法和VxLAN网关 | |
EP2654250A2 (en) | Virtual local area network identity transformation method and apparatus | |
US20140146710A1 (en) | Trill Network Communications Across an IP Network | |
WO2018171529A1 (zh) | 一种实现双控制平面的方法、装置、计算机存储介质 | |
CN105515992A (zh) | Vxlan网络中的流表项处理方法及装置 | |
CN104125128A (zh) | Linux软桥支持VLAN的方法 | |
EP3069471A1 (en) | Optimized multicast routing in a clos-like network | |
CN105453513A (zh) | 报文转发方法、转发表项下发方法及网络设备 | |
CN102291305B (zh) | 实现6to4中继路由的方法和设备以及报文转发方法 | |
CN104219149B (zh) | 一种基于虚连接的报文传输方法和设备 | |
CN104780090A (zh) | Vpn组播传输的方法、装置、pe设备 | |
CN105933235A (zh) | 数据通信方法及装置 | |
CN110620715B (zh) | 虚拟扩展局域网通信方法、隧道端点和控制器 | |
CN105515850A (zh) | 利用OpenFlow控制器和配置点实现对ForCES转发件的控制管理方法 | |
CN101841481B (zh) | 虚拟专用网络路由转发实例的实现方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Applicant after: Xinhua three Technology Co., Ltd. Address before: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Applicant before: Huasan Communication Technology Co., Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |