具体实施方式
以下,参照附图,说明本发明的数据包传送装置的实施例。
图1表示采用了本发明的数据包传送装置的通信网络的结构例。
这里所示的通信网络包括:有线接入网1L、无线接入网1W、通信事业商或ISP管理的中继网2、以及因特网3。
有线接入网1L和无线接入网1W分别通过具有例如IEEE802.1X或PPPoE等不同种的协议的通信帧的终端功能的网关(GW)装置20L(20L-1、20L-m)、20W(20W-1、20W-m)与中继网2连接。
有线接入网1L包括:分别具备了IEEE802.1X或PPPoE等的通话连接功能的多个有线LAN终端40(40-1~40-n);以及收容这些有线LAN终端40的多个数据包传送装置10L(10L-1、10L-n)。各数据包传送装置10L与冗余化的多个GW装置20L(20L-1、20L-m)连接。
如后述那样,本发明的数据包传送装置10L除了将接收数据包随着第二层报头信息传送的一般性的L2SW功能以外,还具备将各有线LAN终端40选择性连接到冗余化的多个GW装置20L中的一个上的GW选择功能。在以下说明中,特别着眼于后者的功能,将数据包传送装置10L称为‘GW选择装置’。在本发明的第1实施例,GW选择装置的特征是,具备使负荷分散在冗余化的多个GW装置20L(20L-1、20L-m)上,并且控制与有线LAN终端40之间的连接的负荷分散控制功能。
在该图1所示的有线接入网1L中,GW选择装置10L-1分别通过单独的接入线路而收容多个有线LAN终端40(40-1~40-k),GW选择装置10L-n通过无源光网PON(Passive Optical Network)收容多个有线LAN终端40(40-m~40-n)。PON包括:多个加入者连接装置ONU(Optical Network Unit:光网络单元)42(42-1~42-n)、GW选择装置10L-n中内置的局端装置OLT(Optical Line Terminal:光线路终端)、以及将OLT中所收容的一根光纤利用星形耦合器(S.C.)43-1分支为多根支线光纤的结构的光纤网。
另一方面,无线接入网1W包括:分别具备IEEE802.1X或PPPoE等的通话连接功能的多个无线终端41(41-1~41-n)、以及收容这些无线终端41的多个数据包传送装置10W(10W-1、10W-n)。在这里所示的例子中,数据包传送装置10W-1具备无线-有线变换功能,与冗余化的多个GW装置20L(20L-1、20L-m)连接。此外,数据包传送装置10W-n具备无线集线器(频率、帧变换等)功能,与冗余化的多个GW装置20W(20W-1、20W-m)连接。
构成无线接入网1W的数据包传送装置10W(10W-1~10W-n)也具备将各无线终端41选择性连接到冗余化的多个GW装置20中的一个上的GW选择功能,所以在以下说明中,将这些数据包传送装置10W也称为‘GW选择装置’。
中继网2包括:多个第二层交换机(L2SW)21(21-1~21-n)、用户认证服务器(RADIUS服务器)22、用于对用户终端分配IP地址的DHCP服务器23、以及用于将该中继网连接到因特网3的路由器24。
在图示的例子中,L2SW21-1连接到路由器24和冗余化的一组GW装置(20L-1~20L-m),L2SW21-n连接到路由器24和冗余化的另一组GW装置(20W-1~20W-m)。这里,RADIUS服务器22和DHCP服务器23连接到L2SW21-n,但也可以将至少一方连接到L2SW21-1。此外,L2SW21-1和21-n的一方也可以经由另一方的L2SW连接到路由器24。
图2是用于说明本发明的GW选择装置10L-1具备的GW选择功能的图。其他GW选择装置10L-n、10W-1~10W-n也具有与GW选择装置10L-1同样的GW选择功能。这里,说明GW选择装置10L-1连接到冗余化的4台GW装置(20LP-1~20LP-4),从执行依据PPPoE的通话连接步骤的有线LAN终端40-1~40-m,接收了通话连接请求的情况下的动作。再有,在图中,终端块和GW块上附带的‘MAC xx-xx-xx-xx-xx-xx’例示有线LAN终端或GW装置的MAC地址的值。
在从有线LAN终端40-1接收了PPPoE的连接请求时,GW选择装置10L-1将有线LAN终端40-1作为PPPoE终端,将GW选择装置10L-1上所连接的GW装置分别看作BAS20LP-1~20LP-4(在图1中为20L-1~20L-m),执行连接控制步骤。
从这些GW装置(BAS)接收到与上述连接请求对应的响应时,GW选择装置10L-1将某一个GW装置、例如GW装置20L-1选择为有线LAN终端40-1用的有效BAS,并继续进行其后的连接控制步骤。如果决定了要与PPPoE终端40-1通信的有效BAS,则其他GW装置20L-2(20LP-2)~20L-m(20LP-m)不干预PPPoE终端40-1的数据包传送。
以同样的方法,GW选择装置10L-1对于来自PPPoE终端40-2的连接请求,选择GW装置20L-1(20LP-1),对于来自PPPoE终端40-m的连接请求,选择GW装置20L-3(20LP-3)。各PPPoE终端40通过由GW选择装置10L-1所选择的GW装置20,与因特网3通信。后面详细论述在接收了来自PPPoE终端的连接请求时,GW选择装置10L-1进行的GW装置的选择(负荷分散)算法。
图3表示在PPPoE中所使用的通信控制帧的格式。
图3(A)表示从有线LAN终端40发送到GW装置20的连接开始数据包:PADI(PPPoE Active Discovery Initiation)的格式;图3(B)表示从GW装置20发送到有线LAN终端40的连接开始响应数据包:PADO(PPPoE Active Discovery Offer)的格式;图3(C)表示从GW装置20发送到有线LAN终端40的通话ID通知数据包:PADS(PPPoE Active Discovery Session-Confirmation)的格式;图3(D)表示有线LAN终端40或GW装置20发出的切断通知数据包:PADT(PPPoE Active Discovery Terminate)的格式。在这些通信控制帧中,被附加有以太网报头900和PPPoE报头920。
如图3(A)所示,PADI在MAC-DA901中包含广播MAC地址(B.C),在MAC-SA902中包含作为发送源的有线LAN终端40的MAC地址。在协议类型903中,例如被设定了表示‘0x8863’这样的PPPoE的特定值,在PPPoE报头的帧类型921中,被设定了表示该帧为‘PADI’的代码。
如图3(B)所示,PADO在MAC-DA901中包含作为PADI的发送源的有线LAN终端40的MAC地址,在MAC-SA902中包含GW装置20的MAC地址,协议类型903,被设定了表示PPPoE的特定值‘0x8863’。在PPPoE报头的帧类型921中,被设定了表示该帧为‘PADO’的代码。
如图3(C)所示,PADS在MAC-DA901中包含有线LAN终端40的MAC地址,在MAC-SA902中包含GW装置20的MAC地址,在协议类型903中,被设定了表示PPPoE的特定值‘0x8863’。在PPPoE报头的帧类型921中,被设定了表示该帧为‘PADS’的代码,在通话ID922中,被设定了从GW装置20对有线LAN终端40分配的通话ID的值。
在PADT从有线LAN终端40发送到GW装置20的情况下,如图3(D)所示,在MAC-DA901中包含GW装置20的MAC地址,在MAC-SA902中包含有线LAN终端40的MAC地址,在协议类型903中,被设定了表示‘0x8863’等这样的PPPoE的特定值。在GW装置20对有线LAN终端40发送PADT时,MAC-DA901和MAC-SA902之间的关系变为相反。在PPPoE报头的帧类型921中,被设定了表示该帧为‘PADT’的代码,在通话ID922中,被设定了应切断的通话ID。
图4表示本发明的数据包传送装置(GW选择装置)10的第1实施例。
GW选择装置10包括:分别被分配了单独的端口号(Port-1~Port-n)的多个线路接口11(11-1~11-n);连接到这些线路接口的路由选择部12;通信控制数据包用的发送缓冲器13T和接收缓冲器13R;控制处理器14;以及存储器15。
路由选择部12和控制处理器14构成用于控制上述线路接口间的数据包传送的协议处理部。在存储器15中,存储有处理器执行的通信控制例行程序16、监视数据包表151、连接管理表152、端口管理表153、多连接管理表154和负荷分散管理表155。
在通信控制例行程序16中,包含用图10~图15进行后述的各种控制数据包接收处理例行程序、负荷分散处理例行程序和定时器监视例行程序。
监视数据包表151指定应由控制处理器14处理的通信控制数据包的种类。操作者通过对控制终端50进行操作,将监视数据包表151的内容重写,可以变更控制处理器14的动作模式。后面参照图5、图6论述连接管理表152和端口管理表153。此外,后面参照图7、图8论述多连接管理表154和负荷分散管理表155。
在GW选择装置10为图1所示的有线接入网L1的GW选择装置10L-1时,线路接口11-1~11-n具备与Ethernet、ATM、POS(PPP over SONET)等收容线路上所采用的通信协议相对应的帧终端功能。在GW选择装置10为收容PON的GW选择装置10L-n时,线路接口11-1~11-n成为具备了例如使GE-PON、G-PON、WDM-PON等PON帧终端化的OLT功能。
在GW选择装置10为图1所示的无线接入网1W的GW选择装置10W-1时,无线终端41侧的线路接口具备例如与IEEE802.11a、IEEE802.11b、IEEE802.1g、IEEE802.16a、PHS等无线线路中所采用的通信协议相对应的无线接口功能,GW装置20侧的线路接口具备与Ethernet、ATM、POS(PPP over SONET)、GE-PON、G-PON、WDM-PON等在有线LAN区间中所采用的通信协议相对应的接口功能。
此外,在GW选择装置10为图1所示的GW选择装置10W-n时,各线路接口与GW选择装置10W-1的无线终端41侧的线路接口同样,具备与无线线路中所采用的通信协议相对应的无线接口功能。
图5(A)~(F)表示连接管理表152的结构和内容的转变。
连接管理表152由多个表条目构成,该多个表条目具有连接终端的线路接口的端口号(以下,称为终端端口号)1521。各表条目表示了终端端口号1521、终端MAC地址1522、连接GW的线路接口的端口号(以下称为GW端口号)1523、GW的MAC地址1524、状态1525、定时器值1526、优先级1527之间的对应关系。
GW MAC1524表示作为与具有终端MAC1522地址的终端的连接候选的GW装置(以下称为候选GW)的MAC地址,优先级1527表示在图8说明的负荷分散管理表155中所定义的候选GW的选择优先级的值。状态1525表示在具有上述终端MAC地址1522的用户终端中所正在执行的通信控制步骤中的当前状态,在实施例中,表示了在接收等待的通信控制数据包的种类或通话ID。
图6表示端口管理表153的结构。
端口管理表153由与线路接口11-1~11-n的端口号1531对应的多个表条目构成,各表条目表示了具有端口号1531的线路接口是否为收容了与GW装置的连接线路的线路接口的GW连接标记1532、以及从上述线路接口所接收的各数据包的发送源MAC地址1533。
这里例示的端口管理表153正如根据端口号1531的值、MAC地址1533的值所理解的那样,表示了图2中示意地表示的网络结构中的GW选择装置10L-1、PPPoE终端40-1~40-m、GW装置20LP-1~20LP-m之间的连接关系。在实际的应用中,既有GW选择装置10L-1上所连接的各GW装置具备验证器和BAS两者的功能的情况,又有只具备某一个功能的情况。在后者的情况下,作为验证器(或BAS)动作的GW装置对于PPPoE(或EAPOL)的连接开始数据包变为无响应。
图7表示多连接管理表154的结构。
与用户终端连接的GW装置由连接开始请求发行时刻的各GW装置的负荷状态来决定,在同一用户终端错开时间地发行了多个连接开始请求时,有该用户终端按每个连接开始请求连接到不同的GW装置的情况,也有连续地连接到相同的GW装置上的情况。
例如,假设20L-1和20L-2两台的GW装置上所连接的GW选择装置10对每个GW装置,将各终端上所允许的最大连接数设定为‘2’,从而进行负荷分散(GW选择)的情况。例如,在第1、第2连接开始请求中与GW装置20L-1连接的用户终端40-1发行了第3连接开始请求时,如果选择了GW装置20L-2,则用户终端40-1通过GW装置20L-2可接入因特网。但是,在本次还选择了GW装置20L-1的情况下,用户终端40-1的连接数已经为最大连接数‘2’,所以第3连接开始请求作为超过最大连接数的连接请求而被拒绝。
本实施例的多连接管理表154用于限制同一终端的多连接的请求数,由表示每个终端的连接数的多个表条目构成。各表条目表示终端MAC地址1541、每个终端所允许的最大连接数1542、每个终端的当前连接数1543之间的对应关系。这样,通过与作为连接目的地的GW装置无关地对每个用户终端管理多连接数,从而在无论哪个GW装置通过负荷分散而被选择的情况下,也可以对用户终端允许公平的多连接。
再有,终端MAC1541和最大连接数1542的值通过控制终端50而被事先设定。最大连接数1542基本上被指定给由终端MAC1541确定的每个终端。但是,关于在某个表条目中使终端MAC1541为D.C(Don’t Care:无所谓)并预先指定最大连接数1542、在多连接管理表154中未注册终端MAC的终端来说,也可以在上述D.C条目表示的最大连接数的范围内管理连接数。在多连接管理表154中未设置D.C条目时,丢弃来自未在多连接管理表154中注册终端MAC的终端的连接请求。
图8(A)~(D)表示负荷分散管理表155的结构和内容的转变。
负荷分散管理表155由具有GW装置20的MAC地址1551的多个表条目构成。各表条目表示了GW MAC地址1551、应用优先级1552、选择优先级1553、连接比率1554、最大连接数1555和连接数1556之间的对应关系。GW MAC1551、应用优先级1552、最大连接数1555的值由控制终端50事先设定。选择优先级1553在每次根据来自终端的连接开始请求所进行的GW选择时变为其值被更新的可变值的优先级。
使用上述负荷分散管理表155时,例如,通过应用优先级1552的值,可以将作为负荷分散对象的多个GW装置分组为高优先级GW和低优先级GW。这种情况下,通过不依赖于低优先级GW的连接数1556而在高优先级GW组内分散连接负荷,可进行将高优先级GW作为现行系统、低优先级GW作为预备系统的GW应用。
例如,如果将具有最高优先级‘1’的GW作为现行系统,将应用优先级为‘2’和‘3’的GW作为预备系统,则在现行系统的某一个GW中发生了故障时,可以在预备系统GW中以应用优先级从高向低的顺序,切换成现行系统。此外,也可以在应用优先级为‘1’的GW作为现行系统进行负荷分散、现行系统的全部GW装置中连接比率为100%时,选择应用优先级为‘2’的GW装置,然后与用户终端连接。
在实施例中,每次选择现行系统GW组内的GW装置时,例如,根据连接比率1554或连接数1556的值,变更各GW装置的选择优先级1553的值,根据该选择优先级的值决定下一个GW装置,从而实现负荷分散型的GW选择。
返回到图4,路由选择部12从线路接口11-1~11-n接收数据包时,将接收数据包的接收端口的号码和发送源MAC地址(MAC-SA902)之间的关系注册到端口管理表153中,从接收数据包的报头信息中,判断接收数据包是否为图3所示的PPPoE或未图示的IEEE802.1X等的通信控制数据包。
在接收数据包为通信控制数据包时,路由选择部12将接收数据包和接收端口号通过接收缓冲器13R传送到控制处理器14。控制处理器14从接收缓冲器13R读出通信控制数据包和接收端口号,执行要后述的GW选择和依据通信协议的数据包处理。将要传送到外部线路的通信控制数据包从控制处理器14通过发送缓冲器13T传送到路由选择部12。
路由选择部12根据端口管理表153,对从线路接口11-1~11-n接收的用户数据包、以及通过发送缓冲器13T从控制处理器14接收的通信控制数据包进行路由选择。具体地说,路由选择部12从端口管理表153中,检索MAC地址1533与接收数据包的目的地MAC地址(MAC-DA901)一致的表条目,将接收数据包传送到上述表条目的端口号1531表示的特定的线路接口。
如果是端口管理表153中未注册与目的地MAC地址相应的表条目的情况,或是接收数据包的目的地地址变为广播或组播地址的情况,则路由选择部12将接收数据包传送到接收端口以外的所有端口(线路接口)。但是,在从发送缓冲器13T读出的通信控制数据包为连接开始请求数据包(EAPOL-Start数据包、或PADI数据包)时,路由选择部12对端口管理表153中GW连接标记1532为‘1’状态的全部端口进行广播。
控制处理器14要监视的通信控制数据包的种类,由监视数据包表151指定。控制处理器14判断从接收缓冲器13R读出的通信控制数据包是否为监视对象,不是监视对象的通信控制数据包直接输出到发送缓冲器13T。从接收缓冲器13R读出的通信控制数据包为监视对象的情况下,控制处理器14根据通信控制例行程序16更新了连接管理表152后,将通信控制数据包输出到发送缓冲器13T。
如后述那样,第1实施例的控制处理器14在响应连接开始请求而从GW装置20发回的多个响应数据包中,将特定的一个数据包选择性地传送到用户终端,并丢弃剩余数据包,由此实现GW选择。
作为数据包传送装置(GW选择装置)10中的GW选择方法,例如有:
(1)对于同一连接开始请求(EAPOL-Start或PADI),在从多个GW装置接收了响应数据包(EAP-Request/ID请求或PADO)时,使首先接收的响应数据包有效,丢弃其后接收的响应数据包的方法;
(2)从规定时间内接收的多个响应数据包中,使来自与上次选择的GW装置不同的其他GW装置的响应数据包有效,丢弃其他的响应数据包的方法;
(3)对冗余化的一组GW装置赋予优先级,从预定的时间内接收的多个响应数据包中,选择优先级最高的GW装置发送的数据包的方法。
为了对冗余化的一组GW装置分散负荷,(2)或(3)较为有效。在以下说明的实施例中,GW选择装置根据对各GW装置赋予的选择优先级,按(3)的方法选择GW装置。
下面,参照图5~图15,说明本发明的GW选择装置所进行的PPPoE的连接控制。
这里,说明采用了以下GW算法的情况:图2所示的GW选择装置10L-1通过使GW装置20L-1~20L-4(BAS20LP-1~20LP-4)接收的响应数据包(PADO)中的、从选择优先级最高的GW装置接收的数据包有效,并且,将本次选择的GW装置的选择优先级变更为较低的值,由此在发生下一个连接开始请求时,使来自选择优先级最高的其他GW装置的响应数据包有效。
如图9所示,终端(PPPoE终端)40-2将PADI数据包进行广播时(SQ110),PPPoE连接阶段SP1开始。GW选择装置10L-1的路由选择部12若接收上述PADI数据包,则将其与接收端口号‘m’一起输出到接收缓冲器13R。
控制处理器14若接收PADI数据包,则执行图10所示的PADI数据包接收处理例行程序130。PADI数据包接收处理例行程序130与后述的PADO数据包接收处理例行程序140、PADS数据包接收处理例行程序150、GW负荷分散处理例行程序160、定时器监视例行程序170、以及PADT数据包接收处理例行程序300一起,构成通信控制例行程序16的一部分。
在PADI数据包接收处理例行程序130中,控制处理器14参照监视数据包表151,判断PADI是否被指定作为监视对象数据包(131)。如果PADI未被指定为监视对象,则控制处理器14将接收的PADI数据包通过发送缓冲器13T传送到路由选择部12(138),并结束该例行程序。
在本实施例,假设PADI被指定作为监视对象。这种情况下,控制处理器14从多连接管理表154中,检索终端MAC地址154与接收数据包的发送源MAC地址(MAC-SA902)的值‘00-00-00-00-00-02’一致的表条目(132)。
在表检索的结果(133)为,没有发现与接收数据包的MAC-SA相应的表条目时,控制处理器14丢弃接收数据包(139),并结束该例行程序。在发现了与接收数据包的MAC-SA相应的表条目时,控制处理器14判断为同一用户发送了作为多连接的其他连接请求,从而比较连接数1543和最大连接数1542(134),在连接数1543变为最大连接数1542以上时,丢弃接收数据包(139),并结束该例行程序。
在连接数1543低于最大连接数1542时,控制处理器14进行所检索出的表条目的连接数1543的值+1的加法运算(135),并在连接管理表152中注册新的表条目ENm(136)。上述表条目ENm,如图5(A)所示,包括:作为终端端口1521从路由选择部12通知的接收端口号‘m’、作为终端MAC1522的接收数据包的发送源MAC地址‘00-00-00-00-00-02’,状态1525变为PADO等待。接着,控制处理器14将上述表条目ENm的定时器值1526初始化为规定值,在启动了图13中后述的定时器监视例行程序170后(137),将接收的PADI数据包传送到发送缓冲器13T(138),并结束该例行程序。
路由选择部12从控制处理器14接收PADI数据包时,根据端口管理表153表示的GW连接标记1532为‘1’的表条目,进行将PADI数据包广播给GW所连接的多个线路接口(SQ111-1~SQ111-4)。
BAS20LP-1~20LP-4响应上述PADI数据包,分别发回PADO数据包(SQ112-1~SQ112-4)。这些PADO数据包的目的地MAC地址(MAC-DA901)变为PPPoE终端40-2的MAC地址‘00-00-00-00-00-02’。
GW选择装置10L-1的路由选择部12将从GW(BAS)20LP-3接收的最初的PADO数据包与接收端口号‘5’一起输出到接收缓冲器13R。来自第2次接收的GW(BAS)20LP-2的PADO数据包与接收端口号‘n’一起被输出到接收缓冲器13R,来自第三次接收的GW(BAS)20LP-1的PADO数据包与接收端口号‘4’一起被输出到接收缓冲器13R,来自最后接收的GW(BAS)20LP-4的PADO数据包与接收端口号‘k’一起被输出到接收缓冲器13R。
控制处理器14从接收缓冲器13读出GW(BAS)20LP-3发送的PADO数据包和接收端口号时,执行图11所示的PADO数据包接收处理例行程序140,首先,从连接管理表152中,检索终端MAC1522与上述PADO数据包的目的地MAC地址(MAC-DA901)的值‘00-00-00-00-00-02’一致的表条目(141)。
在检索的结果(142)为,发现了与目的地MAC地址一致的表条目ENm的情况下,判断表条目ENm的状态1525是否变为PADO等待状态(144)。在状态1525为PADO等待状态以外的情况下,控制处理器14将接收的PADO数据包判断为非法数据包,并丢弃接收数据包(145),结束该例行程序。
在本次的情况中,如图5(A)所示,在从连接管理表152检索出的表条目ENm中,状态1525变为PADO等待状态。这种情况下,控制处理器14执行图12所示的GW负荷分散处理例行程序160。
再有,在PADI未被指定作为监视对象数据包时,在图10中说明的PADI数据包接收处理例行程序130中,具有终端MAC地址‘00-00-00-00-00-02’的表条目Enm没有注册到连接管理表152。这种情况下,对与目的地MAC地址一致的目标表条目的检索失败。
在从连接管理表152中对目标表条目的检索失败时,控制处理器14基于PADO数据包生成新的表条目ENm,将其注册在连接管理表152(143)后,执行GW负荷分散处理160。
在该时刻生成的表条目ENm,将接收的PADO数据包的目的地MAC地址(MAC-DA901)的值‘00-00-00-00-00-02’作为终端MAC1522,将上述PADO数据包的发送源MAC地址(MAC-SA902)的值‘00-00-00-22-22-03’作为GWMAC1524,将与端口管理表153表示的上述目的地MAC地址‘00-00-00-00-00-02’相对应的端口号‘m’作为终端端口1521。但是,终端端口1521的值也可以省略。
如图12所示,在GW负荷分散处理例行程序160中,控制处理器14从负荷分散管理表155中,检索GW MAC1551与接收数据包(PADO)的发送源MAC地址(MAC-SA902)的值‘00-00-00-22-22-23’一致的表条目(161)。
在检索的结果(162)为未发现与发送源MAC地址一致的表条目的情况下,控制处理器14判断为接收的PADO数据包为来自未注册的非法GW装置的接收数据包,并丢弃接收数据包(167),结束GW负荷分散处理例行程序160。如果结束GW负荷分散处理例行程序160,则图11的PADO数据包接收处理例行程序也结束。
在从负荷分散管理表155中发现了与接收数据包的发送源MAC地址一致的表条目的情况下,控制处理器14在所检索的表条目中判断应用优先级1552的值是否是最优先值‘1’(163)。在应用优先级的值不是‘1’时,控制处理器14判断为接收数据包是从预备系统的GW装置发送的数据包,并丢弃接收数据包(167)。结束GW负荷分散处理例行程序160。在应用优先级的值为‘1’时,控制处理器14比较上述表条目表示的选择优先级1553的值和连接管理表152表示的优先级1527的值(164)。
在本次的情况中,应用优先级1552的值为最优先值‘1’,控制处理器14比较上述表条目表示的选择优先级1553的值和连接管理表152表示的优先级1527的值(164)。
接收数据包为发往终端40-2(终端MAC:‘00-00-00-00-00-02’)的最初的PADO数据包时,如图5(A)所示,表条目ENm的优先级1527的值为未设定。这种情况下,控制处理器14判断为选择优先级1553的值高于优先级1527的值(165),如图5(B)所示,在上述表条目ENm的GW MAC1524中,注册接收数据包(PADO)的发送源MAC地址(MAC-SA902)表示的GW:20LP-3的地址值‘00-00-00-22-22-03’,在优先级1527中设定选择优先级1553的值‘12’,并在GW端口号1523中设定PADO数据包的接收端口号‘5’(166)。
在该时刻,GW(BAS)20LP-3变为终端40-2的连接侯选GW,控制处理器14在保持从GW(BAS)20LP-3接收的PADO数据包的状态下,结束GW负荷分散处理例行程序。
在图9所示的例子中,作为第二个PADO数据包,接收有来自GW(BAS)20LP-2的PADO数据包(SQ112-2)。控制处理器14从接收缓冲器13R中读出GW(BAS)20LP-2发送的PADO数据包和接收端口号时,执行PADO数据包接收处理例行程序140,并经由与最初的PADO数据包的处理时同样的处理过程,执行GW负荷分散处理例行程序160。
这次,从负荷分散管理表155中,检索GW MAC1551为‘00-00-00-22-22-02’的表条目(161)。在该表条目中,GW(BAS)20LP-2的应用优先级1552为‘2’,所以在步骤163中的判断结果变为“否”,控制处理器丢弃接收数据包(167),并结束GW负荷分散处理例行程序。
同样,从接收缓冲器13R中,读出来自GW(BAS)20LP-1的PADO数据包作为第三个PADO数据包时,从负荷分散管理表155中,检索图8(A)所示的GW MAC1551=‘00-00-00-22-22-01’的表条目。从上述表条目中可知,GW(BAS)20LP-1的应用优先级为‘1’,选择优先级1553为‘11’,GW(BAS)20LP-1具有比连接管理表152中注册的侯选GW的优先级1527的值‘12’高的选择优先级。
因此,在上述PADO数据包的接收时所执行的GW负荷分散处理例行程序160中,控制处理器14将GW(BAS)20LP-1选择为取代GW(BAS)20LP-3的新的侯选GW,并在连接管理表152的表条目ENm中,将GW端口1523、GW MAC1524、优先级1527的值如图5(C)所示那样进行更新(166)。这种情况下,控制处理器14丢弃至此保持的来自GW(BAS)20LP-3的PADO数据包,并在保持有从GW(BAS)20LP-1接收的PADO数据包的状态下,结束GW负荷分散处理例行程序。
从接收缓冲器13R读出来自GW(BAS)20LP-4的PADO数据包作为第四个PADO数据包时,从负荷分散管理表155中,检索图8(A)所示的GW MAC1551=‘00-00-00-22-22-04’的表条目。从上述表条目中可知,GW(BAS)20LP-4的应用优先级为‘1’,选择优先级1553为‘13’,GW:20LP-4的选择优先级低于连接管理表152的表条目ENm表示的侯选GW的优先级1527的值‘11’。
因此,在上述PADO数据包的接收时所执行的GW负荷分散处理例行程序160中,控制处理器14丢弃接收数据包(167),并在保持有从GW(BAS)20LP-1接收的PADO数据包的状态下,结束GW负荷分散处理例行程序。
图13表示定时器监视例行程序170的流程。
PADI数据包接收时所起动的定时器监视例行程序170,通过控制处理器14,与上述PADO数据包接收处理例行程序140和GW负荷分散处理例行程序160并行周期性地被执行。
在定时器监视例行程序170中,控制处理器14等待连接管理表152的表条目ENm中所设定的定时器值1526变为‘0’(超时)(171)。在定时器值1526超时(time out)时,控制处理器14在负荷分散管理表155中,进行将本次选择的GW装置的MAC地址、即与连接管理表152的表条目ENm表示的侯选GW的MAC地址相对应的表条目的连接数1556的值+1的加法运算,并再次计算连接比率1554(172)。
接着,控制处理器14在负荷分散管理表155中所注册的应用优先级1552为‘1’的多个表条目中,按连接比率1554(或连接数1556)减少的顺序,再次分配选择优先级1553(173)。
本次的情况中,通过执行步骤172,如图8(B)所示,在作为侯选GW而剩余的GW MAC1551=‘00-00-00-22-22-01’的表条目中,连接数1556的值从‘999’被变更为‘1000’,连接比率1554的值从‘19.98’被变更为‘20.00’。而通过执行步骤173,如图8(B)所示,作为侯选GW而剩余的GW MAC1551=‘00-00-00-22-22-01’的选择优先级1553从‘11’被变更为‘13’,GW MAC1551=‘00-00-00-22-22-03’、GW MAC1551=‘00-00-00-22-22-04’的选择优先级1553分别从‘12’被变更为‘11’、从‘13’被变更为‘12’。
将选择优先级1553再次分配结束时,控制处理器14如图5(D)所示,将连接管理表152的表条目ENm的状态1525变更为PADS等待(174),将来自保持的侯选GW的PADO数据包传送到发送缓冲器13T(175),然后结束该例行程序。
再有,通过执行步骤172,负荷分散管理表155表示的侯选GW的连接数1556达到了最大连接数1555时,侯选GW不能接受新的连接请求。这种情况下,直至连接数1556减少为止,将选择优先级1553的值设为最低等级值,在GW负荷分散处理例行程序160的步骤163中,判断选择优先级的值,并丢弃来自选择优先级为最低等级值的GW的PADO即可。作为最低等级值,例如,如‘10’、‘20’那样,可以采用第一位为‘0’的值。
在图12所示的GW负荷分散处理例行程序160中,从应用优先级1552不为‘1’的GW接收的PADO数据包全部被丢弃,但例如在图8(C)所示那样,也可以在应用优先级1552为‘1’的全部GW(现行系统GW)中,在连接数1556达到了最大连接数1555时(选择优先级为最低等级的情况),将应用优先级为‘2’的GW加入到负荷分散的对象GW组中。这意味着在GW负荷分散处理例行程序160中判断结果为“否”时,对于在GW负荷分散管理表155中的应用优先级1552为‘1’的表条目,对选择优先级1553的值进行校验,并在全部的表条目中为最低等级值的情况下,执行步骤164。
路由选择部12通过发送缓冲器13T从控制处理器14接收PADO数据包时,基于接收数据包的目的地MAC地址(MAC-DA901),参照端口管理表153。在这次的例子中,PADO数据包的目的地MAC地址为‘00-00-00-00-00-02’,端口管理表153如图6所示,作为与MAC地址‘00-00-00-00-00-02’相对应的端口号1531,表示了PPPoE终端40-2的连接端口号‘m’。因此,路由选择部12从端口号‘m’的线路接口发送上述PADO数据包(SQ113)。
PPPoE终端40-2接收上述PADO数据包时,向作为该PADO数据包的发送源的GW(BAS)20LP-1发送PADR数据包(SQ114)。在本实施例中,如图5(D)所示,在连接管理表152中,与端口40-2对应的表条目Enm的状态1525变为作为对PADR的响应数据包的PADS等待状态。即,由于PADR数据包从GW选择装置10L-1的监视对象中被除去,所以GW选择装置10L-1的控制处理器14在从路由选择部12接收上述PADR数据包时,将其直接传送到路由选择部12。路由选择部12接收上述PADR数据包时,根据端口管理表153对接收数据包进行路由选择。
上述PADO数据包的目的地MAC地址(MAC-DA901)变为GW(BAS)20LP-1的MAC地址‘00-00-00-22-22-01’,端口管理表153中,与上述MAC地址相对应,存储有与GW(BAS)20LP-1的连接线路的端口号‘4’。因此,PADR数据包通过线路接口11-4,被传送到GW(BAS)20LP-1(SQ115)。
GW(BAS)20LP-1向应上述PADR,发回PADS数据包(SQ116)。GW选择装置10L-1路由选择部12接收上述PADS数据包时,将其与接收端口号‘4’一起输出到接收缓冲器13R。
控制处理器14接收PADS数据包时,执行图14所示的PADS数据包接收处理例行程序150。在PADS数据包接收处理例行程序150中,控制处理器14将从路由选择部12通知的接收端口号‘4’、接收数据包的目的地MAC地址(MAC-DA901)的值‘00-00-00-00-00-02’、发送源MAC地址(MAC-SA902)的值‘00-00-00-22-22-01’作为检索关键字,从连接管理表152中,检索GW端口1523、终端MAC1522、GW MAC1554与检索关键字一致的表条目(151)。
在检索的结果(152)为发现与检索关键字一致的表条目Enm时,如图5(E)所示,控制处理器14将接收的PADS数据包表示的通话ID的值(在本例子中,为‘1000’)设定在上述表条目的状态1525中(153),并将上述PADS通过发送缓冲器13T传送到路由选择部12(154),结束该路由选择。
由于上述PADS数据包的目的地地址(MAC-DA901)为‘00-00-00-00-00-02’,所以路由选择部12将上述PADS数据包传送到图6的端口管理表153表示的端口号‘m’的线路接口。由此,PADS数据包被发送到PPPoE终端40-2(SQ117)。
再有,在连接管理表152中没有与检索关键字一致的表条目时,控制处理器将接收的PADS传送到路由选择部12(154),并结束该例行程序。例如,在规定时间以上并检测出通信中断的通话而表条目被自动删除的情况下,发生这种事件。
PPPoE终端40-2接收PADS数据包时,从PPPoE连接阶段SP1转移到PPPoE传送阶段SP2。
在PPPoE传送阶段SP2中,GW选择装置10L-1进行PPPoE终端40-2和GW(BAS)20LP-1之间所通信的用户数据包的传送(SQ200)、以及Keepalive数据包的传送(SQ210~213)。
在PPPoE传送阶段SP2中,GW(BAS)20LP-1通过GW选择装置10L-1,将从PPPoE终端40-2接收的PPPoE数据包(SQ200)变换为IP数据包后传送到路由器24(SQ201)。而从路由器24接收的IP数据包(SQ200)变换为PPPoE数据包,通过GW选择装置10L-1传送到PPPoE终端40-2(SQ201)。此外,GW(BAS)20LP-1通过周期性地发行Keepalive request数据包(SQ210),并接收来自终端的响应数据包(Keepaliveacknowledge),从而确认PPPoE终端40-2的动作状态。
终端用户结束因特网接入时,将连接结束数据包PADT从PPPoE终端40-2发送到GW(BAS)20LP-1(SQ310),并从PPPoE传送阶段SP2转移到PPPoE切断阶段SP3。
GW选择装置10L-1的路由选择部12接收上述PADT数据包时,执行图15所示的PADT数据包接收处理例行程序300。在PADT数据包接收处理例行程序300中,控制处理器14将接收端口号‘m’、接收数据包的发送源MAC地址(MAC-DA902)的值‘00-00-00-00-00-02’、以及目的地MAC地址(MAC-DA901)的值‘00-00-00-22-22-01’作为检索关键字,从连接管理表152中,检索终端端口1521、终端MAC1522、GW MAC1524与检索关键字一致的表条目ENm(301)。但是,接收端口号也可以从检索关键字条目中除去。
在检索的结果(302)为发现与检索关键字一致的表条目ENm时,控制处理器14判断上述表条目的状态1525表示的通话ID的值是否与接收的PADT数据包的通话ID922表示的通话ID值‘1000’一致(305)。
在判断的结果(306)为两个通话ID一致时,如图5(F)所示,控制处理器14从连接管理表152中删除上述表条目ENm(307),并在负荷分散管理表155中,在GW MAC1551为‘00-00-00-22-22-01’的表条目中,对连接数1556的值进行减法运算(-1),并对连接比率1554再次计算,按连接数1556或连接比率1554减少的顺序,执行现行系统GW中的选择优先级1553的再分配(308)。
负荷分散管理表155例如在图8(C)的状态时,通过执行上述步骤308,如图8(D)所示,在GW MAC1551=‘00-00-00-22-22-01’的表条目中,选择优先级从‘10’被变更为‘11’。
然后,控制处理器14在多连接管理表154的终端MAC1541=‘00-00-00-00-00-01’的条目中,对连接数1543的值进行-1的减法运算(309),将接收数据包通过发送缓冲器13T传送到路由选择部12(312),并结束该例行程序。
再有,在判断步骤306中,在通话ID不一致时,控制处理器14将目的地MAC地址(MAC-DA901)的值‘00-00-00-22-22-01’作为检索关键字,从负荷分散管理表155中,检索GW MAC1551与检索关键字一致的表条目(310)。在检索的结果(311)为发现了目标的表条目时,控制处理器14执行上述步骤309、312。如果是未发现目标的表条目的情况,则控制处理器14判断为接收了与本装置没有关系的PADT数据包,并丢弃接收数据包(313),结束该例行程序。
在接收数据包为从GW(BAS)20LP-1侧发行的PADT数据包的情况下,在判断步骤302中,可知检索连接管理表152的结果是目标的表条目在连接管理表152中不存在。这种情况下,控制处理器14改变检索关键字项目的组合,将接收数据包的目的地MAC地址(MAC-DA901)的值‘00-00-00-00-00-02’、接收端口号‘4’、发送源MAC地址(MAC SA902)的值‘00-00-00-22-22-01’作为检索关键字,从连接管理表152中,检索终端MAC1522、GW端口1523、GW MAC1524与检索关键字一致的表条目(303)。
在检索的结果(304)为发现了目标的表条目时,控制处理器14执行上述步骤305~311。如果是未发现目标的表条目的情况,则控制处理器14将发送源MAC地址(MAC-SA902)的值‘00-00-00-22-22-01’作为检索关键字,从负荷分散管理表155中,检索GW MAC1551与检索关键字一致的表条目(310),根据检索的结果,执行上述步骤309和312或步骤313,并结束该例行程序。
路由选择部12从控制处理器14接收PADT数据包时,从端口管理表153确定输出端口的端口号1531,并将上述PADT数据包传送到BAS20LP-1(SQ311)。
在上述实施例中,控制处理器14参照监视数据包表151,判断接收数据包是否为监视对象的通信控制数据包,但也可以由路由选择部12进行这种判断,只将作为监视对象的通信控制数据包选择性地传送到控制处理器14。此外,在实施例中,由控制处理器14进行用于GW选择的处理,但如果在路由选择部12的处理性能上没有问题,则也可以将实施例中说明的控制处理器14的功能安装在路由选择部12上。
如从上述实施例可以理解的那样,根据本发明,数据包传送装置(GW选择装置)将从PPPoE终端40接收的连接开始请求数据包对多个GW装置(BAS)进行广播,仅使规定时间内接收的多个响应数据包中的、来自根据GW选择(负荷分散)算法所选择的特定GW装置的响应数据包有效,并将其传送到请求源终端。PPPoE终端40与上述响应数据包的发送源GW装置之间,执行其后的通信控制步骤。因此,根据本发明的数据包传送装置(GW选择装置),不依赖于PPPoE终端40的安装,就可进行GW装置(BAS)的冗余化和负荷分散。此外,GW装置(BAS)中,不需要追加专利文献1那样的特殊功能。
在实施例中,说明了PPPoE终端40和冗余化GW装置(BAS)之间的连接控制步骤,但本发明的GW选择装置的特征也能够应用于IEEE802.1X中的客户端(用户终端)和验证器(GW装置)之间的连接控制步骤。
这种情况下,连接开始请求数据包成为EAPOL-Start数据包,来自GW装置(验证器)的响应数据包成为EAP-Request/ID请求数据包,切断请求数据包成为EAPOL-Logoff数据包。因此,在协议处理部中,只要准备与PADI数据包接收处理例行程序130对应的EAPOL-Start数据包接收处理例行程序、与PADO数据包接收处理例行程序140对应的EAP-Request/ID请求数据包接收处理例行程序、以及与PADT数据包接收处理例行程序300对应的EAPOL-Logoff数据包接收处理例行程序即可。
此外,使协议处理部具有通信协议的识别功能,例如,通过在接收数据包为PADI那样的PPPoE数据包时,执行PPPoE用的处理例行程序,在接收数据包为EAPOL-Start数据包那样的IEEE802.1X用的数据包时,执行IEEE802.1X用的处理例行程序,从而在同一第二层接入网中,如PPPoE终端和IEEE802.1X中的EAPOL(客户端)那样,可混杂通信协议不同的多个种类的用户终端。这种情况下,在连接管理表152中,除了图5所示的PPPoE用的表条目以外,还可以共存有IEE802.1X(EAPOL)用的表条目。