一种pppoe接入设备负载均衡的方法和装置制造方法

文档序号:7818378阅读:154来源:国知局
一种pppoe接入设备负载均衡的方法和装置制造方法
【专利摘要】本发明提供一种PPPOE接入设备负载均衡的方法及装置,包括:SDN控制器获取网络中各PPPOE服务端的位置信息;SDN控制器根据各PPPOE服务端的位置信息,为请求建立PPPOE连接的客户端分配指定的PPPOE服务端,并在该PPPOE客户端和指定的PPPOE服务端之间进行PPPOE发现阶段的报文转发。本发明通过将PPPOE接入网络SDN化,进而通过SDN控制器主动选择PPPOE服务端,以解决当网络中存在多个作为PPPOE服务端的接入设备时,各接入设备之间的负载均衡问题。
【专利说明】一种PPPOE接入设备负载均衡的方法和装置

【技术领域】
[0001]本发明涉及软件定义网络(Software Defined Network, SDN)【技术领域】,特别涉及一种通过SDN控制器实现PPPOE接入设备负载均衡的方法和装置。

【背景技术】
[0002]PPPOE 的全称为 Point-to-Point Protocol over Ethernet,是一种以太网上的点对点协议。其本质是将点对点协议(PPP)封装在以太网报文中的一种二层网络隧道协议,从而实现在以太广播域中的两个以太网接口间创建点对点隧道。由于在以太网协议中集成了 PPP协议,所以解决了以太网链路中身份验证、计费、加密以及压缩等功能。
[0003]PPPOE的典型组网如图1所示,PPPOE的点对点连接分为两个阶段:ΡΡΡ0Ε发现阶段和PPP会话阶段。其中,PPPOE发现阶段通过以下五种报文来建立和终止会话:PAD1、PAD0、PADR、PADS、PADT。发现阶段流程如下:
[0004]SlU PPPOE客户端广播发送PADI报文,报文的目的MAC为广播地址(全部为F),源MAC为客户端自身的MAC地址,并将报文中的会话ID填为O。
[0005]S12,PPPOE服务端(通常为PPPOE接入设备BAS)接收到PADI报文,发送PADO报文响应客户端的PADI,该报文直接单播给PPPOE客户端,报文中的会话ID依旧为O。由于PADI报文是广播发送,所以该广播域中所有的PPPOE服务端都能收到,所以PPPOE客户端可能会收到多份PADO报文。
[0006]S13,PPPOE客户端在接收到的多个PADO报文中,根据预定的原则选择其中的一个PPPOE服务端,发送PADR报文,该报文直接单播到选中的PPPOE服务端,报文中的会话ID依旧为O。
[0007]S14、PPPOE服务端接收到PADR后发送PADS报文进行响应,该报文直接单播到客户端,并为该PPPOE连接分配一个唯一的会话ID。当客户端收到PADS报文后,双方就进入PPP会话阶段。
[0008]S15,PPPOE服务端或者客户端发现需要断开PPPOE连接时,发送PADT报文通知对端将此前已连接的会话清除,该报文以单播的形式发送,并将报文中的会话ID填为前面建立过程中分配的会话ID值。
[0009]然而,在该PPPOE的连接建立过程, 申请人:发现存在以下问题:
[0010]当网络中存在多个PPPOE服务端时,将由客户端主动选择接入的PPPOE服务端,由于各客户端采用的选择算法可能都是一样的,所以选择的结果可能会导致所有的客户端都接入了一个PPPOE服务端,这会造成网络负载不均衡。
[0011]另外,当网络接入规模扩大,需要扩大PPPOE服务端的接入能力时,虽然可以选择更换一个容量更大的接入设备BAS作为PPPOE服务端,但是接入设备BAS的容量越大则意味着成本就越高,因而从经济上考虑不是最优的选择;在实践中,最节约成本的做法通常是向网络中添加新的接入设备(BAS),但由于客户端选择算法的限制,仍有可能会出现极端的负载不均衡,甚至会出现部分BAS接入设备空闲,而客户端却无法接入的情况。


【发明内容】

[0012]为了解决上述问题,本发明提供一种PPPOE接入设备负载均衡的方法和装置。通过本发明,可以在向网络中添加新的PPPOE接入设备时,能够有效地实现多PPPOE接入设备间的负载均衡。
[0013]具体地,本发明是通过如下技术方案实现的:
[0014]一种PPPOE接入设备负载均衡的方法,包括:
[0015]SDN控制器获取网络中各PPPOE服务端的位置信息;
[0016]SDN控制器根据各PPPOE服务端的位置信息,为请求建立PPPOE连接的客户端分配指定的PPPOE服务端,并在该PPPOE客户端和指定的PPPOE服务端之间进行PPPOE发现阶段的报文转发。
[0017]进一步地,所述方法还包括:
[0018]SDN控制器维护和统计各PPPOE服务端的会话数量,并根据各PPPOE服务端的会话数量来标识各PPPOE服务端的负载情况。
[0019]其中,所述SDN控制器统计各PPPOE服务端的会话数量具体为:
[0020]当SDN控制器接收到PADS报文时,将报文中携带的PPPOE会话ID加入到指定的服务端对应的计数中,表示该PPPOE会话接入到指定的服务端。
[0021]当SDN控制器接收到PADT报文时,将报文中携带的PPPOE会话ID取出,并将该会话ID从指定服务端的计数中删除。
[0022]进一步地,所述方法还包括:
[0023]所述SDN控制器定期在SDN网络内发送PADI报文,以便发现新加入的PPPOE服务端。
[0024]其中,所述SDN控制器获取网络中各PPPOE服务端的位置信息具体为:
[0025]SDN控制器主动向网络中SDN交换机下发策略表项,要求SDN交换机将ETHTYPE等于0x8863的报文上送控制器;
[0026]接收来自PPPOE服务端的报文,获取报文中携带PPPOE服务端的位置信息。
[0027]本发明同时提供一种PPPOE接入设备负载均衡的装置,运行在SDN控制器上,包括:
[0028]获取单元,用于获取SDN网络中各PPPOE服务端的位置信息;
[0029]处理单元,用于根据各PPPOE服务端的位置信息,为请求建立PPPOE连接的客户端分配指定的PPPOE服务端,并在该PPPOE客户端和指定的PPPOE服务端之间进行PPPOE阶段的报文转发。
[0030]进一步地,所述装置还包括:
[0031]统计单元,用于维护和统计各PPPOE服务端的会话数量,并根据各PPPOE服务端的会话数量来标识各PPPOE服务端的负载情况。
[0032]其中,所述统计单元统计各PPPOE服务端的会话数量具体为:
[0033]当SDN控制器接收到PADS报文时,将报文中携带的PPPOE会话ID加入到指定的服务端对应的计数中,表示该PPPOE会话接入到指定的服务端。
[0034]当SDN控制器接收到PADT报文时,将报文中携带的PPPOE会话ID取出,并将该会话ID从指定服务端的计数中删除。
[0035]进一步地,所述获取单元还将定期在SDN网络内发送PADI报文,以便发现新加入的PPPOE服务端。
[0036]其中,所述获取单元获取网络中各PPPOE服务端的位置信息具体为:
[0037]通过处理单元主动向网络中SDN交换机下发策略表项,要求SDN交换机将ETHTYPE等于0x8863的报文上送控制器;
[0038]接收来自PPPOE服务端的报文,获取报文中携带PPPOE服务端的位置信息。
[0039]通过本发明,可以在网络中添加新的PPPOE接入设备时,能够有效地实现多PPPOE接入设备间的负载均衡,进而可以多台PPPOE接入设备为整个网络提供大容量的PPPOE接入服务。

【专利附图】

【附图说明】
[0040]图1是现有技术中典型的PPPOE典型组网的示意图;
[0041 ] 图2是本发明引入SDN控制的PPPOE组网示意图;
[0042]图3是本发明提供的PPPOE接入设备负载均衡的方法的流程示意图;
[0043]图4是本发明提供的PPPOE接入设备负载均衡装置的硬件架构示意图;
[0044]图5是本发明PPPOE接入设备负载均衡装置的功能模块示意图。

【具体实施方式】
[0045]SDN网络作为新一代的网络组织结构,极大颠覆了原有网络的组织方式,为网络管理者管理网络提供了极大的方便性及灵活性,网络管理者可以按照自己的需要来定义网络。在SDN网络中,将传统网络设备的控制平面与数据平面分离,从而实现网络流量的灵活控制。相应地,SDN架构中包括SDN控制器和SDN交换机,其中:SDN控制器和SDN交换机之间通过SDN管理通道进行通信,SDN控制器根据用户的配置或者动态运行的协议生成流表下发到SDN交换机,SDN交换机依据SDN控制器下发的流表进行报文处理。
[0046]为了解决在PPPOE接入过程中,PPPOE客户端可能都接入同一个PPPOE服务端,进而造成网络接入负载不均衡的问题。本发明通过将PPPOE接入网络SDN化,进而通过SDN控制器主动选择PPPOE服务端,以解决当网络中存在多个作为PPPOE服务端的接入设备时,各接入设备之间的负载均衡问题。
[0047]如图2所示,在本发明中,所述PPPOE接入网络为SDN网络,包括有SDN控制器和SDN交换机,其中PPPOE客户端和PPPOE服务端通过SDN交换机彼此相连。SDN交换机依据SDN控制器下发的流表进行报文转发处理。在图2所示的组网下,为实现本发明目的,本发明提供的PPPOE接入设备负载均衡的方法如图3所示,包括:
[0048]S31、SDN控制器获取网络中各PPPOE服务端的位置信息。
[0049]在本步骤中,由SDN控制器主动向网络中SDN交换机下发策略表项,要求SDN交换机将ETHTYPE等于0x8863 (ΡΡΡ0Ε发现阶段报文协议号)的报文上送控制器;随后,SDN控制器在所述SDN网络内广播发送PADI报文,并将所述PADI报文中源MAC填为自身的MAC地址。由于PADI报文是广播发送的,因此,所有作为PPPOE服务端的接入设备都能收到此报文,回应PADO报文,当所述PADO报文发送到与PPPOE服务端直连的SDN交换机上后,SDN交换机根据本地保存的策略表项(ETHTYPE等于0x8863的报文上送控制器),会直接将该PADO报文上送给SDN控制器,这样,所述SDN控制器就可以根据该PADO报文中携带的内容获取到各PPPOE服务端的位置信息。
[0050]S32, SDN控制器根据各PPPOE服务端的位置信息,为请求建立PPPOE连接的客户端分配指定的PPPOE服务端,并在该PPPOE客户端和指定的PPPOE服务端之间进行PPPOE发现阶段的报文转发。
[0051]在本步骤中,当PPPOE客户端发送PADI报文到与之连接的SDN交换机时,SDN交换机首先会在本地查询其保存的流表,由于PADI报文ETHTYPE等于0x8863,SDN交换机根据本地保存的策略表项(ETHTYPE等于0x8863的报文上送控制器),直接将该PADI报文上送给SDN控制器,SDN控制器会在本地查找是否保存有为该客户端指定的PPPOE服务端,如果没有匹配到,则根据之前学习到的各PPPOE服务端及负载情况,按照预定的策略为所述PPPOE客户端选择一个当前比较空闲的PPPOE服务端,然后将该PADI报文从指定PPPOE服务端所连接的SDN交换机的出端口发送出去,进而实现将该客户端发送的PADI报文转发给该指定的PPPOE服务端。
[0052]当指定的PPPOE服务端接收到PADI报文后,发送PADO报文响应客户端的PADI,该报文首先会发送到与之连接的SDN交换机,同理,SDN交换机会根据本地保存的策略表项(ETHTYPE等于0x8863的报文上送控制器),直接将该PADO报文上送给SDN控制器,SDN控制器查找自身保存的表项,由于之前已学习到PPPOE客户端的地址信息,因此直接将该PADO报文通过PPPOE客户端所连接的SDN交换机的出端口发送给PPPOE客户端。随后,PPPOE客户端发送的PADR报文或者PPPOE服务端响应的PADS报文,SDN交换机根据本地保存的策略表项(ETHTYPE等于0x8863的报文上送控制器),将该PADR报文或者PADS报文上送给SDN控制器,由SDN控制器直接将此类报文在该PPPOE客户端与指定的PPPOE服务端间进行转发。
[0053]S33,SDN控制器维护和统计各PPPOE服务端的会话数量,并根据各PPPOE服务端的会话数量来标识各PPPOE服务端的负载情况。
[0054]为了在本发明中及时发现新加入的PPPOE服务端,所述SDN控制器还需要定期在SDN网络内发送PADI报文,以便及时获取新加入的PPPOE服务端的位置信息。另外,为了保证本发明中PPPOE客户端能够分配到合适的PPPOE服务端,SDN控制器还需要维护和统计各PPPOE服务端的会话数量,并根据各PPPOE服务端的会话数量来标识各PPPOE服务端的负载情况。具体地,
[0055]SDN交换机在接收到PADS报文或者PADT报文时,根据其本地保存的策略表项(ETHTYPE等于0x8863的报文上送控制器),将该PADS报文或者PADT报文上送给SDN控制器,
[0056]当SDN控制器接收到PADS报文时,将报文中携带的PPPOE会话ID加入到指定的服务端对应的计数中,表示该PPPOE会话接入到指定的服务端。
[0057]当SDN控制器接收到PADT报文时,将报文中携带的PPPOE会话ID取出,并将该会话ID从指定服务端的计数中删除。
[0058]为使本发明的目的、技术方案和优点更加清楚,下面结合具体的应用实例对本发明作进一步的详细描述。仍以图2所示为例,假设在该应用场景下,共包括有两个PPPOE客户端(Cl、C2),三个SDN交换机(SW1、SW2、SW3)以及若干个PPPOE服务端S(S1、S2、S3、……),其中PPPOE客户端(C1、C2)与SDN交换机(SW1、SW2)相连,若干个PPPOE服务端S (S1、S2、S3、......)与SDN交换机SW3相连。进一步地,SDN交换机(SW1、SW2、SW3)还通过SDN管理通道与SDN控制器相连。依据本发明提供的PPPOE接入设备负载均衡的方法,包括:
[0059]首先,SDN控制器向SDN交换机(SWl、Sff2, SW3)下发策略表项,要求SDN交换机(SffU Sff2, SW3)将ETHTYPE等于0x8863 (ΡΡΡ0Ε发现阶段报文协议号)的报文上送该控制器。随后,SDN控制器在SDN网络内广播发送PADI报文,并将PADI报文中源MAC填为控制器自身的MAC。由于PADI报文是广播发送的,因此,所有作为PPPOE服务端的接入设备S都能收到此报文,并回应PADO报文。当所述PADO报文发送到与PPPOE服务端直连的SDN交换机SW3上后,SDN交换机SW3根据本地保存的策略表项(ETHTYPE等于0x8863的报文上送控制器),直接将该PADO报文上送给SDN控制器,这样,所述SDN控制器就可以根据该PADO报文中携带的内容获取到各PPPOE服务端S所在的位置信息。
[0060]接着,假设PPPOE客户端Cl发出请求建立PPPOE连接的PADI报文,Sffl根据本地保存的策略表项(ETHTYPE等于0x8863的报文上送控制器),直接将该PADI报文上送给SDN控制器,SDN控制器学习客户端Cl的MAC地址并予以记录,然后SDN控制器在本地查找是否有保存的指定PPPOE服务端的MAC地址,如果没有匹配到,则按照预定策略为该客户端Cl指定PPPOE服务端,其中所述预定策略可以是轮询,也可以是根据当前各PPPOE服务端的会话数量。假设根据预定策略指定的PPPOE服务端为SI。然后将该PADI报文从指定PPPOE服务端所连接的SDN交换机SW3的出端口发送出去,进而实现将该客户端发送的PADI报文转发给该指定的PPPOE服务端SI。
[0061]当PPPOE服务端SI接收到该客户端发送的PADI报文后,会发出PADO响应报文至SDN交换机SW3,SW3根据本地保存的策略表项(ETHTYPE等于0x8863的报文上送控制器),将该PADO报文上送给SDN控制器。SDN控制器查找自身保存的表项,由于之前已学习到客户端Cl的地址信息,因此直接将该PADO报文通过SDN交换机SWl的出端口发送给PPPOE客户端Cl。随后,PPPOE客户端Cl发送的PADR报文或者PPPOE服务端SI响应的PADS报文,SDN交换机(SWl或SW3)同样会根据本地保存的策略表项(ETHTYPE等于0x8863的报文上送控制器),将该PADR报文或者PADS报文上送给SDN控制器,由SDN控制器直接将此类报文在该PPPOE客户端与指定的PPPOE服务端间进行转发。
[0062]为了在本发明中及时发现新加入的PPPOE服务端S,所述SDN控制器还将定期在SDN网络内发送PADI报文。另外,为了保证本发明中其他客户端(例如C2)在建立PPPOE连接时能够分配到合适的PPPOE服务端S,SDN控制器还需要维护和统计各PPPOE服务端的会话数量,并根据各PPPOE服务端的会话数量来标识各PPPOE服务端的负载情况。具体地,
[0063]所述SDN交换机(SW1、SW2、SW3)在接收到PADS报文或者PADT报文时,根据其本地保存的策略表项((ETHTYPE等于0x8863的报文上送控制器),将该PADS报文或者PADT报文上送给SDN控制器,
[0064]当SDN控制器接收到PADS报文时,将报文中携带的PPPOE会话ID加入到指定的服务端S对应的计数中,表示该PPPOE会话接入到指定的服务端S。
[0065]当SDN控制器接收到PADT报文时,将报文中携带的PPPOE会话ID取出,并将该会话ID从指定服务端的计数中删除。
[0066]对应于上述方法,本发明同时提供一种PPPOE接入设备负载均衡的装置,所述装置运行在SDN控制器上,如图4所示,该控制器在硬件架构上包括有CPU41、存储器42、接口43以及用于进行内部连接的内部总线44。所述装置通常以软件的形式存储在存储器42上,从功能上划分,如图5所示,该装置包括:
[0067]获取单元51,用于获取SDN网络中各PPPOE服务端的位置信息;
[0068]处理单元52,用于根据各PPPOE服务端的位置信息,为请求建立PPPOE连接的客户端分配指定的PPPOE服务端,并在该PPPOE客户端和指定的PPPOE服务端之间进行PPPOE阶段的报文转发。
[0069]进一步地,所述装置还包括:
[0070]统计单元53,用于维护和统计各PPPOE服务端的会话数量,并根据各PPPOE服务端的会话数量来标识各PPPOE服务端的负载情况。
[0071]其中,所述统计单元53统计各PPPOE服务端的会话数量具体为:
[0072]当SDN控制器接收到PADS报文时,将报文中携带的PPPOE会话ID加入到指定的服务端对应的计数中,表示该PPPOE会话接入到指定的服务端。
[0073]当SDN控制器接收到PADT报文时,将报文中携带的PPPOE会话ID取出,并将该会话ID从指定服务端的计数中删除。
[0074]进一步地,所述获取单元51还将定期在SDN网络内发送PADI报文,以便及时发现新加入的PPPOE服务端。
[0075]其中,所述获取单元51获取网络中各PPPOE服务端的位置信息具体为:
[0076]通过处理单元52主动向网络中SDN交换机下发策略表项,要求SDN交换机将ETHTYPE等于0x8863的报文上送控制器,接收来自PPPOE服务端的报文,获取报文中携带PPPOE服务端的位置信息。
[0077]通过本发明,可以在网络中添加新的PPPOE接入设备时,能够有效地实现多PPPOE接入设备间的负载均衡,进而可以多台PPPOE接入设备为整个网络提供大容量的PPPOE接入服务。
[0078]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
【权利要求】
1.一种PPPOE接入设备负载均衡的方法,包括: SDN控制器获取网络中各PPPOE服务端的位置信息; SDN控制器根据各PPPOE服务端的位置信息,为请求建立PPPOE连接的客户端分配指定的PPPOE服务端,并在该PPPOE客户端和指定的PPPOE服务端之间进行PPPOE发现阶段的报文转发。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括: SDN控制器维护和统计各PPPOE服务端的会话数量,并根据各PPPOE服务端的会话数量来标识各PPPOE服务端的负载情况。
3.根据权利要求2所述的方法,其特征在于,所述SDN控制器统计各PPPOE服务端的会话数量具体为: 当SDN控制器接收到PADS报文时,将报文中携带的PPPOE会话ID加入到指定的服务端对应的计数中,表示该PPPOE会话接入到指定的服务端。 当SDN控制器接收到PADT报文时,将报文中携带的PPPOE会话ID取出,并将该会话ID从指定服务端的计数中删除。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括: 所述SDN控制器定期在SDN网络内发送PADI报文,以便发现新加入的PPPOE服务端。
5.根据权利要求1所述的方法,其特征在于,所述SDN控制器获取网络中各PPPOE服务端的位置信息具体为: SDN控制器主动向网络中SDN交换机下发策略表项,要求SDN交换机将ETHTYPE等于0x8863的报文上送控制器, 接收来自PPPOE服务端的报文,获取报文中携带PPPOE服务端的位置信息。
6.一种PPPOE接入设备负载均衡的装置,运行在SDN控制器上,包括: 获取单元,用于获取SDN网络中各PPPOE服务端的位置信息; 处理单元,用于根据各PPPOE服务端的位置信息,为请求建立PPPOE连接的客户端分配指定的PPPOE服务端,并在该PPPOE客户端和指定的PPPOE服务端之间进行PPPOE阶段的报文转发。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括: 统计单元,用于维护和统计各PPPOE服务端的会话数量,并根据各PPPOE服务端的会话数量来标识各PPPOE服务端的负载情况。
8.根据权利要求7所述的装置,其特征在于,所述统计单元统计各PPPOE服务端的会话数量具体为: 当SDN控制器接收到PADS报文时,将报文中携带的PPPOE会话ID加入到指定的服务端对应的计数中,表示该PPPOE会话接入到指定的服务端。 当SDN控制器接收到PADT报文时,将报文中携带的PPPOE会话ID取出,并将该会话ID从指定服务端的计数中删除。
9.根据权利要求6所述的装置,其特征在于,所述获取单元定期在SDN网络内发送PADI报文,以便发现新加入的PPPOE服务端。
10.根据权利要求6或者9所述的装置,其特征在于,所述获取单元获取网络中各PPPOE服务端的位置信息具体为: 通过处理单元主动向网络中SDN交换机下发策略表项,要求SDN交换机将ETHTYPE等于0x8863的报文上送控制器; 接收来自PPPOE服务端的报文,获取报文中携带PPPOE服务端的位置信息。
【文档编号】H04L12/803GK104301247SQ201410598615
【公开日】2015年1月21日 申请日期:2014年10月29日 优先权日:2014年10月29日
【发明者】黄林波, 王 锋 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1