TWI599203B - 網路通訊系統、軟體定義網路控制器及其路由方法 - Google Patents
網路通訊系統、軟體定義網路控制器及其路由方法 Download PDFInfo
- Publication number
- TWI599203B TWI599203B TW105101692A TW105101692A TWI599203B TW I599203 B TWI599203 B TW I599203B TW 105101692 A TW105101692 A TW 105101692A TW 105101692 A TW105101692 A TW 105101692A TW I599203 B TWI599203 B TW I599203B
- Authority
- TW
- Taiwan
- Prior art keywords
- service
- information
- switch
- cluster
- service cluster
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 32
- 238000004891 communication Methods 0.000 title claims description 22
- 230000000875 corresponding effect Effects 0.000 description 92
- 230000006870 function Effects 0.000 description 8
- 230000009471 action Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 3
- 230000002776 aggregation Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012913 prioritisation Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
- H04L45/036—Updating the topology between route computation elements, e.g. between OpenFlow controllers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
- H04L45/036—Updating the topology between route computation elements, e.g. between OpenFlow controllers
- H04L45/037—Routes obligatorily traversing service-related nodes
- H04L45/0377—Routes obligatorily traversing service-related nodes for service chaining
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/26—Route discovery packet
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/56—Routing software
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/38—Flow based routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/48—Routing tree calculation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Description
本發明是有關於一種路由方法,且特別是有關於一種網路通訊系統、軟體定義網路控制器及其路由方法。
軟體定義網路(Software-defined network,SDN)是一種網路虛擬化(Network virtualization)技術。其顛覆長久以來的網路架構,將傳統網路架構的控制模式從分散式轉為集中控制,使網路設備趨於標準化及簡單化。不僅大幅提升網路運作的彈性與效能,也降低營運管理成本,成為下一代網路技術發展的重心。
SDN技術的核心思想是採用通用的「資料流表(data flow table)」進行資料交換。網路中的路由和交換資訊可以被表示為資料流(data flow),存放在資料流表裡。資料流表中的每一條資料流表項(data flow entry)都可以用來描述轉發規則、資料操作和資料狀態等。
在SDN網路中,包括網路設備(如SDN交換器)和SDN控制器。SDN控制器負責路由控制,用於根據用戶的配置或者動態運行的協定產生資料流表,並可將資料流表傳送到SDN交換器。SDN交換器負責依據資料流表進行資料轉發,其在接收來自SDN控制器的資料流表時,可根據資料流表匹配和處理報文。也就是說,SDN控制器可以透過控制通道向SDN交換器下發資料流表,從而達到控制資料轉發的目的,實現了資料轉發和路由控制的分離。
隨著網路(Internet)的快速發展和業務量的不斷提高,基於網路的資料訪問流量迅速增長,使得單一的伺服器設備根本無法承擔。為了提供更好的服務品質,需要佈建大量相同服務的端點來提供服務。透過負載平衡(Load Balance)技術可將服務分攤到多個不同端點上進行處理。
然而,由於SDN控制器採用集中管理的方式,提供相同服務的多個端點若再導入服務串接的機制,為了在服務串接的同時達到負載平衡,服務端點到服務端點的串接及其路由路徑的建立,將造成過多的資料流表項設定,使得SDN控制器將儲存大量的資料流表項,而存在負載過大的問題。
換言之,如何發展出一種在SDN網路中,如何使SDN控制器在服務串接的同時可降低其負載的方法,為本領域技術人員所關心的議題之一。
有鑑於此,本發明提供一種網路通訊系統、軟體定義網路控制器及其路由方法,僅需控制根交換器之間的服務串接及其路由路徑的建立,而服務端點的選擇則由群組表(Group table)進行分流,以在達到服務端點的負載平衡的同時,亦可降低SDN控制器的負載。
本發明提供一種路由方法,適於軟體定義網路控制器。所述路由方法包括:根據服務鏈資訊決定對應於至少一個第一服務叢集的第一根交換器,其中至少一個第一服務叢集中的每一個服務叢集包括用於提供第一服務的至少一個服務端點;決定用於將封包流從第一目標交換器引導至第一根交換器的第一路由路徑資訊;以及依據至少一個第一服務叢集的叢集資訊為第一根交換器配置第一群組項資訊,其中該第一群組項資訊用於在該第一根交換器執行該封包流對應於該第一服務的第一路由路徑選擇。
在本發明的一實施例中,上述路由方法更包括:根據服務鏈資訊決定對應於至少一個第二服務叢集的第二根交換器,其中至少一個第二服務叢集中的每一個服務叢集包括用於提供第二服務的至少一個服務端點;決定用於將封包流從第一根交換器引導至第二根交換器的第二路由路徑資訊;以及依據第二服務叢集的叢集資訊為第二根交換器配置第二群組項資訊,其中第二群組項資訊用於在第二根交換器執行封包流對應於第二服務的第二路由路徑選擇。
在本發明的一實施例中,上述路由方法更包括在決定第二根交換器之後,決定用於將封包流從第二根交換器引導至第二目標交換器的第三路由路徑資訊。
在本發明的一實施例中,上述至少一個第一服務叢集的叢集資訊包括至少一個第一服務叢集中的每一個服務叢集所包含的服務端點之總數。
在本發明的一實施例中,上述路由方法更包括:決定對應於至少一個第一服務叢集中的至少一個子服務叢集的子交換器;以及依據至少一個子服務叢集的叢集資訊為子交換器配置子群組項資訊,其中子群組項資訊用於在子交換器中執行來自第一根交換器的封包流對應於第一服務的子路由路徑選擇。
在本發明的一實施例中,上述第一根交換器為至少一個第一服務叢集的一匯集點。
在本發明的一實施例中,上述依據至少一個第一服務叢集的叢集資訊為第一根交換器配置第一群組項資訊的步驟包括:依據至少一個第一服務叢集的叢集資訊決定對應於至少一個第一服務叢集中的每一個服務叢集的權重資訊;以及根據所決定的權重資訊決定在第一根交換器中封包流對應於第一服務的輸出埠。
在本發明的一實施例中,上述根據所決定的權重資訊決定在第一根交換器中封包流對應於第一服務的輸出埠的步驟包括:對封包流的目的資訊、第一根交換器的識別資訊及至少一個第一服務叢集中的一個特定服務叢集的索引資訊執行雜湊運算,以獲得雜湊參考值;以及根據雜湊參考值與權重資訊來決定在第一根交換器中封包流對應於第一服務的輸出埠。
在本發明的一實施例中,上述所決定的輸出埠是用於將封包流輸出至至少一個第一服務叢集中的一個特定服務叢集。
在本發明的一實施例中,上述路由方法更包括:發送第一設定訊息,其中第一設定訊息用以將第一路由路徑資訊儲存至第一目標交換器的資料流表;以及發送第二設定訊息,其中第二設定訊息用以將第一群組項資訊儲存至第一根交換器的群組表中。
本發明提出一種軟體定義網路控制器。此軟體定義網路控制器包括網路介面電路、儲存電路以及處理電路。儲存電路用以儲存服務鏈資訊。處理電路耦接網路介面電路與儲存電路。處理電路用以根據服務鏈資訊決定對應於至少一個第一服務叢集的第一根交換器,其中至少一個第一服務叢集中的每一個服務叢集包括用於提供第一服務的至少一個服務端點。處理電路更用以決定用於將封包流從第一目標交換器引導至第一根交換器的第一路由路徑資訊。處理電路更用以依據至少一個第一服務叢集的叢集資訊為第一根交換器配置第一群組項資訊,其中第一群組項資訊用於在第一根交換器執行封包流對應於第一服務的第一路由路徑選擇。
在本發明的一實施例中,上述處理電路更用以根據服務鏈資訊決定對應於至少一個第二服務叢集的第二根交換器,其中至少一個第二服務叢集中的每一個服務叢集包括用於提供第二服務的至少一個服務端點。處理電路更用以決定用於將封包流從第一根交換器引導至第二根交換器的第二路由路徑資訊。處理電路更用以依據第二服務叢集的叢集資訊為第二根交換器配置第二群組項資訊,其中第二群組項資訊用於在第二根交換器執行封包流對應於第二服務的第二路由路徑選擇。
在本發明的一實施例中,上述在決定第二根交換器之後,處理電路更用以決定用於將封包流從第二根交換器引導至第二目標交換器的第三路由路徑資訊。
在本發明的一實施例中,上述至少一個第一服務叢集的叢集資訊包括至少一個第一服務叢集中的每一個服務叢集所包含的服務端點之總數。
在本發明的一實施例中,上述處理電路更用以決定對應於至少一個第一服務叢集中的至少一個子服務叢集的子交換器。處理電路更用以依據至少一個子服務叢集的叢集資訊為子交換器配置子群組項資訊,其中子群組項資訊用於在子交換器中執行來自第一根交換器的封包流對應於第一服務的子路由路徑選擇。
在本發明的一實施例中,上述第一根交換器為至少一個第一服務叢集的匯集點。
在本發明的一實施例中,上述處理電路依據該至少一個第一服務叢集的該叢集資訊為該第一根交換器配置該第一群組項資訊的操作包括:依據至少一個第一服務叢集的叢集資訊決定對應於至少一個第一服務叢集中的每一個服務叢集的權重資訊;以及根據所決定的權重資訊決定在第一根交換器中封包流對應於第一服務的輸出埠。
在本發明的一實施例中,上述處理電路根據所決定的權重資訊決定在第一根交換器中封包流對應於第一服務的輸出埠的操作包括:對封包流的目的資訊、第一根交換器的識別資訊及至少一個第一服務叢集中的一個特定服務叢集的索引資訊執行雜湊運算,以獲得雜湊參考值;以及根據雜湊參考值與權重資訊來決定在第一根交換器中封包流對應於第一服務的輸出埠。
在本發明的一實施例中,上述所決定的輸出埠是用於將封包流輸出至至少一個第一服務叢集中的一個特定服務叢集。
在本發明的一實施例中,上述處理電路更用以藉由網路介面電路發送第一設定訊息,其中第一設定訊息用以將第一路由路徑資訊儲存至第一目標交換器的資料流表。處理電路更用以藉由網路介面電路發送第二設定訊息,其中第二設定訊息用以將第一群組項資訊儲存至第一根交換器的群組表中。
本發明提出一種網路通訊系統。此網路通訊系統包括SDN控制器與多個交換器。SDN控制器根據服務鏈資訊從交換器中決定對應於至少一個第一服務叢集的第一根交換器以及對應於至少一個第二服務叢集的第二根交換器。至少一個第一服務叢集中的每一個服務叢集包括用於提供第一服務的至少一個服務端點。至少一個第二服務叢集中的每一個服務叢集包括用於提供第二服務的至少一個服務端點。SDN控制器更用以決定用於將封包流從第一根交換器引導至第二根交換器的路由路徑資訊。SDN控制器更用以依據至少一個第一服務叢集的叢集資訊為第一根交換器配置第一群組項資訊並且依據至少一個第二服務叢集的叢集資訊為第二根交換器配置第二群組項資訊。第一根交換器用以根據第一群組項資訊執行封包流對應於第一服務的第一路徑選擇。第二根交換器用以根據第二群組項資訊執行封包流對應於第二服務的第二路由路徑選擇。
在本發明的一實施例中,上述路由路徑資訊是儲存於第一根交換器的資料流表。第一群組項資訊與第二群組項資訊是分別儲存於第一根交換器與第二根交換器的群組表。
基於上述,在本發明實施例的網路通訊系統、SDN控制器及其路由方法中,SDN控制器僅需控制根交換器之間的服務串接及其路由路徑的建立,而服務端點的選擇則由群組表(Group table)進行分流,以在達到服務端點的負載平衡的同時,亦可降低SDN控制器的負載。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
圖1是根據本發明的一實施例所繪示的網路通訊系統的示意圖。請參照圖1,網路通訊系統100為一種軟體定義網路(Software -defined Network,SDN),其包括源節點101、目的地節點102、SDN控制器110、多個交換器(本實施例是以交換器120、121、121_1、121_2、122、122_1、122_2、123為例做說明,但不限於此)、第一服務叢集130_1、130_2及第二服務叢集140_1、140_2。但必須了解的是,圖1的範例僅是為了方便說明,並不用以限制本發明。
在本實施例中,源節點101可以是來源裝置或是交換節點,而目的地節點102也可以是交換節點或終端裝置。例如,源節點101與目的地節點102可以分別是智慧型手機、平板電腦、筆記型電腦等網路通訊裝置,或者伺服器、工作站、路由器等具有網管功能的網路通訊裝置。SDN控制器110為具有SDN功能的網路控制裝置,其可以是實體裝置,例如基地台或存取點,或者是被設置於電子裝置中的虛擬機器(virtual machine)。除此之外,在此所描述的多個交換器120、121、121_1、121_2、122、122_1、122_2、123皆為支援SDN控制功能的實體交換器,或者被設置於電子裝置中的虛擬交換器,例如Open vSwitch。或者,每一個交換器也可以是指任何支援路由機制的網路通訊裝置,例如,路由器等等。
在本實施例中,第一服務叢集130_1及130_2分別包含服務端點131~132及133~134,其皆為可提供第一服務的多個服務端點。第二服務叢集140_1、140_2分別包含服務端點141~143及144~145,其皆為可提供第二服務的多個服務端點。其中,第一服務與第二服務不同。在本實施例中,服務端點131~134及141~145可以是用於提供任何服務的實體裝置或者是以虛擬機器的形式架設於實體裝置上。此外,服務端點131~134及141~145所提供的第一及第二服務可以是各種服務,例如防火牆或負載平衡等。
圖2繪示圖1中SDN控制器110的概要方塊圖。請參照圖2,SDN控制器110包括網路介面電路210、儲存電路220以及處理電路230。處理電路230耦接至網路介面電路210及儲存電路220。
在本實施例中,網路介面電路210可以包含有線及/或無線網路卡。網路介面電路210用以連接網路(例如,網際網路)。SDN控制器110可藉由網路介面電路210與多個交換器(例如,交換器120、121、121_1、121_2、122、122_1、122_2、123)交換網路訊息。
儲存電路220例如是任何型態的固定式或可移動式隨機存取記憶體(random access memory,RAM)、唯讀記憶體(read-only memory,ROM)、快閃記憶體(flash memory)或類似元件或上述元件的組合。於本實施例中,儲存電路220至少用以儲存服務鏈資訊,以實現本發明實施例的路由方法。
具體來說,服務鏈資訊包含從任一個源節點傳送至某一目的地節點(例如,目的地節點102)的封包流所需經過的服務名單及其優先順序。例如,在本實施例中,SDN控制器110可查詢對應於目的地節點102的服務鏈資訊而得知從源節點101送出至目的地節點102的封包流需要經過上述第一服務與第二服務的處理。在此提及的封包流可以是由一或多個網路封包組成。此外,儲存電路220還可以儲存資料流表等各式路由表格或管理表格。
處理電路230可以是中央處理單元(Central Processing Unit,CPU),或是其他可程式化之一般用途或特殊用途的微處理器(Microprocessor)、數位訊號處理器(Digital Signal Processor,DSP)、可程式化控制器、特殊應用積體電路(Application Specific Integrated Circuits,ASIC)、可程式化邏輯裝置(Programmable Logic Device,PLD)或其他類似裝置或這些裝置的組合。於本實施例中,處理電路230用以存取儲存單元220所儲存的資料並且負責SDN控制器110的整體運作。
圖3是根據本發明的一實施例所繪示的路由方法的流程圖。在本實施例中,假設網路通訊系統100中的源節點101傳送封包流至目的地節點102之前需經由第一服務叢集130_1及130_2中的任一服務端點的服務以及第二服務叢集140_1及140_2中的任一服務端點的服務,則SDN控制器110可透過執行圖3的路由方法來在網路通訊系統10中設定相關的路由資訊。以下即搭配圖1中的各個元件說明圖3中路由方法的詳細步驟。
請同時參照圖1及圖3,在步驟S310中,SDN控制器110從入口節點接收封包進入(Packet-In)訊息,以獲得有關封包流的服務鏈資訊。
在本實施例中,源節點101傳送包含至少一網路封包的封包流至交換器120。此封包流的目的地是目的地節點102。在本實施例中,交換器120為封包流進入網路通訊系統100的第一個交換器,故可將交換器120稱為對應於此封包流的入口節點(Ingress node)。當接收到來自源節點101的封包流時,交換器120會傳送封包進入訊息給SDN控制器110。例如,此封包進入訊息是用以詢問此封包流的路由資訊。在本實施例中,此封包進入訊息包括相對應的封包流中的至少一個網路封包的來源網際網路協議(Internet protocol,IP)位址、目的IP位址、來源埠(port)、目的埠等資訊。此外,在另一實施例中,若所接收到的封包流本身帶有相關的服務鏈資訊,則交換器120可擷取封包流中的服務鏈資訊並且將此服務鏈資訊封裝後,向SDN控制器110傳送帶有封裝後的服務鏈資訊的封包進入訊息。
在本實施例中,反應於所接收到的封包進入訊息,SDN控制器110會查詢其資料庫(例如,圖2的儲存電路220)以獲得相關的服務鏈資訊。根據所查詢到的服務鏈資訊,SDN控制器110會獲得封包流在抵達目的地節點102之前需要經過上述第一服務與第二服務的處理。此外,在另一實施例中,若封包進入訊息帶有對應於某一封包流的服務鏈資訊,則SDN控制器110可解封裝此封包進入訊息中的服務鏈資訊來獲得封包流在抵達目的地節點102之前需要經過上述第一服務與第二服務的處理之相關資訊。或者,在解封裝封包進入訊息中的服務鏈資訊之後,SDN控制器110也可以查詢其資料庫以獲得更多的資訊。
在步驟S320中,根據所獲得的服務鏈資訊,SDN控制器110計算可提供一特定服務的多個服務端點到入口節點的路由路徑。
在本實施例中,在獲得封包流在抵達目的地節點102之前需要經過上述第一服務與第二服務的處理之資訊之後,SDN控制器110首先計算第一服務叢集130_1及130_2中的服務端點131~134到交換器120的路徑中,會經過哪些交換器。舉例來說,SDN控制器110可計算出服務端點131與132到交換器120的路徑中,需經過交換器121及121_1,而服務端點133與134到交換器120的路徑中,需經過交換器121及121_2。
在步驟S330中,SDN控制器110決定對應於提供此特定服務之至少一個服務叢集的根交換器。
在本實施例中,SDN控制器110依據計算出來的可提供第一服務的服務端點131~134到交換器120的所有路徑,從多個交換器中決定出一個對應於第一服務叢集130_1及130_2的第一根交換器。在本實施例中,第一服務叢集130_1及130_2到交換器120的服務匯集點是交換器121,因此第一根交換器被設定為交換器121。當上述來自交換器120的封包流需要經過上述第一服務的處理時,皆需經過此第一根交換器(即,交換器121),以經由第一根交換器的轉發端口,將此封包流傳送至下一個交換器(例如,交換器121_1或121_2)。
在一般的SDN網路中,SDN控制器110會將服務串接所需的所有路由路徑資訊都設定在資料流表中並且將此些資訊發送至相對應的各個交換器。一般來說,資料流表包含多個資料流表項,其用以記錄路由路徑資訊。例如,一個資料流表項可能會以IP地址及/或媒體存取控制(Media Access Control,MAC)地址等形式記錄著對應的交換器轉發端口,以將封包流引導至服務端點或目的地節點。在本實施例中,在決定出對應於第一服務的第一根交換器之後,SDN控制器110還會配置第一路由路徑資訊。在此所提及的第一路由路徑資訊即用於將封包流從交換器120引導至交換器121。例如,若在交換器120與交換器121的路徑之間還存在一或多個交換器,則此第一路由路徑資訊可用以指示如何串接此些交換器。
在步驟S340中,SDN控制器110依據提供特定服務的至少一個服務叢集的叢集資訊為根交換器配置群組項(group entry)資訊,其中此群組項資訊用於在根交換器執行封包流所對應服務的路由路徑選擇。
一般來說,一個交換器可儲存有一或多個群組表。每一個群組表可包含一或多個群組項資訊。在此提及的群組表與群組項例如是定義於OpenFlow協定中,但本發明不限於此。群組項資訊控制著封包流的一些進階行為,例如可對封包進行廣播或達到服務端點的負載平衡等等。詳細而言,群組表可包括4種型態的群組項資訊,分別為ALL、SELECT、INDIRECT及FAST FAILOVER。ALL型態的群組項資訊用於指示執行此群組表中所有的動作指令桶(action bucket);SELECT型態的群組項資訊用於指示執行此群組表中由SDN控制器所選擇的一個動作指令桶;INDIRECT型態的群組項資訊用於指示執行此群組表中預設或唯一的一個動作指令桶;而FAST FAILOVER型態的群組項資訊用於指示執行此群組表中排序第一(或編號較前面)的動作指令桶。對於一個交換器來說,其群組表中的一個動作指令桶會記載將封包從交換器的哪一個連接埠(亦稱為輸出埠)輸出的相關資訊。
以交換器121為例,假設交換器121的第一連接埠用以接收來自交換器120的封包流,交換器121的第二連接埠用以輸出封包流至交換器121_1並且交換器121的第三連接埠用以輸出封包流至交換器121_2,則根據群組表中ALL型態的群組項資訊,交換器121會直接將從第一連接埠接收的封包流複製成兩份並且將這兩份封包流一併從第二連接埠與第三連接埠輸出;根據群組表中SELECT型態的群組項資訊,交換器121會將從第一連接埠接收的封包流從SDN控制器110所選擇的第二連接埠或第三連接埠輸出;根據群組表中INDIRECT型態的群組項資訊,交換器121會直接將從第一連接埠接收的封包流從唯一的一個可用的輸出埠(例如第二連接埠)輸出;根據群組表中FAST FAILOVER型態的群組項資訊,交換器121會直接將從第一連接埠接收的封包流從第二連接埠與第三連接埠中編號較前面的連接埠(例如,第二連接埠)輸出。
在本實施例中,SDN控制器110會在交換器121的群組表中設定SELECT型態的群組項資訊。例如,此SELECT型態的群組項資訊會對應於交換器121的群組表中所含有的動作指令桶的其中之一並且用於在交換器121執行封包流對應於第一服務的路由路徑選擇。例如,SELECT型態的群組項資訊可用來指示交換器121要將封包流從哪一個埠輸出。如此一來,交換器121可根據SELECT型態的群組項資訊來藉由某一個埠輸出封包流至提供第一服務的某一個服務叢集。
為了更詳細的說明SDN控制器110在步驟S340中為根交換器配置群組項資訊的具體實施方式,以下進一步將步驟S340區分成步驟S410~S420。
圖4是根據本發明的一實施例所繪示的為交換器配置群組項資訊的流程圖。
請參照圖4,在步驟S410中,SDN控制器110依據提供相同服務(例如,第一服務)的至少一個服務叢集的叢集資訊決定對應於所述服務叢集中的每一個服務叢集的權重資訊。
在本實施例中,各個服務叢集的叢集資訊包括此服務叢集所包含的服務端點之總數。為了達到提供相同服務的多個服務叢集(或,服務端點)之間的負載平衡,所設置的某一個服務叢集的權重資訊會與此服務叢集所包含的服務端點之總數呈現正相關。當某一個服務叢集所包含的服務端點的數目越多時,可將此服務叢集的權重資訊設定為一個較大的值。在一實施例中,權重資訊是以權重值來表示。舉例來說,第一服務叢集130_1包括服務端點131、132,故第一服務叢集130_1的權重資訊可為2。而第一服務叢集130_2包括服務端點133、134,故第一服務叢集130_2的權重資訊也可為2。
在步驟S420中,SDN控制器110根據所決定的權重資訊決定在根交換器中所述封包流對應於提供此特定服務的一輸出埠。此輸出埠之資訊即包含於SDN控制器110在交換器的群組表中所設定的SELECT型態的群組項資訊中。
在本實施例中,SDN控制器110在計算出分別對應於第一服務叢集130_1及130_2的權重資訊之後,SDN控制器110會對應於第一服務叢集130_1及130_2進行雜湊運算,以獲得相對應的雜湊參考值。例如,SDN控制器110會對所述封包流的一目的資訊、第一根交換器的一識別資訊及第一服務叢集130_1或130_2的一索引資訊執行雜湊(hash)運算,以獲得一雜湊參考值。
需說明的是,在本實施例中,所述雜湊運算包含三個參數:封包流的目的資訊、根交換器的識別資訊以及服務叢集的索引資訊。但所述雜湊運算所包含的三個或更多參數,可依據使用者設定而有所變更,本發明並未對所述各種參數有所限制。舉例來說,封包流的目的資訊例如是封包流的目的地位址(例如,IP或MAC地址),根交換器的識別資訊可以是代表根交換器本身的識別資訊,例如是其MAC地址、IP位址或路由路徑ID資訊等,而服務叢集的索引資訊則例如是某一個服務叢集的編號(以下亦稱為叢集編號)。例如,假設服務叢集130_1的叢集編號是1,服務叢集130_2的叢集編號是2,則SDN控制器110可以根據封包流的目的資訊、根交換器的識別資訊及服務叢集130_1的叢集編號(例如,1)計算出對應於第一服務叢集130_1的雜湊參考值,並且根據同一封包流的目的資訊、同一根交換器的識別資訊及服務叢集130_2的叢集編號(例如,2)計算出對應於第一服務叢集130_2的雜湊參考值。例如,此些參數可以被輸入至一雜湊函數,而此雜湊函數的輸出即為對應的雜湊參考值。此外,此雜湊函數也可以是以其他類型的函數,例如,隨機數(random number)產生函數,來產生。
SDN控制器110會根據計算出來的雜湊參考值與權重資訊來決定在第一根交換器中所述封包流對應於第一服務的輸出埠。例如,SDN控制器110會將對應於第一服務叢集130_1的雜湊參考值乘上對應於第一服務叢集130_1的權重資訊以獲得一個值(以下亦稱為第一值)。例如,SDN控制器110會將對應於第一服務叢集130_2的雜湊參考值乘上對應於第一服務叢集130_2的權重資訊以獲得另一個值(以下亦稱為第二值)。然後,SDN控制器110會比較第一值與第二值並且根據比較結果來決定在交換器121中所述封包流對應於第一服務的輸出埠。例如,若第一值大於第二值,SDN控制器110會決定將交換器121中封包流對應於第一服務的輸出埠設定為上述第二連接埠,以藉由第二連接埠將所接收到的封包流導向提供第一服務的第一服務叢集130_1。反之,若第一值小於第二值,SDN控制器110會決定將交換器121中封包流對應於第一服務的輸出埠設定為上述第三連接埠,以藉由第三連接埠將所接收到的封包流導向同樣提供第一服務的第一服務叢集130_2。
在本實施例中,SDN控制器110會利用SELECT型態的第一群組項資訊將交換器121中對應於第一服務之輸出埠之資訊記錄於在交換器121的群組表中。例如,SDN控制器110會發送一設定訊息以指示此將第一群組項資訊儲存至交換器121的群組表。如此一來,當接收到來自交換器120的所述封包流時,交換器121可依據第一群組項資訊執行此封包流對應於第一服務的路由路徑選擇,從而將此封包流透過所設定的輸出埠輸出至第一服務叢集130_1或130_2其中之一來進行處理。
接下來,請再次參照圖3,在步驟S350中,SDN控制器110依據上述服務鏈資訊判斷是否還需配置其他服務的路由資訊。若是,則再次執行步驟S320~S340。
在本實施例中,由於封包流還需要經過第二服務的處理,因此對應於第二服務,步驟S320~S340會再次被執行。例如,在再次執行的步驟S320中,SDN控制器110分別計算第二服務叢集140_1及140_2中的服務端點141~145到入口節點(即,交換器120)的路徑中,會經過哪些交換器。此外,在另一實施例中,SDN控制器110則是計算第二服務叢集140_1及140_2中的服務端點141~145到第一根節點(即,交換器121)的路徑中,會經過哪些交換器。
在再次執行的步驟S330中,SDN控制器110依據計算出來的提供第二服務的服務端點141~145到交換器120(或,交換器121)的所有路徑,從多個交換器中決定出一個對應於第二服務叢集140_1及140_2的第二根交換器。在本實施例中,第二服務叢集140_1及140_2到交換器120(或,交換器121)的服務匯集點是交換器122,因此第二根交換器被設定為交換器122。當經由第一服務處理過的封包流返回交換器121而需要經過第二服務的處理時,此封包流皆需經過此第二根交換器(即,交換器122),以經由第二根交換器的轉發端口,將此封包流傳送至下一個交換器(例如,交換器122_1或122_2)。
在再次執行的步驟S340中,SDN控制器110會在交換器122的群組表中設定SELECT型態的群組項資訊。例如,此SELECT型態的群組項資訊用於在交換器122執行封包流對應於第二服務的路由路徑選擇。
在本實施例中,SDN控制器110同樣可依據步驟S410~S420為交換器122配置第二群組項資訊。
首先,SDN控制器110依據提供第二服務的第二服務叢集140_1及140_2的叢集資訊決定分別對應於第二服務叢集140_1及140_2的權重資訊。舉例來說,第二服務叢集140_1包括服務端點141~143,故第二服務叢集140_1的權重資訊可為3。而第二服務叢集140_2包括服務端點144、145,故第二服務叢集140_2的權重資訊為2。在此,由於第二服務叢集140_1及140_2含有不同個數的服務端點,且第二服務叢集140_1所包含的服務端點的數目較多,因此第二服務叢集140_1相較於第二服務叢集140_2具有較大的權重資訊。
SDN控制器110在計算出分別對應於第二服務叢集140_1及140_2的權重資訊之後,SDN控制器110對應於第二服務叢集140_1及140_2進行雜湊運算,以獲得相對應的雜湊參考值。類似於在第一服務中進行雜湊運算的實施方式,假設服務叢集140_1的叢集編號是3,服務叢集140_2的叢集編號是4,則SDN控制器110可以根據封包流的目的資訊、根交換器的識別資訊及服務叢集140_1的叢集編號(例如,3)計算出對應於第二服務叢集140_1的雜湊參考值,並且根據封包流的目的資訊、根交換器的識別資訊及服務叢集140_2的叢集編號(例如,4)計算出對應於第二服務叢集140_2的雜湊參考值。
SDN控制器110會根據計算出來的雜湊參考值與權重資訊來決定在第二根交換器中所述封包流對應於第二服務的輸出埠。例如,SDN控制器110會將對應於第二服務叢集140_1的雜湊參考值乘上對應於第二服務叢集140_1的權重資訊以獲得一個值(以下亦稱為第三值)。例如,SDN控制器110會將對應於第二服務叢集140_2的雜湊參考值乘上對應於第二服務叢集140_2的權重資訊以獲得另一個值(以下亦稱為第四值)。然後,SDN控制器110會比較第三值與第四值並且根據比較結果來決定在交換器122中所述封包流對應於第二服務的輸出埠。例如,若第三值大於第四值,SDN控制器110會決定將交換器122中封包流對應於第二服務的輸出埠設定為某一連接埠,以藉由此連接埠將所接收到的封包流導向提供第二服務的第二服務叢集140_1。反之,若第三值小於第四值,SDN控制器110會決定將交換器122中封包流對應於第二服務的輸出埠設定為另一連接埠,以藉由此連接埠將所接收到的封包流導向同樣提供第二服務的第二服務叢集140_2。
之後,SDN控制器110會利用SELECT型態的第二群組項資訊將交換器122中對應於第二服務之輸出埠之資訊記錄於在交換器122的群組表中。例如,SDN控制器110會發送一設定訊息以指示此將第二群組項資訊儲存至交換器122的群組表。如此一來,當接收到來自交換器121的所述封包流時,交換器121可依據第二群組項資訊執行此封包流對應於第二服務的路由路徑選擇,從而將此封包流透過所設定的輸出埠輸出至第二服務叢集140_1或140_2其中之一來進行處理。
在步驟S350中,SDN控制器110依據上述服務鏈資訊再次判斷是否還需配置其他服務的路由資訊。若否,接下來執行步驟S360。
在步驟S360中,SDN控制器110決定至少一條路由路徑串接各個服務的根交換器。
在本實施例中,SDN控制器110將決定上述第一根交換器與第二根交換器之間的路由路徑串接。例如,在上述步驟中已決定出第一根交換器為交換器121以及第二根交換器為交換器122,SDN控制器110可配置用於將封包流從入口節點(即,交換器120)引導至交換器121的第一路由路徑資訊、從交換器121引導至交換器122的第二路由路徑資訊以及從交換器122引導至第二目標交換器(即,交換器123)的第三路由路徑資訊。在本實施例中,當封包流經過上述第一服務及第二服務的處理之後,可經由交換器123將封包流傳送至目的地節點102。由於交換器123為封包流完成所有服務後在抵達目的地節點102之前的最後一個交換器,故可將交換器123稱為對應於此封包流的出口節點(Egress node)。
在步驟S370中,SDN控制器110給定步驟S360中所決定的路由路徑一個服務串接識別碼(Service Path Identification)。在步驟S380中,SDN控制器110設置資料流表至各個交換器,並回傳封包輸出(Packet-Out)訊息至入口節點。
在本實施例中,當決定出封包流從源節點101到目的地節點102之間串接交換器120、121、122及123的路由路徑之後,SDN控制器110將為所述路由路徑設置一或多個服務串接識別碼。需說明的是,服務串接識別碼可以以任何的形式表示,本發明並未對此有所限制。SDN控制器110可將一個服務串接識別碼當作匹配條件,將所述服務串接識別碼所對應的交換器120至交換器121之間的第一路由路徑資訊,連同服務串接識別碼,發送設定訊息以指示將此些資訊儲存至交換器120的資料流表中。同理,SDN控制器110也會將一個服務串接識別碼當作匹配條件,將所述服務串接識別碼所對應的交換器121至交換器122之間的第二路由路徑資訊以及交換器122至交換器123之間的第三路由路徑資訊,分別連同對應的服務串接識別碼,發送設定訊息以將其儲存至交換器121及交換器122的資料流表中。SDN控制器110在將路由設定分別儲存至此些交換器之後,將回傳封包輸出訊息至入口節點(即,交換器120),以通知入口節點完成封包流的路由設定。在本實施例,封包輸出訊息含有路由設定完成的資訊。
完成步驟S310~S380的路由配置之後,入口節點(即,交換器120)會讓封包流攜帶對應的服務串接識別碼,以匹配路由路徑中的各個交換器(即,交換器120、121、122)所儲存的服務串接識別碼與路由路徑資訊。以此方式,當封包流攜帶服務串接識別碼與交換器120所儲存的服務串接識別碼互相匹配時,交換器120可利用匹配的所述服務串接識別碼所對應的資料流表項將封包流引導到對應於第一服務的交換器121。接下來,交換器121利用SDN控制器110為其配置的第一群組項資訊,來對封包流進行引導。
當完成第一服務的處理之後,封包流回到交換器121,交換器121可繼續匹配服務串接識別碼,並可利用匹配的所述服務串接識別碼所對應的資料流表項將封包流引導到對應於第二服務的交換器122。接下來,交換器122同樣利用SDN控制器110為其配置的第二群組項資訊,來對封包流進行引導。
當完成第二服務的處理之後,封包流回到交換器122,交換器122可繼續匹配服務串接識別碼,並可利用匹配的所述服務串接識別碼所對應的資料流表項將封包流引導到交換器123。在本實施例中,當封包流抵達交換器123時,交換器123將卸除封包流的服務串接識別碼。最後,交換器123將封包流傳送至目的地節點102。
簡言之,本發明實施例的網路通訊系統、SDN控制器及其路由方法,可根據封包流的服務鏈資訊,決定分別對應於一個特定服務的至少一根交換器,以及依據每一個根交換器所對應的至少一服務叢集的叢集資訊分別為各個根交換器配置用於執行路徑選擇的群組項資訊。如此一來,透過設定群組項資訊,SDN控制器所控制的服務串接不再是串接各個服務端點,而僅串接路由路徑上的一或多個根交換器。根交換器則可依據SDN控制器為其配置的群組項資訊,在所對應的服務叢集中決定要將封包流導向哪一個服務叢集(或,服務端點)。在此情形下,不但能讓提供相同服務的多個服務端點達到負載平衡,還可降低SDN控制器配置並儲存資料流表的負載。
值得一提的是,本發明並不限定只能在根交換器中配置群組項資訊。在本發明的另一實施例當中,SDN控制器110也可以為根交換器至對應的多個服務叢集之間的至少一交換器(以下亦稱為子交換器)配置對應的群組項資訊(以下亦稱為子群組項資訊)。藉此,當封包流經過根交換器的路由路徑選擇而被導引至某一個子交換器時,此子交換器即可根據所配置的子群組項資訊來執行相對應的路由路徑選擇(亦稱為子路由路徑選擇),以進一步將封包流引導至對應的服務叢集或服務端點。
圖5是根據本發明另一實施例所繪示的網路通訊系統的示意圖。請參照圖5,在本實施例中,假設服務叢集130_1、130_3及130_4中的服務端點131、132、135、136、137、138皆用以提供第一服務,則交換器121會被設為對應於提供第一服務之服務叢集130_1、130_3及130_4的根交換器。交換器121至服務叢集130_1、130_3及130_4之間仍存在交換器121_1、124、124_1及124_2,因此SDN控制器110還可以為交換器121_1、124、124_1及124_2的至少其中之一配置對應的群組項資訊。
在本實施例中,當SDN控制器110為交換器121配置群組項資訊時,SDN控制器110會根據第一服務的服務叢集130_1及130_11的叢集資訊決定分別對應於服務叢集130_1及130_11的權重資訊。其中,服務叢集130_11包含服務叢集130_3與130_4。服務叢集130_3與130_4可分別視為是服務叢集130_11中的一個子服務叢集。舉例來說,服務叢集130_1包括服務端點131~132,故服務叢集130_1的權重資訊可設為2。而服務叢集130_11包括服務端點135~138,故服務叢集130_11的權重資訊可設為4。關於如何設定對應於不同服務叢集的權重資訊已詳述於上,在此便不贅述。
SDN控制器110可分別對應於服務叢集130_1及130_11進行雜湊運算,以獲得相對應的雜湊參考值。類似於在上述實施例中進行雜湊運算的範例,SDN控制器110可分別依據服務叢集130_1及130_11的叢集編號等資訊計算出不同的雜湊參考值。例如,根據對應於服務叢集130_1的叢集編號以及相關資訊,對應於服務叢集130_1的一個雜湊參考值會被計算出來;根據對應於服務叢集130_11的叢集編號以及相關資訊,對應於服務叢集130_11的另一個雜湊參考值也會被計算出來。
SDN控制器110可根據對應於服務叢集130_1的雜湊參考值與權重資訊獲得一個值並且根據對應於服務叢集130_11的雜湊參考值與權重資訊獲得另一個值。SDN控制器110根據這兩個值(例如,這兩個值中的較大者)來決定交換器121的一個輸出埠,以經由此輸出埠來引導封包流至相對應的服務叢集(即,服務叢集130_1或服務叢集130_11)。例如,SDN控制器110會利用SELECT型態的群組項資訊將所決定的輸出埠之資訊記錄於在交換器121的群組表中。
另一方面,SDN控制器110也可為子交換器(即,交換器124)配置子群組項資訊。例如,根據服務叢集130_3及130_4個別包含的服務端點之數目,SDN控制器110可分別將服務叢集130_3及130_4的權重資訊皆設定為2。SDN控制器110可進一步根據服務叢集130_3及130_4各別的叢集編號等資訊來計算出分別對應於服務叢集130_3及130_4的兩個雜湊參考值。根據計算出來的雜湊參考值與權重資訊,SDN控制器110可決定交換器124的一個輸出埠,以經由此輸出埠來引導封包流至相對應的服務叢集(即,服務叢集130_3或服務叢集130_4)。例如,SDN控制器110會利用SELECT型態的群組項資訊將所決定的輸出埠之資訊記錄於在交換器124的群組表中。
在一實施例中,SDN控制器110還可以利用上述SELECT型態的群組項資訊來為圖1與圖5中其餘的交換器配置相關的路由路徑選擇資訊,以進一步減輕SDN控制器110及/或其他交換器中與資料流表有關的負載。此外,圖1與圖5中的SDN控制器100及/或任一個交換器也可以搭配使用其他的負載平衡/分流機制,本發明不加以限制。
綜上所述,在本發明實施例的網路通訊系統、SDN控制器及其路由方法中,SDN控制器僅需控制根交換器之間的服務串接及其路由路徑的建立,而服務端點的選擇則由群組表進行分流,以在達到服務端點的負載平衡的同時,亦可降低SDN控制器的負載。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
100:網路通訊系統 101:源節點 102:目的地節點 110:SDN控制器 120、121、121_1、121_2、122、122_1、122_2、123、124、124_1、124_2:交換器 130_1、130_2:第一服務叢集/服務叢集 130_3、130_4、130_11:服務叢集 131、132、133、134、135、136、137、138、141、142、143、144、145:服務端點 140_1、140_2:第二服務叢集 210:網路介面電路 220:儲存電路 230:處理電路 S310、S320、S330、S340、S350、S360、S370、S380、S410、S420:步驟
圖1是根據本發明的一實施例所繪示的網路通訊系統的示意圖。 圖2繪示圖1中SDN控制器的概要方塊圖。 圖3是根據本發明的一實施例所繪示的路由方法的流程圖。 圖4是根據本發明的一實施例所繪示的為交換器配置群組項資訊的流程圖。 圖5是根據本發明另一實施例所繪示的網路通訊系統的示意圖。
S310、S320、S330、S340、S350、S360、S370、S380:步驟
Claims (22)
- 一種路由方法,適於一軟體定義網路(Software-defined Network,SDN)控制器,該路由方法包括:根據一服務鏈資訊決定對應於至少一第一服務叢集的一第一根交換器,其中該至少一第一服務叢集中的每一個服務叢集包括用於提供一第一服務的至少一服務端點;決定用於將一封包流從一第一目標交換器引導至該第一根交換器的一第一路由路徑資訊;以及依據該至少一第一服務叢集的一叢集資訊為該第一根交換器配置一第一群組項資訊,其中該第一群組項資訊用於在該第一根交換器執行該封包流對應於該第一服務的一第一路由路徑選擇。
- 如申請專利範圍第1項所述的路由方法,更包括:根據該服務鏈資訊決定對應於至少一第二服務叢集的一第二根交換器,其中該至少一第二服務叢集中的每一個服務叢集包括用於提供一第二服務的至少一服務端點;決定用於將該封包流從該第一根交換器引導至該第二根交換器的一第二路由路徑資訊;以及依據該至少一第二服務叢集的一叢集資訊為該第二根交換器配置一第二群組項資訊,其中該第二群組項資訊用於在該第二根交換器執行該封包流對應於該第二服務的一第二路由路徑選擇。
- 如申請專利範圍第2項所述的路由方法,更包括:在決定該第二根交換器之後,決定用於將該封包流從該第二根交換器引導至一第二目標交換器的一第三路由路徑資訊。
- 如申請專利範圍第1項所述的路由方法,其中該至少一第一服務叢集的該叢集資訊包括該至少一第一服務叢集中的每一個服務叢集所包含的服務端點之總數。
- 如申請專利範圍第1項所述的路由方法,更包括:決定對應於該至少一第一服務叢集中的至少一子服務叢集的一子交換器;以及依據該至少一子服務叢集的一叢集資訊為該子交換器配置一子群組項資訊,其中該子群組項資訊用於在該子交換器中執行來自該第一根交換器的封包流對應於該第一服務的一子路由路徑選擇。
- 如申請專利範圍第1項所述的路由方法,其中該第一根交換器為該至少一第一服務叢集的一匯集點。
- 如申請專利範圍第1項所述的路由方法,其中依據該至少一第一服務叢集的該叢集資訊為該第一根交換器配置該第一群組項資訊的步驟包括:依據該至少一第一服務叢集的該叢集資訊決定對應於該至少一第一服務叢集中的每一個服務叢集的一權重資訊;以及根據所決定的權重資訊決定在該第一根交換器中該封包流對應於該第一服務的一輸出埠。
- 如申請專利範圍第7項所述的路由方法,其中根據所決定的權重資訊決定在該第一根交換器中該封包流對應於該第一服務的該輸出埠的步驟包括:對該封包流的一目的資訊、該第一根交換器的一識別資訊及該至少一第一服務叢集中的一個特定服務叢集的一索引資訊執行一雜湊運算,以獲得一雜湊參考值;以及根據該雜湊參考值與該權重資訊來決定在該第一根交換器中該封包流對應於該第一服務的該輸出埠。
- 如申請專利範圍第7項所述的路由方法,其中所決定的該輸出埠是用於將該封包流輸出至該至少一第一服務叢集中的一個特定服務叢集。
- 如申請專利範圍第1項所述的路由方法,更包括:發送一第一設定訊息,其中該第一設定訊息用以將該第一路由路徑資訊儲存至該第一目標交換器的一資料流表;以及發送一第二設定訊息,其中該第二設定訊息用以將該第一群組項資訊儲存至該第一根交換器的一群組表中。
- 一種軟體定義網路控制器包括:一網路介面電路;一儲存電路,用以儲存一服務鏈資訊;一處理電路,耦接該網路介面電路與該儲存電路,其中該處理電路用以根據該服務鏈資訊決定對應於至少一第一服務叢集的一第一根交換器,其中該至少一第一服務叢集中的 每一個服務叢集包括用於提供一第一服務的至少一服務端點,其中該處理電路更用以決定用於將一封包流從一第一目標交換器引導至該第一根交換器的一第一路由路徑資訊,其中該處理電路更用以依據該至少一第一服務叢集的一叢集資訊為該第一根交換器配置一第一群組項資訊,其中該第一群組項資訊用於在該第一根交換器執行該封包流對應於該第一服務的一第一路由路徑選擇。
- 如申請專利範圍第11項所述的軟體定義網路控制器,其中該處理電路更用以根據該服務鏈資訊決定對應於至少一第二服務叢集的一第二根交換器,其中該至少一第二服務叢集中的每一個服務叢集包括用於提供一第二服務的至少一服務端點,其中該處理電路更用以決定用於將該封包流從該第一根交換器引導至該第二根交換器的一第二路由路徑資訊,其中該處理電路更用以依據該至少一第二服務叢集的一叢集資訊為該第二根交換器配置一第二群組項資訊,其中該第二群組項資訊用於在該第二根交換器執行該封包流對應於該第二服務的一第二路由路徑選擇。
- 如申請專利範圍第12項所述的軟體定義網路控制器,其中在決定該第二根交換器之後,該處理電路更用以決定用於將該封包流從該第二根交換器引導至一第二目標交換器的一第三路由路徑資訊。
- 如申請專利範圍第11項所述的軟體定義網路控制器,其中該至少一第一服務叢集的該叢集資訊包括該至少一第一服務叢集中的每一個服務叢集所包含的服務端點之總數。
- 如申請專利範圍第11項所述的軟體定義網路控制器,其中該處理電路更用以決定對應於該至少一第一服務叢集中的至少一子服務叢集的一子交換器,其中該處理電路更用以依據該至少一子服務叢集的一叢集資訊為該子交換器配置一子群組項資訊,其中該子群組項資訊用於在該子交換器中執行來自該第一根交換器的封包流對應於該第一服務的一子路由路徑選擇。
- 如申請專利範圍第11項所述的軟體定義網路控制器,其中該第一根交換器為該至少一第一服務叢集的一匯集點。
- 如申請專利範圍第11項所述的軟體定義網路控制器,其中該處理電路依據該至少一第一服務叢集的該叢集資訊為該第一根交換器配置該第一群組項資訊的操作包括:依據該至少一第一服務叢集的該叢集資訊決定對應於該至少一第一服務叢集中的每一個服務叢集的一權重資訊;以及根據所決定的權重資訊決定在該第一根交換器中該封包流對應於該第一服務的一輸出埠。
- 如申請專利範圍第17項所述的軟體定義網路控制器,其中該處理電路根據所決定的權重資訊決定在該第一根交換器中該封包流對應於該第一服務的該輸出埠的操作包括: 對該封包流的一目的資訊、該第一根交換器的一識別資訊及該至少一第一服務叢集中的一個特定服務叢集的一索引資訊執行一雜湊運算,以獲得一雜湊參考值;以及根據該雜湊參考值與該權重資訊來決定在該第一根交換器中該封包流對應於該第一服務的該輸出埠。
- 如申請專利範圍第17項所述的軟體定義網路控制器,其中所決定的該輸出埠是用於將該封包流輸出至該至少一第一服務叢集中的一個特定服務叢集。
- 如申請專利範圍第11項所述的軟體定義網路控制器,其中該處理電路更用以藉由該網路介面電路發送一第一設定訊息,其中該第一設定訊息用以將該第一路由路徑資訊儲存至該第一目標交換器的一資料流表,其中該處理電路更用以藉由該網路介面電路發送一第二設定訊息,其中該第二設定訊息用以將該第一群組項資訊儲存至該第一根交換器的一群組表中。
- 一種網路通訊系統,包括:一SDN控制器與多個交換器,其中該SDN控制器根據一服務鏈資訊從該些交換器中決定對應於至少一第一服務叢集的一第一根交換器以及對應於至少一第二服務叢集的一第二根交換器,其中該至少一第一服務叢集中的每一個服務叢集包括用於提供一第一服務的至少一服務端點,其中該至少一第二服務叢集中的每一個服務叢集包括用於提供一 第二服務的至少一服務端點,其中該SDN控制器更用以決定用於將一封包流從該第一根交換器引導至該第二根交換器的一路由路徑資訊,其中該SDN控制器更用以依據該至少一第一服務叢集的一叢集資訊為該第一根交換器配置一第一群組項資訊並且依據該至少一第二服務叢集的一叢集資訊為該第二根交換器配置一第二群組項資訊,其中該第一根交換器用以根據該第一群組項資訊執行該封包流對應於該第一服務的一第一路由路徑選擇,其中該第二根交換器用以根據該第二群組項資訊執行該封包流對應於該第二服務的一第二路由路徑選擇。
- 如申請專利範圍第21項所述的網路通訊系統,其中該路由路徑資訊是儲存於該第一根交換器的一資料流表,其中該第一群組項資訊與該第二群組項資訊是分別儲存於該第一根交換器與該第二根交換器的一群組表。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW105101692A TWI599203B (zh) | 2016-01-20 | 2016-01-20 | 網路通訊系統、軟體定義網路控制器及其路由方法 |
US15/134,390 US10050863B2 (en) | 2016-01-20 | 2016-04-21 | Network communication system, software-defined network controller and routing method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW105101692A TWI599203B (zh) | 2016-01-20 | 2016-01-20 | 網路通訊系統、軟體定義網路控制器及其路由方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201728130A TW201728130A (zh) | 2017-08-01 |
TWI599203B true TWI599203B (zh) | 2017-09-11 |
Family
ID=59313956
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW105101692A TWI599203B (zh) | 2016-01-20 | 2016-01-20 | 網路通訊系統、軟體定義網路控制器及其路由方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10050863B2 (zh) |
TW (1) | TWI599203B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201605198A (zh) | 2014-07-31 | 2016-02-01 | 萬國商業機器公司 | 智慧網路管理裝置以及管理網路的方法 |
WO2017207039A1 (en) * | 2016-06-01 | 2017-12-07 | Huawei Technologies Co., Ltd. | Software defined networking system for distiguishing packet-in messages |
US10200922B2 (en) * | 2017-06-09 | 2019-02-05 | Space Systems/Loral, Llc | Satellite network switching |
TWI639325B (zh) * | 2017-09-01 | 2018-10-21 | 財團法人工業技術研究院 | 自動配置的交換機、自動配置交換機的方法、交換機自動部署的軟體定義網路系統及其方法 |
CN107579922B (zh) * | 2017-09-08 | 2020-03-24 | 北京信息科技大学 | 网络负载均衡装置和方法 |
US10855592B2 (en) * | 2017-11-28 | 2020-12-01 | Cumulus Networks Inc. | Flow based session drain director |
US11165697B2 (en) * | 2018-11-16 | 2021-11-02 | Juniper Networks, Inc. | Network controller subclusters for distributed compute deployments |
CN113765793B (zh) * | 2021-06-07 | 2023-09-05 | 北京京东振世信息技术有限公司 | 数据传输方法及装置、存储介质、电子设备 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8751638B2 (en) | 2010-07-02 | 2014-06-10 | Futurewei Technologies, Inc. | System and method to implement joint server selection and path selection |
US8804490B2 (en) | 2011-07-29 | 2014-08-12 | Telefonaktiebolaget L M Ericsson (Publ) | Controller placement for fast failover in the split architecture |
US8817625B1 (en) | 2013-09-13 | 2014-08-26 | Telefonaktiebolaget L M Ericsson (Publ) | Service placement for inline services chaining with multiple instances |
US8953618B2 (en) | 2012-10-10 | 2015-02-10 | Telefonaktiebolaget L M Ericsson (Publ) | IP multicast service leave process for MPLS-based virtual private cloud networking |
US9049127B2 (en) | 2013-03-11 | 2015-06-02 | Cisco Technology, Inc. | Methods and devices for providing service clustering in a trill network |
US9755960B2 (en) * | 2013-09-30 | 2017-09-05 | Juniper Networks, Inc. | Session-aware service chaining within computer networks |
TWI513260B (zh) | 2013-12-13 | 2015-12-11 | Inventec Corp | 路由控制方法與裝置 |
US20160142285A1 (en) | 2014-11-13 | 2016-05-19 | Industrial Technology Research Institute | Openflow switch and method for packet exchanging thereof, sdn controller and data flow control method thereof |
-
2016
- 2016-01-20 TW TW105101692A patent/TWI599203B/zh not_active IP Right Cessation
- 2016-04-21 US US15/134,390 patent/US10050863B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20170207994A1 (en) | 2017-07-20 |
US10050863B2 (en) | 2018-08-14 |
TW201728130A (zh) | 2017-08-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI599203B (zh) | 網路通訊系統、軟體定義網路控制器及其路由方法 | |
CN104335537B (zh) | 用于层2多播多路径传送的系统和方法 | |
EP2974133B1 (en) | Method and system for controlling an underlying physical network by a software defined network | |
US9065768B2 (en) | Apparatus for a high performance and highly available multi-controllers in a single SDN/OpenFlow network | |
US6952397B2 (en) | Communication in a bidirectional ring network with single-direction receiving | |
US9614759B2 (en) | Systems and methods for providing anycast MAC addressing in an information handling system | |
JP6589060B2 (ja) | ソフトウェア定義ネットワークのエントリ生成およびパケット転送 | |
WO2013086221A1 (en) | Method to carry fcoe frames over a trill based network | |
CN110061915B (zh) | 跨多个架构交换机的虚拟链路聚合的方法和系统 | |
US11290394B2 (en) | Traffic control in hybrid networks containing both software defined networking domains and non-SDN IP domains | |
JP5429179B2 (ja) | ネットワークノードおよびその負荷分散方法 | |
US11522784B2 (en) | Routing and forwarding method for multi-homed network based on programmable network technology | |
TWI759571B (zh) | 基於流表的資料傳送方法 | |
CN111147372B (zh) | 下行报文发送、转发方法和装置 | |
WO2017015839A1 (zh) | 一种基于sdn的arp实现方法及装置 | |
CN106790146A (zh) | 一种云环境下基于sdn技术实现移动组播的系统及其运行方法 | |
RU2586019C2 (ru) | Устройство управления, система связи, способ управления узлом и программа | |
JP6311611B2 (ja) | 制御装置、通信システム、制御情報の作成方法及びプログラム | |
US11032185B2 (en) | Communication system, edge node, communication method and program | |
EP2858316A1 (en) | Packet transfer system, control device, packet transfer method and program | |
US11296980B2 (en) | Multicast transmissions management | |
KR102001487B1 (ko) | 소프트웨어 정의 네트워킹 제어 방법 및 이를 수행하는 컴퓨팅 장치 | |
CN105577559B (zh) | 一种路由的方法、设备及系统 | |
US9031065B2 (en) | Switch having dedicated stacking link | |
US20170317921A1 (en) | Control apparatus, communication system, and relay apparatus control method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |