技术领域
[0001] 本申请主要关于多张网络接口卡之间的路径规划技术,特别涉及一种能够避免在箱型交换机内形成环路的网络接口卡、交换卡、及线路卡。
相关背景技术
[0002] 随着网络技术的快速发展,人们对于网络频宽的需求不仅开始逐年提高且对于网络环境的需求也时常有所变化,因此,在网络环境的架设方面需要考量到可动态且简易地进行调整。
[0003] 由于箱型交换机(switch chassis)可视不同的网络环境需求而选择性地搭载不同的通信元件,例如:一或多张网络接口等。因此,箱型交换机被广泛地应用在网络环境的架设,而因为箱形交换器通常包含多张网络接口卡,所以衍生出管理这些网络接口卡的需求,通常是通过发送控制封包的方式来进行网络接口卡的管理。
[0004] 图1是显示于传统箱型交换机内各网络接口卡之间的控制封包传送路径示意图。一般来说,箱型交换机中的每张网络接口卡可以是交换卡(Fabric card)或线路卡(Line card)。以图1为例,每张交换卡与每张线路卡是通信连接,因而能彼此传送控制封包而达到管理的目的。然而,由于任一交换卡及任一线路卡之间彼此互相通信连结,控制封包的传送路径容易形成环路(Loop)。详言之,这些网络接口卡之间的管理若是通过群播(Multicast)的方式来传送控制封包以实现管理的目的,在传送路径上容易形成环路,而环路会进一步造成广播风暴。广播风暴不只会导致网络接口卡之间的通信瘫痪(Traffic jam),也会因为处理重复的控制封包传送而耗尽每张网络接口卡的资源,严重影响箱型交换机在管理上的效能。
[0005] 此外,若为避免形成环路而进行控制封包的传输路径规划,因箱形交换机内各网络接口卡的动态变化特性(例如插入或拔出网络接口卡、故障等变化),不利于传输路径的规划,若再通过监控各网络接口卡的变化状况来进行传输路径的规划,则额外使用控制器监控的方式,不仅增加箱形交换机的建置成本,更对其效能造成影响。
具体实施方式
[0025] 本文所叙述的是实施本申请的优选方式,目的在于说明本申请的构思而非用以限定本申请的保护范围,当可理解的是,使用于本说明书中的“包含”、“包括”等词,是用以表示存在特定的技术特征、数值、方法步骤、作业处理、元件以及/或组件,但并不排除可加上更多的技术特征、数值、方法步骤、作业处理、元件、组件,或以上的任意组合。
[0026] 图2是根据本申请一实施例所述的一箱型交换机的内多个张网络接口卡之间的控制封包传送路径示意图。箱型交换机100包括多个张网络接口卡,其中每张网络接口卡可为一交换卡或一线路卡。
[0027] 一般来说,箱型交换机100可针对区域网络提供网络架构的可调制性,通过箱型交换机100内部的网络接口卡的组态,可动态适应区域网络的网络架构改变,以容纳更多或更少的网络终端装置。举例来说,区域网络可以是由以太网、无线保真(Wireless Fidelity,WiFi)网络、双绞线(Twisted Pair)网络、或同轴电缆(Coaxial cable)网络等所建构的网络,又可称为内网,其通常覆盖局部区域,例如:办公室、或建筑物内的某楼层。箱型交换机100之中的每一张网络接口卡(如:线路卡)皆可进一步耦接至一网络终端装置,例如:笔记本电脑、台式电脑、智能手机、平板电脑、工作站、或服务器等。
[0028] 为方便说明,在此实施例中,箱型交换机100包括了4张交换卡11~14、以及8张线路卡21~28,其中每张交换卡都连接到所有的线路卡,但不与其他交换卡相连,同样地,每张线路卡都连接到所有的交换卡,但不与其他线路卡相连。而需注意的是,图2所示的网络接口卡数量仅用以提供一说明的范例,并非用以限制本申请的保护范围。也就是说,箱型交换机100所包括的交换卡数量可以少于或多于4张,而线路卡的数量可以少于或多于8张。
[0029] 虽未示出,箱型交换机100具有多个插槽(slot),每个插槽可供一网络接口卡的接入。明确来说,插槽还可再细分为交换卡插槽以及线路卡插槽,分别用以供交换卡及线路卡的接入。特别是,每张网络接口卡会根据其插槽位置而被配置各别的一识别码,该识别码可用于网络接口卡之间的管理。
[0030] 值得注意的是,本实施例在管理这些网络接口卡时,为了避免广播风暴的发生,每张网络接口卡会依其卡别(例如:为交换卡或线路卡)执行相应的动作,以完成网络接口卡之间的控制封包传送路径规划。如图2所示,路径规划的结果将得到交换卡11~14的一者(如:交换卡11)为根源交换卡,而其余交换卡则为后备(backup)交换卡;此外,线路卡21~28的一者(如:线路卡21)为指定线路卡,而其余交换卡则为后备线路卡。此外,唯有根源交换卡(如:交换卡11)可将连往所有线路卡的端口设定为转发状态,也唯有指定线路卡(如:
线路卡21)可将连往所有交换卡的端口设定为转发状态,而后备交换卡及后备线路卡则必须将连往彼此的端口设定为聆听状态,使得后备交换卡及后备线路卡之间不得进行传送作业(即图2中被打叉的连线),避免传送路径形成环路,而发生广播风暴。
[0031] 图3是根据图2的实施例所述的一交换卡的示意图。在此实施例,箱型交换机100包括4张交换卡以及8张线路卡,其中每张交换卡的硬件架构如图3所示,包括控制器310、存储装置320、交换装置330、以及端口340-1~340-8。
[0032] 控制器310可为通用处理器、中央处理器(Central Processing Unit,CPU)、微处理器(Micro Control Unit,MCU)、应用处理器(Application Processor,AP)、或数字信号处理器(Digital Signal Processor,DSP)等,其可包括各式电路逻辑,用以提供数据处理及运算的功能、从存储装置320读取或写入指令/程序码及数据、控制交换装置330的运行以执行控制封包的传送及接收作业、以及控制端口340-1~340-8的状态设定。
[0033] 特别是,控制器310是用以协调存储装置320、交换装置330、以及端口340-1~340-8的运行,以执行本申请的避免广播风暴的方法。
[0034] 本领域普通技术人员应当可理解,控制器310中的电路逻辑通常可包括多个晶体管,用以控制该电路逻辑的运行以提供所需的功能及作业。更进一步的,晶体管的特定结构及其之间的连结关系通常是由编译器所决定,例如:暂存器转移语言(Register Transfer Language,RTL)编译器可由处理器所运行,将类似组合语言码的指令档(script)编译成适用于设计或制造该电路逻辑所需的形式。
[0035] 存储装置320可以是随机存取存储器(Random Access Memory,RAM)、快闪(flash)存储器、快取(cache)存储器、或其他类型的存储器、或其他存储媒体,用以存储机器可读取的指令或程序码(如:本申请的避免广播风暴的方法的程序码)、以及数据,例如:每张网络接口卡自己的管理记录(record)。
[0036] 交换装置330是用以接收控制器310的控制信号以设定端口340-1~340-8的转发/聆听状态,并通过端口340-1~340-8进行控制封包的传送及接收,也就是说,交换装置330的主要功能是负责处理以管理网络接口卡为目的的控制封包的交换。在一实施例,交换装置330可以是依循IEEE802.3、802.3u、802.3ab、以及802.3x等标准规格的(千兆)以太网((Gibabit)Ethernet)交换器。
[0037] 端口340-1~340-8是分别用以耦接至箱型交换机100内所有线路卡21~28,并根据被设定的转发/聆听状态以传送/转送控制封包到线路卡21~28、以及/或接收来自线路卡21~28的控制封包。
[0038] 应当理解的是,图3所示的元件仅用以提供一说明的范例,并非用以限制本申请的保护范围。举例来说,交换卡还可包括另一交换装置,用以处理数据封包的转送作业,其不同于交换装置330;或者,交换卡所包括的端口数量可依照箱型交换机100内的实际线路卡数量而相应调整。
[0039] 图4是根据图2的实施例所述的一线路卡的示意图。在此实施例,箱型交换机100包括4张交换卡11~14以及8张线路卡21~28,其中每张线路卡的硬件架构如图4所示,包括控制器410、存储装置420、交换装置430、以及端口440-1~440-4。
[0040] 控制器410可为通用处理器、中央处理器、微处理器、应用处理器、或数字信号处理器等,其可包括各式电路逻辑,用以提供数据处理及运算的功能、从存储装置420读取或写入指令/程序码及数据、控制交换装置430以执行控制封包的传送及接收作业、以及控制端口440-1~440-4的状态设定。
[0041] 特别是,控制器410是用以协调存储装置420、交换装置430、以及端口440-1~440-4的运行,以执行本申请的避免广播风暴的方法。
[0042] 本领域普通技术人员应当可理解,控制器410中的电路逻辑通常可包括多个晶体管,用以控制该电路逻辑的运行以提供所需的功能及作业。更进一步的,晶体管的特定结构及其之间的连结关系通常是由编译器所决定,例如:暂存器转移语言编译器可由处理器所运行,将类似组合语言码的指令档编译成适用于设计或制造该电路逻辑所需的形式。
[0043] 存储装置420可以是随机存取存储器、快闪存储器、快取存储器、或其他类型的存储器、或其他存储媒体,用以存储机器可读取的指令或程序码(如:本申请的避免广播风暴的方法的程序码)、以及数据,例如:每张网络接口卡自己的管理记录。
[0044] 交换装置430是用以接收控制器410的控制信号以设定端口440-1~440-4的转发/聆听状态,并通过端口440-1~440-4进行控制封包的传送及接收,也就是说,交换装置430的主要功能是负责处理以管理网络接口卡为目的的控制封包的交换。在一实施例,交换装置430可以是依循IEEE802.3、802.3u、802.3ab、以及802.3x等标准规格的(千兆)以太网交换器。
[0045] 对内端口440-1~440-4是分别用以耦接至箱型交换机100内的所有交换卡11~14,并根据被设定的转发/聆听状态以传送/转送控制封包到交换卡11~14、以及/或接收来自交换卡11~14的控制封包。。
[0046] 当可理解的是,图4所示的元件仅用以提供一说明的范例,并非用以限制本申请的保护范围。举例来说,线路卡还可包括另一交换装置,用以处理数据封包的转送作业,其功能不同于交换装置430;或者,线路卡所包括的端口数量可依照箱型交换机100内的实际交换卡数量而相应调整。
[0047] 图5A-图5D是根据本申请一实施例所述避免形成环路的方法流程图。在此实施例,避免形成环路的方法可适用于箱型交换机内的任一网络接口卡(如:交换卡或线路卡)。
[0048] 首先,网络接口卡会依其插槽位置决定被配置的识别码(步骤S501),接着决定其卡别为交换卡或线路卡(步骤S502)。
[0049] 继续步骤S502,当网络接口卡为交换卡时,会将所有的端口设定为转发状态(步骤S503)。明确来说,当一端口被设为转发状态时,则表示网络接口卡(如:交换卡或线路卡)可通过该端口进行传送与接收作业,例如:传送/转送控制封包到其他网络接口卡、或从其他网络接口卡接收控制封包。接着,交换卡通过每一端口传送包括该网络接口卡的识别码的一第一控制封包并开始计时一段时间区间(步骤S504)。在一实施例,第一控制封包可以是一桥接协定数据单元(Bridge Protocol Data Unit,BPDU)。
[0050] 继续步骤S502,当网络接口卡为线路卡时,会将所有的端口设定为聆听状态并开始计时一段时间区间(步骤S505)。明确来说,当一端口被设为聆听状态时,则表示网络接口卡(如:交换卡或线路卡)不被允许通过该端口进行传送作业,而仅能通过该端口进行接收作业。接着,线路卡检查是否通过任一端口接收到上述第一控制封包(步骤S506),若是,则在第一控制封包中所带的识别码小于管理记录中的根源交换卡识别码时,以第一控制封包中所带的识别码去取代管理记录中的根源交换卡识别码(步骤S507)。换句话说,在此实施例是以所有的第一控制封包所带的识别码中的最小者所对应到的交换卡为根源交换卡。然而,在另一实施例,可以所有的第一控制封包所带的识别码中的最大者所对应到的交换卡为根源交换卡。
[0051] 在一实施例,每张网络接口卡都会存储一份自己的管理记录,其中包括:根源交换卡的识别码、指定线路卡的识别码、以及自己的识别码。
[0052] 继续步骤S506的“否”支路以及步骤S507,线路卡进一步检查计时的时间区间是否已届期(步骤S508),若否,则流程回到步骤S506;反之,若是,则可合理认定该线路卡在计时的时间区间内已接收到来自所有交换卡的第一控制封包,因此,该线路卡即可根据目前存储的管理记录来决定哪一张交换卡为根源交换卡,并且将连接到根源交换卡的端口设定为转发状态(步骤S509),然后通过连接到根源交换卡的端口传送包括自己的识别码以及管理记录的第二控制封包(步骤S510)。
[0053] 继续步骤S504,交换卡在传送第一控制封包后,检查是否通过任一端口接收到上述第二控制封包(步骤S511),若是,则表示该交换卡为根源交换卡,并且在第二控制封包中所带的识别码小于交换卡自己的管理记录中的指定线路卡识别码时,以第二控制封包中所带的识别码去取代交换卡自己的管理记录中的指定线路卡识别码(步骤S512)。换句话说,在此实施例是以所有的第二控制封包所带的识别码中的最小者所对应到的线路卡为指定线路卡。然而,在另一实施例,可以所有的第二控制封包所带的识别码中的最大者所对应到的线路卡为指定线路卡。
[0054] 继续步骤S511的“否”支路以及步骤S512,交换卡进一步检查计时的时间区间是否已届期(步骤S513),若否,则流程回到步骤S511;反之,若是,则可合理认定根源交换卡在计时的时间区间内已接收到来自所有线路卡的第二控制封包。接着,以是否曾收到第二控制封包来判断该交换卡是否为根源交换卡(步骤S514),若是,则根据其存储的管理记录来决定哪一张线路卡为指定线路卡(步骤S515),然后,通过每一端口传送包括根源交换卡及指定线路卡的信息的一第三控制封包(步骤S516)。
[0055] 继续步骤S510,线路卡在传送第二控制封包后,接收到上述第三控制封包(步骤S517),接着根据第三控制封包所带的信息决定其为指定线路卡或后备线路卡(步骤S518)。
[0056] 继续步骤S518,当决定为指定线路卡时,该线路卡会将所有端口设定为转发状态,并且通过连接到根源交换卡以外的每一端口转送第三控制封包(步骤S519),流程结束。
[0057] 继续步骤S518,当决定为后备线路卡时,该线路卡会丢弃第三控制封包不进行转送(步骤S520),流程结束。
[0058] 继续步骤S514,当该交换卡并非根源交换卡时,则等待接收由指定线路卡所转送的第三控制封包(步骤S521),明确来说,当该交换卡接收到转送的第三控制封包时,即可根据第三控制封包确认哪一张交换卡为根源交换卡及哪一张线路卡为指定线路卡,同时也就决定了自己为后备交换卡。之后,后备交换卡将所有端口中除了连接到指定线路卡以外者皆设定为聆听状态(步骤S522),流程结束。
[0059] 根据前述的实施例可知,本发明实施例通过执行特定流程而进行路径规划,使控制封包的传输路径避免形成环路,因此提升了网络接口卡的资源使用效率,同时,也改善箱型交换机的管理效能。此外,值得注意的是,本发明实施例能因应箱形交换机内网络接口卡的状态变化而有效地完成控制封包传送路径的规划,不需额外监控网络接口卡变化即能自适应地进行封包传送路径的规划,因此不需额外的建置成本。
[0060] 本申请虽以各种实施例公开如上,然而其仅为范例参考而非用以限定本申请的范围,本领域技术人员,在不脱离本申请的构思和范围内,当可做些许的变动与润饰。因此上述实施例并非用以限定本申请的范围,本申请的保护范围当视权利要求为准。
[0061] 权利要求中所使用的“第一”、“第二”、“第三”等词是用来修饰权利要求中的元件,并非用来表示之间具有优先权顺序,先行关系,或者是一个元件先于另一个元件,或者是执行方法步骤时的时间先后顺序,仅用来区别具有相同名字的元件。