本申請涉及網(wǎng)絡通信技術領域,特別涉及一種聚合組流量分流的方法和裝置。
背景技術:
端口聚合是把交換機的多個鏈路接口通過捆綁變成一個物理口的實現(xiàn)方法。
為了增加鏈路的帶寬,提高鏈路冗余,負載均衡等,通常通過配置交換機對多個物理成員端口進行聚合,生成聚合口,基于聚合口來接收流量,然后在聚合口上通過諸如哈希算法,將接收到的流量分流到具體的物理成員端口。
然而,由于聚合口通常無法區(qū)分業(yè)務報文和其它與業(yè)務無關的雜包,因此聚合口在將接收到的流量分流至成員端口以后,使得成員端口會收到大量的雜包。
技術實現(xiàn)要素:
有鑒于此,本申請?zhí)峁┮环N聚合組流量分流的方法和裝置,應用于交換機。
具體地,本申請是通過如下技術方案實現(xiàn)的:
一種聚合組流量分流的方法,應用于交換機,所述交換機預先配置了聚合組,包括:
當聚合口接收到流量時,基于預設的負載均衡算法在所述聚合組中確定用于承載該流量的成員端口;
當確定出承載該流量的成員端口后,向所述成員端口下發(fā)預設的訪問控制列表ACL分流規(guī)則;其中,所述ACL分流規(guī)則用于對接收到的所述流量中的與業(yè)務相關的流量以及與業(yè)務無關的流量進行分流;
基于所述ACL分流規(guī)則將接收到的所述流量中的與業(yè)務相關的流量以及與業(yè)務無關的流量分流至不同的端口。
一種聚合組流量分流的裝置,應用于交換機,所述交換機預先配置了聚合組,包括:
確定單元,用于當聚合口接收到流量時,基于預設的負載均衡算法在所述聚合組中確定用于承載該流量的成員端口;
下發(fā)單元,用于當確定出承載該流量的成員端口后,向所述成員端口下發(fā)預設的訪問控制列表ACL分流規(guī)則;其中,所述ACL分流規(guī)則用于對接收到的所述流量中的與業(yè)務相關的流量以及與業(yè)務無關的流量進行分流;
分流單元,用于基于所述ACL分流規(guī)則將接收到的所述流量中的與業(yè)務相關的流量以及與業(yè)務無關的流量分流至不同的端口。
由以上本申請?zhí)峁┑募夹g方案可見,所述交換機預先配置了聚合組,當聚合口接收到流量時,通過基于預設的負載均衡算法在所述聚合組中確定用于承載該流量的成員端口;當確定出承載該流量的成員端口后,向所述成員端口下發(fā)預設的ACL分流規(guī)則;并基于該ACL分流規(guī)則,將接收到的所述流量中的與業(yè)務相關的流量以及與業(yè)務無關的流量分流至不同的端口,從而實現(xiàn)了可以通過向基于預設的負載均衡算法確定出的成員端口下發(fā)ACL分流規(guī)則,對聚合口分流至該成員端口的流量中,與業(yè)務相關的流量和與業(yè)務無關的流量進行分流,解決了現(xiàn)有技術中成員端口中會接收到雜包的問題。
附圖說明
圖1為本申請一示例性實施例示出的一種聚合組流量分流的方法流程圖;
圖2為本申請一示例性實施例示出的一種聚合組流量分流的裝置交換機的一種硬件結構圖;
圖3為本申請一示例性實施例示出的一種聚合組流量分流的裝置。
具體實施方式
這里將詳細地對示例性實施例進行說明,其示例表示在附圖中。下面的描述涉及附圖時,除非另有表示,不同附圖中的相同數(shù)字表示相同或相似的要素。以下示例性實施例中所描述的實施方式并不代表與本申請相一致的所有實施方式。相反,它們僅是與如所附權利要求書中所詳述的、本申請的一些方面相一致的裝置和方法的例子。
在本申請使用的術語是僅僅出于描述特定實施例的目的,而非旨在限制本申請。在本申請和所附權利要求書中所使用的單數(shù)形式的“一種”、“所述”和“該”也旨在包括多數(shù)形式,除非上下文清楚地表示其他含義。還應當理解,本文中使用的術語“和/或”是指并包含一個或多個相關聯(lián)的列出項目的任何或所有可能組合。
應當理解,盡管在本申請可能采用術語第一、第二、第三等來描述各種信息,但這些信息不應限于這些術語。這些術語僅用來將同一類型的信息彼此區(qū)分開。例如,在不脫離本申請范圍的情況下,第一信息也可以被稱為第二信息,類似地,第二信息也可以被稱為第一信息。取決于語境,如在此所使用的詞語“如果”可以被解釋成為“在……時”或“當……時”或“響應于確定”。
相關技術中,流量到達聚合口時,會提取流量中攜帶的五元組,并針對所述五元組進行hash運算,然后根據(jù)hash值將流量發(fā)往端口號與hash值相同的端口,從而實現(xiàn)了將傳輸至聚合口的流量分擔于不同的成員端口,達到負載均衡的目的。
然而,單純的端口聚合無法區(qū)分業(yè)務報文和其他與業(yè)務報文無關的雜包,經(jīng)過聚合口的流量都會按照所攜帶的五元組進行hash運算,然后將流量進行分流,分擔于不同的端口,因此會造成業(yè)務端口也會收到大量的雜包,從而影響正常業(yè)務報文的轉發(fā),導致網(wǎng)絡傳輸效率的下降。
為了解決相關技術中的問題,本申請?zhí)峁┝艘环N聚合組流量分流的方法,應用于交換機,所述交換機預先配置了聚合組,當聚合口接收到流量時,通過基于預設的負載均衡算法在所述聚合組中確定用于承載該流量的成員端口;當確定出承載該流量的成員端口后,向所述成員端口下發(fā)預設的ACL分流規(guī)則;其中,所述ACL分流規(guī)則用于對接收道的所述流量中的與業(yè)務相關的流量以及與業(yè)務無關的流量分流至不同的端口;并基于該ACL分流規(guī)則,將接收到的所述流量中的與業(yè)務相關的流量以及與業(yè)務無關的流量分流至不同的端口。
首先,由于ACL分流規(guī)則對聚合口分流至成員端口的流量中,與業(yè)務相關的流量和與業(yè)務無關的流量進行了分流,因此可以將與業(yè)務相關的業(yè)務流量從指定的成員端口轉發(fā),將與業(yè)務無關的雜包禁止通過聚合組中的成員端口轉發(fā),實現(xiàn)了可以通過向基于預設的負載均衡算法確定出的成員端口下發(fā)ACL分流規(guī)則,對聚合口分流至該成員端口的流量中,與業(yè)務相關的流量和與業(yè)務無關的流量進行分流,從而實現(xiàn)了對聚合組接收到的流量進行傳輸控制,解決了現(xiàn)有技術中成員端口中會接收到雜包的問題。
另外,對于與所述ACL分流規(guī)則未匹配成功的,即與業(yè)務無關的雜包,也可以將其轉發(fā)至聚合組以外的指定的物理端口,由所述指定的物理端口轉發(fā)至特定的服務器進行流量分析,從而可以保證流量的完整性,對于聚合口接收到的流量中,與業(yè)務相關的流量和與業(yè)務無關的流量,均可以由不同的端口上送至對應的服務器進行流量分析。
請參見圖1,圖1為本申請一示例性實施例示出的一種聚合組流量分流的方法,應用于交換機,所述交換機預先配置了聚合組,具體執(zhí)行如下步驟:
步驟101:當聚合口接收到流量時,基于預設的負載均衡算法在所述聚合組中確定用于承載該流量的成員端口;
步驟102:當確定出承載該流量的成員端口后,向所述成員端口下發(fā)預設的訪問控制列表ACL分流規(guī)則;其中,所述ACL分流規(guī)則用于對接收到的所述流量中的與業(yè)務相關的流量以及與業(yè)務無關的流量進行分流;
步驟103:基于所述ACL分流規(guī)則將接收到的所述流量中的與業(yè)務相關的流量以及與業(yè)務無關的流量分流至不同的端口。
其中,在初始狀態(tài)下,用戶可以根據(jù)實際的業(yè)務需要在交換機上預先配置聚合組,所述聚合組中包含了若干成員端口,用戶可以基于需求在聚合組中添加或者刪除相應的成員端口。通過配置所述聚合組,可以將若干成員的流量捆綁成一個物理口,然后根據(jù)所述物理口來進行流量的傳輸。
另外,在本例中,除了可以在交換機設備上預先配置了聚合組之外,還可以預先配置ACL分流規(guī)則。所述ACL分流規(guī)則可以基于流量的流量特征將聚合口的流量區(qū)分開來,所述流量特征可以是二層特征,三層特征,也可以是端口特征等其它流量特征,在本例中不進行特別限定。
其中,在交換機上可以配置多條ACL分流規(guī)則,每一條ACL分流規(guī)則均可以包含對應于不同的業(yè)務類型的流量特征,以及對應于所述流量特征的負載均衡算法。其中,每一條ACL分流規(guī)則中對應于所述流量特征的負載均衡算法可以相同,在示出的一種實施方式中,可以是將聚合口轉發(fā)至成員端口的流量重定向至該成員端口。另外,聚合組中的成員端口保存在寄存器中,每一個成員端口有相應的端口號,由于該端口號由各成員端口在寄存器中的排列順序來決定的,所以想要將報文送往哪一個指定的成員端口,需要知道寄存器中各成員端口的排列順序。
各成員端口在寄存器中的排列順序可以是順序循環(huán)排列,也可以是其它的排列順序。
所述聚合口預先配置了負載均衡算法,用于確定分流后的流量將要通過哪個成員端口來轉發(fā)。
交換機設備上配置完聚合組和ACL,并且知道各成員端口的端口號后,就可以對經(jīng)過聚合口的流量進行分流,并將流量從指定成員端口轉發(fā)。其中,每個成員端口對端連接著相應的服務器。
在實現(xiàn)時,流量傳輸至聚合口后,可以用預設的負載均衡算法對流量的標識信息(比如五元組)進行運算,得到相應的運算結果,然后根據(jù)運算結果與各成員端口的端口號進行匹配,找到端口號與運算結果相同的成員端口,然后就可以確定該成員端口為承載該流量的端口。
在示出的一種實施方式中,當確定出承載該流量的成員端口后,可以向所述成員端口下發(fā)預設的ACL分流規(guī)則。其中,所述ACL分流規(guī)則中包含了指定流量特征,以及對應于所述指定流量特征的負載均衡算法;并且所述ACL分流規(guī)則中的負載均衡算法,與所述聚合口預設的負載均衡算法相同。
在實現(xiàn)時,所述成員端口接收到傳輸至該成員端口的流量時,就可以將該流量與所述ACL分流規(guī)則進行匹配,然后可以將符合指定流量特征的目標流量提取出來,由于所述流量中含有與目標流量無關的雜包,因此可以將目標流量與雜包進行區(qū)分開來,使得雜包不通過所述成員端口來轉發(fā)。得到所述目標流量后,就可以基于所述負載均算法將該成員端口重新確定為承載所述目標流量的成員端口。
在示出的一種實施方式中,所述負載均衡算法可以是通過提取所述目標流量的IP報文中特定字段的信息(比如源IP地址,目的IP地址,源端口號,以及目的端口號等),然后針對該信息進行hash運算,得到哈希值,接著將所述聚合組中成員端口號與得到的該哈希值相同的成員端口,確定為承載所述目標流量的成員端口。
例如,以上述特定字段的信息為源IP地址為例,在基于所述負載均衡算法將所述成員端口重新確定為承載所述目標流量的成員端口時,所述負載均衡算法可以提取源IP地址各字段的低三位進行異或操作,得到一個異或出來的值,這個值可以稱之為hash的key值,然后在聚合組中的成端端口中找到端口號與所述key值相同的端口。由于需要將所述目標報文通過聚合組中的成員端口來轉發(fā),因此需要在聚合組的成員端口中找到與所述key值相同的端口,將成員端口與所述目標報文進行關聯(lián)。
在示出的一種實施方式中,將所述成員端口重新確定為承載所述目標流量的端口后,可以判斷所述成員端口承載的流量大小是否達到預設閾值;如果所述成員端口承載的流量大小達到預設閾值,可以將所述成員端口承載的后續(xù)流量負載分擔至所述聚合組中負載承載的流量最小的成員端口;或者,也可以將所述成員端口承載的后續(xù)流量負載分擔至所述聚合組中的指定端口。
在實現(xiàn)時,如果所述成員端口承載的流量大小達到預設閾值,可以統(tǒng)計所述聚合組中其它成員端口承載流量的大小,然后計算出這些端口中承載的流量最小的成員端口,由該成員端口來分擔承載最先確定的成員端口無法承載所述目標流量的后續(xù)流量,如果該承載流量最小的端口也無法完全承載所述后續(xù)流量,在這種情況下,可以繼續(xù)將所述后續(xù)流量分擔至其余可承載所述后續(xù)流量的成員端口。
其中,所述預設閾值可以由管理員根據(jù)需要自行設定。由于成員端口的帶寬有限,因此為了保證將指定的流量完整地轉發(fā)到相應的端口,需要其余聚合組中的成員端口來承擔所述目標流量的后續(xù)流量,實現(xiàn)流量的完整性。最后,就可以將所述目標流量通過算法運算后決定的成員端口來轉發(fā)。
另外,在對傳輸至所述成員端口的流量通過所述ACL分流規(guī)則匹配后,將目標流量和雜包進行了區(qū)分,然后將所述目標流量通過算法運算后決定的成員端口轉發(fā),針對與業(yè)務無關的雜包,可以將其轉發(fā)至相應的服務器(比如可以是具有業(yè)務無關流量分析能力的安全服務器),并由對應的服務器對流量進行相應的處理。當然,在實際應用中,也可以將雜包直接丟棄。
例如,在示出的一種實施方式中,如果所述傳輸至所述成員端口的流量與所述ACL分流規(guī)則匹配不成功,可以將所述流量轉發(fā)至所述聚合組以外的指定的物理端口
在實現(xiàn)時,傳輸至所述成員端口的流量與所述ACL流量過濾規(guī)則沒有匹配成功,即可以確定該流量為與業(yè)務無關的雜包,則可以將雜包從交換機上指定的物理端口轉發(fā)至專門處理雜包的安全服務器,由該安全服務器對雜包進行對應的處理。其中,所述指定的物理端口可以是聚合組中的成員端口以外的指定物理端口,可以由用戶在交換機上可用的物理端口中進行自行配置。
可見,通過這種方式,可以保證聚合口接收到的流量的完整性,即對于分流出的與業(yè)務相關的報文,可以由對應的成員端口繼續(xù)上送至相應的業(yè)務服務器繼續(xù)進行流量分析處理;而對于分流出的與業(yè)務無關的雜包,也可以上送至相應的安全服務器,進行相應的雜包分析。
由以上本申請?zhí)峁┑募夹g方案可見,所述交換機預先配置了聚合組,當聚合口接收到流量時,通過基于預設的負載均衡算法在所述聚合組中確定用于承載該流量的成員端口;當確定出承載該流量的成員端口后,向所述成員端口下發(fā)預設的ACL分流規(guī)則;并基于該ACL分流規(guī)則,將接收到的所述流量中的與業(yè)務相關的流量以及與業(yè)務無關的流量分流至不同的端口,從而實現(xiàn)了可以通過向基于預設的負載均衡算法確定出的成員端口下發(fā)ACL分流規(guī)則,對聚合口分流至該成員端口的流量中,與業(yè)務相關的流量和與業(yè)務無關的流量進行分流,解決了現(xiàn)有技術中成員端口中會接收到雜包的問題。
另外,對于與所述ACL分流規(guī)則未匹配成功的,即與業(yè)務無關的雜包,也可以將其轉發(fā)至聚合組以外的指定的物理端口,由所述指定的物理端口轉發(fā)至特定的服務器進行流量分析,從而可以保證流量的完整性。
與前述一種聚合組流量分流的方法的實施例相對應,本申請還提供了一種聚合組流量分流的裝置的實施例。
本申請一種聚合組流量分流的裝置的實施例可以應用在交換機上。裝置實施例可以通過軟件實現(xiàn),也可以通過硬件或者軟硬件結合的方式實現(xiàn)。以軟件實現(xiàn)為例,作為一個邏輯意義上的裝置,是通過其所在交換機的處理器將非易失性存儲器中對應的計算機程序指令讀取到內(nèi)存中運行形成的。從硬件層面而言,如圖2所示,為本申請一種聚合組流量分流的裝置所在交換機的一種硬件結構圖,除了圖2所示的處理器、內(nèi)存、網(wǎng)絡接口、以及非易失性存儲器之外,實施例中裝置所在的交換機通常根據(jù)該聚合組流量分流的實際功能,還可以包括其他硬件,對此不再贅述。
請參考圖3,圖3為本申請一示例性實施例示出的一種聚合組流量分流的裝置,應用于交換機,所述裝置包括:確定單元310,下發(fā)單元320,分流單元330,判斷單元340。
其中,確定單元310,用于當聚合口接收到流量時,基于預設的負載均衡算法在所述聚合組中確定用于承載該流量的成員端口;
下發(fā)單元320,用于當確定出承載該流量的成員端口后,向所述成員端口下發(fā)預設的訪問控制列表ACL規(guī)則;其中,所述ACL分流規(guī)則用于對接收到的所述流量中的與業(yè)務相關的流量以及與業(yè)務無關的流量進行分流;
分流單元330,用于基于所述ACL分流規(guī)則將接收到的所化流量中的與業(yè)務相關的流量以及與業(yè)務無關的流量分流至不同的端口。
判斷單元340,用于判斷所述成員端口承載的流量大小是否達到預設閾值;如果所述成員端口承載的流量大小達到預設閾值,將所述成員端口承載的后續(xù)流量負載分擔至所述聚合組中負載承載的流量最小的成員端口;或者,所述聚合組中的指定成員端口。
在本例中,所述分流單元330,具體用于所述成員端口接收到傳輸至該成員端口的流量;將所述流量與所述ACL分流規(guī)則進行匹配;如果成功,則基于所述負載均衡算法將該成員端口重新確定為承載該流量的成員端口。
所述負載均衡算法包括,具體用于提取所述流量的IP報文中特定字段的信息;針對該信息進行hash運算,得到哈希值;將所述聚合組中成員端口號與得到的該哈希值相同的成員端口,確定為承載該流量的成員端口。
所述分流單元330,進一步用于如果所述流量與所述ACL分流規(guī)則匹配不成功,將所述流量轉發(fā)至所述聚合組以外的指定的物理端口。
上述裝置中各個單元的功能和作用的實現(xiàn)過程具體詳見上述方法中對應步驟的實現(xiàn)過程,在此不再贅述。
對于裝置實施例而言,由于其基本對應于方法實施例,所以相關之處參見方法實施例的部分說明即可。以上所描述的裝置實施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡單元上。可以根據(jù)實際的需要選擇其中的部分或者全部模塊來實現(xiàn)本申請方案的目的。本領域普通技術人員在不付出創(chuàng)造性勞動的情況下,即可以理解并實施。
以上所述僅為本申請的較佳實施例而已,并不用以限制本申請,凡在本申請的精神和原則之內(nèi),所做的任何修改、等同替換、改進等,均應包含在本申請保護的范圍之內(nèi)。