发明内容
因此,本发明的目的在于提供一种交换集线器、线卡及帧中继方法,其能够在故障恢复时及手动切换端口时不发生帧丢失。
为了达到上述目的,本发明提供一种交换集线器,其具备:多个端口,其由从外部接收帧的接收端口和将帧发送到外部的发送端口构成;分散ID计算部,其根据多个端口中的某一个接收端口接收到的帧来计算分散ID,并将分散ID附加到帧中;第一分配表,其将用于识别向外部发送帧的发送端口的端口ID与分散ID对应起来进行存储;第二分配表,其以形成与第一分配表不同的对应关系的方式,将端口ID与分散ID对应起来进行存储;分配表识别信息附加部,其将用于识别第一分配表的第一表识别信息、或用于识别第二分配表的第二表识别信息附加到帧中;以及发送侧分配表存取部,其在帧中附加了第一表识别信息时参照第一分配表,在帧中附加了第二表识别信息时参照第二分配表,取得第一分配表或第二分配表中与已附加到帧中的分散ID对应起来存储的端口ID。
另外,关于上述交换集线器,也能够由多个端口构成链路聚合组(LAG:Link Aggregation Group),并且第一分配表及第二分配表将构成LAG的端口的端口ID与分散ID对应起来进行存储。
另外,关于上述交换集线器,发送侧分配表存取部也能够在对帧进行泛洪中继时参照第一分配表或第二分配表。
另外,上述交换集线器也能够具备多个线卡,各线卡具备由从外部接收帧的接收端口和将帧发送到外部的发送端口构成的多个端口,由从多个线卡具备的多个端口中选择出的多个端口构成LAG。
另外,关于上述交换集线器,各线卡也能够具备从外部接收帧的接收单元和向外部发送帧的发送单元,接收单元具备分散ID计算部和分配表识别信息付加部,发送单元具备第一分配表、第二分配表以及发送侧分配表存取部。
另外,关于上述交换集线器,接收单元也能够具备:转发数据库(FDB:Forwarding Database),其将媒体接入控制(MAC:Media Access Control)地址、以及端口ID或用于识别LAG的LAG ID作为登录内容进行存储;FDB存取电路,其具有对FDB执行目的地检索的功能;LAG分配表,其将LAG ID、分散ID、端口ID对应起来进行存储;以及接收侧分配表存取部,其参照LAG分配表,取得与FDB存取电路检测到的LAG ID和已附加到帧中的分散ID对应起来存储的端口ID。
另外,为了达到上述目的,本发明提供一种交换集线器具备的线卡,其具备:多个端口,其由从外部接收帧的接收端口及将帧发送到外部的发送端口构成;分散ID计算部,其根据从多个端口中的某一个接收端口接收到的帧来计算分散ID,并将分散ID附加到帧中;第一分配表,其将用于识别向外部发送帧的发送端口的端口ID与分散ID对应起来进行存储;第二分配表,其以形成与第一分配表不同的对应关系的方式,将端口ID与分散ID对应起来进行存储;分配表识别信息附加部,其将用于识别第一分配表的第一表识别信息或者用于识别第二分配表的第二表识别信息附加到帧中;以及发送侧分配表存取部,其在帧中附加了第一表识别信息时参照第一分配表,在帧中附加了第二表识别信息时参照第二分配表,取得第一分配表或第二分配表中与已附加到帧中的分散ID对应起来存储的端口ID。
另外,上述线卡也能够具备构成LAG的端口。
另外,关于上述线卡,发送侧分配表存取部也能够在对帧进行泛洪中继时参照第一分配表或第二分配表。
另外,上述线卡也能够具备从外部接收帧的接收单元和向外部发送帧的发送单元,接收单元具备分散ID计算部和分配表识别信息附加部,发送单元具备所述第一分配表、第二分配表以及发送侧分配表存取部。
另外,关于上述线卡,接收单元也能够具备:FDB,其将MAC地址、以及端口ID或者用于识别LAG的LAG ID作为登录内容进行存储;FDB存取电路,其具有对FDB执行目的地检索的功能;LAG分配表,其将LAG ID、分散ID、端口ID对应起来进行存储;以及接收侧分配表存取部,其参照LAG分配表,取得与FDB存取电路检测到的LAG ID和已附加到帧中的分散ID对应起来进行存储的端口ID。
另外,为了达到上述目的,本发明提供一种帧中继方法,其具备:分散ID计算步骤,根据从外部接收帧的多个接收端口中的某一个接收端口接收到的帧来计算分散ID,并将分散ID附加到帧中;分配表识别信息附加步骤,将用于识别第一分配表的第一表识别信息或用于识别第二分配表的第二表识别信息附加到帧中,该第一分配表将用于识别向外部发送帧的发送端口的端口ID与分散ID对应起来进行存储,该第二分配表以形成与第一分配表不同的对应关系的方式将端口ID与分散ID对应起来进行存储;以及发送侧分配表存取步骤,在帧中附加了第一表识别信息时参照第一分配表、在帧中附加了第二表识别信息时参照第二分配表,取得第一分配表或第二分配表中与已附加到帧中的分散ID对应起来存储的端口ID。
另外,上述中继方法能够由多个端口构成LAG,第一分配表和第二分配表将构成LAG的端口的端口ID与分散ID对应起来进行存储。
另外,关于上述帧中继方法,发送侧分配表存取部也能够在对帧进行泛洪中继时参照第一分配表或第二分配表。
另外,上述帧中继方法也可以是交换集线器的帧中继方法,该交换集线器具备多个线卡,各线卡具备由从外部接收帧的接收端口及将帧发送到外部的发送端口构成的多个端口,由从多个线卡具备的多个端口中选择出的多个端口构成LAG。
通过本发明的交换集线器、线卡以及帧中继方法,能够提供在故障恢复时及手动切换端口时不发生帧丢失的交换集线器、线卡以及帧中继方法。
[实施方式]
图1表示本发明实施方式的交换集线器的结构的概要,图2表示本发明实施方式的线卡的功能结构的概要。
(交换集线器1及线卡2的结构的概要)
本发明实施方式的交换集线器1是对帧等信息进行中继的机架(chassis)型交换集线器,具备多个线卡(例如线卡2、线卡2a、线卡2n)和作为在多个线卡之间中继帧等信息的通信路径的中继路径3。各线卡分别具有与中继路径3连接的端口(例如在线卡2中为端口13及端口14、在线卡2a中为端口13a及端口14a、在线卡2n中为端口13b及端口14b)和与传输线路(例如传输线路4、4n、5、5n、6、6n)连接的端口(例如线卡2具有的端口10与传输线路4连接,同样地,端口10n、11、11n、12、12n分别与传输线路4n、5、5n、6、6n连接)。
在本实施方式中,由从各线卡分别具有的与传输线路连接的端口中所选择的多个端口构成了链路聚合组(LAG:Link Aggregation Group)。在此,LAG是IEEE Std 802.3-2005中规定的技术,是将多条物理线路汇聚为一条逻辑线路的技术。在本实施方式中,因为多个线卡分别具有相同的结构及功能,所以下面对线卡2进行详细说明。
如图2所示,线卡2具备:由从外部接收帧等信息的多个接收端口和将帧发送到外部的多个发送端口构成的多个端口(例如端口10、10a、10n);作为控制多个端口中的信息收发的接口部的I/F电路20;决定从哪个端口发送所接收到的帧的接收单元30;根据接收单元30的决定,从预定的端口发送帧的发送单元40。
(I/F电路20)
I/F电路20从该端口取得由作为多个接收端口的端口中的某一个端口接收到的帧,并向接收单元30提供该帧。另外,I/F电路20将内部帧头附加到取得的帧中,在将接收到帧的端口的端口ID存储到该内部帧头后,将带有内部帧头的帧提供给接收单元30。
另外,I/F电路20从预定的端口发送从发送单元40取得的帧。另外,I/F电路20将帧提供给作为发送端口而被设定在内部帧头的发送端口位图中的端口,该内部帧头被附加在所取得的帧中。I/F电路20在将帧提供给端口时,删除附加在帧中的内部帧头。
(接收单元30)
图3A表示本实施方式的线卡具备的接收单元的功能结构的一个例子。
本实施方式的接收单元30具有分散ID计算部300、分配表识别信息附加部305、FDB存取电路310、FDB315、作为接收侧分配表存取部的LAG分配表存取电路320以及LAG分配表332。
(分散ID计算部300)
分散ID计算部300根据作为多个接收端口的端口中的某一个端口接收到的帧来计算分散ID,并将计算出的分散ID附加到该帧中。例如分散ID计算部300从I/F电路20取得由多个端口中的某一个端口所接收到的帧,并使用在该帧中包含的MAC(Media Access Control)地址来计算分散ID。然后,分散ID计算部300将计算出的分散ID附加到帧的内部帧头。分散ID计算部300将附加了分散ID的帧提供给分配表识别信息附加部305。
(分配表识别信息附加部305)
分配表识别信息附加部305根据构成LAG的多个端口的通信状态来决定使用发送单元40具有的第一分配表330和第二分配表335的哪一个。具体来讲,分配表识别信息附加部305在构成LAG的多个端口中的任何一个都没有发生故障时,或者按原样继续使用当前正在使用的多个发送端口时,将用于识别第一分配表330的第一表识别信息附加到从分散ID计算部300取得的帧中。
另外,分配表识别信息附加部305,在构成LAG的多个端口中的某一个端口发生故障时,或者将使用过的多个端口中的某一个端口或全部端口变更为其它的发送端口时,将用于识别第二分配表335的第二表识别信息附加到从分散ID计算部300取得的帧中。
分配表识别信息附加部305,例如使用帧的内部帧头的一个比特量的区域,将第一表识别信息(例如“0”)或第二表识别信息(例如“1”)附加到帧的内部帧头中。分配表识别信息附加部305将附加有第一表识别信息或第二表识别信息的帧提供给FDB存取电路310。另外,在本实施方式中,将分配表识别信息附加部305配置在分散ID计算部300的后级,但是并不限于此。例如也可以将分配表识别信息附加部305配置在LAG分配表存取电路320的后级。
(FDB存取电路310及FDB315)
转发数据库(Forwarding Database:FDB)315,作为登录内容至少存储在帧中包含的MAC地址、作为用于唯一识别取得了帧的端口的端口识别符的端口ID或LAG ID。
FDB存取电路310具有:使用在从分配表识别信息附加部305取得的帧中包含的发送源MAC地址及目的地MAC地址来检索FDB315的功能、以及变更FDB315的登录内容的功能。即FDB存取电路310具有执行发送源MAC地址学习、以及帧的目的地检索的功能等。
例如,FDB存取电路310比较在从分配表识别信息附加部305取得的附加有分散ID的帧中包含的目的地MAC地址和在FDB315中所存储的MAC地址。然后,FDB存取电路310在判断出FDB315中没有存储与该目的地MAC地址相同的MAC地址时,将该帧作为泛洪中继提供给LAG分配表存取电路320。FDB存取电路310在将该帧作为泛洪中继提供给LAG分配表存取电路320时,在该帧的内部帧头中作为目的地而存储用于识别为泛洪的识别符。
另外,若FDB存取电路310比较在从分配表识别信息附加部305取得的帧中包含的目的地MAC地址和在FDB315中所存储的MAC地址的结果为判断出在FDB315中存储有与该目的地MAC地址相同的MAC地址,则当检测到在FDB315中与该MAC地址关联起来存储的端口ID时,将该端口ID作为目的地存储到该帧的内部帧头中。然后,FDB存取电路310将在内部帧头中包含目的地端口ID的帧作为转发中继(单播unicast)提供给LAG分配表存取电路320。
另外,若FDB存取电路310比较在从分配表识别信息附加部305取得的帧中包含的目的地MAC地址和在FDB315中所存储的MAC地址的结果为判断出在FDB315中存储有与该目的地MAC地址相同的MAC地址,则当检测到在FDB315中与该MAC地址关联起来存储的LAG ID时,将该LAG ID与帧一起提供给LAG分配表存取电路320。
(LAG分配表332)
LAG分配表332将用于识别作为向外部发送帧的发送端口的端口的端口ID与LAG ID及分散ID对应起来进行存储。另外,在本实施方式中,交换集线器1具备的多个线卡中的每一个线卡具有相同的LAG分配表332。在本实施方式中表示LAG ID“1”的LAG由端口ID为“3/1”、“4/1”、“5/1”的3个端口构成的例子。另外,“3/1”表示用于识别3号线卡的1号端口。
图3B表示本实施方式的线卡的接收单元具有的LAG分配表的、构成LAGID “1”的LAG的端口ID“3/1”、“4/1”、“5/1”的3个端口全部能够使用的通常状态下的数据结构。将端口ID“3/1”、“4/1”、“5/1”与分散ID“0”~“7”对应起来进行存储。在本实施方式中,因为具有“0”~“7”的8个分散ID,所以能够由最多8个端口构成1个LAG。在由8个以上的端口构成LAG时,只要增加分散ID的数量即可。
图3C表示在本实施方式的线卡的接收单元具有的LAG分配表中,端口ID“4/1”的端口无法使用、并被重写后的数据结构。将端口ID“3/1”、“5/1”与分散ID“0”~“7”对应起来进行存储。
例如如图3B所示,接收单元30具有的LAG分配表332在构成LAG的多个端口中的哪一个都没有发生故障时、或者照原样继续使用当前正在使用的多个发送端口时,即在通常状态下存储端口ID“4/1”。在此,当端口ID“4/1”无法使用时,LAG分配表存取电路320,例如如图3C那样重写LAG分配表332的存储内容。
(LAG分配表存取电路320)
LAG分配表存取电路320在从FDB存取电路310取得了LAG ID和帧时,使用该LAG ID参照LAG分配表332。然后,将与该LAG ID和附加到帧的内部帧头中的分散ID对应地在LAG分配表332中存储的端口ID作为目的地端口,存储到帧的内部帧头中。LAG分配表存取电路320从端口13将存储有目的地端口ID的帧提供给中继路径3。
另外,LAG分配表存取电路320,在从FDB存取电路310取得的帧是作为转发中继的帧时,如果在内部帧头中包含目的地端口ID时,则直接将该帧从端口13提供给中继路径3。
另外,LAG分配表存取电路320,在从FDB存取电路310取得的帧是作为泛洪中继的帧时,直接将该帧从端口13提供给中继路径3。
另外,当对在内部帧头中存储有端口ID的帧进行转发中继时,附加在帧中的分散ID并不是必需的,FDB存取电路310或者LAG分配表存取电路320也能够从帧中删除分散ID。
(中继路径3)
中继路径3从接收单元30取得帧,并向具有目的地端口的线卡的发送单元40中继该帧。中继路径3,在从接收单元30取得的帧的内部帧头中作为目的地而存储了端口ID时,向具有该端口ID的端口的线卡中继帧。中继路径3在从接收单元30取得的帧的内部帧头中作为目的地而存储了泛洪的识别符时,向除已取得帧的线卡之外的所有线卡中继帧。
(发送单元40)
图4表示本实施方式的线卡具备的发送单元的功能结构的一个例子。
本实施方式的发送单元40具有:作为发送侧分配表存取部的发送侧分配表存取电路400、发送端口位图设定部405、第一分配表330以及第二分配表335。
(第一分配表330及第二分配表335)
第一分配表330及第二分配表335将用于识别作为向外部发送帧的发送端口的端口的端口ID与分散ID对应起来进行存储。
图5B(a)表示第一分配表330的数据结构。例如在构成LAG的多个端口中未发生故障时,或者照原样继续使用当前正在使用的多个发送端口时使用第一分配表330。在图5B(a)中表示构成LAG ID为“1”的LAG的端口ID“3/1”、“4/1”、“5/1”的3个端口全部能够使用的通常状态时的数据结构,并将端口ID“3/1”、“4/1”、“5/1”与分散ID“0”~“7”对应起来进行存储。
图5B(b)表示第二分配表335的数据结构。例如在构成LAG的多个端口中的某一个端口中发生故障时,或将使用过的多个发送端口中的某一个端口或全部端口变更为其它的发送端口时使用第二分配表335。在图5B(b)中表示构成LAG ID为“1”的LAG的端口ID“3/1”、“4/1”、“5/1”的3个端口中的、端口ID“4/1”的端口无法使用时的数据结构,并将端口ID“3/1”、“5/1”与分散ID“0”~“7”对应起来进行存储。
(发送侧分配表存取电路400)
发送侧分配表存取电路400,在帧的内部帧头中作为目的地而存储了识别为泛洪的识别符(或表示为组播(multicast)的识别符)时,在该帧中附加了第一表识别信息时参照第一分配表330,在该帧中附加了第二表识别信息时参照第二分配表335。
例如发送侧分配表存取电路400使用附加在帧中的分散ID,参照第一分配表330或第二分配表335。然后,发送侧分配表存取电路400取得在第一分配表330或第二分配表335中与该分散ID对应起来存储的端口ID,并将该端口ID与帧一起提供给发送端口位图设定部405。从第一分配表330或第二分配表335所取得的端口ID,也可以和作为目的地而识别为泛洪的识别符一起存储到帧的内部帧头中。
另外,发送侧分配表存取电路400,在帧的内部帧头中作为目的地而存储了端口ID时,不参照第一分配表330以及第二分配表335地将帧提供给发送端口位图设定部405。
(发送端口位图设定部405)
发送端口位图设定部405将发送位图设定到帧的内部帧头。发送位图例如具有与线卡具有的传输线路连接的端口的个数的比特(bit)数,并且多个比特的各个比特与多个端口的各个端口对应起来。并且在与成为发送端口的端口对应的比特中例如设定“1”,在与没有成为发送端口的端口对应的比特中设定“0”。
发送端口位图设定部405在从发送侧分配表存取电路400取得的帧的内部帧头中作为目的地存储了端口ID时,在发送位图中与该端口ID的端口对应的比特中设定“1”,在其它的比特中设定“0”。
另外,发送端口位图设定部405在从发送侧分配表存取电路400取得的帧的内部帧头中作为目的地而存储了泛洪的识别符时,在与未构成LAG ID为“1”的LAG的端口对应的比特中设定“1”,在构成LAG ID为“1”的LAG的端口中的、与在发送侧分配表存取电路400中从第一分配表330或第二分配表335所取得的端口ID的端口对应的比特中设定“1”,在与其它构成LAG ID为“1”的LAG的端口对应的比特中设定“0”。另外,关于未构成LAG ID为“1”的LAG而构成其它LAG ID的LAG的端口,关于该其它LAG ID的LAG,通过与上述同样的动作在与预定的端口ID的端口对应的比特中设定“1”,在与构成其它的LAG ID“1”的LAG的其它端口对应的比特中设定“0”。此时,发送单元40具有针对该其它LAG ID的LAG,与分散ID对应起来存储构成该其它LAG ID的LAG的端口的端口ID的第一分配表330及第二分配表335。
发送端口位图设定部405将设定有发送位图的帧提供给I/F电路20。
I/F电路20如果从发送端口位图设定部405取得帧,则从已与在发送位图中设定为“1”的比特对应的端口发送帧。
(交换集线器的动作)
图5A表示本实施方式的交换集线器的动作的概要,图5B(a)表示本实施方式的第一分配表的数据结构,图5B(b)表示本实施方式的第二分配表的数据结构。
如图5A所示,交换集线器1具备线卡2、2a、2b以及2c。并且线卡2的端口10与传输线路4连接,端口13与中继路径3连接。同样,线卡2a的端口11与传输线路5连接,端口14与中继路径3连接。另外,线卡2b的端口17与传输线路7连接,端口15与中继路径3连接。另外,线卡2c的端口18与传输线路8连接,端口16与中继路径3连接。在此,将端口10的端口ID设为“1/1”,将端口11的端口ID设为“3/1”,将端口17的端口ID设为“4/1”,将端口18的端口ID设为“5/1”。另外,由端口11、端口17和端口18构成一个LAG。
如图5B(a)所示,当没有在端口中发生故障时,或者照原样继续使用当前正在使用的多个发送端口时所使用的第一分配表330将端口ID与分散ID对应起来进行存储。例如当没有在端口中发生故障时,第一分配表330将端口ID “3/1”与分散ID“0”、“3”、“6”对应起来进行存储,将端口ID“4/1”与分散ID “1”、“4”、“7”对应起来进行存储,将端口ID“5/1”与分散ID“2”、“5”对应起来进行存储。
(泛洪中继:当没有在端口中发生故障时)
首先,对将帧作为泛洪(flooding)进行中继的情况进行说明。作为一个例子,当端口10接收到帧时,线卡2具有的分散ID计算部300根据在该帧中包含的MAC地址来计算分散ID。例如在分散ID计算部300计算出的分散ID的值为“1”时,分散ID计算部300将分散ID“1”附加到帧中。另外,因为当前没有在端口中发生故障,所以线卡2具有的分配表识别信息附加部305将第一表识别信息附加到该帧中。
取得附加有第一表识别信息的帧的线卡2a~2c的发送侧分配表存取电路400分别参照第一分配表330。在图5B(a)表示的第一分配表330的情况下,因为与分散ID“1”对应的端口ID为“4/1,所以从线卡2b具有的端口17发送帧。
(泛洪中继:在端口中发生故障之后)
例如在端口17中发生了故障时,第二分配表335将端口ID“3/1”与分散ID “0”、“2”、“4”、“6”对应起来进行存储,将端口ID“5/1”与分散ID“1”、“3”、“5”、“7”对应起来进行存储。即,第二分配表335存储与发生故障的端口对应的端口ID之外的端口ID。
另外,当端口10接收到帧时,线卡2具有的分散ID计算部300根据在该帧中包含的MAC地址来计算分散ID。例如当分散ID计算部300计算出的分散ID的值为“1”时,分散ID计算部300将分散ID“1”附加到帧中。另外,因为当前在端口中发生了故障,所以线卡2具有的分配表识别信息附加部305将第二表识别信息附加到该帧中。
取得附加有第二表识别信息的帧的线卡2a~2c的发送侧分配表存取电路400分别参照第二分配表335。在图5B(b)所示的第二分配表335的情况下,因为与分散ID“1”对应的端口ID为“5/1”,所以从线卡2c具有的端口18发送帧。
另外,在端口17的故障恢复后,线卡2具有的分配表识别信息附加部305将第一表识别信息附加到新取得的帧中。由此,本实施方式的交换集线器1切换应该发送帧的端口。
(转发中继)
接着,说明对帧进行转发中继的情况。作为一个例子,在端口10接收到帧时,FDB存取电路310参照FDB315,取得与在接收到的帧中包含的MAC地址对应起来存储在FDB315中的端口ID或LAG ID。然后,FDB存取电路310将帧转发给具有通过所取得的端口ID或LAG ID识别的端口的线卡或LAG。然后,取得帧的线卡的发送侧分配表存取电路400从通过在该帧的内部帧头中存储的端口ID或LAG ID识别的端口或LAG将从接收单元30取得的帧发送到外部。
(实施方式的效果)
本发明实施方式的交换集线器1具备预先具有第一分配表330及第二分配表335的线卡2,因此在应该发送帧的发送端口中发生故障等障碍之后,或者将当前正在使用的发送端口变更为其它发送端口之后,在该发送端口恢复后或将变更后的其它发送端口恢复为变更前的发送端口时,仅通过将使用的表从第一分配表330向第二分配表335进行切换,或从第二分配表335向第一分配表330进行切换,就能够同时切换应该发送帧的发送端口。由此,交换集线器1能够在发送端口中的某一个端口发生故障等障碍之后,或将当前正在使用的发送端口变更为其它发送端口之后,在发送端口恢复时不丢失帧地进行端口切换。
另外,本实施方式的交换集线器1,在通过手动将应该进行发送的端口从一个端口切换为其它端口时,能够将使用的表从第一分配表330切换到第二分配表335,因此能够不丢失帧地切换端口(即能够不丢失帧地进行简并)。由此,即使在更换交换集线器1具备的多个线卡中的发生了故障的线卡时,也能够不丢失帧地顺利地进行线卡的更换。
以上对本发明的实施方式进行了说明,但是上述所记载的实施方式并不对专利请求范围所涉及的发明进行限定。另外,需要注意的一点是实施方式中所说明的特征的全部组合,并不一定是用于解决发明的课题的手段所必需的。