本发明涉及网络开关,更具体地说,涉及在一多机箱链路聚合组(multi-chassislinkaggregationgroup)的一网络开关的自动组态(automaticconfiguration),并揭露电脑执行方法及非暂时性(即永久性)的电脑可读的储存媒体及系统。
背景技术:
在乙太网络(ethernet)开关系统,现有的链路聚合组(linkaggregationgroup,简写为lag)时常地代表连接至一单一实体(physical)开关的多重链路。一个共同的(common)媒体存取控制(mediaaccesscontrol,简写为mac)地址担任在全部的聚合链路上的开关的地址,以允许通信量(traffic)被送至该开关,其中该开关在相同的媒体存取控制地址的任何一个聚合链路上。因此,该些聚合链路对于多个传送装置表现为一单一链路,例如多个伺服机(servermachines),其中该些传送装置不知道经由该单一mac地址连接有多重链路。现有的链路聚合组的优点为,如果聚合链路的其中一个失效,其他的聚合链路保持有效,以维持由该些聚合链路所提供的原始频宽的一部分。然而,现有的链路聚合组的缺点为,如果该实体开关失效,所有的该些聚合链路被切断,且失去所有的由该些聚合链路所提供的原始频宽。
为了补救这个问题,一对实体开关(亦即,两个不同的实体装置或机箱)取代该单一开关,且一多机箱链路聚合组(multi-chassislinkaggregationgroup,简写为mlag)代表多重链路连接至该对实体开关。在一mlag系统的情况下,每个传送装置具有两个链路至该对开关,与连接至每个开关的一个链路。与现有的lag相似,该相同的共同的mac地址担任在全部的聚合链路上的任一开关的地址。因此,对任一开关的该些聚合链路表现为一单一链路至该些传送装置,例如多个伺服机,其中该些传送装置不知道经由该单一mac地址连接有多重链路或多重开关。一个mlag系统的优点类似于一个一般的lag,如果该些聚合链路之一失效,其他的聚合链路保持有效,以维持由该些聚合链路所提供的原始频宽的一部分。mlag系统比现有的lag额外优点为,如果一个实体开关(或机箱)失效,仍有其他的一个实体开关保持有效,以维持由该些聚合链路所提供的原始频宽的一部分。因此,与现有的lag相比,其中一个实体开关失效造成失去所有的由该些聚合链路所提供的原始频宽,在一个mlag系统,一个实体开关失效维持一些原始频宽。
当建立一个mlag系统时,该些开关与链路必须被组态(configured),例如,藉由在连接至该mlag系统的一个计算装置上的一命令行界面输入命令。一个第一组态步骤为在两个开关(亦即,一第一开关与一第二开关)之间配置共同的界面。此第一组态步骤需要输入给每个该第一与第二开关的最低限度的五个命令,包含启用在该些开关之间的mlag通讯的命令,设定一系统识别符以作为两个开关的一般mac地址的命令,以及在第一及第二开关之间建立一个内部同级链路(interpeerlink,简称为ipl)的命令。一个第二组态步骤为配置在该些开关与下行链路传送装置(例如伺服机)之间的全部的连接。此第二组态步骤需要输入给在每个第一与第二开关之间的每个链路以及每个下行链路传送装置的最低限度的四个命令。因此,对于每个下行链路传送装置来说,那些四个命令必须被发出四次,一次是给该第一开关,一次是给该第二开关。
上述方法的缺点为需通过该cli输入大量的命令以配置该mlag系统。在一个典型的实施例中,每个该第一及第二开关也许包含大量的(例如,高达56个或更多)下行链路端口(或到下行链路传送装置的链路)。在这个实施例中,配置该mlag系统需要通过该cli手动地输入上百笔命令,显得浪费时间且沉闷乏味,因此有人为失误的倾向。再者,每当该mlag系统有改变时,例如一电缆的改变或该些实体开关(或机箱)之一的改变,许多或全部的组态命令(configurationcommand)必须重新输入一次。
如前所述,本技术领域所需要的是配置mlag系统更有效率的方法。
技术实现要素:
有鉴于上述现有技术的缺陷,本发明的目的在于提出一种电脑执行方法以自动地组态一多机箱链路聚合组(multi-chassislinkaggregationgroup,简称为mlag)及非暂时性的电脑可读的储存媒体及系统。
为达上述目的,本发明提供一种电脑执行方法以自动地组态一多机箱链路聚合组,该方法包含:
接收关于该多机箱链路聚合组的第一系统信息;
经由关于一第一开关的一第一上行链路端口接收一第一探索封包,其中该多机箱链路聚合组包含该第一开关,其中该第一探索封包包含关于该多机箱链路聚合组的第二系统信息;
决定该第一系统信息是否匹配该第二系统信息;
如果该第一系统信息匹配该第二系统信息,则推断该第一上行链路端口被包含在一内部同级链路,其中该内部同级链路连接该第一开关至一第二开关,其中该多机箱链路聚合组亦包含该第二开关;及
如果该第一系统信息不匹配该第二系统信息,则推断该第一上行链路端口不被包含在该内部同级链路。
上述的电脑执行方法,其中该第一系统信息包含关于该多机箱链路聚合组的一第一系统识别符,且该第二系统信息包含关于该多机箱链路聚合组的一第二系统识别符。
上述的电脑执行方法,其中相关于该多机箱链路聚合组的该第一系统识别符藉由一命令行界面接收。
上述的电脑执行方法,其中该第一系统信息亦指出关于该第一开关的一第一型号,该第二系统信息亦指出关于该第二开关的一第二型号。
上述的电脑执行方法,其中如果该第一系统识别符匹配该第二系统识别符,且该第一型号匹配该第二型号,则该第一系统信息匹配该第二系统信息。
上述的电脑执行方法,其中如果该第一系统识别符不匹配该第二系统识别符,或该第一型号不匹配该第二型号,则该第一系统信息不匹配该第二系统信息。
上述的电脑执行方法,其中该第一系统信息匹配该第二系统信息,并更包含:
判断该第一上行链路端口没有已经被包含在该内部同级链路内;
增加该第一上行链路端口至上行链路端口清单,其中上行链路端口被包含在该内部同级链路内;及
配置该第一上行链路端口成为该内部同级链路的一部分,其中该内部同级链路连接该第一开关至该第二开关。
上述的电脑执行方法,其中该第一系统信息不匹配该第二系统信息,并更包含:
判断该第一上行链路端口已经被包含在该内部同级链路内;及
从上行链路端口清单移除该第一上行链路端口,其中上行链路端口被包含在该内部同级链路内。
上述的电脑执行方法,其中更包含在具有一第一时间周期的周期的多个间隔经由该第一上行链路端口传送多个的探索封包。
上述的电脑执行方法,其中更包含:
自从经由该第一上行链路端口接收一最新的探索封包之后,判断一第二时间周期已经过去,其中该第二时间周期大于该第一时间周期;及
推断该第一上行链路端口不被包含在该内部同级链路。
为达上述目的,本发明还提供一种非暂时性的电脑可读的储存媒体,包含多个的指令使得当被一处理器执行时,引起该处理器自动地配置一多机箱链路聚合组,其藉由执行步骤:
接收关于该多机箱链路聚合组的第一系统信息;
经由关于一第一开关的一第一上行链路端口接收一第一探索封包,其中该多机箱链路聚合组包含该第一开关,其中该第一探索封包包含关于该多机箱链路聚合组的第二系统信息;
决定该第一系统信息是否匹配该第二系统信息;
如果该第一系统信息匹配该第二系统信息,则推断该第一上行链路端口被包含在一内部同级链路,其中该内部同级链路连接该第一开关至一第二开关,其中该多机箱链路聚合组亦包含该第二开关;及
如果该第一系统信息不匹配该第二系统信息,则推断该第一上行链路端口不被包含在该内部同级链路。
上述的非暂时性的电脑可读的储存媒体,其中该第一系统信息包含关于该多机箱链路聚合组的一第一系统识别符,且该第二系统信息包含相关于该多机箱链路聚合组的一第二系统识别符。
上述的非暂时性的电脑可读的储存媒体,其中关于该多机箱链路聚合组的该第一系统识别符藉由一命令行界面接收。
上述的非暂时性的电脑可读的储存媒体,其中该第一系统信息亦指出关于该第一开关的一第一型号,该第二系统信息亦指出关于该第二开关的一第二型号。
上述的非暂时性的电脑可读的储存媒体,其中如果该第一系统识别符匹配该第二系统识别符,且该第一型号匹配该第二型号,则该第一系统信息匹配该第二系统信息。
上述的非暂时性的电脑可读的储存媒体,其中如果该第一系统识别符不匹配该第二系统识别符,或该第一型号不匹配该第二型号,则该第一系统信息不匹配该第二系统信息。
上述的非暂时性的电脑可读的储存媒体,其中该第一系统信息匹配该第二系统信息,并更包含:
判断该第一上行链路端口没有已经被包含在该内部同级链路内;
增加该第一上行链路端口至上行链路端口清单,其中上行链路端口被包含在该内部同级链路内;及
配置该第一上行链路端口成为该内部同级链路的一部分,其中该内部同级链路连接该第一开关至该第二开关。
上述的非暂时性的电脑可读的储存媒体,其中该第一系统信息不匹配该第二系统信息,并更包含:
判断该第一上行链路端口已经被包含在该内部同级链路内;及
从上行链路端口清单移除该第一上行链路端口,其中上行链路端口被包含在该内部同级链路内。
上述的非暂时性的电脑可读的储存媒体,其中更包含在具有一第一时间周期的多个间隔经由该第一上行链路端口传送多个的探索封包。
上述的非暂时性的电脑可读的储存媒体,其中更包含:
自从经由该第一上行链路端口接收一最新的探索封包之后,判断一第二时间周期已经过去,其中该第二时间周期大于该第一时间周期;及
推断该第一上行链路端口不被包含在该内部同级链路。
为达上述目的,本实用新型还提供一种系统,其包含:
一微处理器,当执行储存在一记忆体的多个的指令时:
接收关于一多机箱链路聚合组的第一系统信息;
经由关于一第一开关的一第一上行链路端口接收一第一探索封包,其中该多机箱链路聚合组包含该第一开关,其中该第一探索封包包含关于该多机箱链路聚合组的第二系统信息;
决定该第一系统信息是否匹配该第二系统信息;
如果该第一系统信息匹配该第二系统信息,则推断该第一上行链路端口被包含在一内部同级链路,其中该内部同级链路连接该第一开关至一第二开关,其中该多机箱链路聚合组亦包含该第二开关;及
如果该第一系统信息不匹配该第二系统信息,则推断该第一上行链路端口不被包含在该内部同级链路。
上述的系统,其中该第一系统信息包含关于该多机箱链路聚合组的一第一系统识别符,并亦指出关于该第一开关的一第一型号;该第二系统信息包含关于该多机箱链路聚合组的一第二系统识别符,并亦指出关于该第二开关的一第二型号。
上述的系统,其中该第一系统信息匹配该第二系统信息,包含该第一系统识别符匹配该第二系统识别符,且该第一型号匹配该第二型号,其中该微处理器更包含:
判断该第一上行链路端口没有已经被包含在该内部同级链路内;
增加该第一上行链路端口至上行链路端口清单,其中上行链路端口被包含在该内部同级链路内;及
配置该第一上行链路端口成为该内部同级链路的一部分,其中该内部同级链路连接该第一开关至该第二开关。
本发明的优点为自动地组态于此叙述的一mlag的技巧允许一mlag的所有连接被自动地设置而不需要一使用者手动地输入上百笔命令,例如通过一cli,而一使用者手动地输入上百笔命令是浪费时间且沉闷乏味的,且因此有人为失误的倾向。
以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。
附图说明
图1为执行本发明的一或更多方面的一系统的一方框图;
图2为依据本发明的各种实施例,图1的自动mlag模块的一的更详细的图例;
图3为依据本发明的各种实施例,在一开关的一或更多个上行链路端口上执行内部同级链路(interpeerlink,简称为ipl)探索的方法步骤的一流程图;
图4为依据本发明的各种实施例,配置一开关的一或更多个下行链路端口的方法步骤的一流程图。
其中,附图标记
系统100
多机箱链路聚合组105
第一开关110
处理器112
记忆体114
自动多机箱链路聚合组模块116
下行链路端口118
上行链路端口119
第二开关120
处理器122
记忆体124
自动多机箱链路聚合组模块126
下行链路端口128
上行链路端口129
网络130
计算装置140
处理器142
记忆体144
输入输出装置146
内部同级链路150
下行链路装置160
下行链路装置162
下行链路装置164
内部同级链路探索子模块210
下行链路组态子模块220
步骤300~390
步骤400~480
具体实施方式
本申请要求申请在2016年四月21号具有编号62/325,926的美国临时专利申请案名称“automatedmulti-chassislinkaggregation,”的内容;此相关申请的主旨内容通过引用的方式而被包含于此。
在以下的描述当中,提出了许多特定细节以使本发明能被更彻底地理解;然而,本领域技术人员明显地应可在不需要其他更多特定细节下即能实施本发明。
系统概述:
图1为执行本发明的一或更多方面的一系统100的一方框图。如图1所示,系统100包含但不限制一第一开关110,藉由一内部同级链路(interpeerlink,简称为ipl)150耦合至一第二开关120。每个该第一开关110与该第二开关120耦合至一网络130及一群下行链路装置160~164,包含一下行链路装置160(亦可称为第一下行链路装置)、一下行链路装置162(亦可称为第二下行链路装置)及一下行链路装置164(亦可称为第n下行链路装置)。此外,系统100也许包含一计算装置140耦合至每个该第一开关110与该第二开关120。
在操作上,该第一开关110与该第二开关120为两个实体开关(physicalswitches)或机箱(chassis),以组成一多机箱链路聚合组(multi-chassislinkaggregationgroup,或称为多链路聚合组multi-linkaggregationgroup;皆可简称为mlag)105。在各种实施例当中,该第一开关110与该第二开关120可为相同形式的开关且可具有相同的开关型号;该第一开关110与该第二开关120也可具有数量相同的上行链路端口与数量相同的下行链路端口。作为同一个mlag105的一部分,该第一开关110与该第二开关120共享一个共同的(common)mac地址;因此,当和该第一开关110与该第二开关120通讯时,该些下行链路装置160~164传送通讯递送至该共同的mac地址。
该第一开关110可为任何型式的技术上可行的网络开关,包含一乙太网络(ethernet)开关,以及其他型式的开关。该第一开关110包含但不限制下行链路端口118、上行链路端口119、一处理器112及一记忆体114。该第一开关110通过下行链路端口118耦合至该些下行链路装置160~164。下行链路端口118可为任何技术上可行的端口连接以进行双向通讯,包含rj45连接、sfp连接、sfp+连接、qsfp28连接等等。该第一开关110通过上行链路端口119耦合至网络130。此外,一或更多个上行链路端口119形成该ipl150以耦合该第一开关110至该第二开关120。上行链路端口119可为任何技术上可行的端口连接以进行双向通讯,包含rj45连接、sfp连接、sfp+连接、qsfp28连接等等。处理器112可为任何技术上可行形式的处理装置以处理数据与执行程序代码(programcode);处理器112可为例如一中央处理单元(centralprocessingunit,简称为cpu)、一图形处理单元(graphicsprocessingunit,简称为gpu)、一专用集成电路(application-specificintegratedcircuit,简称为asic)、一现场可编程门阵列(field-programmablegatearray,简称为fpga)等等。记忆体114可为例如一硬碟、一随机存取记忆体(randomaccessmemory,简称为ram)模块、一只读记忆体(read-onlymemory,简称为rom)等等。如图1所示,记忆体114包含自动多机箱链路聚合组(可称为auto-mlag)模块116,为一个软件应用,当由处理器112执行时,使处理器112自动地在该第一开关110与该第二开关120之间配置该ipl150,并自动地在该第一开关110与该些下行链路装置160~164之间配置下行链路连接,如以下更详尽的描述。
该第二开关120亦可为任何技术上可行的网络开关,包含乙太网络(ethernet)开关,以及其他开关。该第二开关120包含但不限制下行链路端口128、上行链路端口129、一处理器122及一记忆体124。该第二开关120通过下行链路端口128耦合至该些下行链路装置160~164。下行链路端口128可为任何技术上可行的端口连接以进行双向通讯,包含rj45连接、sfp连接、sfp+连接、qsfp28连接等等。该第二开关120通过上行链路端口129耦合至网络130。此外,一或更多个上行链路端口129形成该ipl150以耦合该第二开关120至该第一开关110。上行链路端口129可为任何技术上可行的端口连接以进行双向通讯,包含rj45连接、sfp连接、sfp+连接、qsfp28连接等等。处理器122可为任何技术上可行形式的处理装置以处理数据与执行程序代码;处理器122可为例如一中央处理单元、一图形处理单元、一专用集成电路、一现场可编程门阵列等等。记忆体124可为任何技术上可行的储存媒体以储存数据与软件应用;记忆体124可为例如一硬碟、一随机存取记忆体模块、一只读记忆体等等。如图1所示,记忆体124包含自动多机箱链路聚合组(可称为auto-mlag)模块126,为一个软件应用,当由处理器122执行时,使处理器122自动地在该第二开关120与该第一开关110之间配置该ipl150,并自动地在该第二开关120与该些下行链路装置160~164之间配置下行链路连接,亦如以下更详尽的描述。网络130可为任何技术上可行的一套互相连接的通讯链路,包含一区域网络(localareanetwork,简称为lan)、广域网络(wideareanetwork,简称为wan)、全球资讯网(worldwideweb)或因特网(internet)及其他网络。
该些下行链路装置160~164可为多个的伺服机(servermachines)或任何其他技术上可行的网络装置。
计算装置140可包含但不限制一处理器142、一记忆体144及输入输出(input/output,简称为i/o)装置146;处理器142可为任何技术上可行形式的处理装置以处理数据与执行程序代码;处理器142可为例如一中央处理单元、一图形处理单元、一专用集成电路、一现场可编程门阵列等等。记忆体144可为任何技术上可行的储存媒体以储存数据与软件应用;记忆体124可为例如一硬碟、一随机存取记忆体模块、一只读记忆体等等。输入输出装置146可包含用以接收输入的装置,包含例如,一键盘、一鼠标等等。在各种实施例当中,计算装置140与该第一开关110及该第二开关120通过任何技术上可行的电脑连接,例如一有线连接或一无线连接等等进行通讯。在另一实施例,计算装置140可与该第一开关110通过一或更多个上行链路端口119进行通讯,及与该第二开关120通过一或更多个上行链路端口129进行通讯。
一使用者可通过该计算装置140启动该些自动多机箱链路聚合组模块116、126;例如,一使用者可通过一个命令行界面或其他界面输入一或多个命令至该计算装置140以启动该些自动多机箱链路聚合组模块116、126;例如,在各种实施例当中,一使用者可通过该cli输入一单一命令以启动该第一开关110的该自动多机箱链路聚合组模块116,及通过该cli输入另一个单一命令以启动该第二开关120的该自动多机箱链路聚合组模块126。该些命令可包含mlag105的系统信息,包含但不限制一自动mlag系统识别符以作为该第一开关110及该第二开关120的共同的mac地址,其中该第一开关110及该第二开关120组成该mlag105。一经启动该第一开关110的该自动多机箱链路聚合组模块116,该第一开关110会在该记忆体114内设定一旗标以指出该第一开关110的该自动mlag被启用。在另一个实施例中,该计算装置140没有使用者的介入即启动该些自动多机箱链路聚合组模块116、126;在其他实施例当中,一使用者会直接与该第一开关110及该第二开关120互动以分别地启动该些自动多机箱链路聚合组模块116、126而不用该计算装置140。
即使图1显示出储存在该第一开关110的该记忆体114的该自动多机箱链路聚合组模块116,以及储存在该第二开关120的该记忆体124的该自动多机箱链路聚合组模块126,在另一实施例当中,一个单一的自动多机箱链路聚合组模块只被储存在该些开关的其中之一的记忆体当中;在其他实施例当中,一或更多个自动多机箱链路聚合组模块会部分地或完全地储存在该计算装置140的该记忆体144中;在其他实施例当中,全部或部分的一或更多个自动多机箱链路聚合组模块会通过该网络130被远端地储存与存取。
如下更详尽的描述连同图2~4,该自动多机箱链路聚合组模块116自动地判断且/或接收该mlag105的附加的系统信息,包含但不限制该第一开关110的型号,自动地重新得到关于该第一开关110的该下行链路端口118及该上行链路端口119的所有信息,自动地配置在该第一开关110及该第二开关120之间的该ipl150,以及自动地配置在该第一开关110及该些下行链路装置160~164之间的连接。类似地,该自动多机箱链路聚合组模块126自动地判断且/或接收该mlag105的附加的系统信息,包含但不限制该第二开关120的型号,自动地重新得到关于该第二开关120的该下行链路端口128及该上行链路端口129的所有信息,自动地配置在该第二开关120及该第一开关110之间的该ipl150,以及自动地配置在该第二开关120及该些下行链路装置160~164之间的连接。
该mlag的自动组态:
图2为依据本发明的各种实施例,图1的自动mlag模块的一的更详细的图例。如图2所示,该第一开关110的该自动多机箱链路聚合组模块116包含但不限制一内部同级链路探索子模块210及一下行链路组态子模块220。即使该第一开关110的该自动多机箱链路聚合组模块116如图所示与描述,本领域的技术人员应理解该第二开关120的该自动多机箱链路聚合组模块126大体上与该自动多机箱链路聚合组模块116相同。
首先该自动多机箱链路聚合组模块116接收该mlag105的系统信息,包含但不限制一自动mlag系统识别符,例如,来自一使用者命令通过一命令行界面输入至该计算装置140,其中此自动mlag系统识别符建立由该第一开关110及该第二开关120所共享的该共同的mac地址。该内部同级链路探索子模块210接着自动地配置该第一开关110及该第二开关120之间的该ipl150。如此一来,该内部同级链路探索子模块210判断且/或接收该mlag105的附加的系统信息,包含但不限制该第一开关110的型号,在各种实施例当中,该第一开关110的型号可被编码在与重新得到自该内部同级链路探索子模块210或该自动多机箱链路聚合组模块116。在其他实施例当中,该第一开关110的型号可自该第一开关110的该记忆体114重新得到,自该计算装置140的该记忆体144重新得到,或是从该网络130下载。
接着,该内部同级链路探索子模块210基于接收到的系统信息,例如该第一开关110的型号,重新得到关于该第一开关110的该上行链路端口119的信息。关于该上行链路端口119的信息包含但不限制上行链路端口的总数、特殊配置参数(configurationparameters)及/或任何其他关于该上行链路端口119的信息。在各种实施例当中,基于该第一开关110的型号,关于该上行链路端口119的信息可被编码在与重新得到自该内部同级链路探索子模块210或该自动多机箱链路聚合组模块116。在其他的实施例当中,关于该上行链路端口119的信息可自该第一开关110的该记忆体114重新得到,自该计算装置140的该记忆体144重新得到,或是从该网络130下载。
对于被包含在该上行链路端口119的每个上行链路端口“p”,该内部同级链路探索子模块210周期性地传送探索封包在该上行链路端口“p”上。在各种实施例当中,由该第一开关110所传送的探索封包包含mlag105的系统信息,包含但不限制接收到的自动mlag系统识别符及/或该第一开关110的型号。在其他的实施例当中,由该第一开关110所传送的探索封包亦包含一旗标以指出该第一开关110的该自动mlag被启用。该内部同级链路探索子模块210会在每个周期区间,例如一时间tx_limit,传送一个探索封包;因此,藉由该第一开关110及该第二开关120通过该ipl150连接,如果该上行链路端口“p”是该ipl150的一部分,则该第二开关120接收由该第一开关110所周期性地传送的该探索封包。类似地,如果该第一开关110及该第二开关120同时执行相应的内部同级链路探索子模块210,则该第一开关110接收由该第二开关120周期性地在一个上行链路端口上,例如在该上行链路端口“p”上,所传送的任何探索封包,其中上行链路端口是该ipl150的一部分。相应地,在各种实施例当中,从该第二开关120所接收到的该些探索封包包含mlag105的相应的系统信息,例如该自动mlag系统识别符及/或该第二开关120的型号。
该内部同级链路探索子模块210更判断,对于每个上行链路端口“p”来说,该第一开关110是否从该第二开关120收到探索封包;如果该第一开关110在一预设期间内没有在该上行链路端口“p”上接收到任何探索封包,则该内部同级链路探索子模块210推断该上行链路端口“p”不是该ipl150的一部分。例如,接收一探索封包的该预设期间是一个期间rx_limit,其中rx_limit大于tx_limit。在各种实施例当中,rx_limit大体上大于tx_limit,例如是tx_limit的值的倍数,以允许该ipl150被维持,尽管一或更多个探索封包在传送或接收时遭遇到一延迟或一失败事件。
当该第一开关110在该上行链路端口“p”上接收到一探索封包时,该内部同级链路探索子模块210判断该第一开关110所接收的该mlag105的系统信息,例如该自动多机箱链路聚合组模块116所接收的该自动mlag系统识别符及/或该第一开关110的型号,是否匹配被包含在所接收到的探索封包的该mlag105的相应的系统信息,例如该自动mlag系统识别符及/或该第二开关120的型号。例如,如果该第一开关110所接收的该mlag105的系统信息匹配被包含在所接收到的探索封包的该mlag105的相应的系统信息,例如如果该自动多机箱链路聚合组模块116所接收的该自动mlag系统识别符匹配被包含在所接收到的探索封包的自动mlag系统识别符,且该第一开关110的型号匹配被包含在所接收到的探索封包的该第二开关120的型号,则该内部同级链路探索子模块210推断该上行链路端口“p”形成该ipl150的一部分。在这种情况下,如果该上行链路端口“p”还没被指派为该ipl150的一部分,则该内部同级链路探索子模块210增加该上行链路端口“p”至上行链路端口清单(其中上行链路端口建立该ipl150),且该内部同级链路探索子模块210配置该上行链路端口“p”为该ipl150的一部分以连接该第一开关110及该第二开关120。相反地,如果该第一开关110所接收的该mlag105的系统信息不匹配被包含在所接收到的探索封包的该mlag105的相应的系统信息,例如如果该些自动mlag系统识别符或该些开关型号不匹配,则该内部同级链路探索子模块210推断该上行链路端口“p”不形成该ipl150的一部分。在这种情况下,如果该上行链路端口“p”已经被指派为该ipl150的一部分,则该内部同级链路探索子模块210自上行链路端口清单(其中上行链路端口建立该ipl150)移除该上行链路端口“p”。
该下行链路组态子模块220自动地配置该第一开关110与该些下行链路装置160~164之间的连线;如此一来,该下行链路组态子模块220判断且/或接收该mlag105的系统信息,包含但不限制该第一开关110的型号。在各种实施例当中,该第一开关110的型号可被编码在与重新得到自该下行链路组态子模块220或该自动多机箱链路聚合组模块116。在其他实施例当中,该第一开关110的型号可自该第一开关110的该记忆体114重新得到,自该计算装置140的该记忆体144重新得到,或是从该网络130下载。
该下行链路组态子模块220接着基于所接收到的系统信息重新得到关于该第一开关110的该下行链路端口118的信息,例如该第一开关110的型号。关于该下行链路端口118的信息包含但不限制下行链路端口的总数、特殊配置参数及/或任何其他关于该下行链路端口118的信息。在各种实施例当中,基于该第一开关110的型号,关于该下行链路端口118的信息可被编码在与重新得到自该下行链路组态子模块220或该自动多机箱链路聚合组模块116。在其他实施例当中,关于该下行链路端口118的信息可自该第一开关110的该记忆体114重新得到,自该计算装置140的该记忆体144重新得到,或是从该网络130下载。
接着该下行链路组态子模块220藉由一回路演算法配置该些下行链路装置160~164的每个下行链路连接;更具体地说,该下行链路组态子模块220初始化一或更多个回路参数,例如一回路计数器以通过被包含在该些下行链路端口118的每个下行链路端口回路。在一回路的每个重复,该下行链路组态子模块220增加该回路计数器并从被包含在该些下行链路端口118的一套中的一不同的下行链路端口配置一连接至该些下行链路装置160~164中的不同的一个。该下行链路组态子模块220以此样式继续执行,直到该回路计数器达到下行链路端口的总数,表明从被包含在该些下行链路端口118的一套的所有下行链路端口到所有的该些下行链路装置160~164已经被配置。
图3为依据本发明的各种实施例,在一开关的一或更多个上行链路端口上执行内部同级链路(interpeerlink,简称为ipl)探索的方法步骤的一流程图。尽管该方法步骤与图1及2被描述,本领域技术人员应了解被配置以执行该些方法步骤的任何系统,以任何形式,皆为本发明的范畴。此外,即使该第一开关110的该自动多机箱链路聚合组模块116的该内部同级链路探索子模块210执行该些描述的方法步骤,本领域技术人员应了解该第二开关120的该自动多机箱链路聚合组模块126操作大体上为相同方式,如下所述。
如图3所示,一方法300开始于步骤305,其中该第一开关110的该自动多机箱链路聚合组模块116的该内部同级链路探索子模块210接收该mlag105的系统信息,包含但不限制一自动mlag系统识别符,其中此自动mlag系统识别符建立由该第一开关110及该第二开关120所共享的该共同的mac地址。例如,此自动mlag系统识别符从一使用者命令通过一命令行界面输入至该计算装置140所接收。该mlag105的系统信息包含但不限制该第一开关110的型号。该第一开关110的型号提供,除了别的以外还有,该型号、任何其他种类的辨识码,及/或该第一开关110的相关规格。在各种实施例当中,该第一开关110的型号可被编码在与重新得到自该内部同级链路探索子模块210或该自动多机箱链路聚合组模块116。在其他实施例当中,该第一开关110的型号可自该第一开关110的该记忆体114重新得到,自该计算装置140的该记忆体144重新得到,或是从该网络130下载。
在步骤310,该内部同级链路探索子模块210基于接收到的系统信息,重新得到关于该第一开关110的该上行链路端口119的信息,例如该第一开关110的型号。关于该上行链路端口119的信息包含但不限制上行链路端口的总数、特殊配置参数及/或任何其他关于该上行链路端口119的信息。在各种实施例当中,基于该第一开关110的型号,关于该上行链路端口119的信息可被编码在与重新得到自该内部同级链路探索子模块210或该自动多机箱链路聚合组模块116。在其他的实施例当中,关于该上行链路端口119的信息可自该第一开关110的该记忆体114重新得到,自该计算装置140的该记忆体144重新得到,或是从该网络130下载。
亦显示出,对于被包含在该上行链路端口119的每个上行链路端口“p”,该内部同级链路探索子模块210执行以下步骤;在步骤315,该内部同级链路探索子模块210设定一个传送计时器tx_timer为零;在步骤320,该内部同级链路探索子模块210设定一个接收计时器rx_timer为零;在步骤325,该内部同级链路探索子模块210增加该接收计时器rx_timer;在步骤330,该内部同级链路探索子模块210增加该传送计时器tx_timer。
接着,在步骤335,该内部同级链路探索子模块210判断该传送计时器tx_timer是否大于等于一门槛时间传送限制tx_limit;如果该传送计时器tx_timer大于等于该门槛时间传送限制tx_limit,则该方法300进入步骤340,该内部同级链路探索子模块210在该上行链路端口”p”上传送一探索封包。如上所述,该第一开关110所传送的该些探索封包包含mlag105的系统信息,包含但不限制接收到的自动mlag系统识别符及/或该第一开关110的型号。能被意识到的,这些前述步骤允许该内部同级链路探索子模块210周期性地在每个周期区间,例如在该门槛时间传送限制tx_limit,传送探索封包在该上行链路端口“p”上。因此,藉由该第一开关110及该第二开关120通过该ipl150连接,如果该上行链路端口“p”是该ipl150的一部分,则该第二开关120接收由该第一开关110所周期性地传送的该探索封包。在步骤345中,该内部同级链路探索子模块210重置该传送计时器tx_timer等于零;该方法300接着进入步骤350。
现在回到步骤335,如果该内部同级链路探索子模块210判断该传送计时器tx_timer不大于等于该门槛时间传送限制tx_limit,则该方法300直接进入步骤350。
在步骤350,该内部同级链路探索子模块210判断是否在该上行链路端口”p”上从该第二开关120接收到一探索封包。例如,如果该第一开关110及该第二开关120同时执行相应的内部同级链路探索子模块210,则该第一开关110接收由该第二开关120周期性地在一个上行链路端口上,例如在该上行链路端口“p”上,所传送的任何探索封包,其中上行链路端口是该ipl150的一部分。
如果在步骤350,该内部同级链路探索子模块210没有在该上行链路端口”p”上接收到一探索封包,接着该方法300进入步骤355。在步骤355,该内部同级链路探索子模块210判断该接收计时器rx_timer是否大于一门槛时间接收限制rx_limit。如上解释,该门槛时间接收限制rx_limit也许会大于该门槛时间传送限制tx_limit,并且在各种实施例当中,该门槛时间传送限制tx_limit也许会大体上大于该门槛时间传送限制tx_limit,例如是门槛时间传送限制tx_limit的值的倍数,以允许该ipl150被维持,尽管一或更多个探索封包在传送或接收时遭遇到一延迟或一失败事件。
如果该内部同级链路探索子模块210判断该接收计时器rx_timer大于该门槛时间接收限制rx_limit,则该内部同级链路探索子模块210推断该上行链路端口“p”不是该ipl150的一部分,且该方法300进入步骤380。在步骤380,该内部同级链路探索子模块210判断该上行链路端口“p”是否已经被指派为该ipl150的一部分;如果不是,则在步骤390,结束该上行链路端口“p”的内部同级链路探索流程。
现在回到步骤380,如果该内部同级链路探索子模块210判断该上行链路端口“p”已经被指派为该ipl150的一部分,则在步骤385,该内部同级链路探索子模块210自上行链路端口清单(其中上行链路端口建立该ipl150)移除该上行链路端口“p”,且该方法300进入如上所述的步骤390。
现在回到步骤355,如果该内部同级链路探索子模块210判断该接收计时器rx_timer不大于该门槛时间接收限制rx_limit,则该内部同级链路探索子模块210回到如上所述的步骤325。
现在回到步骤350,如果该内部同级链路探索子模块210在该上行链路端口”p”上接收到一探索封包,接着该方法300进入步骤365。在其他实施例当中,作为步骤350的一部分,一经接收一探索封包,该内部同级链路探索子模块210判断是否从该第二开关120接收的该探索封包内的一旗标指出在该第二开关120的自动mlag被启用。在更进一步的其他实施例当中,作为步骤350的一部分,一经接收一探索封包,该内部同级链路探索子模块210判断是否在该记忆体114内设定一旗标以指出该第一开关110的该自动mlag被启用。如果任何一个旗标指出该第一开关110或该第二开关120的自动mlag没有被启用,接着该方法300直接进入如上所述的步骤390;否则,该方法300进入如上所述的步骤365。在步骤365,该内部同级链路探索子模块210判断该第一开关110所接收的该mlag105的系统信息,例如该自动多机箱链路聚合组模块116所接收的该自动mlag系统识别符及/或该第一开关110的型号,是否匹配被包含在所接收到的探索封包的该mlag105的相应的系统信息,例如该自动mlag系统识别符及/或该第二开关120的型号。如果该内部同级链路探索子模块210判断该第一开关110所接收的该mlag105的系统信息不匹配被包含在所接收到的探索封包的该mlag105的相应的系统信息,例如如果该些自动mlag系统识别符或该些开关型号不匹配,则该内部同级链路探索子模块210推断该上行链路端口“p”不是该ipl150的一部分,且该方法300进入如上所述的步骤380。
现在回到步骤365,如果该内部同级链路探索子模块210判断该第一开关110所接收的该mlag105的系统信息匹配被包含在所接收到的探索封包的该mlag105的相应的系统信息,例如当被包含在所接收到的探索封包的自动mlag系统识别符匹配该自动多机箱链路聚合组模块116所接收的自动mlag系统识别符,且被包含在所接收到的探索封包的该第二开关120的型号匹配该第一开关110的型号,则该内部同级链路探索子模块210推断该上行链路端口“p”形成该ipl150的一部分。在步骤370,该内部同级链路探索子模块210判断该上行链路端口“p”是否已经被指派为该ipl150的一部分;如果是,则该方法300回到如上所述的步骤320。然而,如果在步骤370,该上行链路端口“p”没有已经被指派为该ipl150的一部分,则在步骤375,该内部同级链路探索子模块210增加该上行链路端口“p”至上行链路端口清单(其中上行链路端口建立该ipl150),且该内部同级链路探索子模块210配置该上行链路端口“p”为该ipl150的一部分以连接该第一开关110及该第二开关120。该方法接着回到如上所述的步骤320。
藉由回到步骤320,在推断一被给定的上行链路端口“p”形成该ipl150的一部分之后,该内部同级链路探索子模块210在一持续的基础上,运行该上行链路端口“p”的该ipl探索程序;如此的方法启动该内部同级链路探索子模块210以主动地监视该些上行链路端口的情形以不断地形成该ipl150且从该ipl150移除任何闲置的(inactive)上行链路端口。在其他实施例当中,该内部同级链路探索子模块210回到步骤320,即使在步骤390在推断一被给定的上行链路端口“p”不形成该ipl150的一部分之后。再一次,此方法启动该内部同级链路探索子模块210在一持续的基础上主动地监视ipl150的情况并使该ipl150增加后来变成有效的(active)以及被该内部同级链路探索子模块210在那时候使用以交换探索封包的任何上行链路端口。
图4为依据本发明的各种实施例,自动地配置一开关的一或更多个下行链路端口的方法步骤的一流程图。尽管该方法步骤与图1及2被描述,本领域技术人员应了解被配置以执行该些方法步骤的任何系统,以任何形式,皆为本发明的范畴。此外,即使该第一开关110的该自动多机箱链路聚合组模块116的该下行链路组态子模块220执行该些描述的方法步骤,本领域技术人员应了解该第二开关120的该自动多机箱链路聚合组模块126操作大体上为相同方式,如下所述。
如图4所示,一方法400开始于步骤410,其中该下行链路组态子模块220判断且/或接收该mlag105的系统信息,包含但不限制该第一开关110的型号。如前所述,该第一开关110的型号提供,除了别的以外还有,该型号、任何其他种类的辨识码,及/或该第一开关110的相关规格。在各种实施例当中,该第一开关110的型号可被编码在与重新得到自该下行链路组态子模块220或该自动多机箱链路聚合组模块116。在其他实施例当中,该第一开关110的型号可自该第一开关110的该记忆体114重新得到,自该计算装置140的该记忆体144重新得到,或是从该网络130下载。
在步骤420,该下行链路组态子模块220基于系统信息,重新得到关于该第一开关110的该下行链路端口118的信息,例如该第一开关110的型号。关于该下行链路端口118的信息包含但不限制下行链路端口的总数、特殊配置参数及/或任何其他关于该下行链路端口118的信息。在各种实施例当中,基于该第一开关110的型号,关于该下行链路端口118的信息可被编码在与重新得到自该下行链路组态子模块220或该自动多机箱链路聚合组模块116。在其他实施例当中,关于该下行链路端口118的信息可自该第一开关110的该记忆体114重新得到,自该计算装置140的该记忆体144重新得到,或是从该网络130下载。
在步骤430,该下行链路组态子模块220设定一或更多个回路参数;例如,该下行链路组态子模块220设定一个下行链路端口数量参数等于存在于该第一开关110的该些下行链路端口118的数量。在步骤440,该下行链路组态子模块220初始化一回路计数器参数,例如藉由设定该回路计数器等于零。
在步骤450,该下行链路组态子模块220在该些下行链路端口之一及该些下行链路装置160~164之一之间配置一下行链路连接,其中该些下行链路端口被包含在该些下行链路端口118的一套且与回路计数器的数值一致,且该些下行链路装置160~164亦与回路计数器的数值一致;例如,对于回路计数器的初始值来说,该下行链路组态子模块220执行一或更多个操作以配置被包含在该些下行链路端口118的一第一下行链路端口与一第一下行链路装置160之间的一连接;接着,在步骤460,该下行链路组态子模块220增加回路计数器的数值。
该方法400接着进入步骤470,其中该下行链路组态子模块220判断是否有额外的下行链路连接需要被配置,例如藉由判断回路计数器的增加数值是否等于该下行链路端口数量参数;例如,如果该下行链路组态子模块220判断没有额外的下行链路连接需要被配置,例如当回路计数器的增加数值等于该下行链路端口数量参数,则该方法400进入步骤480,结束该些下行链路端口的该自动组态程序。
现在回到步骤470,如果该下行链路组态子模块220判断有额外的下行链路连接需要被配置,例如当回路计数器的增加数值不等于该下行链路端口数量参数,则该方法400回到如上所述的步骤450以允许另一个下行链路连接被配置。
该下行链路组态子模块220以回路样式继续执行步骤450至470以配置所有的下行链路端口。在该回路的每个重复,一个下行链路连接被配置,且该回路计数器增加。该回路被重复直到所有的下行链路连接经过所有的下行链路端口都被配置,例如当该回路计数器达到下行链路端口的总数。一旦该回路计数器等于该下行链路端口数量参数,表明被包含在该些下行链路端口118的一套的所有下行链路端口已经被配置,该方法400结束。
在其他的实施例当中,一旦该方法400结束,且该mlag105被完全地配置,该下行链路组态子模块220适时地在某些提前点执行额外的操作以更新该mlag105的组态或再组态;那些操作包含但不限制判断该mlag105是否有改变,例如一连接缆线的改变或该些实体开关之一的改变,或判断该下行链路组态子模块220是否收到任何种类的重新启动信号以更新该mlag105的组态或再组态。该下行链路组态子模块220周期性地执行此额外的操作;例如如果该下行链路组态子模块220判断该mlag105有改变或该下行链路组态子模块220接收到一重新启动信号,则该下行链路组态子模块220执行如上所述的步骤440到480以更新该mlag105的组态或再组态。此方法启动该内部同级链路探索子模块210在一持续的基础上主动地监视该mlag的情况且/或在一持续的基础上主动地监视是否接收到一重新启动信号以确保该第一开关110的所有的该些下行链路端口118一直都被恰当地配置。
在各种实施例当中,mlag功能可在该第一开关110及该第二开关120所有的通讯端口被启动;在其他实施例当中,一使用者手动地覆盖某些通讯端口的组态,使得mlag功能在有些通讯端口被启动,但在某些连接至某些下行链路装置160~164的其他通讯端口不被启动。
在各种其他实施例当中,该第一开关110及该第二开关120分别包含的该下行链路端口118及该下行链路端口128是被用于下行链路端口,而该第一开关110及该第二开关120分别包含的该上行链路端口119及该上行链路端口129是被用于上行链路端口。在其他的实施例当中,被包含在该第一开关110的该下行链路端口118及该上行链路端口119的每个端口,以及被包含在该第二开关120的该下行链路端口128及该上行链路端口129的每个端口,会被包含在通讯端口的通用池内,基于该通讯系统100的需求以被指定作为下行链路或上行链路。
在各种其他实施例当中,该第一开关110及该第二开关120具有相同的型号;在一些其他实施例当中,该第一开关110及该第二开关120具有不同的型号,但具有相同的通讯端口号码;例如该些开关可为标准化的或复制的(clone)开关装置,具有大体上相似的规格但不同的制造者及/或型号。在其他实施例当中,该第一开关110及该第二开关120具有不同的型号以及不同的通讯端口号码;在此状况下,该第一开关110的一下行链路端口118会跟该第二开关120的一相应的下行链路端口128配对,使得mlag通讯在每个如此的下行链路端口的配对上被启动,即使两开关的通讯端口的总数不同。
总而言之,更有效地配置该ipl及一mlag系统的链路的方法被揭露;特别是,依据一般的方法,被通过一cli手动输入的数百个命令可被少至两个命令所取代,一个对该mlag系统的每个开关;该两个命令触发一自动组态程序以配置该mlag系统的该ipl界面以及至耦合至每个开关的下行链路传送装置的全部的链路。更具体地说,该两个命令的每一个包含系统信息,例如一系统识别符,以设定该系统识别符成为该mac地址以应用于该mlag系统。进一步地,该两个命令的每一个对该开关启动一ipl探索程序,其中探索封包周期性地经由该开关的每个上行链路端口被传送。在一个上行链路端口接收的每个如此的探索封包被分析以判断该上行链路端口是否形成具有该同级(peer)开关的该ipl的一部分。因此,每个开关可以自动地正确地判断哪个或哪些上行链路端口形成具有该同级开关的该ipl。进一步地,该两个命令的每一个启动该开关的下行链路连接组态程序,其中系统信息,例如一特定开关的型号指出该开关的下行链路端口的号码及安排;因此,该自动组态程序包含一回路操作以配置从不同的下行链路端口到各种下行链路传送装置,例如伺服机,的所有连接。
为说明之目的,各种实施例的描述已被呈现,但该些揭露的实施例不企图详尽无遗或被限制;许多修改与变化不脱离该范畴与描述的实施例的精神,对本领域技术人员来说是显而易见的。
本实施例的方向被表现为一个系统、方法或电脑程序产品;因此,本揭露的方向采用一完全硬件实施例、一完全软件实施例(包含固件(firmware)、常驻软件(residentsoftware)、微码(micro-code)等等)或结合软件及硬件方面的实施例的型式,通常地称为模块或系统。再者,本揭露的方向采用电脑程序产品的型式,体现在一或更多个电脑可读媒体,其中该电脑可读媒体具有电脑可读程序码体现在其上。
一或更多个电脑可读媒体的任何组合可被利用;该电脑可读媒体可为一电脑可读信号媒体或一电脑可读储存媒体。一电脑可读储存媒体可为例如但不限制为一电子的、磁的、光学的、电磁的、红外线的,或半导体系统、装置或设备,或任何前述内容的适当的组合。该电脑可读储存媒体的更特定的例子(一非全面的清单(non-exhaustivelist))包含下列:具有一条或更多条线的一电气连接、一可携式电脑磁片(diskette)、一硬碟(harddisk)、一随机存取记忆体(ram)、ㄧ只读记忆体(rom)、一可抹除可规划只读记忆体(eprom或flashmemory)、一光纤(opticalfiber)、一可携式光碟只读记忆体(cd-rom)、一光学储存装置、一磁的储存装置、或任何前述内容的适当的组合。在本文件的上下文,一电脑可读储存媒体可为任何有形的媒体,可以包含或储存专用于或与一指令执行系统、装置或设备连接的一程序。
本揭露的方向参考流程图说明及/或方法、装置(系统)的方框图及依据本揭露的实施例的电脑程序产品描述如上;可被理解的是,流程图说明及/或方框图的每一个以及流程图说明及/或方框图的组合,可被电脑程序指令所实施。那些电脑程序指令可被提供至一普通目的的电脑的、特殊目的的电脑的或其他可程序数据处理装置的一处理器,以生产一机器,使得该些指令启动特定在流程图及/或方框图方框或多个方框的功能/行动的体现,其中该些指令通过电脑的处理器或其他可程序数据处理装置执行;此些处理器可为但不限制普通目的的处理器、特殊目的的处理器、特殊用途的处理器或现场可编程处理器。
图中的流程图与方框图说明了依据本揭露的各种的实施例的系统、方法与电脑程序产品的架构、功能与可能实践的操作。就这一点而言,在流程图或方框图的每个方框代表一个模块、部分或码的部分,包含一或更多个可执行的指令以体现特定的逻辑功能。亦须知,在一些其他的实施例当中,记载在方框内的功能也许会发生记载在图内的不寻常;例如,显示在连续的两个方框也许会,事实上,被大体上同时地执行,或该些方框依据有关的功能也许有时会以相反顺序执行。亦须知,方框图及/或流程图说明的每个方框,以及方框图及/或流程图说明的方框的组合,可藉由特殊目的硬件式(hardware-based)系统实现,以执行特定的功能或行动,或特殊目的的硬件与电脑指令的结合。
当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。