[0023] 为使本发明实施方式的目的、技术方案和优点更加清楚,下面将结合本发明实施方式中的附图,对本发明实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式是本发明一部分实施方式,而不是全部的实施方式。基于本发明中的实施方式,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施方式,都属于本发明保护的范围。
[0024] SDN是一种新型的网络架构,其可以通过OpenFlow(开放流)技术将网络设备的控制面与数据面进行分离,从而实现对网络流量的灵活控制。在SDN中,包含实现控制面功能的控制器和若干实现数据面功能的交换机。
[0025] 本发明实施方式提供一种基于SDN的负载均衡系统,如图1所示,SDN网络中包括控制器和交换机,其中SDN网络中的交换机由集中的控制器管理。此外,客户端和服务器分别和交换机连接,通过SDN网络进行通讯。
[0026] 本发明实施方式提供一种基于SDN的负载均衡方法。请参阅图2,所述方法应用于SDN中的控制器上,包括以下步骤:
[0027] 步骤S21:控制器预先设置最小Pagerank负载均衡配置表。
[0028] 在本实施方式中,控制器预先设置最小Pagerank负载均衡配置表,该配置表的配置项包括最小Pagerank负载均衡功能和Pagerank缺省值,其中所述最小Pagerank负载均衡功能为打开和关闭最小Pagerank负载均衡功能,所述Pagerank缺省值为整个网络交换机ID最小将取Pagerank缺省值,例如缺省值为10。具体如表1所示。
[0029] 表1
[0030]
[0031] 步骤S22:控制器比较SDN网络中交换机ID,将交换机ID最小的转发节点的Pagerank取为Pagerank缺省值。
[0032] 步骤S23:控制器获取网络拓扑结构,并根据所述网络拓扑结构计算所有转发节点的Pagerank值。
[0033] 在本实施方式中,控制器根据LLDP(Link Layer Discovery Protocol,链接层发现协议)生成网络拓扑。
[0034] 值的计算公式如下:
[0035]
[0036] 其中,
[0037] R(i)表示转发节点i的PageRank值;
[0038] B(i)表示所有连接节点i的转发节点;
[0039] R(j)表示转发节点j的PageRank值;
[0040] N(j)表示节点j的对外连接数。
[0041] 步骤S24:控制器接收交换机上报的自己的MAC地址,端口ID和链路负载,根据所述链路负载计算链路Pagerank值。
[0042] 在本实施方式中,控制器还接收交换机通过私有Experimenter报文上报的自己的MAC地址,端口ID和链路负载。
[0043] 和现有技术相比,本实施方式对Experimenter报文进行了扩展,扩展的Experimenter报文格式如图3所示,Experimenter值为255需要向ONF组织申请;Experimenter type值为1表明是从交换机到控制器。此外,在扩展的Experimenter报文中扩展了自己的MAC地址,端口ID和链路负载,其中上报的端口最大支持128个,链路负载的值域从0%到100%。
[0044] 在本实施方式中,链路Pagerank值计算公式如下:
[0045] R(L)=(R(s)/N(s))*C
[0046] 其中,
[0047] R(L)表示链路L的PageRank值;
[0048] R(s)表示源转发节点s的PageRank值;
[0049] N(s)表示源节点s的对外连接数;
[0050] C为此链路的负载均衡。
[0051] 步骤S25:控制器接收交换机上报的未匹配流表的报文,根据所述报文的特征码计算转发路径,并计算各转发路径的链路Pagerank值总和。
[0052] 在本实施方式中,当报文进入到SDN网络后,入口交换机查询流表,如果所述报文匹配流表,则将所述报文根据流表中的转发路径进行转发;如果所述报文未匹配流表,则将所述报文上报给控制器。
[0053] 当接收交换机上报的未匹配流表的报文时,从所述报文中获取源IP和目的IP,根据所述源IP和目的IP计算转发路径,并分别将转发路径上的链路Pagerank值相加获得各转发路径的链路Pagerank值总和。
[0054] 步骤S26:控制器将链路Pagerank值总和最小的转发路径添加到流表中下发给交换机,以使交换机根据所述转发路径转发所述报文。
[0055] 请继续参考图1,本发明的一个应用实例中,客户端通过SDN网络与服务器连通,控制器基于SDN的等价路由哈希算法功能和基于流量哈希算法表。
[0056] 控制器根据链接层发现协议生成网络拓扑,根据所述网络拓扑结构计算所有转发节点的Pagerank(Pr),例如S1和S3的Pr=10,S0和S2的Pr=5。
[0057] 交换机向控制器发送私有Experimenter报文上报的自己的MAC地址,端口ID和链路负载,控制器根据链路负载计算链路Pagerank值,例如S1-S0链路的Pr=1,S0-S2链路的Pr=1,S2-S3链路的Pr=1,S1-S3链路的Pr=4。
[0058] 当交换机S1接收到客户端发送给服务器的报文时,如果该报文未匹配流表,将该报文上送给控制器,控制器从报文中解析出源IP和目的IP,并根据所述源IP和目的IP计算转发路径,例如:转发路径1为S1-S3,转发路径2为S1-S0-S2-S3。分别将转发路径上的链路Pagerank值相加获得各转发路径的链路Pagerank值总和,例如转发路径1链路Pagerank值总和Pr=4;转发路径2链路Pagerank值总和Pr=3。,因此,将链路Pagerank总和最小的转发路径S1-S0-S2-S3添加到流表中下发给交换机,交换机根据S1-S0-S2-S3转发报文。
[0059] 链路负载发生变化,S1-S3的的负载均衡降为0.2,则S1-S3的链路Pagerank值总和小于S1-S0-S2-S3的链路Pagerank值总和,控制器将S1-S3添加到流表中下发给交换机,交换机根据S1-S3转发报文。
[0060] 请继续参阅图1。本发明实施方式提供一种基于SDN的负载均衡系统,包括:
[0061] 交换机,用于向控制器上报链路负载和未匹配流表的报文;
[0062] 控制器,用于预先设置最小Pagerank负载均衡配置表,所述配置表包括Pagerank缺省值,用于SDN中交换机ID最小的转发节点的Pagerank值取为所述Pagerank缺省值;获取网络拓扑结构,并根据所述网络拓扑结构计算转发节点Pagerank值;当接收交换机上报的链路负载时,根据所述链路负载计算链路Pagerank值;当接收到未匹配流表的报文时,根据所述报文的特征码计算转发路径,并计算各转发路径的链路Pagerank值总和;将链路Pagerank值总和最小的转发路径添加到流表中下发给交换机;
[0063] 所述交换机,还用于根据所述转发路径转发所述报文。
[0064] 请参阅图4。本发明实施方式提供一种控制基于SDN的负载均衡的装置,包括:
[0065] 第一处理模块,用于预先设置最小Pagerank负载均衡配置表,所述配置表包括Pagerank缺省值,用于将SDN中交换机ID最小的转发节点的Pagerank值取为所述Pagerank缺省值;
[0066] 第二处理模块,用于获取网络拓扑结构,并根据所述网络拓扑结构计算转发节点Pagerank值;
[0067] 第三处理模块,用于接收交换机上报的链路负载,并根据所述链路负载计算链路Pagerank值;
[0068] 第四处理模块,用于接收交换机上报的未匹配流表的报文,根据所述报文的特征码计算转发路径,并计算各转发路径的链路Pagerank值总和;
[0069] 第五处理模块,用于将链路Pagerank值总和最小的转发路径添加到流表中下发给交换机,以使交换机根据所述转发路径转发所述报文。
[0070] 上述的涉及到的基于SDN的负载均衡装置和系统的具体技术细节和基于SDN的负载均衡方法中的类似,故在此不再具体赘述。
[0071] 由上可见,本发明提供的基于SDN的负载均衡方法、装置和系统,控制器预先设置最小网页级别Pagerank负载均衡配置表,根据所述网络拓扑结构计算转发节点的Pagerank,根据交换机上报的链路负载计算链路Pagerank值,并根据未匹配流表的报文计算转发路径,计算各转发路径的链路Pagerank值总和,从而能够基于SDN架构,选择链路PageRank值总和最小的转发路径去转发报文。
[0072] 本说明书中的各个实施方式均采用递进的方式描述,各个实施方式之间相同相似的部分互相参见即可,每个实施方式重点说明的都是与其他实施方式的不同之处。
[0073] 最后应说明的是:上面对本发明的各种实施方式的描述以描述的目的提供给本领域技术人员。其不旨在是穷举的、或者不旨在将本发明限制于单个公开的实施方式。如上所述,本发明的各种替代和变化对于上述技术所属领域技术人员而言将是显而易见的。因此,虽然已经具体讨论了一些另选的实施方式,但是其它实施方式将是显而易见的,或者本领域技术人员相对容易得出。本发明旨在包括在此已经讨论过的本发明的所有替代、修改、和变化,以及落在上述申请的精神和范围内的其它实施方式。