CN110838935A - 高可用sdn控制器集群方法、***、存储介质及设备 - Google Patents

高可用sdn控制器集群方法、***、存储介质及设备 Download PDF

Info

Publication number
CN110838935A
CN110838935A CN201811207413.1A CN201811207413A CN110838935A CN 110838935 A CN110838935 A CN 110838935A CN 201811207413 A CN201811207413 A CN 201811207413A CN 110838935 A CN110838935 A CN 110838935A
Authority
CN
China
Prior art keywords
controller
controllers
network
tcp
availability
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
Application number
CN201811207413.1A
Other languages
English (en)
Other versions
CN110838935B (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.)
Shanghai Broadband Technology and Application Engineering Research Center
Original Assignee
Shanghai Broadband Technology and Application Engineering Research Center
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 Shanghai Broadband Technology and Application Engineering Research Center filed Critical Shanghai Broadband Technology and Application Engineering Research Center
Publication of CN110838935A publication Critical patent/CN110838935A/zh
Application granted granted Critical
Publication of CN110838935B publication Critical patent/CN110838935B/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
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • H04L41/0668Management of faults, events, alarms or notifications using network fault recovery by dynamic selection of recovery network elements, e.g. replacement by the most appropriate element after failure
    • 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
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/163In-band adaptation of TCP data exchange; In-band control procedures

Landscapes

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

Abstract

本发明提供一种高可用SDN控制器集群方法、***、存储介质及设备,所述高可用SDN控制器集群方法包括:设置集群中的服务端口、控制器IP以及虚拟IP进配置文件中;设置单一TCP连接在所有任意两个所述控制器之间;基于上述TCP连接在所述控制器之间设置主控制器选举机制;当主控制器宕机或网络异常后,选举出新主控制器;所述新主控制器抢占虚拟IP并广播免费ARP请求;通知局域网中的节点更新ARP缓存表。本发明解决了现有技术中在SDN控制器集群中,当主控制器出现宕机或者网络出现异常时,整个SDN控制器集群将面临着不可用的非正常状态的问题。并创造性利用主控制器选举机制,实现SDN控制器集群的高可用。

Description

高可用SDN控制器集群方法、***、存储介质及设备
技术领域
本发明特别涉及一种高可用SDN控制器集群方法、***、存储介质及设备。
背景技术
传统IT架构中的网络,根据业务需求部署上线以后,如果业务需求发生变动,重新修改相应网络设备(路由器、交换机、防火墙)上的配置是一件非常繁琐的事情。在互联网/移动互联网瞬息万变的业务环境下,网络的高稳定与高性能还不足以满足业务需求,灵活性和敏捷性反而更为关键。SDN所做的事是将网络设备上的控制权分离出来,由集中的控制器管理,无须依赖底层网络设备(路由器、交换机、防火墙),屏蔽了来自底层网络设备的差异。而控制权是完全开放的,用户可以自定义任何想实现的网络路由和传输规则策略,从而更加灵活和智能。
但在SDN控制器集群中,当主控制器出现宕机或者网络出现异常时,整个SDN控制器集群将面临着不可用的非正常状态。
发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种完整的发明名称,用于解决现有技术中在SDN控制器集群中,当主控制器出现宕机或者网络出现异常时,整个SDN控制器集群将面临着不可用的非正常状态的问题。
为实现上述目的及其他相关目的,本发明提供一种高可用SDN控制器集群方法,所述高可用SDN控制器集群方法包括以下步骤:设置集群中的服务端口、控制器IP以及虚拟IP进配置文件中;设置单一TCP连接在所有任意两个所述控制器之间;基于上述TCP连接在所述控制器之间设置主控制器选举机制;当主控制器宕机或网络异常后,通过所述主控制器选举机制选举出新主控制器;所述新主控制器抢占虚拟IP并广播免费ARP请求;通知局域网中的节点更新ARP缓存表。
于本发明的一实施例中,所述设置单一TCP连接在所有任意两个所述控制器之间的一种能实现过程包括:所述控制器在端口处启动监听服务;监听其他控制器的TCP连接请求;所述控制器根据所配置的控制器列表尝试连接所述集群中的其他控制器并同时监听对方控制器连接请求服务;所述两个控制器之间保留且仅保留最新建立的一条TCP连接。
于本发明的一实施例中,当主控制器宕机或网络异常后,通过所述主控制器选举机制选举出新主控制器的一种实现过程包括:判断监测到主控制器宕机或网络异常的从控制器是否只有一个;若是,所述一个从控制器确定一个主控制器提名并保存到本地;否则,所述多个从控制器同时分别确定一个主控制器提名并保存到本地。
于本发明的一实施例中,所述确定主控制器提名的规则包括:提名所有TCP连接正常的从控制器中IP最大的从控制器。
于本发明的一实施例中,所述高可用SDN控制器集群方法还包括:当新控制器加入所述控制器集群时,将新控制器IP添加入所有控制器IP汇总表;自动配置新控制器IP进其他控制器的配置文件中。
为实现上述目的及其他相关目的,本发明提供一种高可用SDN控制器集群***,所述***包括:配置模块,用于设置集群中的服务端口、控制器IP以及虚拟IP进配置文件中;设置单一TCP连接在所有任意两个所述控制器之间;处理模块,与所述配置模块通信连接,用于当主控制器宕机或网络异常后,通过所述主选举机制选举出新主控制器;所述新主控制器抢占虚拟IP并广播免费ARP请求;通知局域网中的节点更新ARP缓存表;主控制器选举模块,与所述处理模块通信连接,用于在所述集群***中实现主控制器选举机制。
于本发明的一实施例中,所述设置单一TCP连接在所有任意两个所述控制器之间的一种能实现过程包括:所述控制器在端口处启动监听服务;监听其他控制器的TCP连接请求;所述控制器根据所配置的控制器列表尝试连接所述集群中的其他控制器并同时监听对方控制器连接请求服务;所述两个控制器之间保留且仅保留最新建立的一条TCP连接。
于本发明的一实施例中,当主控制器宕机或网络异常后,通过所述主选举机制选举出新主控制器的一种实现过程包括:判断监测到主控制器宕机或网络异常的从控制器是否只有一个;若是,所述一个从控制器确定一个主控制器提名并保存到本地;否则,所述多个从控制器同时分别确定一个主控制器提名并保存到本地。
为实现上述目的及其他相关目的,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行如本发明所述的高可用SDN控制器集群方法的步骤。
为实现上述目的及其他相关目的,本发明还提供一种设备,所述设备包括:处理器及存储器,所述存储器用于存储计算机程序,所述处理器用于执行所述存储器存储的计算机程序,以使所述设备执行如本发明所述的高可用SDN控制器集群方法。
如上所述,本发明的高可用SDN控制器集群方法、***、存储介质及设备,具有以下有益效果:本发明解决了现有技术中在SDN控制器集群中,当主控制器出现宕机或者网络出现异常时,整个SDN控制器集群将面临着不可用的非正常状态的问题。并创造性利用主控制器选举机制,实现SDN控制器集群的高可用。
附图说明
图1A显示为本发明实施例所述的一种高可用SDN控制器集群方法的一种实现流程示意图。
图1B显示为本发明实施例所述的一种高可用SDN控制器集群方法的一种实现流程示意图。
图2显示为本发明实施例所述的一种高可用SDN控制器集群***的一种结构示意图。
图3显示为本发明实施例所述的一种设备的一种结构示意图。
元件标号说明
20 高可用SDN控制器集群***
21 配置模块
22 处理模块
23 主控制器选举模块
30 设备
31 处理器
32 存储器
S101~S203 步骤
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
请参阅图1A和1B,本发明提供一种高可用SDN控制器集群方法,所述高可用SDN控制器集群方法包括以下步骤:
S101、设置集群中的服务端口、控制器IP以及虚拟IP进配置文件中;
S102、设置单一TCP连接在所有任意两个所述控制器之间;
S103、基于上述TCP连接在所述控制器之间设置主控制器选举机制;
S104、当主控制器宕机或网络异常后,通过所述主控制器选举机制选举出新主控制器;
S105、所述新主控制器抢占虚拟IP并广播免费ARP请求;通知局域网中的节点更新ARP 缓存表。
于本发明的一实施例中,当主控制器宕机或网络异常后,通过所述主控制器选举机制选举出新主控制器的一种实现过程包括:
S201、判断监测到主控制器宕机或网络异常的从控制器是否只有一个;
S202、若是,所述一个从控制器确定一个所述主控制器提名并保存到本地;
S203、否则,所述多个从控制器同时分别确定一个所述主控制器提名并保存到本地。
于本发明的一实施例中,所述确定主控制器提名的规则包括:提名所有TCP连接正常的从控制器中IP最大的从控制器。
于本发明的一实施例中,所述高可用SDN控制器集群方法还包括:
当新控制器加入所述控制器集群时,将新控制器IP添加入所有控制器IP汇总表;
自动配置新控制器IP进其他控制器的配置文件中。
——主控制器选举,即master选举,在分布式中,经常会碰到这样的一个场景,对于一个复杂的业务,仅需要从集群中选举出一台进行处理即可。诸如此类分布式问题,我们称为”Master”选举。借助zookeeper,我们可以很方便的实现Master选举的功能。其大体思路非常简单。选择一个根据节点,例如/master_select,多台机器同时向该节点创建一个子节点 /master_select/lock,利用zookeeper的特性,最终只有一台机器能够创建成功,成功的那台就作为Master选举。Curator也是基于这个思路,但是它将节点创建,事件监听和自动选举进行了封装,开发人员只需要简单的调用API即可实现Master选举。下面我我们通过一个实例开看看如何使用Curator实现Master选举功能。
Figure RE-GDA0001946014160000041
Figure RE-GDA0001946014160000051
Figure RE-GDA0001946014160000061
程序输出:
成为Master角色
[_c_d2557b3f-bf64-4868-988b-d023a340b38b-lock-0000000021]
完成Master操作,释放Master权利成为Master角色。
——SDN,(Software Defined Network)即软件定义网络,是Emulex网络一种新型网络创新架构,是网络虚拟化的一种实现方式,其核心技术OpenFlow通过将网络设备控制面与数据面分离开来,从而实现了网络流量的灵活控制,使网络作为管道变得更加智能。从路由器的设计上看,它由软件控制和硬件数据通道组成。软件控制包括管理(CLI,SNMP)以及路由协议(OSPF,ISIS,BGP)等。数据通道包括针对每个包的查询、交换和缓存。如果将网络中所有的网络设备视为被管理的资源,那么参考操作***的原理,可以抽象出一个网络操作*** (Network OS)的概念—这个网络操作***一方面抽象了底层网络设备的具体细节,同时还为上层应用提供了统一的管理视图和编程接口。这样,基于网络操作***这个平台,用户可以开发各种应用程序,通过软件来定义逻辑上的网络拓扑,以满足对网络资源的不同需求,而无需关心底层网络的物理拓扑结构。SDN提出控制层面的抽象,MAC层和IP层能做到很好的抽象但是对于控制接口来说并没有作用,我们以处理高复杂度(因为有太多的复杂功能加入到了体系结构当中,比如OSPF,BGP,组播,区分服务,流量工程,NAT,防火墙,MPLS,冗余层等等)的网络拓扑、协议、算法和控制来让网络工作,我们完全可以对控制层进行简单、正确的抽象。SDN给网络设计规划与管理提供了极大的灵活性,我们可以选择集中式或是分布式的控制,对微量流(如校园网的流)或是聚合流(如主干网的流)进行转发时的流表项匹配,可以选择虚拟实现或是物理实现。传统IT架构中的网络,根据业务需求部署上线以后,如果业务需求发生变动,重新修改相应网络设备(路由器、交换机、防火墙) 上的配置是一件非常繁琐的事情。在互联网/移动互联网瞬息万变的业务环境下,网络的高稳定与高性能还不足以满足业务需求,灵活性和敏捷性反而更为关键。SDN所做的事是将网络设备上的控制权分离出来,由集中的控制器管理,无须依赖底层网络设备(路由器、交换机、防火墙),屏蔽了来自底层网络设备的差异。而控制权是完全开放的,用户可以自定义任何想实现的网络路由和传输规则策略,从而更加灵活和智能。进行SDN改造后,无需对网络中每个节点的路由器反复进行配置,网络中的设备本身就是自动化连通的。只需要在使用时定义好简单的网络规则即可。如果你不喜欢路由器自身内置的协议,可以通过编程的方式对其进行修改,以实现更好的数据交换性能。假如网络中有SIP、FTP、流媒体几种业务,网络的总带宽是一定的,那么如果某个时刻流媒体业务需要更多的带宽和流量,在传统网络中很难处理,在SDN改造后的网络中这很容易实现,SDN可以将流量整形、规整,临时让流媒体的“管道”更粗一些,让流媒体的带宽更大些,甚至关闭SIP和FTP的“管道”,待流媒体需求减少时再恢复原先的带宽占比。正是因为这种业务逻辑的开放性,使得网络作为“管道”的发展空间变为无限可能。如果未来云计算的业务应用模型可以简化为“云—管—端”,那么SDN就是“管”这一环的重要技术支撑。
——IP,网络之间互连的协议,是Internet Protocol的外语缩写。网络之间互连的协议也就是为计算机网络相互连接进行通信而设计的协议。在因特网中,它是能使连接到网上的所有计算机网络实现相互通信的一套规则,规定了计算机在因特网上进行通信时应当遵守的规则。任何厂家生产的计算机***,只要遵守IP协议就可以与因特网互连互通。IP地址具有唯一性,根据用户性质的不同,可以分为5类。另外,IP还有进入防护,知识产权,指针寄存器等含义。所谓IP地址就是给每个连接在互联网上的主机分配的一个32位地址。IP地址就好像电话号码(地址码):有了某人的电话号码,你就能与他通话了。同样,有了某台主机的IP地址,你就能与这台主机通信了。按照TCP/IP(Transport Control Protocol/Internet Protocol,传输控制协议/Internet协议)协议规定,IP地址用二进制来表示,每个IP地址长32bit,比特换算成字节,就是4个字节。例如一个采用二进制形式的IP地址是一串很长的数字,人们处理起来也太费劲了。为了方便人们的使用,IP地址经常被写成十进制的形式,中间使用符号“.”分开不同的字节。于是,上面的IP地址可以表示为“10.0.0.1”。IP地址的这种表示法叫做“点分十进制表示法”,这显然比1和0容易记忆得多。一台计算机只能有一个IP地址,这种观点是错误的。我们可以指定一台计算机具有多个IP地址,因此在访问互联网时,不要以为一个IP 地址就是一台计算机;另外,通过特定的技术,也可以使多台服务器共用一个IP地址,这些服务器在用户看起来就像一台主机似的。IPV4数据包头格式:将IP地址分成了网络号和主机号两部分,设计者就必须决定每部分包含多少位。网络号的位数直接决定了可以分配的网络数(计算方法2^网络号位数);主机号的位数则决定了网络中最大的主机数(计算方法2^ 主机号位数-2)。然而,由于整个互联网所包含的网络规模可能比较大,也可能比较小,设计者最后聪明的选择了一种灵活的方案:将IP地址空间划分成不同的类别,每一类具有不同的网络号位数和主机号位数。IP地址是IP网络中数据传输的依据,它标识了IP网络中的一个连接,一台主机可以有多个IP地址。IP分组中的IP地址在网络传输中是保持不变的,目前的IP网络使用32位地址,以点分十进制表示,如192.168.0.1。地址格式为:IP地址=网络地址+主机地址或IP地址=网络地址+子网地址+主机地址。
——TCP,(Transmission Control Protocol传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。在简化的计算机网络OSI模型中,它完成第四层传输层所指定的功能,用户数据报协议(UDP)是同一层内另一个重要的传输协议。在因特网协议族(Internet protocol suite)中,TCP层是位于IP层之上,应用层之下的中间层。不同主机的应用层之间经常需要可靠的、像管道一样的连接,但是IP层不提供这样的流机制,而是提供不可靠的包交换。应用层向TCP层发送用于网间传输的、用8位字节表示的数据流,然后TCP把数据流分区成适当长度的报文段(通常受该计算机连接的网络的数据链路层的最大传输单元(MTU)的限制)。之后TCP把结果包传给IP层,由它来通过网络将包传送给接收端实体的TCP层。TCP为了保证不发生丢包,就给每个包一个序号,同时序号也保证了传送到接收端实体的包的按序接收。然后接收端实体对已成功收到的包发回一个相应的确认(ACK);如果发送端实体在合理的往返时延(RTT)内未收到确认,那么对应的数据包就被假设为已丢失将会被进行重传。TCP用一个校验和函数来检验数据是否有错误;在发送和接收时都要计算校验和。应用层向TCP层发送用于网间传输的、用8位字节表示的数据流,TCP则把数据流分割成适当长度的报文段,最大传输段大小(MSS)通常受该计算机连接的网络的数据链路层的最大传送单元(MTU)限制。之后TCP把数据包传给IP 层,由它来通过网络将包传送给接收端实体的TCP层。TCP为了保证报文传输的可靠,就给每个包一个序号,同时序号也保证了传送到接收端实体的包的按序接收。然后接收端实体对已成功收到的字节发回一个相应的确认(ACK);如果发送端实体在合理的往返时延(RTT)内未收到确认,那么对应的数据(假设丢失了)将会被重传。在数据正确性与合法性上,TCP 用一个校验和函数来检验数据是否有错误,在发送和接收时都要计算校验和;同时可以使用 md5认证对数据进行加密。在保证可靠性上,采用超时重传和捎带确认机制。在流量控制上,采用滑动窗口协议,协议中规定,对于窗口内未经确认的分组需要重传。在拥塞控制上,采用广受好评的TCP拥塞控制算法(也称AIMD算法)。该算法主要包括三个主要部分:1) 加性增、乘性减;2)慢启动;3)对超时事件做出反应。TCP/IP(Transmission Control Protocol/Internet Protocol)即传输控制协议/网间协议,是一个工业标准的协议集,它是为广域网(WAN)设计的。它是由ARPANET网的研究机构发展起来的。TCP/IP的标准在一系列称为RF C的文档中公布。文档由技术专家、特别工作组、或RFC编辑修订。公布一个文档时,该文档被赋予一个RFC编号,如RFC959(FTP的说明文档)、RFC793(TCP的说明文档)、 RFC791(IP的说明文档)等。最初的RFC一直保留而从来不会被更新,如果修改了该文档,则该文档又以一个新号码公布。因此,重要的是要确认你拥有了关于某个专题的最新RFC文档。通常在RFC的开头部分,有相关RFC的更新(update)、排错(errata)、作废(obsolete) 信息,提示读者信息的时效性。TCP的首部格式为:---Source Port是源端口,16位。TCP首部---DestinationPort是目的端口,16位。---Sequence Number是发送数据包中的第一个字节的序列号,32位。---Acknowledgment Number是确认序列号,32位。
---Data Offset是数据偏移,4位,该字段的值是TCP首部(包括选项)长度除以4。---标志位: 6位,URG表示Urgent Pointer字段有意义:ACK表示Acknowledgment Number字段有意义, PSH表示Push功能,RST表示复位TCP连接,SYN表示SYN报文(在建立TCP连接的时候使用),FIN表示没有数据需要发送了(在关闭TCP连接的时候使用),Window表示接收缓冲区的空闲空间,16位,用来告诉TCP连接对端自己能够接收的最大数据长度。---Checksum是校验和,16位。---Urgent Pointers是紧急指针,16位,只有URG标志位被设置时该字段才有意义,表示紧急数据相对序列号(Sequence Number字段的值)的偏移。建立一个连接需要三次握手,而终止一个连接要经过四次握手,这是由TCP的半关闭(half-close)造成的TCP连接的终止。具体过程为:某个应用进程首先调用close,称该端执行“主动关闭”(activeclose)。该端的TCP于是发送一个FIN分节,表示数据发送完毕。接收到这个FIN的对端执行“被动关闭”(passive close),这个FIN由TCP确认。注意:FIN的接收也作为一个文件结束符(end-of-file)传递给接收端应用进程,放在已排队等候该应用进程接收的任何其他数据之后,因为,FIN的接收意味着接收端应用进程在相应连接上再无额外数据可接收。(3)一段时间后,接收到这个文件结束符的应用进程将调用close关闭它的套接字。这导致它的TCP也发送一个 FIN。(4)接收这个最终FIN的原发送端TCP(即执行主动关闭的那一端)确认这个FIN。既然每个方向都需要一个FIN和一个ACK,因此通常需要4个分节。注意:(1)“通常”是指,某些情况下,步骤1的FIN随数据一起发送,另外,步骤2和步骤3发送的分节都出自执行被动关闭那一端,有可能被合并成一个分节。(2)在步骤2与步骤3之间,从执行被动关闭一端到执行主动关闭一端流动数据是可能的,这称为“半关闭”(half-close)。(3)当一个Unix进程无论自愿地(调用exit或从main函数返回)还是非自愿地(收到一个终止本进程的信号) 终止时,所有打开的描述符都被关闭,这也导致仍然打开的任何TCP连接上也发出一个FIN。无论是客户还是服务器,任何一端都可以执行主动关闭。通常情况是,客户执行主动关闭,但是某些协议,例如,HTTP/1.0却由服务器执行主动关闭。TCP提供一种面向连接的、可靠的字节流服务。面向连接意味着两个使用TCP的应用(通常是一个客户和一个服务器)在彼此交换数据包之前必须先建立一个TCP连接。这一过程与打电话很相似,先拨号振铃,等待对方摘机说“喂”,然后才说明是谁。在一个TCP连接中,仅有两方进行彼此通信。广播和多播不能用于TCP。TCP通过下列方式来提供可靠性:1.应用数据被分割成TCP认为最适合发送的数据块。这和UDP完全不同,应用程序产生的数据长度将保持不变。由TCP传递给 IP的信息单位称为报文段或段(segment)。2.当TCP发出一个段后,它启动一个定时器,等待目的端确认收到这个报文段。如果不能及时收到一个确认,将重发这个报文段。当TCP 收到发自TCP连接另一端的数据,它将发送一个确认。TCP有延迟确认的功能,在此功能没有打开,则是立即确认。功能打开,则由定时器触发确认时间点。3.TCP将保持它首部和数据的检验和。这是一个端到端的检验和,目的是检测数据在传输过程中的任何变化。如果收到段的检验和有差错,TCP将丢弃这个报文段和不确认收到此报文段(希望发端超时并重发)。 4.既然TCP报文段作为IP数据报来传输,而IP数据报的到达可能会失序,因此TCP报文段的到达也可能会失序。如果必要,TCP将对收到的数据进行重新排序,将收到的数据以正确的顺序交给应用层。5.既然IP数据报会发生重复,TCP的接收端必须丢弃重复的数据。 6.TCP还能提供流量控制。TCP连接的每一方都有固定大小的缓冲空间。TCP的接收端只允许另一端发送接收端缓冲区所能接纳的数据。这将防止较快主机致使较慢主机的缓冲区溢出。两个应用程序通过TCP连接交换8bit字节构成的字节流。TCP不在字节流中***记录标识符。我们将这称为字节流服务(bytestreamservice)。如果一方的应用程序先传10字节,又传20 字节,再传50字节,连接的另一方将无法了解发方每次发送了多少字节。只要自己的接收缓存没有塞满,TCP接收方将有多少就收多少。一端将字节流放到TCP连接上,同样的字节流将出现在TCP连接的另一端。另外,TCP对字节流的内容不作任何解释。TCP不知道传输的数据字节流是二进制数据,还是ASCⅡ字符、EBCDIC字符或者其他类型数据。对字节流的解释由TCP连接双方的应用层解释。这种对字节流的处理方式与Unix操作***对文件的处理方式很相似。Unix的内核对一个应用读或写的内容不作任何解释,而是交给应用程序处理。对Unix的内核来说,它无法区分一个二进制文件与一个文本文件。重传策略,TCP协议用于控制数据段是否需要重传的依据是设立重发定时器。在发送一个数据段的同时启动一个重传,如果在重传超时前收到确认(Acknowlegement)就关闭该重传,如果重传超时前没有收到确认,则重传该数据段。在选择重发时间的过程中,TCP必须具有自适应性。它需要根据互联网当时的通信情况,给出合适的重发时间。这种重传策略的关键是对定时器初值的设定。采用较多的算法是Jacobson于1988年提出的一种不断调整超时时间间隔的动态算法。其工作原理是:对每条连接TCP都保持一个变量RTT(Round Trip Time),用于存放当前到目的端往返所需要时间最接近的估计值。当发送一个数据段时,同时启动连接的定时器,如果在定时器超时前确认到达,则记录所需要的时间(M),并修正RTT的值,如果定时器超时前没有收到确认,则将RTT的值增加1倍。通过测量一系列的RTT(往返时间)值,TCP协议可以估算数据包重发前需要等待的时间。在估计该连接所需的当前延迟时通常利用一些统计学的原理和算法(如Karn算法),从而得到TCP重发之前需要等待的时间值。TCP的一项功能就是确保每个数据段都能到达目的地。位于目的主机的TCP服务对接受到的数据进行确认,并向源应用程序发送确认信息。TCP的状态机,使用数据报头序列号以及确认号来确认已收到包含在数据段的相关的数据字节。TCP在发回源设备的数据段中使用确认号,指示接收设备期待接收的下一字节。这个过程称为期待确认。源主机在收到确认消息之前可以传输的数据的大小称为窗口大小。用于管理丢失数据和流量控制。配置TCP:修改建立TCP连接的超时时间,建立TCP连接需要经过三次握手:主动端先发送SYN报文,被动放回应SYN+ACK报文,然后主动端再回应ACK。在主动端发送SYN后,如果被动端一直不回应SYN+ACK报文,主动端会不断的重传SYN报文直到超过一定的重传次数或超时时间。在主动端发送SYN后,被动端回应SYN+ACK报文,但主动端不再回复ACK,被动端也会一直重传直到超过一定的重传次数或超时时间。(SYN报文攻击会出现这种情况)。可以通过以下命令配置SYN报文的超时时间(发送SYN报文到三次握手成功的最大时间),也就是建立TCP连接的超时时间。命令:R(config)#ip tcpsyntime-out seconds。修改缓冲区大小,TCP的接收缓冲区是用来缓存从对端接收到的数据,这些数据后续会被应用程序读取。一般情况下,TCP报文的窗口值反映接收缓冲区的空闲空间的大小。对于带宽比较大、有大批量数据的连接,增大接收缓冲区的大小可以显著提供TCP传输性能。TCP的发送缓冲区是用来缓存应用程序的数据,发送缓冲区的每个字节都有序列号,被应答确认的序列号对应的数据会从发送缓冲区删除掉。增大发送缓冲区可以提高TCP跟应用程序的交互能力,也因此会提高性能。但是增大接收和发送缓冲区会导致TCP占用比较多的内存。使用no ip tcp window-size命令恢复接收和发送缓冲区大小为缺省值。禁止端口不可达时的重置报文。TCP模块在分发TCP报文时,如果找不到该报文所属的TCP连接会主动回复一个reset报文以终止对端的TCP连接。攻击者可能利用大量的端口不可达的TCP报文对设备进行攻击。可以使用以下命令禁止/恢复在收到端口不可达的TCP报文时发送reset报文。限制TCP连接的MSS的最大值。MSS是最大传输段大小的缩写,指一个TCP报文的数据载荷的最大长度,不包括TCP选项。在TCP建立连接的三次握手中,有一种很重要的工作那就是进行MSS协商。连接的双方都在SYN报文中增加MSS选项,其选项值表示本端最大能接收的段大小,即对端最大能发送的段大小。连接的双方取本端发送的MSS值和接收对端的MSS值的较小者作为本连接最大传输段大小。发送SYN报文时的MSS选项值的计算方法如下。非直连网络中:mss=默认值。直连网络中:mss=对端 ip地址对应的出口的MTU-20字节ip头-20字节tcp头。一般来说如果出口配置的某些应用影响了接口的mtu,那么该应用会相应的设置mtu,如隧道口,vpn口等。到这里得到的rmss 值就是要发送的syn报文mss选项的值。举例:一般情况下在直连网络中建立bgp邻居,那么该连接的发送的mss为1500–20–20–20=1440。ip tcp mss命令的作用是限制即将建立的 TCP连接的MSS的最大值。任何新建立的连接协商的MSS值不能超过配置的值。启用PMTU 发现功能,TCP的路径最大传输单元(PMTU)发现功能是按RF C1191实现的,这个功能可以提高网络带宽的利用率。当用户使用TCP来批量传输大块数据时,该功能可以使传输性能得到明显提升。按RFC1191的描述,TCP在发现PMTU后,隔一段时间可以使用更大的MSS 来探测新的PMTU。这个时间间隔就是使用参数age-timer来指定。当设备发现的PMTU比 TCP连接两端协商出来的MSS小时,设备就会按上述配置时间间隔,去尝试发现更大的PMTU。直到PMTU达到MSS的值,或者用户停止这个定时器,这个探测过程才会停止。停止这个定时器,使用age-timer infinite参数。使用no ip tcp path-mtu-discovery命令关闭PMTU 发现功能。设置接口收发SYN报文的MSS选项值。当客户端发起一个TCP连接时,它通过 TCP SYN报文中的MSS选项字段协商TCP报文数据载荷的最大值,客户端SYN报文的MSS 值表示后续服务器端发送TCP报文数据载荷的最大值,反之同理。PC用http访问服务器可能会出现无法访问的情况。因为PC与服务器端建立的连接MSS协商的都会是1460,但1460 的MSS无法通过R1和R2,R1和R2用隧道相连,MTU小于1500。这时可以通过在R2的 (1)口和(2)口上配置如下命令,修改SYN报文中的MSS选项值。从而修改经过(1)口和(2)口的TCP连接协商的MSS值。使用no ip tcp adjust-mss命令取消此项设置,则接口收发SYN报文时,不会修改报文的MSS选项值。在接口上配置本命令会使得该接口接收或发送SYN报文的MSS选项都被改为接口上配置的MSS值。建议出口和入口配置相同的值。如果SYN报文的入口和出口配置了不同的MSS值,经过该设备后,SYN报文的MSS选项被改为这两个口配置值的较小者。
——ARP,地址解析协议,即(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。地址解析协议是建立在网络中各个主机互相信任的基础上的,网络上的主机可以自主发送ARP应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其记入本机ARP缓存;由此攻击者就可以向某一主机发送伪ARP应答报文,使其发送的信息无法到达预期的主机或到达错误的主机,这就构成了一个ARP欺骗。ARP命令可用于查询本机ARP缓存中IP地址和MAC地址的对应关系、添加或删除静态对应关系等。相关协议有RARP、代理ARP。NDP用于在IPv6 中代替地址解析协议。ARP工作原理和过程:主机A的IP地址为192.168.1.1,MAC地址为 0A-11-22-33-44-01;主机B的IP地址为192.168.1.2,MAC地址为0A-11-22-33-44-02;当主机A要与主机B通信时,地址解析协议可以将主机B的IP地址(192.168.1.2)解析成主机B的MAC地址,以下为工作流程:第1步:根据主机A上的路由表内容,IP确定用于访问主机B的转发IP地址是192.168.1.2。然后A主机在自己的本地ARP缓存中检查主机B的匹配 MAC地址。第2步:如果主机A在ARP缓存中没有找到映射,它将询问192.168.1.2的硬件地址,从而将ARP请求帧广播到本地网络上的所有主机。源主机A的IP地址和MAC地址都包括在ARP请求中。本地网络上的每台主机都接收到ARP请求并且检查是否与自己的IP地址匹配。如果主机发现请求的IP地址与自己的IP地址不匹配,它将丢弃ARP请求。第3步:主机B确定ARP请求中的IP地址与自己的IP地址匹配,则将主机A的IP地址和MAC地址映射添加到本地ARP缓存中。第4步:主机B将包含其MAC地址的ARP回复消息直接发送回主机A。第5步:当主机A收到从主机B发来的ARP回复消息时,会用主机B的IP和 MAC地址映射更新ARP缓存。本机缓存是有生存期的,生存期结束后,将再次重复上面的过程。主机B的MAC地址一旦确定,主机A就能向主机B发送IP通信了。ARP缓存是个用来储存IP地址和MAC地址的缓冲区,其本质就是一个IP地址-->MAC地址的对应表,表中每一个条目分别记录了网络上其他主机的IP地址和对应的MAC地址。每一个以太网或令牌环网络适配器都有自己单独的表。当地址解析协议被询问一个已知IP地址节点的MAC地址时,先在ARP缓存中查看,若存在,就直接返回与之对应的MAC地址,若不存在,才发送ARP请求向局域网查询。为使广播量最小,ARP维护IP地址到MAC地址映射的缓存以便将来使用。ARP缓存可以包含动态和静态项目。动态项目随时间推移自动添加和删除。每个动态ARP缓存项的潜在生命周期是10分钟。新加到缓存中的项目带有时间戳,如果某个项目添加后2分钟内没有再使用,则此项目过期并从ARP缓存中删除;如果某个项目已在使用,则又收到2分钟的生命周期;如果某个项目始终在使用,则会另外收到2分钟的生命周期,一直到10分钟的最长生命周期。静态项目一直保留在缓存中,直到重新启动计算机为止。ARP 缓存中包含一个或多个表,它们用于存储IP地址及其经过解析的MAC地址。ARP命令用于查询本机ARP缓存中IP地址-->MAC地址的对应关系、添加或删除静态对应关系等。如果在没有参数的情况下使用,ARP命令将显示帮助信息。常见用法arp-a或arp–g,用于查看缓存中的所有项目。-a和-g参数的结果是一样的,多年来-g一直是UNIX平台上用来显示ARP缓存中所有项目的选项,而Windows用的是arp-a(-a可被视为all,即全部的意思),但它也可以接受比较传统的-g选项。arp-a Ip,如果有多个网卡,那么使用arp-a加上接口的IP地址,就可以只显示与该接口相关的ARP缓存项目。arp-s Ip物理地址,可以向ARP缓存中人工输入一个静态项目。该项目在计算机引导过程中将保持有效状态,或者在出现错误时,人工配置的物理地址将自动更新该项目。arp-d Ip,使用该命令能够人工删除一个静态项目。
于本发明的一个实施例中,所述高可用SDN控制器集群方法包括以下特性:1.高可用; 2.高可靠;3.通过两两之间建立的TCP连接实现主控制器的选举和主从数据同步;4.选举出来的主控制器抢占虚IP后利用免费ARP进行广播。
更详细的实施过程:1.集群配置集群中的控制器在启动前需要将集群服务端口,集群中所有的控制器IP和虚拟IP提前设置进配置文件中。2.TCP连接管理。集群中所有控制器在启动后会两两之间维持一条TCP连接,用于master选举,心跳检测和主从数据同步。根据1(集群配置),在启动过程中,控制器首先在端口cluster_service_port处启动监听服务,监听来自其它控制器的TCP连接请求;同时根据cluster_controller_list所配置的控制器列表,尝试去连接集群中的其它控制器。两个控制器之间如果有多条TCP连接先后建立(尝试主动连接对方的同时监听服务监听到对方的连接请求),将关闭先建立的连接,保留最新建立的连接,保证任意两个控制器之间仅维持一条TCP连接。两个控制器之间的TCP连接状况靠心跳机制来检测的。连接一旦建立即进入稳态CONNECTED。在稳态时,当心跳请求未收到回应时,连接将进入NORESPONSE状态。在NORESPONSE状态下,心跳请求仍将会发送,但是当特定时间(30s)到期后未收到对端的任何心跳请求或回应,连接将进入UNREACHABLE状态,心跳请求将不再发送。在此过程中,如果收到对端的任意心跳请求或回应,连接将回到稳态。如果连接处于UNREACHABLE或DISCONNECTED状态,将认为该连接不再可用,这时将立即触发一次主动连接尝试。如果成功,连接将回到稳态;否则,连接将保持UNREACHABLE或DISCONNECTED状态,直到监听服务监听到对端的连接请求。3.实现高可用性,当master控制器宕机或网络异常后,由所有slave控制器通过4(master选举机制)选举产生一个新的master控制器。新选举出来的master控制器抢占虚拟IP后通过广播免费ARP请求,通知局域网中的节点更新ARP缓存表,然后接替旧master控制器的角色。4.实现可扩展性,当需要新增一台控制器到集群中时,只需要在启动该控制器之前在配置文件中罗列出集群中所有控制器的IP(包括新增控制器的IP)即可。集群中其它控制器会自动将新接入进来的控制器IP写进各自的配置文件中。5.实现master选举机制,选举是通过控制器两两之间建立的TCP连接完成的。选举开始时,只有slave控制器参与选举,重新启动或新接入进来的控制器将作为观察者不参与选举,只在选举完成后接受最终的通告,成为slave控制器。选举发起者广播提名给其它所有slave控制器,非发起者在收到提名后回送一个提名给相应的发起者。在这里,提名遵循的原则是:当前所有TCP连接正常的slave控制器当中IP最大者。当master控制器宕机或网络异常后,如果只有一个slave控制器检测到,该slave控制器决定出一个提名并保存到本地,然后广播给其它所有slave控制器发起选举。其它slave控制器收到提名后各自决定出一个提名,如果比当前的提名IP大就将决定出的提名回送给发起者。发起者收到了其它提名后,如果发现比本地保存的提名IP大就更新本地保存的提名。在特定的时间(1s)到期后,发起者将本地保存的提名作为新master控制器,并通告给其它所有控制器,包括其它所有slave 控制器,重新启动和新接入进来的控制器,选举结束。如果有多个slave控制器同时检测到 master控制器宕机或网络异常,它们会同时各自决定出一个提名并保存到本地,然后广播各自的提名给其它所有slave控制器发起选举。发起者在广播了提名后会收到其它发起者的提名,如果发现比本地保存的提名IP大就更新本地保存的提名,同时将不再回送提名,因为本地的提名在之前已经广播出去了。其它作为非发起者的slave控制器收到提名后各自决定出一个提名,如果比当前的提名IP大就将决定出的提名回送给相应的发起者。特定时间(1s)最先到期的发起者将本地保存的提名作为新master控制器,并通告给其它所有控制器,包括其它所有 slave控制器,重新启动和新接入进来的控制器,选举结束。6.实现主从数据同步,数据同步是由master控制器发起的,同时支持定期同步和实时同步,全量同步和增量同步。master控制器将需要同步的数据按照一定的规则组织成二进制流,通过与其建立的TCP连接发送给相应的slave控制器。slave控制器收到master控制器同步过来的数据后立即进行恢复,并响应恢复结果给master控制器。
本发明所述的高可用SDN控制器集群方法的保护范围不限于本实施例列举的步骤执行顺序,凡是根据本发明的原理所做的现有技术的步骤增减、步骤替换所实现的方案都包括在本发明的保护范围内。
本发明还提供一种高可用SDN控制器集群***20,所述高可用SDN控制器集群***20 可以实现本发明所述的高可用SDN控制器集群方法,但本发明所述的高可用SDN控制器集群方法的实现装置包括但不限于本实施例列举的高可用SDN控制器集群***20的结构,凡是根据本发明的原理所做的现有技术的结构变形和替换,都包括在本发明的保护范围内。
请参阅图2所示,为实现上述目的及其他相关目的,本发明提供一种高可用SDN控制器集群***20,所述***包括:
配置模块21,用于设置集群中的服务端口、控制器IP以及虚拟IP进配置文件中;设置单一TCP连接在所有任意两个所述控制器之间;
处理模块22,与所述配置模块21通信连接,用于当主控制器宕机或网络异常后,通过所述主选举机制选举出新主控制器;所述新主控制器抢占虚拟IP并广播免费ARP请求;通知局域网中的节点更新ARP缓存表;
主控制器选举模块23,与所述处理模块22通信连接,用于在所述集群***中实现主控制器选举机制。
于本发明的一实施例中,所述设置单一TCP连接在所有任意两个所述控制器之间的一种能实现过程包括:
所述控制器在端口处启动监听服务;监听其他控制器的TCP连接请求;
所述控制器根据所配置的控制器列表尝试连接所述集群中的其他控制器并同时监听对方控制器连接请求服务;
所述两个控制器之间保留且仅保留最新建立的一条TCP连接。
于本发明的一实施例中,当主控制器宕机或网络异常后,通过所述主选举机制选举出新主控制器的一种实现过程包括:
判断监测到主控制器宕机或网络异常的从控制器是否只有一个;
若是,所述一个从控制器确定一个所述主控制器提名并保存到本地;
否则,所述多个从控制器同时分别确定一个所述主控制器提名并保存到本地。
需要说明的是,应理解以上装置的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现,也可以全部以硬件的形式实现,还可以部分模块通过处理元件调用软件的形式实现,部分模块通过硬件的形式实现。例如:x模块可以为单独设立的处理元件,也可以集成在上述装置的某一个芯片中实现。此外,x模块也可以以程序代码的形式存储于上述装置的存储器中,由上述装置的某一个处理元件调用并执行以上x模块的功能。其它模块的实现与之类似。这些模块全部或部分可以集成在一起,也可以独立实现。这里所述的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC),一个或多个微处理器(Digital Singnal Processor,简称DSP),一个或者多个现场可编程门阵列(Field Programmable Gate Array,简称FPGA)等。当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,如中央处理器(CentralProcessing Unit,简称CPU)或其它可以调用程序代码的处理器。这些模块可以集成在一起,以片上***(System-on-a-chip,简称SOC) 的形式实现。
为实现上述目的及其他相关目的,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行如本发明所述的高可用SDN控制器集群方法的步骤。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过计算机程序相关的硬件来完成。前述的计算机程序可以存储于一计算机可读存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
请参阅图3所示,为实现上述目的及其他相关目的,本发明还提供一种设备30,所述设备30包括:处理器31及存储器32,所述存储器32用于存储计算机程序,所述处理器31用于执行所述存储器32存储的计算机程序,以使所述设备30执行如本发明所述的高可用SDN控制器集群方法。
本申请实施例提供的设备包括:处理器、存储器、收发器、通信接口或/和***总线;存储器和通信接口通过***总线与处理器和收发器连接并完成相互间的通信,存储器用于存储计算机程序,通信接口用于和其他设备进行通信,处理器和收发器用于运行计算机程序,使x 装置执行如上x方法的各个步骤。
上述提到的***总线可以是外设部件互连标准(Peripheral ComponentInterconnect,简称 PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。该***总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。通信接口用于实现数据库访问装置与其他设备(如客户端、读写库和只读库)之间的通信。存储器可能包含随机存取存储器(Random Access Memory,简称RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
如上所述,本发明的高可用SDN控制器集群方法及***,具有以下有益效果:创造性利用主控制器选举机制,实现SDN控制器集群的高可用。
本发明解决了现有技术中在SDN控制器集群中,当主控制器出现宕机或者网络出现异常时,整个SDN控制器集群将面临着不可用的非正常状态的问题,有效克服了现有技术中的种种缺点而具高度产业利用价值。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。

Claims (10)

1.一种高可用SDN控制器集群方法,其特征在于,所述高可用SDN控制器集群方法包括以下步骤:
设置集群中的服务端口、控制器IP以及虚拟IP进配置文件中;
设置单一TCP连接在所有任意两个所述控制器之间;
基于上述TCP连接在所述控制器之间设置主控制器选举机制;
当主控制器宕机或网络异常后,通过所述主控制器选举机制选举出新主控制器;
所述新主控制器抢占虚拟IP并广播免费ARP请求;通知局域网中的节点更新ARP缓存表。
2.根据权利要求1所述的高可用SDN控制器集群方法,其特征在于,所述设置单一TCP连接在所有任意两个所述控制器之间的一种能实现过程包括:
所述控制器在端口处启动监听服务;监听其他控制器的TCP连接请求;
所述控制器根据所配置的控制器列表尝试连接所述集群中的其他控制器并同时监听对方控制器连接请求服务;
所述两个控制器之间保留且仅保留最新建立的一条TCP连接。
3.根据权利要求1所述的高可用SDN控制器集群方法,其特征在于,当主控制器宕机或网络异常后,通过所述主控制器选举机制选举出新主控制器的一种实现过程包括:
判断监测到所述主控制器宕机或网络异常的所述从控制器是否只有一个;
若是,所述一个从控制器确定一个主控制器提名并保存到本地;
否则,所述多个从控制器同时分别确定一个主控制器提名并保存到本地。
4.根据权利要求3所述的高可用SDN控制器集群方法,其特征在于,所述确定主控制器提名的规则包括:提名所有TCP连接正常的所述从控制器中IP最大的从控制器。
5.根据权利要求1所述的高可用SDN控制器集群方法,其特征在于,所述高可用SDN控制器集群方法还包括:
当新控制器加入所述控制器集群时,将新控制器IP添加入所有控制器IP汇总表;
自动配置新控制器IP进其他控制器的配置文件中。
6.一种高可用SDN控制器集群***,其特征在于,所述高可用SDN控制器集群***包括:
配置模块,用于设置集群中的服务端口、控制器IP以及虚拟IP进配置文件中;设置单一TCP连接在所有任意两个所述控制器之间;
处理模块,与所述配置模块通信连接,用于当主控制器宕机或网络异常后,通过所述主选举机制选举出新主控制器;所述新主控制器抢占虚拟IP并广播免费ARP请求;通知局域网中的节点更新ARP缓存表;
主控制器选举模块,与所述处理模块通信连接,用于在所述集群***中实现主控制器选举机制。
7.根据权利要求6所述的高可用SDN控制器集群***,其特征在于,所述设置单一TCP连接在所有任意两个所述控制器之间的一种能实现过程包括:
所述控制器在端口处启动监听服务;监听其他控制器的TCP连接请求;
所述控制器根据所配置的控制器列表尝试连接所述集群中的其他控制器并同时监听对方控制器连接请求服务;
所述两个控制器之间保留且仅保留最新建立的一条TCP连接。
8.根据权利要求6所述的高可用SDN控制器集群***,其特征在于,当主控制器宕机或网络异常后,通过所述主选举机制选举出新主控制器的一种实现过程包括:
判断监测到所述主控制器宕机或网络异常的所述从控制器是否只有一个;
若是,所述一个从控制器确定一个主控制器提名并保存到本地;
否则,所述多个从控制器同时分别确定一个主控制器提名并保存到本地。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1至5中任一项所述高可用SDN控制器集群方法。
10.一种设备,其特征在于,所述设备包括:处理器及存储器,所述存储器用于存储计算机程序,所述处理器用于执行所述存储器存储的计算机程序,以使所述设备执行如权利要求1至5中任一项所述高可用SDN控制器集群方法。
CN201811207413.1A 2018-08-15 2018-10-17 高可用sdn控制器集群方法、***、存储介质及设备 Active CN110838935B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201810929373 2018-08-15
CN2018109293735 2018-08-15

Publications (2)

Publication Number Publication Date
CN110838935A true CN110838935A (zh) 2020-02-25
CN110838935B CN110838935B (zh) 2023-01-03

Family

ID=69573941

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811207413.1A Active CN110838935B (zh) 2018-08-15 2018-10-17 高可用sdn控制器集群方法、***、存储介质及设备

Country Status (1)

Country Link
CN (1) CN110838935B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111770210A (zh) * 2020-06-05 2020-10-13 深圳爱克莱特科技股份有限公司 一种多控制器ip分组方法、***及可读介质
CN111817886A (zh) * 2020-06-29 2020-10-23 新华三信息安全技术有限公司 一种获取管理对象数据的方法及设备
CN113364822A (zh) * 2020-03-05 2021-09-07 北京沃东天骏信息技术有限公司 一种缓存数据更新方法和装置
CN113472662A (zh) * 2021-07-09 2021-10-01 武汉绿色网络信息服务有限责任公司 路径重分配方法和网络业务***
CN114466081A (zh) * 2021-12-23 2022-05-10 东莞市李群自动化技术有限公司 实时通道组的节点管控方法、***、设备及存储介质
US11994938B2 (en) 2021-11-11 2024-05-28 Samsung Electronics Co., Ltd. Systems and methods for detecting intra-chip communication errors in a reconfigurable hardware system

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1423197A (zh) * 2002-12-16 2003-06-11 华中科技大学 基于多tcp连接映像的高可用***
CN102843259A (zh) * 2012-08-21 2012-12-26 武汉达梦数据库有限公司 集群内中间件自管理热备方法及***
CN103618621A (zh) * 2013-11-21 2014-03-05 华为技术有限公司 一种软件定义网络sdn的自动配置方法、设备及***
CN104158642A (zh) * 2014-08-08 2014-11-19 上海斐讯数据通信技术有限公司 一种为软件定义网络控制器提供备份的方法及***
CN104679796A (zh) * 2013-12-03 2015-06-03 方正信息产业控股有限公司 一种选举方法、装置及数据库镜像集群节点
CN106953744A (zh) * 2017-02-27 2017-07-14 浙江工商大学 一种sdn集群控制器高可用架构设计方法
CN107515863A (zh) * 2016-06-15 2017-12-26 上海宽带技术及应用工程研究中心 一种基于分布式数据库的sdn集群实现的方法及***
CN107819774A (zh) * 2017-11-16 2018-03-20 郑州云海信息技术有限公司 一种sdn异构多控制器协同方法及***

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1423197A (zh) * 2002-12-16 2003-06-11 华中科技大学 基于多tcp连接映像的高可用***
CN102843259A (zh) * 2012-08-21 2012-12-26 武汉达梦数据库有限公司 集群内中间件自管理热备方法及***
CN103618621A (zh) * 2013-11-21 2014-03-05 华为技术有限公司 一种软件定义网络sdn的自动配置方法、设备及***
CN104679796A (zh) * 2013-12-03 2015-06-03 方正信息产业控股有限公司 一种选举方法、装置及数据库镜像集群节点
CN104158642A (zh) * 2014-08-08 2014-11-19 上海斐讯数据通信技术有限公司 一种为软件定义网络控制器提供备份的方法及***
CN107515863A (zh) * 2016-06-15 2017-12-26 上海宽带技术及应用工程研究中心 一种基于分布式数据库的sdn集群实现的方法及***
CN106953744A (zh) * 2017-02-27 2017-07-14 浙江工商大学 一种sdn集群控制器高可用架构设计方法
CN107819774A (zh) * 2017-11-16 2018-03-20 郑州云海信息技术有限公司 一种sdn异构多控制器协同方法及***

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113364822A (zh) * 2020-03-05 2021-09-07 北京沃东天骏信息技术有限公司 一种缓存数据更新方法和装置
CN111770210A (zh) * 2020-06-05 2020-10-13 深圳爱克莱特科技股份有限公司 一种多控制器ip分组方法、***及可读介质
CN111770210B (zh) * 2020-06-05 2021-09-21 深圳爱克莱特科技股份有限公司 一种多控制器分组方法及可读介质
CN111817886A (zh) * 2020-06-29 2020-10-23 新华三信息安全技术有限公司 一种获取管理对象数据的方法及设备
CN111817886B (zh) * 2020-06-29 2023-12-26 新华三信息安全技术有限公司 一种获取管理对象数据的方法及设备
CN113472662A (zh) * 2021-07-09 2021-10-01 武汉绿色网络信息服务有限责任公司 路径重分配方法和网络业务***
US11994938B2 (en) 2021-11-11 2024-05-28 Samsung Electronics Co., Ltd. Systems and methods for detecting intra-chip communication errors in a reconfigurable hardware system
CN114466081A (zh) * 2021-12-23 2022-05-10 东莞市李群自动化技术有限公司 实时通道组的节点管控方法、***、设备及存储介质
CN114466081B (zh) * 2021-12-23 2024-04-12 东莞市李群自动化技术有限公司 实时通道组的节点管控方法、***、设备及存储介质

Also Published As

Publication number Publication date
CN110838935B (zh) 2023-01-03

Similar Documents

Publication Publication Date Title
CN110838935B (zh) 高可用sdn控制器集群方法、***、存储介质及设备
Braden Requirements for Internet hosts-communication layers
Braden Rfc1122: Requirements for internet hosts-communication layers
US8938553B2 (en) Cooperative proxy auto-discovery and connection interception through network address translation
US6901580B2 (en) Configuration parameter sequencing and sequencer
WO2018133454A1 (zh) 远程服务访问路径控制方法和相关设备
US7065086B2 (en) Method and system for efficient layer 3-layer 7 routing of internet protocol (“IP”) fragments
US8583831B2 (en) Thin client discovery
US20060262734A1 (en) Transport protocol connection synchronization
US8544025B2 (en) Efficient data transfer on local network connections using a pseudo socket layer
JP2005502225A (ja) ギガビット・イーサネット・アダプタ
JP2011018373A (ja) オフロードされたネットワークスタックの状態オブジェクトをアップロードする方法及びそれを同期する方法
US20050111483A1 (en) Method and system of teamed network adapters with offloaded connections
US11888818B2 (en) Multi-access interface for internet protocol security
US20070291782A1 (en) Acknowledgement filtering
US20230269164A1 (en) Method and apparatus for sending route calculation information, device, and storage medium
WO2012049363A1 (en) Method, system and element for multipurpose data traffic engineering and routing
US20220247672A1 (en) LAN System, Method and Unit Supporting Dynamic Self-Adaptive Network Configuration
US20040267960A1 (en) Force master capability during multicast transfers
Rayes et al. The internet in IoT
CN117354253A (zh) 一种网络拥塞通知方法、装置及存储介质
US6826623B1 (en) Detecting a dead gateway for subsequent non-TCP transmission by sending a first TCP packet and deleting an ARP entry associated with the gateway
MacDonald et al. Microsoft windows 2000 tcp/ip implementation details
US20080056263A1 (en) Efficient transport layer processing of incoming packets
JP3614006B2 (ja) 非対称経路利用通信システム、および、非対称経路利用通信方法

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