CN108632122B - 一种实现双控制平面的方法、装置 - Google Patents
一种实现双控制平面的方法、装置 Download PDFInfo
- Publication number
- CN108632122B CN108632122B CN201710165894.3A CN201710165894A CN108632122B CN 108632122 B CN108632122 B CN 108632122B CN 201710165894 A CN201710165894 A CN 201710165894A CN 108632122 B CN108632122 B CN 108632122B
- Authority
- CN
- China
- Prior art keywords
- arp
- protocol stack
- message
- virtual interface
- learning
- 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
Images
Classifications
-
- 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
- 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
-
- 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/4604—LAN interconnection over a backbone network, e.g. Internet, Frame Relay
-
- 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/04—Network management architectures or arrangements
- H04L41/044—Network management architectures or arrangements comprising hierarchical management structures
-
- 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/0894—Policy-based network configuration management
-
- 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/0895—Configuration of virtualised networks or elements, e.g. virtualised network function or OpenFlow elements
-
- 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/12—Discovery or management of network topologies
-
- 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/34—Signalling channels for network management communication
- H04L41/342—Signalling channels for network management communication between virtual entities, e.g. orchestrators, SDN or NFV entities
-
- 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/40—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using virtualisation of network functions or resources, e.g. SDN or NFV entities
-
- 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/20—Hop count for routing purposes, e.g. TTL
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/70—Virtual switches
-
- 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/4604—LAN interconnection over a backbone network, e.g. Internet, Frame Relay
- H04L2012/4629—LAN interconnection over a backbone network, e.g. Internet, Frame Relay using multilayer switching, e.g. layer 3 switching
-
- 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
-
- 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/08—Learning-based routing, e.g. using neural networks or artificial intelligence
-
- 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/74—Address processing for routing
Abstract
本发明公开了一种实现双控制平面的方法、装置,所述方法包括:在三层交换设备上设置第一控制平面和第二控制平面的地址解析协议ARP学习机制,其中,所述第一控制平面的优先级高于所述第二控制平面的优先级;在三层交换设备上设置桥接口,所述桥接口绑定第一虚拟接口和第二虚拟接口,其中,所述第一虚拟接口与所述第一控制平面相对应,所述第二虚拟接口与所述第二控制平面相对应;在二层交换设备上设置ARP报文转发机制;基于所述三层交换设备上的ARP学习机制,对ARP进行学习;基于所述三层交换设备上的桥接口对第一控制平面与第二控制平面之间流量进行转发;基于所述二层交换设备上ARP报文转发机制,对ARP报文进行转发。
Description
技术领域
本发明涉及以太网数据中心领域中的数据交换技术,尤其涉及一种实现双控制平面的方法、装置。
背景技术
软件定义网络(SDN,Software Defined Network),是Emulex网络一种新型网络创新架构,是网络虚拟化的一种实现方式,其核心技术OpenFlow通过将网络设备控制面与数据面分离开来,从而实现了网络流量的灵活控制,使网络作为管道变得更加智能。
传统IT架构中的网络,根据业务需求部署上线以后,如果业务需求发生变动,重新修改相应网络设备(路由器、交换机、防火墙)上的配置是一件非常繁琐的事情。在互联网/移动互联网瞬息万变的业务环境下,网络的高稳定与高性能还不足以满足业务需求,灵活性和敏捷性反而更为关键。SDN所做的事是将网络设备上的控制权分离出来,由集中的控制器管理,无须依赖底层网络设备(路由器、交换机、防火墙),屏蔽了来自底层网络设备的差异。而控制权是完全开放的,用户可以自定义任何想实现的网络路由和传输规则策略,从而更加灵活和智能。
近年来由于数据中心的网络虚拟化要求,SDN技术迅速崛起,SDN为网络设计带来了极大便利,SDN时代的网络,不再是以设备为中心,而是以应用为中心,应用驱动网络变革。这就需要很多深度定制的工作,云计算网络尤其如此。
虽然SDN在网络设备组网的应用前景非常明朗,它所带来的技术革命也被广泛认可,但是目前全SDN网络的应用存在极高的风险,因为SDN网络完全受控于器控制,一旦控制器发生故障或者掉线会造成整个网络的瘫痪。
发明内容
为解决上述技术问题,本发明实施例提供了一种实现双控制平面的方法、装置。
本发明实施例提供的实现双控制平面的方法,包括:
在三层交换设备上设置第一控制平面和第二控制平面的地址解析协议(ARP,Address Resolution Protocol)学习机制,其中,所述第一控制平面的优先级高于所述第二控制平面的优先级;
在三层交换设备上设置桥接口,所述桥接口绑定第一虚拟接口和第二虚拟接口,其中,所述第一虚拟接口与所述第一控制平面相对应,所述第二虚拟接口与所述第二控制平面相对应;
在二层交换设备上设置ARP报文转发机制;
基于所述三层交换设备上的ARP学习机制,对ARP进行学习;基于所述三层交换设备上的桥接口对第一控制平面与第二控制平面之间流量进行转发;
基于所述二层交换设备上ARP报文转发机制,对ARP报文进行转发。
本发明实施例中,所述第一控制平面的ARP学习机制为自学习机制,所述第二控制平面的ARP学习机制为控制器下发机制。
本发明实施例中,所述基于所述三层交换设备上的ARP学习机制,对ARP进行学习,包括:
当所述三层交换设备接收到ARP报文时,查询本地路由表里是否存在所述ARP报文对应的ARP地址;
如果所述本地路由表里不存在所述ARP地址,则将所述ARP地址添加至所述本地路由表里,并且将所述ARP地址对应的表项标记为自学习;
如果所述本地路由表里存在所述ARP地址,且所述ARP地址对应的MAC地址与出端口对应的MAC地址一致时,将所述ARP地址对应的表项标记为自学习并对所述ARP地址对应的表项进行更新时间的刷新;
如果所述本地路由表里存在所述ARP地址,且所述ARP地址对应的MAC地址与出端口对应的MAC地址不一致时,依据所述ARP报文对应的ARP地址对所述本地路由表里中对应的表项进行覆盖,并且将所述ARP地址对应的表项标记为自学习。
本发明实施例中,所述基于所述三层交换设备上的ARP学习机制,对ARP进行学习,包括:
当所述三层交换设备从控制器接收到ARP流表添加消息时,查询本地路由表里是否存在所述ARP流表添加消息对应的ARP地址;
如果所述本地路由表里不存在所述ARP地址,则将所述ARP地址添加至所述本地路由表里,并且将所述ARP地址对应的表项标记为控制器下发;
如果所述本地路由表里存在所述ARP地址,且所述ARP地址对应的MAC地址与出端口对应的MAC地址一致时,则保持所述本地路由表不变;
如果所述本地路由表里存在所述ARP地址,且所述ARP地址对应的MAC地址与出端口对应的MAC地址不一致时,如果所述本地路由表里对应的表项标记为自学习,则保持所述本地路由表不变,如果所述本地路由表里对应的表项标记为控制器下发,则依据所述ARP流表添加消息对应的ARP地址对所述本地路由表里中对应的表项进行覆盖。
本发明实施例中,所述第一虚拟接口为IP协议栈虚拟接口,所述第二虚拟接口为SDN协议栈虚拟接口,其中,
所述三层交换设备通过所述IP协议栈虚拟接口将SDN网络的路由发布至出口路由器;
所述三层交换设备通过所述SDN协议栈虚拟接口接收控制器下发的流表。
本发明实施例中,所述三层交换设备包括:SDN协议栈模块、IP协议栈模块、收发包模块;
所述基于所述三层交换设备上的桥接口对第一控制平面与第二控制平面之间流量进行转发,包括:
SDN协议栈模块接收所述控制器发送的ARP请求,所述SDN协议栈模块在所述ARP请求上打上SDN协议栈虚拟接口的标记,并发送给收发包模块,通过所述收发包模块将所述SDN协议栈虚拟接口的标记替换为IP协议栈虚拟接口的标记,并发送给IP协议栈模块;
所述IP协议栈模块对ARP进行学习,在ARP应答中打上IP协议栈虚拟接口的标记,并发送给收发包模块,通过所述收发包模块将所述IP协议栈虚拟接口的标记替换为SDN协议栈虚拟接口的标记,并发送给SDN协议栈模块;
所述SDN协议栈模块将所述ARP应答发送给控制器,触发所述控制器根据所述ARP应答进行ARP学习。
本发明实施例中,所述三层交换设备包括:SDN协议栈模块、IP协议栈模块、收发包模块;
所述基于所述三层交换设备上的桥接口对第一控制平面与第二控制平面之间流量进行转发,包括:
针对南向流量的三层报文,当所述三层报文达到所述桥接口后没有查到路由时,将所述报文通过网段路由发送给IP协议栈模块;所述IP协议栈模块根据所述报文的目的IP进行路由查询,如果查询到IP协议栈虚拟接口的出口路由,则所述IP协议栈模块在所述报文上打上IP协议栈虚拟接口的标记;如果未查询到IP协议栈虚拟接口的出口路由,则所述IP协议栈模块触发自学习机制的APR学习;
所述IP协议栈模块将打上IP协议栈虚拟接口的标记的报文发送给收发包模块,通过所述收发包模块将所述IP协议栈虚拟接口的标记替换为SDN协议栈虚拟接口的标记,并发送给SDN协议栈模块;
所述SDN协议栈模块对所述报文进行封装后,发送给所述控制器,触发所述控制器进行ARP学习;
所述SDN协议栈模块接收所述控制器下发的流表。
本发明实施例中,所述基于所述二层交换设备上ARP报文转发机制,对ARP报文进行转发,包括:
所述二层交换设备接收到服务器发送的ARP报文时,将所述ARP报文发送给所述三层交换设备进行ARP学习,以及将所述ARP报文发送给控制器进行ARP学习。
本发明另一实施例提供的实现双控制平面的方法,包括:
在SDN域配置好出口路由器的默认路由后,控制器主动触发所述默认路由的下一跳ARP学习;
报文达到三层交换设备的桥接口后没有查到路由时,通过报文触发所述控制器进行ARP学习;所述控制器将流表下发给所述三层交换设备。
本发明实施例中,所述在SDN域配置好出口路由器的默认路由后,控制器主动触发所述默认路由的下一跳ARP学习,包括:
SDN域配置好出口路由器的默认路由后,控制器发送ARP请求给所述三层交换设备的SDN协议栈模块,其中,所述SDN协议栈模块在所述ARP请求上打上SDN协议栈虚拟接口的标记,并发送给收发包模块,通过所述收发包模块将所述SDN协议栈虚拟接口的标记替换为IP协议栈虚拟接口的标记,并发送给IP协议栈模块;所述IP协议栈模块对ARP进行学习,在ARP应答中打上IP协议栈虚拟接口的标记,并发送给收发包模块,通过所述收发包模块将所述IP协议栈虚拟接口的标记替换为SDN协议栈虚拟接口的标记,并发送给SDN协议栈模块;
控制器接收所述SDN协议栈模块发送的ARP应答,根据所述ARP应答进行ARP学习。
本发明实施例中,所述报文达到三层交换设备的桥接口后没有查到路由时,通过报文触发所述控制器进行ARP学习,包括:
当三层报文达到所述桥接口后没有查到路由时,所述控制器接收SDN协议栈模块发送的封装后的报文,其中,所述封装后的报文通过以下方式生成:当三层报文达到所述桥接口后没有查到路由时,将所述报文通过网段路由发送给IP协议栈模块;所述IP协议栈模块根据所述报文的目的IP进行路由查询,如果查询到IP协议栈虚拟接口的出口路由,则所述IP协议栈模块在所述报文上打上IP协议栈虚拟接口的标记;所述IP协议栈模块将打上IP协议栈虚拟接口的标记的报文发送给收发包模块,通过所述收发包模块将所述IP协议栈虚拟接口的标记替换为SDN协议栈虚拟接口的标记,并发送给SDN协议栈模块;所述SDN协议栈模块对所述报文进行封装,得到封装后的报文;
所述控制器接收到所述封装后的报文后,进行ARP学习并更新流表;
所述控制器将更新的流表发送至三层交换设备中的SDN协议栈模块。
本发明实施例中,所述方法还包括:
所述控制器周期性地比较本地路由表和交换设备上的路由表,当所述本地路由表中的表项与交换设备上的路由表中的表项不一致时,将所述交换机上的表项更新至本地。
本发明实施例提供的实现双控制平面的装置,包括:
第一配置单元,用于在三层交换设备上设置第一控制平面和第二控制平面的ARP学习机制,其中,所述第一控制平面的优先级高于所述第二控制平面的优先级;在三层交换设备上设置桥接口,所述桥接口绑定第一虚拟接口和第二虚拟接口,其中,所述第一虚拟接口与所述第一控制平面相对应,所述第二虚拟接口与所述第二控制平面相对应;
第二配置单元,用于在二层交换设备上设置ARP报文转发机制;
第一处理单元,用于基于所述三层交换设备上的ARP学习机制,对ARP进行学习;基于所述三层交换设备上的桥接口对第一控制平面与第二控制平面之间流量进行转发;
第二处理单元,用于基于所述二层交换设备上ARP报文转发机制,对ARP报文进行转发。
本发明实施例中,所述第一控制平面的ARP学习机制为自学习机制,所述第二控制平面的ARP学习机制为控制器下发机制。
本发明实施例中,所述第一处理单元包括:
第一学习子单元,用于当所述三层交换设备接收到ARP报文时,查询本地路由表里是否存在所述ARP报文对应的ARP地址;如果所述本地路由表里不存在所述ARP地址,则将所述ARP地址添加至所述本地路由表里,并且将所述ARP地址对应的表项标记为自学习;如果所述本地路由表里存在所述ARP地址,且所述ARP地址对应的MAC地址与出端口对应的MAC地址一致时,将所述ARP地址对应的表项标记为自学习并对所述ARP地址对应的表项进行更新时间的刷新;如果所述本地路由表里存在所述ARP地址,且所述ARP地址对应的MAC地址与出端口对应的MAC地址不一致时,依据所述ARP报文对应的ARP地址对所述本地路由表里中对应的表项进行覆盖,并且将所述ARP地址对应的表项标记为自学习。
本发明实施例中,所述第一处理单元包括:
第二学习子单元,用于当所述三层交换设备从控制器接收到ARP流表添加消息时,查询本地路由表里是否存在所述ARP流表添加消息对应的ARP地址;如果所述本地路由表里不存在所述ARP地址,则将所述ARP地址添加至所述本地路由表里,并且将所述ARP地址对应的表项标记为控制器下发;如果所述本地路由表里存在所述ARP地址,且所述ARP地址对应的MAC地址与出端口对应的MAC地址一致时,则保持所述本地路由表不变;如果所述本地路由表里存在所述ARP地址,且所述ARP地址对应的MAC地址与出端口对应的MAC地址不一致时,如果所述本地路由表里对应的表项标记为自学习,则保持所述本地路由表不变,如果所述本地路由表里对应的表项标记为控制器下发,则依据所述ARP流表添加消息对应的ARP地址对所述本地路由表里中对应的表项进行覆盖。
本发明实施例中,所述第一虚拟接口为IP协议栈虚拟接口,所述第二虚拟接口为SDN协议栈虚拟接口;其中,
所述三层交换设备通过所述IP协议栈虚拟接口将SDN网络的路由发布至出口路由器;
所述三层交换设备通过所述SDN协议栈虚拟接口接收控制器下发的流表。
本发明实施例中,所述三层交换设备包括:SDN协议栈模块、IP协议栈模块、收发包模块;其中,
所述SDN协议栈模块接收所述控制器发送的ARP请求,所述SDN协议栈模块在所述ARP请求上打上SDN协议栈虚拟接口的标记,并发送给收发包模块,通过所述收发包模块将所述SDN协议栈虚拟接口的标记替换为IP协议栈虚拟接口的标记,并发送给IP协议栈模块;
所述IP协议栈模块对ARP进行学习,在ARP应答中打上IP协议栈虚拟接口的标记,并发送给收发包模块,通过所述收发包模块将所述IP协议栈虚拟接口的标记替换为SDN协议栈虚拟接口的标记,并发送给SDN协议栈模块;
所述SDN协议栈模块将所述ARP应答发送给控制器,触发所述控制器根据所述ARP应答进行ARP学习。
本发明实施例中,所述三层交换设备包括:SDN协议栈模块、IP协议栈模块、收发包模块;其中,
针对南向流量的三层报文,当所述三层报文达到所述桥接口后没有查到路由时,将所述报文通过网段路由发送给IP协议栈模块;所述IP协议栈模块根据所述报文的目的IP进行路由查询,如果查询到IP协议栈虚拟接口的出口路由,则所述IP协议栈模块在所述报文上打上IP协议栈虚拟接口的标记;如果未查询到IP协议栈虚拟接口的出口路由,则所述IP协议栈模块触发自学习机制的APR学习;
所述IP协议栈模块将打上IP协议栈虚拟接口的标记的报文发送给收发包模块,通过所述收发包模块将所述IP协议栈虚拟接口的标记替换为SDN协议栈虚拟接口的标记,并发送给SDN协议栈模块;
所述SDN协议栈模块对所述报文进行封装后,发送给所述控制器,触发所述控制器进行ARP学习;
所述SDN协议栈模块接收所述控制器下发的流表。
本发明实施例中,所述第二处理单元,具体用于当所述二层交换设备接收到服务器发送的ARP报文时,将所述ARP报文发送给所述三层交换设备进行ARP学习,以及将所述ARP报文发送给控制器进行ARP学习。
本发明另一实施例提供的实现双控制平面的装置,包括:
第一学习单元,用于在SDN域配置好出口路由器的默认路由后,控制器主动触发所述默认路由的下一跳ARP学习;
第二学习单元,用于报文达到三层交换设备的桥接口后没有查到路由时,通过报文触发所述控制器进行ARP学习;
流表下发单元,用于将流表下发给所述三层交换设备。
本发明实施例中,所述第一学习单元,具体用于:SDN域配置好出口路由器的默认路由后,发送ARP请求给所述三层交换设备的SDN协议栈模块,其中,所述SDN协议栈模块在所述ARP请求上打上SDN协议栈虚拟接口的标记,并发送给收发包模块,通过所述收发包模块将所述SDN协议栈虚拟接口的标记替换为IP协议栈虚拟接口的标记,并发送给IP协议栈模块;所述IP协议栈模块对ARP进行学习,在ARP应答中打上IP协议栈虚拟接口的标记,并发送给收发包模块,通过所述收发包模块将所述IP协议栈虚拟接口的标记替换为SDN协议栈虚拟接口的标记,并发送给SDN协议栈模块;接收所述SDN协议栈模块发送的ARP应答,根据所述ARP应答进行ARP学习。
本发明实施例中,所述第二学习单元,具体用于:当三层报文达到所述桥接口后没有查到路由时,所述控制器接收SDN协议栈模块发送的封装后的报文,其中,所述封装后的报文通过以下方式生成:当三层报文达到所述桥接口后没有查到路由时,将所述报文通过网段路由发送给IP协议栈模块;所述IP协议栈模块根据所述报文的目的IP进行路由查询,如果查询到IP协议栈虚拟接口的出口路由,则所述IP协议栈模块在所述报文上打上IP协议栈虚拟接口的标记;所述IP协议栈模块将打上IP协议栈虚拟接口的标记的报文发送给收发包模块,通过所述收发包模块将所述IP协议栈虚拟接口的标记替换为SDN协议栈虚拟接口的标记,并发送给SDN协议栈模块;所述SDN协议栈模块对所述报文进行封装,得到封装后的报文;接收到所述封装后的报文后,进行ARP学习并更新流表。
本发明实施例中,所述装置还包括:第三学习单元,用于周期性地比较本地路由表和交换设备上的路由表,当所述本地路由表中的表项与交换设备上的路由表中的表项不一致时,将所述交换机上的表项更新至本地。
本发明实施例的技术方案中,在三层交换设备上设置第一控制平面和第二控制平面的ARP学习机制,其中,所述第一控制平面的优先级高于所述第二控制平面的优先级;在三层交换设备上设置桥接口,所述桥接口绑定第一虚拟接口和第二虚拟接口,其中,所述第一虚拟接口与所述第一控制平面相对应,所述第二虚拟接口与所述第二控制平面相对应;在二层交换设备上设置ARP报文转发机制;基于所述三层交换设备上的ARP学习机制,对ARP进行学习;基于所述三层交换设备上的桥接口对第一控制平面与第二控制平面之间流量进行转发;基于所述二层交换设备上ARP报文转发机制,对ARP报文进行转发。采用本发明实施例的技术方案,利用SDN网络带来的便利的同时还增加了整个网络的稳定性,当控制器发生故障或者掉线时整个网络还能够依据传统控制平面保持路由的顺利进行,在数据中心领域中有极高的实用性。
附图说明
附图以示例而非限制的方式大体示出了本文中所讨论的各个实施例。
图1为本发明实施例的实现双控制平面的方法的流程示意图一;
图2为本发明实施例的实现双控制平面的方法的流程示意图二;
图3为本发明实施例的实现双控制平面的方法的流程示意图三;
图4为本发明实施例的网络组网的拓扑图;
图5为本发明实施例的网络设备的结构示意图一;
图6为本发明实施例的网络设备的结构示意图二;
图7为本发明实施例的桥接口的工作流程图;
图8为本发明实施例的控制器触发学习下一跳ARP的流程图;
图9为本发明实施例的流量触发控制器学习ARP的流程图;
图10为本发明实施例的实现双控制平面的装置的结构组成示意图一;
图11为本发明实施例的实现双控制平面的装置的结构组成示意图二。
具体实施方式
为了能够更加详尽地了解本发明实施例的特点与技术内容,下面结合附图对本发明实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本发明实施例。
本发明实施例给出一种SDN控制平面和传统控制平面混跑的方案,即交换设备即可以运行在传统控制平面,也可以运行在SDN控制平面。由于SDN控制平面和传统控制平面共存,所以要解决SDN控制平面和传统控制平面双大脑听谁指挥的问题,即表项下发优先级的问题;由于SDN控制平面和传统控制平面共存,数据中心内部网络与外部路由器之间的接口的流量有的需要走传统控制平面有的要走SDN控制平面,如何处理控制平面之间的流量也是本发明实施例解决的问题。传统控制平面需要跑各种路由协议学习动态路由,以及学习下一跳路由;SDN控制平面需要报文能触发控制器学习精确流表。本发明实施例将从双控制平面表项优先级控制、SDN网络与传统网络桥接、南向流量和北向流量的处理以及接入设备ARP处理四个方面系统阐述本发明实施例的技术方案,以下为本发明实施例的具体实施细节。
图1为本发明实施例的实现双控制平面的方法的流程示意图一,本示例中的实现双控制平面的方法应用于交换设备侧,如图1所示,所述方法包括以下步骤:
步骤101:在三层交换设备上设置第一控制平面和第二控制平面的ARP学习机制,其中,所述第一控制平面的优先级高于所述第二控制平面的优先级。
预先,对三层交换设备进行三层虚拟可扩展局域网(VXLAN,Virtual eXtensibleLAN)的配置。
如图4所示的网络拓扑中,数据中心内部包括多组网络设备结构,例如,A/B设备、C/D设备、ServerA/ServerB;E/F设备、G/H设备、ServerC/ServerD。其中,A、B、E、F设备为三层交换设备,而C、D、G、H为二层交换设备。本发明实施例以A/B设备、C/D设备、ServerA/ServerB,为例进行解释说明,E/F设备、G/H设备、ServerC/ServerD同理。
如图4所示的网络拓扑中,A/B设备与C/D设备之间走VXLAN隧道,A/B设备在传统控制平面配置L3VXLAN相关配置,C/D设备在传统控制平面配置L2VXLAN相关配置。
如图4所示的网络拓扑中,A/B设备与控制器相连,此外,C/D设备也与控制器相连。
本发明实施例中,所述第一控制平面的ARP学习机制为自学习机制,所述第二控制平面的ARP学习机制为控制器下发机制。
如图4所示的网络拓扑中,对于网络设备A/B的VXLAN ARP的学习同时支持传统自学习以及控制器下发两个控制面,且自学习的优先级始终最高。
步骤102:在三层交换设备上设置桥接口,所述桥接口绑定第一虚拟接口和第二虚拟接口,其中,所述第一虚拟接口与所述第一控制平面相对应,所述第二虚拟接口与所述第二控制平面相对应。
步骤103:在二层交换设备上设置ARP报文转发机制。
步骤104:基于所述三层交换设备上的ARP学习机制,对ARP进行学习;基于所述三层交换设备上的桥接口对第一控制平面与第二控制平面之间流量进行转发。
本发明实施例中,所述基于所述三层交换设备上的ARP学习机制,对ARP进行学习,包括:
当所述三层交换设备接收到ARP报文时,查询本地路由表里是否存在所述ARP报文对应的ARP地址;
如果所述本地路由表里不存在所述ARP地址,则将所述ARP地址添加至所述本地路由表里,并且将所述ARP地址对应的表项标记为自学习;
如果所述本地路由表里存在所述ARP地址,且所述ARP地址对应的MAC地址与出端口对应的MAC地址一致时,将所述ARP地址对应的表项标记为自学习并对所述ARP地址对应的表项进行更新时间的刷新;
如果所述本地路由表里存在所述ARP地址,且所述ARP地址对应的MAC地址与出端口对应的MAC地址不一致时,依据所述ARP报文对应的ARP地址对所述本地路由表里中对应的表项进行覆盖,并且将所述ARP地址对应的表项标记为自学习。
本发明实施例中,所述基于所述三层交换设备上的ARP学习机制,对ARP进行学习,包括:
当所述三层交换设备从控制器接收到ARP流表添加消息时,查询本地路由表里是否存在所述ARP流表添加消息对应的ARP地址;
如果所述本地路由表里不存在所述ARP地址,则将所述ARP地址添加至所述本地路由表里,并且将所述ARP地址对应的表项标记为控制器下发;
如果所述本地路由表里存在所述ARP地址,且所述ARP地址对应的MAC地址与出端口对应的MAC地址一致时,则保持所述本地路由表不变;
如果所述本地路由表里存在所述ARP地址,且所述ARP地址对应的MAC地址与出端口对应的MAC地址不一致时,如果所述本地路由表里对应的表项标记为自学习,则保持所述本地路由表不变,如果所述本地路由表里对应的表项标记为控制器下发,则依据所述ARP流表添加消息对应的ARP地址对所述本地路由表里中对应的表项进行覆盖。
上述方案中,提出了双控制平面表项优先级的控制,具体地:
如图4所示的网络拓扑中,传统自学习(对应自学习机制)具体包括:当网络设备A/B从业务端口收到VXLAN ARP报文时,会按照传统自学习流程对该ARP报文进行动态学习,也即自学习。1)若本地路由表里没有该ARP地址,则直接添加表项,FLAG标记为动态学习或自学习;2)若本地已存在该ARP地址,且MAC和出端口信息一致,FLAG标记为动态学习修改ARP的状态为动态学习或自学习,3)如果MAC和出端口不一致覆盖原有表项,FLAG标记为动态学习或自学习。
如图4所示的网络拓扑中,控制器下发ARP具体包括:当网络设备A/B从控制器收到ARP流表添加消息时,1)若本地路由表中没有该ARP地址,则直接添加表项,FLAG标记为控制器下发;2)若本地已存在该ARP地址,且MAC和出端口信息一致,则不做任何处理。3)若本地已存在该ARP地址,但MAC和出端口信息不一致,若原有的FLAG标记为动态学习的,不做任何处理,若原有的FLAG标记是控制器下发的,则覆盖原有的表项。
传统控制平面学习到的VXLAN ARP的优先级高,控制器对本身保存的ARP和交换机上的ARP表周期进行对比来保障两者之间的同步;若控制器有而交换机上没有则下发给交换机,如果两者都有,但是出口不一致,则控制器取回交换机上的覆盖本地的。
通过上述方法当控制器异常时流量会按照传统控制平面学习的表项转发,当传统平面没有学习到相关表项时流量会按照控制器下发的流表转发流量,当虚拟机迁移场景发生时,控制器上的表项与传统控制平面学习到的表项数据不同步时,控制器会取回传统平面学到的表项覆盖本地实现同步。
基于图1所示的方法,本发明实施例的方案还可以包括:
所述第一虚拟接口为IP协议栈虚拟接口,所述第二虚拟接口为SDN协议栈虚拟接口;其中,
所述三层交换设备通过所述IP协议栈虚拟接口将SDN网络的路由发布至出口路由器;
所述三层交换设备通过所述SDN协议栈虚拟接口接收控制器下发的流表。
在一实施方式中,所述三层交换设备包括:SDN协议栈模块、IP协议栈模块、收发包模块;SDN协议栈模块接收所述控制器发送的ARP请求,所述SDN协议栈模块在所述ARP请求上打上SDN协议栈虚拟接口的标记,并发送给收发包模块,通过所述收发包模块将所述SDN协议栈虚拟接口的标记替换为IP协议栈虚拟接口的标记,并发送给IP协议栈模块;
所述IP协议栈模块对ARP进行学习,在ARP应答中打上IP协议栈虚拟接口的标记,并发送给收发包模块,通过所述收发包模块将所述IP协议栈虚拟接口的标记替换为SDN协议栈虚拟接口的标记,并发送给SDN协议栈模块;
所述SDN协议栈模块将所述ARP应答发送给控制器,触发所述控制器根据所述ARP应答进行ARP学习。
在另一实施方式中,针对南向流量的三层报文,当所述三层报文达到所述桥接口后没有查到路由时,将所述报文通过网段路由发送给IP协议栈模块;所述IP协议栈模块根据所述报文的目的IP进行路由查询,如果查询到IP协议栈虚拟接口的出口路由,则所述IP协议栈模块在所述报文上打上IP协议栈虚拟接口的标记;如果未查询到IP协议栈虚拟接口的出口路由,则所述IP协议栈模块触发自学习机制的APR学习;
所述IP协议栈模块将打上IP协议栈虚拟接口的标记的报文发送给收发包模块,通过所述收发包模块将所述IP协议栈虚拟接口的标记替换为SDN协议栈虚拟接口的标记,并发送给SDN协议栈模块;
所述SDN协议栈模块对所述报文进行封装后,发送给所述控制器,触发所述控制器进行ARP学习;
所述SDN协议栈模块接收所述控制器下发的流表。
上述方案中,提出了内部网络与外部网络的桥接、南向流量和北向流量的处理,具体地:
1)内部网络与外部网络的桥接
由于采用传统控制平面和SDN控制平面共存的模式,这就对于内部网络和外部网络桥接的端口的报文收发提出了挑战,因为需要采用一种合理的方式让报文上送到对的协议栈(传统IP协议栈与SDN协议栈)。
对于SDN域和传统域之间的流量的桥接采用桥接口的方式,该接口即可以发挥传统控制平面现有路由协议的特点将内部SDN网络的路由发布到上行路由器(出口路由器)从而将外部发往数据中心(DC,Data Center)内的流量引下来,同时又能响应控制器的指令承担由SDN内部发往外部流量的流表出口。桥接口是普通物理口和SDN端口概念的延伸,普通物理口对于接受到的协议报文只能上送到传统IPSTACK进程,SDN端口对于接收到协议报文只能上送到SDN相关协议进程。对于传统控制平面和SDN控制平面共存的场景,这里提出桥接口的概念,即通过这个接口即能发布传统路由协议,又能受控制器的控制作为SDN域到域外的接口。
由于交换机的两个控制平面(传统协议栈控制平面和SDN控制平面)属于不同的进程,对于桥接口会绑定两个虚拟接口,分别称为传统协议栈虚拟接口以及SDN控制平面虚拟接口,我们在下文中分别称为IPSTACK_VP以及SDN_VP。这两个虚拟接口与桥接口的物理口绑定,绑定关系在用户配置桥接端口后下发。交换机底层不需要保存虚拟出口路由,只需要保存实际转发使用的路由,但要实现传统IP协议栈进程与SDN协议进程之间的报文上送通道,即要根据报文下发(来自传统IP协议栈进程与SDN协议进程)信息中的虚拟出口标记(IPSTACK_VP或者SDN_VP),决定将报文上送给相应的进程。此外,对于南向流量的转发控制器会给传统控制平面IP协议栈下发一个网段路由出口指向IPSTACK_VP,该网段是虚拟机所在网络的网段。这样当南向数据报文没有匹配到精确的流表时,会走该网段路由上送到控制器,控制器会下发精确流表的表项。桥接口的实现流程可参见附图7所述。
通过引入桥接口的方案,采用虚拟接口的方式在不改动现有交换机传统控制平面数据转发以及协议报文上送流程的情况下,实现传统平面和SDN平面数据报文和协议报文互不干扰。
2)南向流量和北向流量的处理
对于北向流量,SDN域配置默认出口路由后,控制器会主动触发默认路由下一跳ARP学习。控制器发送ARP请求给交换机的SDN协议栈,SDN协议栈会将此报文带上SDN_VP的出口标记,然后这个报文会送个IP协议栈,IP协议栈负责在传统的控制平面学到ARP后,再给交换机SDN协议栈发送ARP回复报文并打上IPSTACK_VP的标记,最后SDN控制器收到ARP应答后,学习到ARP,下发默认路由的相关流表。这里实现两个协议栈的交换采用收发包模块换回的方式实现,即两个协议栈不直接交换信息通过收发包模块中转,这样的好处是不需要改动现有交换机协议栈收发包的处理模式。
对于南向流量最关键的处理是报文到达桥接口后没有查到路由要触发控制学习主机ARP,然后下发给交换机下发流表。交换机在收到三层报文后如果没有路由会走网段路由上送给传统IP协议栈,IP协议栈如果能匹配IPSTACK_VP,就会打上IPSTACK_VP的标记,然后SDN协议栈就会收到这个报文,SDN协议栈负责封SDN的协议报文(例如OPEN_FLOW)后送SDN控制器。SDN控制器收到后,触发ARP学习,下发内网主机路由。
通过上述方法由南到北的流量在没有下一跳的情况下控制器可以在传统控制平面上学到下一跳的出口信息然后下发外网方向路由;由北向南进入数据中心内部的流量在没有匹配到精确流表的情况下数据报文通过上传到传统控制平面的协议栈然后再桥接到SDN相关协议栈并触发控制器下发精确流表。
步骤105:基于所述二层交换设备上ARP报文转发机制,对ARP报文进行转发。
本发明实施例中,所述基于所述二层交换设备上ARP报文转发机制,对ARP报文进行转发,包括:
所述二层交换设备接收到服务器发送的ARP报文时,将所述ARP报文发送给所述三层交换设备进行ARP学习,以及将所述ARP报文发送给控制器进行ARP学习。
图2为本发明实施例的实现双控制平面的方法的流程示意图二,本示例中的实现双控制平面的方法应用于控制器侧,如图2所示,所述方法包括以下步骤:
步骤201:在SDN域配置好出口路由器的默认路由后,控制器主动触发所述默认路由的下一跳ARP学习。
具体地,SDN域配置好出口路由器的默认路由后,控制器发送ARP请求给所述三层交换设备的SDN协议栈模块,其中,所述SDN协议栈模块在所述ARP请求上打上SDN协议栈虚拟接口的标记,并发送给收发包模块,通过所述收发包模块将所述SDN协议栈虚拟接口的标记替换为IP协议栈虚拟接口的标记,并发送给IP协议栈模块;所述IP协议栈模块对ARP进行学习,在ARP应答中打上IP协议栈虚拟接口的标记,并发送给收发包模块,通过所述收发包模块将所述IP协议栈虚拟接口的标记替换为SDN协议栈虚拟接口的标记,并发送给SDN协议栈模块;控制器接收所述SDN协议栈模块发送的ARP应答,根据所述ARP应答进行ARP学习。
上述方案中,对于北向流量,SDN域配置默认出口路由后,控制器会主动触发默认路由下一跳ARP学习。控制器发送ARP请求给交换机的SDN协议栈,SDN协议栈会将此报文带上SDN_VP的出口标记,然后这个报文会送个IP协议栈,IP协议栈负责在传统的控制平面学到ARP后,再给交换机SDN协议栈发送ARP回复报文并打上IPSTACK_VP的标记,最后SDN控制器收到ARP应答后,学习到ARP,下发默认路由的相关流表。这里实现两个协议栈的交换采用收发包模块换回的方式实现,即两个协议栈不直接交换信息通过收发包模块中转,这样的好处是不需要改动现有交换机协议栈收发包的处理模式。
步骤202:报文达到三层交换设备的桥接口后没有查到路由时,通过报文触发所述控制器进行ARP学习;所述控制器将流表下发给所述三层交换设备。
具体地,当三层报文达到所述桥接口后没有查到路由时,所述控制器接收SDN协议栈模块发送的封装后的报文,其中,所述封装后的报文通过以下方式生成:当三层报文达到所述桥接口后没有查到路由时,将所述报文通过网段路由发送给IP协议栈模块;所述IP协议栈模块根据所述报文的目的IP进行路由查询,如果查询到IP协议栈虚拟接口的出口路由,则所述IP协议栈模块在所述报文上打上IP协议栈虚拟接口的标记;所述IP协议栈模块将打上IP协议栈虚拟接口的标记的报文发送给收发包模块,通过所述收发包模块将所述IP协议栈虚拟接口的标记替换为SDN协议栈虚拟接口的标记,并发送给SDN协议栈模块;所述SDN协议栈模块对所述报文进行封装,得到封装后的报文;所述控制器接收到所述封装后的报文后,进行ARP学习并更新流表;所述控制器将更新的流表发送至三层交换设备中的SDN协议栈模块。
上述方案中,对于南向流量最关键的处理是报文到达桥接口后没有查到路由要触发控制学习主机ARP,然后下发给交换机下发流表。交换机在收到三层报文后如果没有路由会走网段路由上送给传统IP协议栈,IP协议栈如果能匹配IPSTACK_VP,就会打上IPSTACK_VP的标记,然后SDN协议栈就会收到这个报文,SDN协议栈负责封SDN的协议报文(例如OPEN_FLOW)后送SDN控制器。SDN控制器收到后,触发ARP学习,下发内网主机路由。
本发明实施例中,由南到北的流量在没有下一跳的情况下控制器可以在传统控制平面上学到下一跳的出口信息然后下发外网方向路由;由北向南进入数据中心内部的流量在没有匹配到精确流表的情况下数据报文通过上传到传统控制平面的协议栈然后再桥接到SDN相关协议栈并触发控制器下发精确流表。
本发明实施例中,所述控制器周期性地比较本地路由表和交换设备上的路由表,当所述本地路由表中的表项与交换设备上的路由表中的表项不一致时,将所述交换机上的表项更新至本地。
图3为本发明实施例的实现双控制平面的方法的流程示意图三,本示例中的实现双控制平面的方法应用于交换设备侧,如图3所示,所述方法包括以下步骤:
步骤301:二层交换设备从业务接口接收ARP报文。
本发明实施例中,首先对所述二层交换设备进行二层VXLAN的配置;将所述二层交换设备连接至控制器,具体可参照图4所示的网络拓扑图。
步骤302:所述二层交换设备将所述ARP报文发送给三层交换设备时,同时将所述ARP报文发送给控制器。
本发明实施例中,二层交换设备(即与SERVER连接的网络设备)对下行口(与其他网络设备连接)和上行口(与SERVER连接的口)做不同的区分。对上行口,对ARP报文需要支持在普通传统控制平面转发(本地VLAN内的LOCAL转发以及进入VXLAN隧道终端(VTEP,VXLAN Tunnel End Point)隧道转发)的同时,还要对该ARP报文复制一份给控制器,对下行口,对ARP报文是遵循普通传统控制面的转发,无需复制和上送控制器。
通过上述方案,接入网络设备将SERVER发送的ARP报文给上游网络设备使上行网络设备在传统平面内学习ARP的同时还上送到控制器,这样在控制器和传统平面都能学习到ARP,从而实现双备份。
下面结合具体场景对本发明实施例的方案做进一步详细描述,以下以OPENFLOW协议类型的控制器为例进行说明。
图4为本发明的技术背景,服务器A、B、C、D分别单网卡接入网络设备C、D、G、H,与网络设备C、D、G、H的连接口为SDN实例口。网络设备C与网络设备D做堆叠配置,网络设备C负载分担连接网络设备A和网络设备B,网络设备D负载分担连接网络设备A和网络设备B。传统控制平面上配置网络设备C、D与网络设备A、B之间的VXLAN隧道,C/D做为L2VTEP接入,A和B做L3VXLAN网关。受控制器控制的端口分别是网络设备C以及网络设备D的SDN实例口以及网络设备A和网络设备B的桥接口。桥接口上启动路由协议,控制器可以将内部SDN网络的路由发布到外网路由器(出口路由器)上。由北向南的流量在网络设备C和D上走VXLAN的L2接入,报文上隧道后进入网络设备A/B,在此设备上解封装后查路由发送给外部路由器。由南到北的流量在网络设备A/B上查路由走L3VXLAN封装到隧道,到达网络C/D后VXLAN解封装后走L2转发到ServerA/ServerB。
图5为本发明所述的网络设备的主要部件图,主要包括数据配置模块、协议栈模块、收发包模块、转发控制模块。其中,协议栈模块分为SDN相关协议栈(例如OPENFLOW协议栈)和传统控制平面协议栈(例如IPSTACK),SDN相关协议栈负责将收到的报文封装成PACKET_IN报文发送给控制器或者解析控制器发送给交换机的协议报文,然后给网络设备下发控制器的指令;传统控制平面协议栈负责IP协议栈的统一处理。这里由于采用双平面控制,桥接口即有传统业务流量又有SDN流量,所以传统协议栈和SDN相关协议栈之间存在一些交互。交互是借助传统协议栈虚接口以及SDN控制平面虚拟接口即IPSTACK_VP以及SDN_VP实现的。桥接口的物理端口和这两个虚拟接口的绑定关系在用户配置混合端口后下发的。配置模块负责提供用户层配置接口,并且将该配置下发给转发控制模块,转发控制器模块负责记录该信息,并且向交换芯片下发SDN域的转发动作,本发明的系统框图如图6所示。
实施例一:网关设备双控制平面北向流量转发处理
如所述附图4所示,网络设备C/D为二层接入设备,网络设备A/B为三层网关设备。SERVER在向外部网络发送流量之前,由于内部IP(DIP)不是本网段的IP,所以要请求网关的目的MAC信息。
对于北向流量(从数据中心内部网络到外部网络方向),SERVER发出的报文的目的MAC为三层网关的MAC,即网络设备A/B的MAC,目的IP为外网IP。流量在接入网络设备上(即如附图4所示的网络设备C/D)查找二层精确流表(MAC表),如果查到走VXLAN隧道,网络设备C/D将报文封装VXLAN报文头然后传递给网络设备A/B,报文在网络设备A/B上查找控制器下发的默认流表,出口指向外部网络。
在网络设备A/B上下发的默认流表由SDN域控制器下发,配置默认路由后,控制器会主动触发下一跳ARP学习,整个学习的过程是从SDN控制平面向传统控制平面获取ARP。控制器学习默认路由下一跳ARP学习的过程如附图8所示,这个过程分为六步,分别对应图中的1、2、3、4、5、6:
(1)SDN域配置默认出口路由,控制器下发ARP请求报文给SDN相关协议栈。
(2)SDN相关协议栈将ARP请求报文(带SDN_VP出口标记)下发给交换机收发包模块。
(3)交换机收发包模块收到SDN协议栈下发的报文,如果带SDN_VP出口标记,就会根据映射关系将该虚拟端口转成IPSTACK_VP,然后上送传统IP协议栈平面。
(4)传统IP协议栈收到ARP请求,会回复ARP应答报文。传统IP协议栈下发ARP应答报文(带IPSTACK_VP出口标记)给收发包模块。
(5)收发包模块收到传统IP协议栈下发的报文包,如果带IPSTACK_VP出口标记,就会根据映射关系将改虚拟端口转成SDN_VP上送SDN协议栈,由SDN协议栈封装PACKET_IN头部后送SDN控制器。
(6)SDN控制器收到ARP应答后,学习到ARP,下发内网主机路由。
控制器下发了外部路由后,当SERVER发出的流量到达附图4所示的网络设备C/D后,在C/D设备封装VXLAN头进入VXLAN隧道指向所示网络设备A/B,到达网络设备A/B后进行VXLAN解封装,然后查询控制器下发的默认路由进入外网。
实施例二:网关设备双控制器平面南向流量处理
传统面通过桥接口上开启的路由协议,将内网网段路由发布给连接的外网路由器。将发往SDN内网的流量引下来。
流量到达如附图所示的网络设备A/B时,如果能查到精确表项(主机路由),则直接按照该表项的出口以及封装信息进入VXLAN隧道,将流量发给所述网络设备C/D,网络设备C/D将VXLAN报文解封装后,发给SERVER.
对于没有匹配主机路由的流量,网络设备A/B需要将流量上送到传统IP协议栈平面,然后通过传统协议栈平面通知触发SDN协议平面触发控制器学习SDN域内的主机流表,如附图9过程如下:
在网络设备A/B的桥接口上收到的数据包,转发模块如果查硬件路由表发现无主机路由,查询虚机所属网段的网段路由上送CPU。
(1)收发包模块收到CPU发送的数据报文后,将该数据报文上送到传统控制器平面的IP协议栈。
(2)在传统控制平面的IP协议栈,用报文的DIP查询路由,如果匹配到IPSTACK_VP出口路由,则传统控制平面的IP协议栈进程下发数据包(带IPSTACK_VP出口标记)给收发包模块。否则传统控制平面的IP协议栈进程触发传统面的ARP学习。
(3)收发包模块收到传统控制平面的IP协议栈进程下发的数据包,如果带IPSTACK_VP出口标记,则收发包模块根据虚拟端口的映射关系将其转换成相应的SDN_VP然后发给SDN协议栈进程,
(4)然后由其封装pkt in头部后送SDN控制器。
(5)SDN控制器收到后,触发ARP学习,发送给SDN协议栈。
(6)SDN相关协议栈将表项下发给转发模块。
上述过程完成后,相同的报文由外网发往内网时,报文进入网络设备A/B后,就会查找精确表项(主机路由)封装VXLAN报文头进入隧道,然后经由所述网络设备C/D解封装发给SERVER。
实施例三:接入网络设备ARP的学习处理
如图4所示,在网络设备C/D的传统的控制平面上配置L2VXLAN隧道并且配置VLAN与VNI的映射关系。所述网络设备C/D为二层VXLAN接入设备,所述网络设备A/B为三层VXLAN网关设备。
当SERVER要向外部网络发送流量前,因为DIP不是本网段所以需要发送ARP请求解决网关MAC。当网络设备C/D接收到Server发送过来的ARP请求时,对ARP报文封装VXLAN报文进入VTEP隧道,从而将这个封装了VXLAN报文头的ARP报文上送到了网络设备A/B,然后网络设备A/B在传统的控制平面学习这个VXLAN报文的ARP。
网络设备C/D在将该ARP报文引入VTEP隧道的同时还要将这个ARP报文复制一份上送到SDN相关协议栈进程,然后由该进程将报文按照openflow协议封装并上送给控制器,这样控制器就学到了这个ARP。
通过上述方法,接入网络设备将SERVER发送的ARP报文给上游网络设备使上行网络设备在传统平面内学习ARP的同时还上送到控制器,这样在控制器和传统平面都能学习到ARP,从而实现双备份,此外当虚机迁移时控制器也能在第一时间感知到虚机的变化。
对与下行口,即由网络设备A/B发给网络设备C/D的ARP报文遵循普通传统控制面的转发,无需复制和上送控制器。
实施例四:优先级控制
网络设备A/B上VXLAN的ARP的学习同时支持传统自学习以及控制器下发两个控制面,且自学习的优先级始终最高。如附图一所示,当网络设备A/B从业务端口收到ARP报文时,会按照传统自学习流程对该ARP进行动态学习,具体流程如下:
a)若本地路由表里没有该ARP地址,则直接添加表项,FLAG标记是动态学习。
b)若本地已存在该ARP地址,且MAC和出端口信息一致,则:
i若原有FLAG标记是动态学习的,则进行timeout的刷新;
ii若原有FLAG标记为控制器下发的,则将表项的FLAG修改为动态学习。
c)若本地已存在该ARP地址,但MAC或者出端口不一致,则覆盖原有表项,且将FLAG标记设置为动态学习。
当交换机从控制收到ARP流表添加消息时,也需要进行ARP的学习,具体过程如下:
a)若本地路由表中没有该ARP地址,则直接添加表项,FLAG标记为控制器下发;
b)若本地已存在该ARP地址,且MAC和出端口信息一致,则不做任何处理。
c)若本地已存在该ARP地址,但是MAC和出端口信息不一致,则
i若原有的FLAG标记为动态学习的,不做任何处理;
ii若原有的FLAG标记是控制器下发的,则覆盖原有的表项。
控制器对本身保存的ARP和交换机上的ARP表周期进行对比来保障两者之间的同步;若控制器有而交换机上没有则下发给交换机,如果两者都有,但是出口不一致,则控制器取回交换机上的覆盖本地的。
另外,网络设备C/D上VXLAN的MAC只受传统平面控制,通过自学习得到,并不受控制器的控制。
图10为本发明实施例的实现双控制平面的装置的结构组成示意图一,如图10所示,所述装置包括:
第一配置单元1001,用于在三层交换设备上设置第一控制平面和第二控制平面的ARP学习机制,其中,所述第一控制平面的优先级高于所述第二控制平面的优先级;在三层交换设备上设置桥接口,所述桥接口绑定第一虚拟接口和第二虚拟接口,其中,所述第一虚拟接口与所述第一控制平面相对应,所述第二虚拟接口与所述第二控制平面相对应;
第二配置单元1002,用于在二层交换设备上设置ARP报文转发机制;
第一处理单元1003,用于基于所述三层交换设备上的ARP学习机制,对ARP进行学习;基于所述三层交换设备上的桥接口对第一控制平面与第二控制平面之间流量进行转发;
第二处理单元1004,用于基于所述二层交换设备上ARP报文转发机制,对ARP报文进行转发。
本发明实施例中,所述第一控制平面的ARP学习机制为自学习机制,所述第二控制平面的ARP学习机制为控制器下发机制。
本发明实施例中,所述第一处理单元1003包括:
第一学习子单元,用于当所述三层交换设备接收到ARP报文时,查询本地路由表里是否存在所述ARP报文对应的ARP地址;如果所述本地路由表里不存在所述ARP地址,则将所述ARP地址添加至所述本地路由表里,并且将所述ARP地址对应的表项标记为自学习;如果所述本地路由表里存在所述ARP地址,且所述ARP地址对应的MAC地址与出端口对应的MAC地址一致时,将所述ARP地址对应的表项标记为自学习并对所述ARP地址对应的表项进行更新时间的刷新;如果所述本地路由表里存在所述ARP地址,且所述ARP地址对应的MAC地址与出端口对应的MAC地址不一致时,依据所述ARP报文对应的ARP地址对所述本地路由表里中对应的表项进行覆盖,并且将所述ARP地址对应的表项标记为自学习。
本发明实施例中,所述第一处理单元1003包括:
第二学习子单元,用于当所述三层交换设备从控制器接收到ARP流表添加消息时,查询本地路由表里是否存在所述ARP流表添加消息对应的ARP地址;如果所述本地路由表里不存在所述ARP地址,则将所述ARP地址添加至所述本地路由表里,并且将所述ARP地址对应的表项标记为控制器下发;如果所述本地路由表里存在所述ARP地址,且所述ARP地址对应的MAC地址与出端口对应的MAC地址一致时,则保持所述本地路由表不变;如果所述本地路由表里存在所述ARP地址,且所述ARP地址对应的MAC地址与出端口对应的MAC地址不一致时,如果所述本地路由表里对应的表项标记为自学习,则保持所述本地路由表不变,如果所述本地路由表里对应的表项标记为控制器下发,则依据所述ARP流表添加消息对应的ARP地址对所述本地路由表里中对应的表项进行覆盖。
本发明实施例中,所述第一虚拟接口为IP协议栈虚拟接口,所述第二虚拟接口为SDN协议栈虚拟接口;其中,
所述三层交换设备通过所述IP协议栈虚拟接口将SDN网络的路由发布至出口路由器;
所述三层交换设备通过所述SDN协议栈虚拟接口接收控制器下发的流表。
本发明实施例中,所述三层交换设备包括:SDN协议栈模块、IP协议栈模块、收发包模块;其中,
所述SDN协议栈模块接收所述控制器发送的ARP请求,所述SDN协议栈模块在所述ARP请求上打上SDN协议栈虚拟接口的标记,并发送给收发包模块,通过所述收发包模块将所述SDN协议栈虚拟接口的标记替换为IP协议栈虚拟接口的标记,并发送给IP协议栈模块;
所述IP协议栈模块对ARP进行学习,在ARP应答中打上IP协议栈虚拟接口的标记,并发送给收发包模块,通过所述收发包模块将所述IP协议栈虚拟接口的标记替换为SDN协议栈虚拟接口的标记,并发送给SDN协议栈模块;
所述SDN协议栈模块将所述ARP应答发送给控制器,触发所述控制器根据所述ARP应答进行ARP学习。
本发明实施例中,所述三层交换设备包括:SDN协议栈模块、IP协议栈模块、收发包模块;其中,
针对南向流量的三层报文,当所述三层报文达到所述桥接口后没有查到路由时,将所述报文通过网段路由发送给IP协议栈模块;所述IP协议栈模块根据所述报文的目的IP进行路由查询,如果查询到IP协议栈虚拟接口的出口路由,则所述IP协议栈模块在所述报文上打上IP协议栈虚拟接口的标记;如果未查询到IP协议栈虚拟接口的出口路由,则所述IP协议栈模块触发自学习机制的APR学习;
所述IP协议栈模块将打上IP协议栈虚拟接口的标记的报文发送给收发包模块,通过所述收发包模块将所述IP协议栈虚拟接口的标记替换为SDN协议栈虚拟接口的标记,并发送给SDN协议栈模块;
所述SDN协议栈模块对所述报文进行封装后,发送给所述控制器,触发所述控制器进行ARP学习;
所述SDN协议栈模块接收所述控制器下发的流表。
本发明实施例中,所述第二处理单元1004,具体用于当所述二层交换设备接收到服务器发送的ARP报文时,将所述ARP报文发送给所述三层交换设备进行ARP学习,以及将所述ARP报文发送给控制器进行ARP学习。
图11为本发明实施例的实现双控制平面的装置的结构组成示意图二,如图11所示,所述装置包括:
第一学习单元1101,用于在SDN域配置好出口路由器的默认路由后,控制器主动触发所述默认路由的下一跳ARP学习;
第二学习单元1102,用于报文达到三层交换设备的桥接口后没有查到路由时,通过报文触发所述控制器进行ARP学习;
流表下发单元1103,用于将流表下发给所述三层交换设备。
本发明实施例中,所述第一学习单元1101,具体用于:SDN域配置好出口路由器的默认路由后,发送ARP请求给所述三层交换设备的SDN协议栈模块,其中,所述SDN协议栈模块在所述ARP请求上打上SDN协议栈虚拟接口的标记,并发送给收发包模块,通过所述收发包模块将所述SDN协议栈虚拟接口的标记替换为IP协议栈虚拟接口的标记,并发送给IP协议栈模块;所述IP协议栈模块对ARP进行学习,在ARP应答中打上IP协议栈虚拟接口的标记,并发送给收发包模块,通过所述收发包模块将所述IP协议栈虚拟接口的标记替换为SDN协议栈虚拟接口的标记,并发送给SDN协议栈模块;接收所述SDN协议栈模块发送的ARP应答,根据所述ARP应答进行ARP学习。
本发明实施例中,所述第二学习单元1102,具体用于:当三层报文达到所述桥接口后没有查到路由时,所述控制器接收SDN协议栈模块发送的封装后的报文,其中,所述封装后的报文通过以下方式生成:当三层报文达到所述桥接口后没有查到路由时,将所述报文通过网段路由发送给IP协议栈模块;所述IP协议栈模块根据所述报文的目的IP进行路由查询,如果查询到IP协议栈虚拟接口的出口路由,则所述IP协议栈模块在所述报文上打上IP协议栈虚拟接口的标记;所述IP协议栈模块将打上IP协议栈虚拟接口的标记的报文发送给收发包模块,通过所述收发包模块将所述IP协议栈虚拟接口的标记替换为SDN协议栈虚拟接口的标记,并发送给SDN协议栈模块;所述SDN协议栈模块对所述报文进行封装,得到封装后的报文;接收到所述封装后的报文后,进行ARP学习并更新流表。
本发明实施例中,所述装置还包括第二学习单元,用于周期性地比较本地路由表和交换设备上的路由表,当所述本地路由表中的表项与交换设备上的路由表中的表项不一致时,将所述交换机上的表项更新至本地。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
Claims (16)
1.一种实现双控制平面的方法,其特征在于,所述方法包括:
在三层交换设备上设置第一控制平面和第二控制平面的地址解析协议ARP学习机制,其中,所述第一控制平面的优先级高于所述第二控制平面的优先级;
在三层交换设备上设置桥接口,所述桥接口绑定第一虚拟接口和第二虚拟接口,其中,所述第一虚拟接口与所述第一控制平面相对应,所述第二虚拟接口与所述第二控制平面相对应;
在二层交换设备上设置ARP报文转发机制;
基于所述三层交换设备上的ARP学习机制,对ARP进行学习;基于所述三层交换设备上的桥接口对第一控制平面与第二控制平面之间流量进行转发;
基于所述二层交换设备上ARP报文转发机制,对ARP报文进行转发。
2.根据权利要求1所述的方法,其特征在于,所述第一控制平面的ARP学习机制为自学习机制,所述第二控制平面的ARP学习机制为控制器下发机制。
3.根据权利要求2所述的方法,其特征在于,所述基于所述三层交换设备上的ARP学习机制,对ARP进行学习,包括:
当所述三层交换设备接收到ARP报文时,查询本地路由表里是否存在所述ARP报文对应的ARP地址;
如果所述本地路由表里不存在所述ARP地址,则将所述ARP地址添加至所述本地路由表里,并且将所述ARP地址对应的表项标记为自学习;
如果所述本地路由表里存在所述ARP地址,且所述ARP地址对应的MAC地址与出端口对应的MAC地址一致时,将所述ARP地址对应的表项标记为自学习并对所述ARP地址对应的表项进行更新时间的刷新;
如果所述本地路由表里存在所述ARP地址,且所述ARP地址对应的MAC地址与出端口对应的MAC地址不一致时,依据所述ARP报文对应的ARP地址对所述本地路由表里中对应的表项进行覆盖,并且将所述ARP地址对应的表项标记为自学习。
4.根据权利要求2所述的方法,其特征在于,所述基于所述三层交换设备上的ARP学习机制,对ARP进行学习,包括:
当所述三层交换设备从控制器接收到ARP流表添加消息时,查询本地路由表里是否存在所述ARP流表添加消息对应的ARP地址;
如果所述本地路由表里不存在所述ARP地址,则将所述ARP地址添加至所述本地路由表里,并且将所述ARP地址对应的表项标记为控制器下发;
如果所述本地路由表里存在所述ARP地址,且所述ARP地址对应的MAC地址与出端口对应的MAC地址一致时,则保持所述本地路由表不变;
如果所述本地路由表里存在所述ARP地址,且所述ARP地址对应的MAC地址与出端口对应的MAC地址不一致时,如果所述本地路由表里对应的表项标记为自学习,则保持所述本地路由表不变,如果所述本地路由表里对应的表项标记为控制器下发,则依据所述ARP流表添加消息对应的ARP地址对所述本地路由表里中对应的表项进行覆盖。
5.根据权利要求1所述的方法,其特征在于,所述第一虚拟接口为IP协议栈虚拟接口,所述第二虚拟接口为软件定义网络SDN协议栈虚拟接口,其中,
所述三层交换设备通过所述IP协议栈虚拟接口将SDN网络的路由发布至出口路由器;
所述三层交换设备通过所述SDN协议栈虚拟接口接收控制器下发的流表。
6.根据权利要求5所述的方法,其特征在于,所述三层交换设备包括:SDN协议栈模块、IP协议栈模块、收发包模块;
所述基于所述三层交换设备上的桥接口对第一控制平面与第二控制平面之间流量进行转发,包括:
SDN协议栈模块接收所述控制器发送的ARP请求,所述SDN协议栈模块在所述ARP请求上打上SDN协议栈虚拟接口的标记,并发送给收发包模块,通过所述收发包模块将所述SDN协议栈虚拟接口的标记替换为IP协议栈虚拟接口的标记,并发送给IP协议栈模块;
所述IP协议栈模块对ARP进行学习,在ARP应答中打上IP协议栈虚拟接口的标记,并发送给收发包模块,通过所述收发包模块将所述IP协议栈虚拟接口的标记替换为SDN协议栈虚拟接口的标记,并发送给SDN协议栈模块;
所述SDN协议栈模块将所述ARP应答发送给控制器,触发所述控制器根据所述ARP应答进行ARP学习。
7.根据权利要求5所述的方法,其特征在于,所述三层交换设备包括:SDN协议栈模块、IP协议栈模块、收发包模块;
所述基于所述三层交换设备上的桥接口对第一控制平面与第二控制平面之间流量进行转发,包括:
针对南向流量的三层报文,当所述三层报文达到所述桥接口后没有查到路由时,将所述报文通过网段路由发送给IP协议栈模块;所述IP协议栈模块根据所述报文的目的IP进行路由查询,如果查询到IP协议栈虚拟接口的出口路由,则所述IP协议栈模块在所述报文上打上IP协议栈虚拟接口的标记;如果未查询到IP协议栈虚拟接口的出口路由,则所述IP协议栈模块触发自学习机制的APR学习;
所述IP协议栈模块将打上IP协议栈虚拟接口的标记的报文发送给收发包模块,通过所述收发包模块将所述IP协议栈虚拟接口的标记替换为SDN协议栈虚拟接口的标记,并发送给SDN协议栈模块;
所述SDN协议栈模块对所述报文进行封装后,发送给所述控制器,触发所述控制器进行ARP学习;
所述SDN协议栈模块接收所述控制器下发的流表。
8.根据权利要求1所述的方法,其特征在于,所述基于所述二层交换设备上ARP报文转发机制,对ARP报文进行转发,包括:
所述二层交换设备接收到服务器发送的ARP报文时,将所述ARP报文发送给所述三层交换设备进行ARP学习,以及将所述ARP报文发送给控制器进行ARP学习。
9.一种实现双控制平面的装置,其特征在于,所述装置包括:
第一配置单元,用于在三层交换设备上设置第一控制平面和第二控制平面的ARP学习机制,其中,所述第一控制平面的优先级高于所述第二控制平面的优先级;在三层交换设备上设置桥接口,所述桥接口绑定第一虚拟接口和第二虚拟接口,其中,所述第一虚拟接口与所述第一控制平面相对应,所述第二虚拟接口与所述第二控制平面相对应;
第二配置单元,用于在二层交换设备上设置ARP报文转发机制;
第一处理单元,用于基于所述三层交换设备上的ARP学习机制,对ARP进行学习;基于所述三层交换设备上的桥接口对第一控制平面与第二控制平面之间流量进行转发;
第二处理单元,用于基于所述二层交换设备上ARP报文转发机制,对ARP报文进行转发。
10.根据权利要求9所述的装置,其特征在于,所述第一控制平面的ARP学习机制为自学习机制,所述第二控制平面的ARP学习机制为控制器下发机制。
11.根据权利要求10所述的装置,其特征在于,所述第一处理单元包括:
第一学习子单元,用于当所述三层交换设备接收到ARP报文时,查询本地路由表里是否存在所述ARP报文对应的ARP地址;如果所述本地路由表里不存在所述ARP地址,则将所述ARP地址添加至所述本地路由表里,并且将所述ARP地址对应的表项标记为自学习;如果所述本地路由表里存在所述ARP地址,且所述ARP地址对应的MAC地址与出端口对应的MAC地址一致时,将所述ARP地址对应的表项标记为自学习并对所述ARP地址对应的表项进行更新时间的刷新;如果所述本地路由表里存在所述ARP地址,且所述ARP地址对应的MAC地址与出端口对应的MAC地址不一致时,依据所述ARP报文对应的ARP地址对所述本地路由表里中对应的表项进行覆盖,并且将所述ARP地址对应的表项标记为自学习。
12.根据权利要求10所述的装置,其特征在于,所述第一处理单元包括:
第二学习子单元,用于当所述三层交换设备从控制器接收到ARP流表添加消息时,查询本地路由表里是否存在所述ARP流表添加消息对应的ARP地址;如果所述本地路由表里不存在所述ARP地址,则将所述ARP地址添加至所述本地路由表里,并且将所述ARP地址对应的表项标记为控制器下发;如果所述本地路由表里存在所述ARP地址,且所述ARP地址对应的MAC地址与出端口对应的MAC地址一致时,则保持所述本地路由表不变;如果所述本地路由表里存在所述ARP地址,且所述ARP地址对应的MAC地址与出端口对应的MAC地址不一致时,如果所述本地路由表里对应的表项标记为自学习,则保持所述本地路由表不变,如果所述本地路由表里对应的表项标记为控制器下发,则依据所述ARP流表添加消息对应的ARP地址对所述本地路由表里中对应的表项进行覆盖。
13.根据权利要求9所述的装置,其特征在于,所述第一虚拟接口为IP协议栈虚拟接口,所述第二虚拟接口为SDN协议栈虚拟接口;其中,
所述三层交换设备通过所述IP协议栈虚拟接口将SDN网络的路由发布至出口路由器;
所述三层交换设备通过所述SDN协议栈虚拟接口接收控制器下发的流表。
14.根据权利要求13所述的装置,其特征在于,所述三层交换设备包括:SDN协议栈模块、IP协议栈模块、收发包模块;其中,
所述SDN协议栈模块接收所述控制器发送的ARP请求,所述SDN协议栈模块在所述ARP请求上打上SDN协议栈虚拟接口的标记,并发送给收发包模块,通过所述收发包模块将所述SDN协议栈虚拟接口的标记替换为IP协议栈虚拟接口的标记,并发送给IP协议栈模块;
所述IP协议栈模块对ARP进行学习,在ARP应答中打上IP协议栈虚拟接口的标记,并发送给收发包模块,通过所述收发包模块将所述IP协议栈虚拟接口的标记替换为SDN协议栈虚拟接口的标记,并发送给SDN协议栈模块;
所述SDN协议栈模块将所述ARP应答发送给控制器,触发所述控制器根据所述ARP应答进行ARP学习。
15.根据权利要求13所述的装置,其特征在于,所述三层交换设备包括:SDN协议栈模块、IP协议栈模块、收发包模块;其中,
针对南向流量的三层报文,当所述三层报文达到所述桥接口后没有查到路由时,将所述报文通过网段路由发送给IP协议栈模块;所述IP协议栈模块根据所述报文的目的IP进行路由查询,如果查询到IP协议栈虚拟接口的出口路由,则所述IP协议栈模块在所述报文上打上IP协议栈虚拟接口的标记;如果未查询到IP协议栈虚拟接口的出口路由,则所述IP协议栈模块触发自学习机制的APR学习;
所述IP协议栈模块将打上IP协议栈虚拟接口的标记的报文发送给收发包模块,通过所述收发包模块将所述IP协议栈虚拟接口的标记替换为SDN协议栈虚拟接口的标记,并发送给SDN协议栈模块;
所述SDN协议栈模块对所述报文进行封装后,发送给所述控制器,触发所述控制器进行ARP学习;
所述SDN协议栈模块接收所述控制器下发的流表。
16.根据权利要求9所述的装置,其特征在于,所述第二处理单元,具体用于当所述二层交换设备接收到服务器发送的ARP报文时,将所述ARP报文发送给所述三层交换设备进行ARP学习,以及将所述ARP报文发送给控制器进行ARP学习。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710165894.3A CN108632122B (zh) | 2017-03-20 | 2017-03-20 | 一种实现双控制平面的方法、装置 |
PCT/CN2018/079340 WO2018171529A1 (zh) | 2017-03-20 | 2018-03-16 | 一种实现双控制平面的方法、装置、计算机存储介质 |
EP18771396.1A EP3605959B1 (en) | 2017-03-20 | 2018-03-16 | Method, device and computer storage medium for implementing double control plane |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710165894.3A CN108632122B (zh) | 2017-03-20 | 2017-03-20 | 一种实现双控制平面的方法、装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108632122A CN108632122A (zh) | 2018-10-09 |
CN108632122B true CN108632122B (zh) | 2022-01-07 |
Family
ID=63584924
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710165894.3A Active CN108632122B (zh) | 2017-03-20 | 2017-03-20 | 一种实现双控制平面的方法、装置 |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP3605959B1 (zh) |
CN (1) | CN108632122B (zh) |
WO (1) | WO2018171529A1 (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109474534B (zh) * | 2018-11-02 | 2021-04-06 | 莫冰 | 基于fpga的路由加速转发系统、路由器及转发方法 |
CN112637105B (zh) * | 2019-09-24 | 2022-08-02 | 中国电信股份有限公司 | 切换防火墙的方法、系统、装置及计算机可读存储介质 |
CN111654560B (zh) * | 2020-06-02 | 2022-10-21 | 中电科航空电子有限公司 | 一种机载软硬堆叠交换机的物理地址表管理交互方法 |
CN112994948B (zh) * | 2021-03-31 | 2022-11-25 | 杭州迪普科技股份有限公司 | 静默双机切换方法、装置、设备及计算机可读存储介质 |
CN113709046A (zh) * | 2021-07-19 | 2021-11-26 | 国网上海市电力公司 | 一种基于prp的跨三层交换并行冗余方法 |
US20240146647A1 (en) * | 2022-10-26 | 2024-05-02 | Schweitzer Engineering Laboratories, Inc. | Communication device operable to switch between multiple control plane types |
US20240146641A1 (en) * | 2022-10-26 | 2024-05-02 | Schweitzer Engineering Laboratories, Inc. | Communication device operable under multiple control planes |
CN116248595B (zh) * | 2023-03-15 | 2024-02-02 | 安超云软件有限公司 | 一种云内网与物理网通信的方法、装置、设备以及介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103152264A (zh) * | 2013-02-25 | 2013-06-12 | 北京百度网讯科技有限公司 | Openflow网络和IP网络互连通信方法及Openflow子网边缘交换机 |
CN105245632A (zh) * | 2015-10-16 | 2016-01-13 | 电子科技大学 | 一种sdn网络中不同网段主机间通信方法 |
CN105450532A (zh) * | 2014-09-28 | 2016-03-30 | 杭州华三通信技术有限公司 | 软件定义网络中的三层转发方法及装置 |
WO2016166403A1 (en) * | 2015-04-17 | 2016-10-20 | Coriant Oy | A configuration system for configuring the control-plane of a software-defined network |
CN106105117A (zh) * | 2013-12-26 | 2016-11-09 | 华为技术有限公司 | 分层软件定义网络中的流量工程控制器 |
CN106210157A (zh) * | 2015-04-30 | 2016-12-07 | 中国电信股份有限公司 | 抑制地址解析协议消息的方法与系统、控制器 |
CN106331018A (zh) * | 2015-06-30 | 2017-01-11 | 上海宽带技术及应用工程研究中心 | 基于负载均衡的sdn网络主机发现方法及系统 |
WO2017015839A1 (zh) * | 2015-07-27 | 2017-02-02 | 华为技术有限公司 | 一种基于sdn的arp实现方法及装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8717895B2 (en) * | 2010-07-06 | 2014-05-06 | Nicira, Inc. | Network virtualization apparatus and method with a table mapping engine |
US9426060B2 (en) * | 2013-08-07 | 2016-08-23 | International Business Machines Corporation | Software defined network (SDN) switch clusters having layer-3 distributed router functionality |
BR112016025264B1 (pt) * | 2014-05-05 | 2022-02-01 | Telefonaktiebolaget Lm Ericsson (Publ) | Dispositivo de plano de controle em um sistema de computação em nuvem para executar uma pluralidade de máquinas virtuais para implantar a virtualização de função de rede |
KR20160095554A (ko) * | 2015-02-03 | 2016-08-11 | 한국전자통신연구원 | Sdn 기반의 물리 주소 결정장치 및 그 방법 |
US10798048B2 (en) * | 2015-04-07 | 2020-10-06 | Nicira, Inc. | Address resolution protocol suppression using a flow-based forwarding element |
-
2017
- 2017-03-20 CN CN201710165894.3A patent/CN108632122B/zh active Active
-
2018
- 2018-03-16 EP EP18771396.1A patent/EP3605959B1/en active Active
- 2018-03-16 WO PCT/CN2018/079340 patent/WO2018171529A1/zh unknown
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103152264A (zh) * | 2013-02-25 | 2013-06-12 | 北京百度网讯科技有限公司 | Openflow网络和IP网络互连通信方法及Openflow子网边缘交换机 |
CN106105117A (zh) * | 2013-12-26 | 2016-11-09 | 华为技术有限公司 | 分层软件定义网络中的流量工程控制器 |
CN105450532A (zh) * | 2014-09-28 | 2016-03-30 | 杭州华三通信技术有限公司 | 软件定义网络中的三层转发方法及装置 |
WO2016166403A1 (en) * | 2015-04-17 | 2016-10-20 | Coriant Oy | A configuration system for configuring the control-plane of a software-defined network |
CN106210157A (zh) * | 2015-04-30 | 2016-12-07 | 中国电信股份有限公司 | 抑制地址解析协议消息的方法与系统、控制器 |
CN106331018A (zh) * | 2015-06-30 | 2017-01-11 | 上海宽带技术及应用工程研究中心 | 基于负载均衡的sdn网络主机发现方法及系统 |
WO2017015839A1 (zh) * | 2015-07-27 | 2017-02-02 | 华为技术有限公司 | 一种基于sdn的arp实现方法及装置 |
CN105245632A (zh) * | 2015-10-16 | 2016-01-13 | 电子科技大学 | 一种sdn网络中不同网段主机间通信方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108632122A (zh) | 2018-10-09 |
EP3605959A1 (en) | 2020-02-05 |
EP3605959B1 (en) | 2022-01-12 |
WO2018171529A1 (zh) | 2018-09-27 |
EP3605959A4 (en) | 2021-01-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108632122B (zh) | 一种实现双控制平面的方法、装置 | |
US10749742B2 (en) | Managing virtual port channel switch peers from software-defined network controller | |
CN106936777B (zh) | 基于OpenFlow的云计算分布式网络实现方法、系统 | |
US10320664B2 (en) | Cloud overlay for operations administration and management | |
JP6581277B2 (ja) | データパケット転送 | |
CN104272668B (zh) | 层3覆盖网关 | |
US9215175B2 (en) | Computer system including controller and plurality of switches and communication method in computer system | |
CN103200069B (zh) | 一种报文处理的方法和设备 | |
WO2016045637A1 (en) | Forwarding data packets in software defined network | |
US10951522B2 (en) | IP-based forwarding of bridged and routed IP packets and unicast ARP | |
JP5991424B2 (ja) | パケット書換装置、制御装置、通信システム、パケット送信方法及びプログラム | |
EP3197107B1 (en) | Message transmission method and apparatus | |
US20150172190A1 (en) | Packet forwarding | |
CN105376154A (zh) | 渐进式mac地址学习 | |
CN104869042A (zh) | 报文转发方法和装置 | |
CN107646185A (zh) | 在覆盖数据中心环境中的操作、管理和处理(oam) | |
CN104170331A (zh) | 用于vxlan的l3网关 | |
CN105681191A (zh) | 基于路由器虚拟化的sdn平台及实现方法 | |
CN104937885A (zh) | 用于结构交换机的全局vlan | |
CN108259635B (zh) | 一种arp表项学习方法和dr设备 | |
JP2018515051A (ja) | マルチキャストデータパケット転送 | |
CN106209638A (zh) | 从虚拟局域网至虚拟可扩展局域网的报文转发方法和设备 | |
JP2020511873A (ja) | Macアドレス同期 | |
CN107733765B (zh) | 映射方法、系统和相关设备 | |
CN106209554B (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 |