本公開涉及通信網(wǎng)絡(luò),更加具體地涉及域間服務(wù)功能鏈接(chaining)。
背景技術(shù):
網(wǎng)絡(luò)服務(wù)在許多網(wǎng)絡(luò)中被廣泛部署并且是重要的。服務(wù)提供一系列功能,例如安全性、廣域網(wǎng)加速、防火墻、服務(wù)器負(fù)載平衡、深度數(shù)據(jù)包檢測(cè)、入侵檢測(cè)服務(wù)、以及網(wǎng)絡(luò)地址轉(zhuǎn)換(nat)??梢栽诰W(wǎng)絡(luò)基礎(chǔ)設(shè)施中的不同的點(diǎn)(包括例如廣域網(wǎng)、數(shù)據(jù)中心、校園等等)處采用網(wǎng)絡(luò)服務(wù)。服務(wù)可以作為服務(wù)鏈的一部分被采用。
附圖說明
圖1示出可以實(shí)現(xiàn)本文描述的實(shí)施例的網(wǎng)絡(luò)的示例;
圖2描繪了可用于實(shí)現(xiàn)本文描述的實(shí)施例的網(wǎng)絡(luò)設(shè)備的示例;
圖3是示出根據(jù)一個(gè)實(shí)施例的用于域間服務(wù)功能鏈接的過程的概述的流程圖;
圖4是示出根據(jù)一個(gè)實(shí)施例的圖1的網(wǎng)絡(luò)中的域間服務(wù)功能鏈接的示例的圖示;
圖5是示出根據(jù)一個(gè)實(shí)施例的在另一網(wǎng)絡(luò)拓?fù)渲械挠蜷g服務(wù)功能鏈接的示例的圖示。
在附圖的幾個(gè)視圖中,相應(yīng)的參考標(biāo)號(hào)表示相應(yīng)的部分。
具體實(shí)施方式
概述
在一個(gè)實(shí)施例中,方法通常包括:在位于第一管理域的邊界處的網(wǎng)絡(luò)設(shè)備處接收服務(wù)功能鏈中的數(shù)據(jù)包,該數(shù)據(jù)包包括服務(wù)功能路徑標(biāo)識(shí)符和服務(wù)索引;在網(wǎng)絡(luò)設(shè)備處處理數(shù)據(jù)包,其中處理包括基于服務(wù)功能路徑標(biāo)識(shí)符和服務(wù)索引來修改數(shù)據(jù)包以將該數(shù)據(jù)包引導(dǎo)到第二管理域;以及從該網(wǎng)絡(luò)設(shè)備轉(zhuǎn)發(fā)數(shù)據(jù)包到第二管理域以用于在服務(wù)功能鏈中進(jìn)行處理。服務(wù)功能鏈在第一管理域和第二管理域上延伸。
在另一實(shí)施例中,裝置通常包括處理器,該處理器用于在第一管理域的邊界處處理在服務(wù)功能鏈中接收到的數(shù)據(jù)包,該數(shù)據(jù)包包括服務(wù)功能路徑標(biāo)識(shí)符和服務(wù)索引,基于服務(wù)功能路徑標(biāo)識(shí)符和服務(wù)索引修改數(shù)據(jù)包,以及將數(shù)據(jù)包轉(zhuǎn)發(fā)到第二管理域。該裝置還包括用于存儲(chǔ)用于基于服務(wù)功能路徑標(biāo)識(shí)符和服務(wù)索引來修改數(shù)據(jù)包的指令的存儲(chǔ)器。服務(wù)功能鏈在第一管理域和第二管理域上延伸。
示例性實(shí)施例
以下說明被呈現(xiàn)以使得本領(lǐng)域普通技術(shù)人員能夠做出和使用這些實(shí)施例。對(duì)具體實(shí)施例和應(yīng)用的描述僅僅作為示例被提供,并且對(duì)于本領(lǐng)域技術(shù)人員來說各種修改將是顯而易見的。在不脫離這些實(shí)施例的范圍的情況下,本文描述的一般原理可以被用于其他應(yīng)用。因此,實(shí)施例不限于所示出的那些實(shí)施例,而是符合與本文所描述的原理和特征相一致的最寬范圍。出于清楚的目的,與和實(shí)施例相關(guān)的技術(shù)領(lǐng)域中已知的技術(shù)材料相關(guān)的細(xì)節(jié)沒有被詳細(xì)描述。
服務(wù)鏈?zhǔn)沁@樣的數(shù)據(jù)結(jié)構(gòu),其定義了托管各種服務(wù)功能以及這些服務(wù)功能應(yīng)該被用于所選流量的數(shù)據(jù)的順序的服務(wù)節(jié)點(diǎn)的集合。服務(wù)鏈接涉及對(duì)流量的攔截和通過一系列服務(wù)節(jié)點(diǎn)(即,物理設(shè)備或虛擬設(shè)備)對(duì)流量進(jìn)行指引,其中每個(gè)服務(wù)節(jié)點(diǎn)支持一個(gè)或多個(gè)服務(wù)功能。經(jīng)過各種服務(wù)功能被從入口/分類器實(shí)例化至出口的路徑被稱為服務(wù)功能路徑(sfp)。
網(wǎng)絡(luò)服務(wù)報(bào)頭(nsh)是可以被添加到用于服務(wù)鏈的幀/數(shù)據(jù)包的數(shù)據(jù)平面報(bào)頭。該報(bào)頭包含用于服務(wù)鏈接的信息,以及由網(wǎng)絡(luò)節(jié)點(diǎn)和服務(wù)元件所添加和消耗的元數(shù)據(jù)。nsh可以跨一系列設(shè)備(物理設(shè)備和虛擬設(shè)備兩者)使用。在一個(gè)示例中,可以如由p.quinn等于2014年7月3日發(fā)表的ietf草案“networkserviceheader”(draft-quinn-sfc-nsh-03.txt)中描述的實(shí)現(xiàn)nsh。
用于服務(wù)鏈接的常規(guī)技術(shù)通常被構(gòu)建用于在單個(gè)控制平面實(shí)體的控制下的單個(gè)管理域(路由域、自治系統(tǒng))。隨著近期基于云的服務(wù)的增長,可能會(huì)將服務(wù)功能分布在各種管理域中,在這種情況下,存在使服務(wù)鏈跨越多個(gè)管理域的需求。例如,基于服務(wù)功能及其位置,數(shù)據(jù)包可能需要遍歷兩個(gè)或更多個(gè)管理域。
本文描述的實(shí)施例允許服務(wù)功能鏈跨越多個(gè)管理域,而不受針對(duì)服務(wù)功能位置或處理順序的限制。在某些實(shí)施例中,報(bào)頭重寫可以被用作邊界節(jié)點(diǎn)上的服務(wù)功能以將流量引導(dǎo)到不同的管理域。如下所述,服務(wù)功能路徑可以以在向下一個(gè)域發(fā)送數(shù)據(jù)包之前發(fā)生邊界節(jié)點(diǎn)重寫的方式來被實(shí)例化。例如,在某些實(shí)施例中,sfp可以用服務(wù)索引(si)來被實(shí)例化,其中si指向具有與下一個(gè)域相關(guān)聯(lián)的sfp/si細(xì)節(jié)的重寫報(bào)頭。服務(wù)路徑標(biāo)識(shí)符(id)和服務(wù)索引的組合可以用于以正確的順序來應(yīng)用正確的服務(wù)功能而無論服務(wù)功能的位置如何。實(shí)施例允許服務(wù)功能鏈以任何順序跨越任意數(shù)量的管理域,而無需在域之間進(jìn)行地址泄露。
現(xiàn)在參考附圖,并且首先參考圖1,其示出了可以實(shí)現(xiàn)本文所描述的實(shí)施例的網(wǎng)絡(luò)。出于簡(jiǎn)化的目的,僅僅示出了少量節(jié)點(diǎn)。這些實(shí)施例在包括多個(gè)網(wǎng)絡(luò)設(shè)備的數(shù)據(jù)通信網(wǎng)絡(luò)的上下文中進(jìn)行操作。網(wǎng)絡(luò)可以包括經(jīng)由任意數(shù)量的節(jié)點(diǎn)(例如,路由器、交換機(jī)、控制器、網(wǎng)關(guān)、或其他網(wǎng)絡(luò)設(shè)備)進(jìn)行通信的任意數(shù)量的網(wǎng)絡(luò)設(shè)備,所述節(jié)點(diǎn)輔助在網(wǎng)絡(luò)內(nèi)的數(shù)據(jù)的傳送。
圖1的示例中所示的網(wǎng)絡(luò)包括位于兩個(gè)管理域13(自治系統(tǒng)1(as1)、自治系統(tǒng)2(as2))中的多個(gè)網(wǎng)絡(luò)設(shè)備10、12、14、16(例如,路由器)。每個(gè)自治系統(tǒng)as1、as2可以被分配有標(biāo)識(shí)該as的唯一的號(hào)碼(自治系統(tǒng)號(hào)碼(asn))。網(wǎng)絡(luò)可以包括任意數(shù)量的管理域(自治系統(tǒng)、路由域)13,各自由單獨(dú)的技術(shù)管理實(shí)體控制并且共享公共路由政策。管理域13被用來將網(wǎng)絡(luò)劃分為應(yīng)用本地路由策略的各個(gè)路由域。管理域13可以各自包括任意數(shù)量的網(wǎng)絡(luò)18,并且每個(gè)網(wǎng)絡(luò)可以包括任意數(shù)量的邊緣設(shè)備10、12、14、16或中間(核心)節(jié)點(diǎn)(例如,路由器、交換器、接入層設(shè)備、聚合層設(shè)備、網(wǎng)關(guān)、或其他網(wǎng)絡(luò)設(shè)備)。
在圖1中示出的示例中,每個(gè)as13包括兩個(gè)自治系統(tǒng)通過其進(jìn)行通信的邊界節(jié)點(diǎn)14(邊界1、邊界2)。邊界節(jié)點(diǎn)14可以是路由器或其他合適的網(wǎng)絡(luò)設(shè)備。可以在邊界節(jié)點(diǎn)14之間插入任意數(shù)量的網(wǎng)絡(luò)設(shè)備。
圖1示出的網(wǎng)絡(luò)18各自包括多個(gè)服務(wù)節(jié)點(diǎn)10、分類器/入口路由器12或出口路由器16、以及邊界路由器14。如本文所使用的術(shù)語“路由器”可以指的是被配置用來執(zhí)行路由功能的任何網(wǎng)絡(luò)設(shè)備(例如,路由器、交換機(jī)/路由器)。在圖1示出的示例中,as1包括與as2中的邊界路由器(邊界2)通信的分類器12和邊界路由器(邊界1)14。as2還包括出口路由器16。分類器(頭-端節(jié)點(diǎn))12位于服務(wù)鏈的起始處,并且出口節(jié)點(diǎn)16位于服務(wù)鏈的結(jié)束處。分類器12可以執(zhí)行分類,施加網(wǎng)絡(luò)服務(wù)報(bào)頭,以及創(chuàng)建服務(wù)路徑。在圖1所示的示例中,由于節(jié)點(diǎn)12是服務(wù)鏈中的第一個(gè)節(jié)點(diǎn)(如下所述),所以節(jié)點(diǎn)12被稱為分類器或入口節(jié)點(diǎn),并且節(jié)點(diǎn)18作為服務(wù)鏈中的出口節(jié)點(diǎn)操作。應(yīng)當(dāng)理解,節(jié)點(diǎn)12、16可以作為不同服務(wù)鏈中的入口節(jié)點(diǎn)/分類器或出口節(jié)點(diǎn)而操作。
服務(wù)節(jié)點(diǎn)10各自托管或支持應(yīng)用于通過相應(yīng)的服務(wù)節(jié)點(diǎn)的流量的有效載荷的一個(gè)或多個(gè)服務(wù)功能15。在服務(wù)功能鏈接架構(gòu)中,節(jié)點(diǎn)10基于該節(jié)點(diǎn)執(zhí)行的功能可以被稱為“服務(wù)功能轉(zhuǎn)發(fā)器”。服務(wù)節(jié)點(diǎn)10是托管一個(gè)或多個(gè)服務(wù)功能并且具有用于可達(dá)性和服務(wù)遞送的與其相關(guān)聯(lián)的一個(gè)或多個(gè)網(wǎng)絡(luò)定位器的物理或虛擬元件。在圖1所示的示例中,as1在服務(wù)節(jié)點(diǎn)sn1和sn3處分別托管服務(wù)功能sf1和sf3。as2在服務(wù)節(jié)點(diǎn)sn2和sn4處分別托管服務(wù)功能sf2和sf4。服務(wù)功能15負(fù)責(zé)對(duì)接收到的數(shù)據(jù)包的特定處理,并且可以在網(wǎng)絡(luò)層或其他osi(開放系統(tǒng)互連)層操作。服務(wù)功能15可以是虛擬實(shí)例或被嵌入物理網(wǎng)絡(luò)元件中。例如,服務(wù)節(jié)點(diǎn)10可以是托管一個(gè)或多個(gè)服務(wù)功能的物理設(shè)備。服務(wù)節(jié)點(diǎn)10可以是能夠托管任何服務(wù)功能的任何網(wǎng)絡(luò)設(shè)備(例如,商用硬件)。多個(gè)服務(wù)功能可以被嵌入在同一網(wǎng)絡(luò)元件中。服務(wù)功能15可以在與服務(wù)節(jié)點(diǎn)10通信中的另一節(jié)點(diǎn)處執(zhí)行,如圖1所示,或者在服務(wù)節(jié)點(diǎn)10處實(shí)現(xiàn)。邊界節(jié)點(diǎn)19也可以具有附接到其的服務(wù)功能。
節(jié)點(diǎn)10、12、14、16中的一個(gè)或多個(gè)可以與控制器17(例如,odl(opendaylight)控制器、sdn(軟件定義網(wǎng)絡(luò))控制器、或其他集中式服務(wù)器)進(jìn)行通信。例如,每個(gè)管理域13可以包括與針對(duì)該域的分類器節(jié)點(diǎn)12、服務(wù)節(jié)點(diǎn)10、和邊界節(jié)點(diǎn)14進(jìn)行通信的控制器17??刂破?7可以是物理設(shè)備或虛擬元件,并且可以位于一個(gè)網(wǎng)絡(luò)設(shè)備處,或者例如遍及網(wǎng)絡(luò)被分布在彼此進(jìn)行通信的或與中央控制器進(jìn)行通信的不同網(wǎng)絡(luò)設(shè)備處。控制器17(或另一網(wǎng)絡(luò)設(shè)備)可以包括定義一個(gè)或多個(gè)服務(wù)鏈的服務(wù)鏈接邏輯。如下所述,控制器17還可以被用于在重寫模塊19處用重寫指令對(duì)邊界路由器14進(jìn)行編程。
服務(wù)節(jié)點(diǎn)10可以用于實(shí)現(xiàn)一個(gè)或多個(gè)服務(wù)功能鏈(服務(wù)鏈)。服務(wù)功能鏈定義了要被應(yīng)用于選擇作為分類的結(jié)果的數(shù)據(jù)包(幀)的服務(wù)功能的有序集合。服務(wù)功能路徑是網(wǎng)絡(luò)中服務(wù)功能鏈的實(shí)例化。
在某些實(shí)施例中,用于服務(wù)鏈接的數(shù)據(jù)平面被定義在網(wǎng)絡(luò)服務(wù)報(bào)頭(nsh)中。nsh是被添加到幀/數(shù)據(jù)包的數(shù)據(jù)平面報(bào)頭,并且包含服務(wù)鏈接所需的信息,以及由網(wǎng)絡(luò)節(jié)點(diǎn)(例如,服務(wù)節(jié)點(diǎn)10)和服務(wù)元件(例如,服務(wù)功能15)所添加和消耗的元數(shù)據(jù)。入口節(jié)點(diǎn)12可以例如為nsh施加服務(wù)功能路徑標(biāo)識(shí)符(sfpid)和服務(wù)索引(si),其將沿著服務(wù)路徑并應(yīng)用一組服務(wù)。服務(wù)節(jié)點(diǎn)10使用nsh中的服務(wù)索引來標(biāo)識(shí)服務(wù)功能并且轉(zhuǎn)發(fā)用于處理的數(shù)據(jù)包。應(yīng)當(dāng)理解,本文描述的服務(wù)報(bào)頭、服務(wù)功能路徑標(biāo)識(shí)符、和服務(wù)索引僅僅是示例,并且在不脫離實(shí)施例的范圍的情況下可以使用其他類型的報(bào)頭或標(biāo)識(shí)符。例如,服務(wù)功能路徑標(biāo)識(shí)符可以是被用于指示由參與的節(jié)點(diǎn)使用的用于路徑選擇的服務(wù)路徑的任何類型的標(biāo)識(shí)符。本文所使用的術(shù)語“服務(wù)索引”可以指的是提供在服務(wù)路徑中的位置的任何類型的網(wǎng)絡(luò)定位器。在某些實(shí)施例中,服務(wù)報(bào)頭包括服務(wù)路徑標(biāo)識(shí)符和服務(wù)索引。
如在以下示例中所描述的,數(shù)據(jù)包沿著服務(wù)功能路徑從分類器12經(jīng)過必需的服務(wù)功能15。管理域as1的擁有者可以例如希望包括{sf1,sf2,sf3,sf4}的服務(wù),但是在本地域as1內(nèi)只可獲得所期望的服務(wù)功能的子集。因此,服務(wù)鏈的構(gòu)建需要跨越管理域as1和as2兩者。控制器17可以使用一個(gè)或多個(gè)本地服務(wù)功能和一個(gè)或多個(gè)遠(yuǎn)程服務(wù)功能來建立域間服務(wù)鏈。例如,在圖1所示的網(wǎng)絡(luò)中服務(wù)鏈可以被定義為sfp=(sf1,sf2,sf3,sf4}。由于服務(wù)功能的本質(zhì)及其位置,數(shù)據(jù)包可能需要在兩個(gè)管理域13之間來回移動(dòng)。
在某些實(shí)施例中,邊界路由器14可以接收服務(wù)鏈中的數(shù)據(jù)包,基于數(shù)據(jù)包中標(biāo)識(shí)的服務(wù)功能路徑和服務(wù)索引來修改報(bào)頭(例如,nsh),以及將經(jīng)修改的數(shù)據(jù)包轉(zhuǎn)發(fā)到服務(wù)鏈中的另一管理域以提供域間服務(wù)功能鏈接。如下面詳細(xì)描述的,實(shí)施例可以將邊界節(jié)點(diǎn)14處的報(bào)頭重寫19用作服務(wù)功能以修改數(shù)據(jù)包。sfp可以例如在邊界節(jié)點(diǎn)14上用服務(wù)索引來實(shí)例化,該服務(wù)索引指向用下一個(gè)域和相關(guān)聯(lián)的sfp/服務(wù)索引細(xì)節(jié)來重寫報(bào)頭。當(dāng)需要時(shí)邊界節(jié)點(diǎn)14可以根據(jù)sfp重寫報(bào)頭,以及將數(shù)據(jù)包轉(zhuǎn)發(fā)到下一個(gè)域用于處理。sfpid和服務(wù)索引可以用來以正確的順序應(yīng)用正確的服務(wù)功能而不考慮服務(wù)功能的位置,從而提供域間服務(wù)功能鏈接。
應(yīng)當(dāng)理解,圖1所示的網(wǎng)絡(luò)僅僅是示例,并且在不脫離實(shí)施例的范圍的情況下,本文描述的實(shí)施例可以被實(shí)現(xiàn)在在包括不同網(wǎng)絡(luò)拓?fù)浠蚓W(wǎng)絡(luò)設(shè)備的網(wǎng)絡(luò)或者使用不同的網(wǎng)絡(luò)協(xié)議的網(wǎng)絡(luò)中。例如,可以具有任意數(shù)量或類型的管理域13、網(wǎng)絡(luò)18、服務(wù)節(jié)點(diǎn)10、或控制器17。這些實(shí)施例可以通過vxlan(虛擬可擴(kuò)展lan)、傳輸控制協(xié)議(tcp)、udp(用戶數(shù)據(jù)報(bào)協(xié)議)、或任何其他合適的運(yùn)輸操作。
圖2示出了可以用于實(shí)現(xiàn)本文描述的實(shí)施例的網(wǎng)絡(luò)設(shè)備20(例如,圖1中的邊界路由器14)的示例。在一個(gè)實(shí)施例中,網(wǎng)絡(luò)設(shè)備20是可以在硬件、軟件、或其任何組合中實(shí)現(xiàn)的可編程機(jī)器。網(wǎng)絡(luò)設(shè)備20包括一個(gè)或多個(gè)處理器22、存儲(chǔ)器24、網(wǎng)絡(luò)接口26、和重寫模塊19。
存儲(chǔ)器24可以是存儲(chǔ)供處理器22執(zhí)行和使用的各種應(yīng)用、操作系統(tǒng)、模塊、和數(shù)據(jù)的易失性存儲(chǔ)器或非易失性存儲(chǔ)器。例如,重寫模塊19的組件(例如,代碼、邏輯、軟件、固件等等)可以被存儲(chǔ)在存儲(chǔ)器24中。
邏輯可以被編碼在一個(gè)或多個(gè)有形介質(zhì)中用于由處理器22執(zhí)行。例如,處理器22可以執(zhí)行存儲(chǔ)在諸如存儲(chǔ)器24的計(jì)算機(jī)可讀介質(zhì)中的代碼。計(jì)算機(jī)可讀介質(zhì)可以是例如電子介質(zhì)(例如,ram(隨機(jī)存取存儲(chǔ)器)、rom(只讀存儲(chǔ)器)、eprom(可擦除可編程只讀存儲(chǔ)器))、磁介質(zhì)、光學(xué)介質(zhì)(例如,cd,dvd)、電磁介質(zhì)、半導(dǎo)體技術(shù)、或任何其他合適的介質(zhì)。在某些實(shí)施例中,邏輯可以被編碼在非暫態(tài)計(jì)算機(jī)可讀介質(zhì)中。
網(wǎng)絡(luò)接口26可以包括用于接收數(shù)據(jù)或向其他設(shè)備發(fā)送數(shù)據(jù)的任意數(shù)量的接口(線路卡、端口)。如圖1所示,邊界路由器19各自包括用于在服務(wù)鏈上發(fā)送數(shù)據(jù)包的接口。網(wǎng)絡(luò)接口26可以包括,例如用于連接到計(jì)算機(jī)或網(wǎng)絡(luò)的以太網(wǎng)接口。
應(yīng)當(dāng)理解,圖2中示出的和上文描述的網(wǎng)絡(luò)設(shè)備20僅僅是示例,并且可以使用網(wǎng)絡(luò)設(shè)備的不同配置。例如,網(wǎng)絡(luò)設(shè)備20還可以包括可操作來促進(jìn)本文描述的功能的硬件、軟件、算法、處理器、設(shè)備、組件或元件的任何適合的組合。
圖3是示出根據(jù)一個(gè)實(shí)施例的用于域間服務(wù)功能鏈接的過程的概述的流程圖。在步驟30處,位于第一管理域(例如,as1)中的網(wǎng)絡(luò)設(shè)備(例如,圖1中的邊界路由器14)接收在至少兩個(gè)不同管理域上延伸的服務(wù)功能鏈中的數(shù)據(jù)包。該數(shù)據(jù)包包括服務(wù)功能路徑標(biāo)識(shí)符和服務(wù)索引。邊界路由器14基于服務(wù)功能路徑標(biāo)識(shí)符和服務(wù)索引來修改數(shù)據(jù)包(步驟32)。邊界路由器14可以例如根據(jù)服務(wù)功能路徑重寫數(shù)據(jù)包報(bào)頭(例如,nsh)。然后,邊界路由器14將數(shù)據(jù)包轉(zhuǎn)發(fā)到在經(jīng)修改的數(shù)據(jù)包中指定的第二管理域(例如,as2),用于在第二管理域的服務(wù)功能鏈中處理數(shù)據(jù)包(步驟34)。
應(yīng)當(dāng)理解,圖3所示的和以上描述的流程圖僅僅是示例,并且步驟可以在不脫離實(shí)施例的范圍的情況下被添加、組合、或修改。
以下示例根據(jù)一個(gè)實(shí)施例描述了圖1的網(wǎng)絡(luò)中的域間服務(wù)功能鏈接的實(shí)現(xiàn)方式。服務(wù)路徑被定義為sfp={sf1,sf2,sf3,sf4}。由于服務(wù)功能的本質(zhì)及其位置,數(shù)據(jù)包需要在兩個(gè)管理域(as1、as2)之間來回移動(dòng)。當(dāng)sfp被實(shí)例化時(shí),邊界節(jié)點(diǎn)14被命令基于服務(wù)索引重寫域id和服務(wù)路徑id。例如,托管sf1的服務(wù)節(jié)點(diǎn)sn1被命令在將數(shù)據(jù)包處理為sfp的一部分之后在服務(wù)鏈上發(fā)送該數(shù)據(jù)包到邊界1。邊界1可以如下被編程:
邊界1:
when{sfp-id=100}{
when{service_index=2}{
rewritenshheader;
setsfp-id=200;
setservice_index=3;
forwardtoborder2;
}
when{service_index=6){
setservice_index=7;
forwardtosn3;
}
when{service_index=8}{
rewritenshheader;
setsfp-id=200;
setservice_index=9;
forwardtoborder2;
}
邊界2可以如下被編程:
when{sfp-id=200}{
when{service_index=3}{
setservice_index=4;
fowardtosn2;
}
when{service_index=5}{
rewritenshheader;
setsfp-id=100;
setservice_index=6;
forwardtoborder1;
}
when{service_index=9}{
setservice_index=10;
forwardtosn4;
}
圖4示出了基于上述服務(wù)鏈和編程的數(shù)據(jù)包的處理。一旦在分類器12處接收到數(shù)據(jù)包,該分類器就對(duì)數(shù)據(jù)包進(jìn)行分類并且將sfpid標(biāo)識(shí)為100以待應(yīng)用(圖4中的步驟1)。分類器12將數(shù)據(jù)包轉(zhuǎn)發(fā)到服務(wù)節(jié)點(diǎn)sn1。服務(wù)節(jié)點(diǎn)sn1接收具有sfpid=100和服務(wù)索引(si)=1的數(shù)據(jù)包(步驟2)。在由服務(wù)功能sf1處理后,服務(wù)節(jié)點(diǎn)sn1將si增加(incrsi++)到2并且將數(shù)據(jù)包轉(zhuǎn)發(fā)到邊界1。邊界1用sfpid=200重寫nsh,將si增加到3,并且將數(shù)據(jù)包轉(zhuǎn)發(fā)到邊界2(步驟3)。一旦接收到數(shù)據(jù)包,邊界2就將si增加到4,并且將數(shù)據(jù)包轉(zhuǎn)發(fā)到服務(wù)節(jié)點(diǎn)sn2(步驟4)。服務(wù)節(jié)點(diǎn)sn2接收具有sfpid=200和服務(wù)索引=4的數(shù)據(jù)包(步驟5)。在由服務(wù)功能sf2處理后,服務(wù)節(jié)點(diǎn)sn2將si增加到5,并且將數(shù)據(jù)包轉(zhuǎn)發(fā)到邊界2。然后,邊界2用sfpid=100重寫nsh報(bào)頭,將si增加到6并且將數(shù)據(jù)包轉(zhuǎn)發(fā)到邊界1(步驟6)。一旦接收到數(shù)據(jù)包,邊界1就將si增加到7,并且將數(shù)據(jù)包轉(zhuǎn)發(fā)到服務(wù)節(jié)點(diǎn)sn3(步驟7)。服務(wù)節(jié)點(diǎn)sn3接收具有sfpid=100和服務(wù)索引=7的數(shù)據(jù)包(步驟8)。在由服務(wù)功能sf3處理后,服務(wù)節(jié)點(diǎn)sn3將si增加到8,并且將數(shù)據(jù)包轉(zhuǎn)發(fā)到邊界1。邊界1用sfpid=200重寫nsh報(bào)頭,將si增加到9并且將數(shù)據(jù)包轉(zhuǎn)發(fā)到邊界2(步驟9)。之后,邊界2然后將si增加到10,并且將數(shù)據(jù)包轉(zhuǎn)發(fā)到服務(wù)節(jié)點(diǎn)sn4(步驟10)。服務(wù)節(jié)點(diǎn)sn4接收具有sfpid=200和服務(wù)索引=10的數(shù)據(jù)包(步驟11)。在由服務(wù)功能sf4處理之后,服務(wù)節(jié)點(diǎn)sn4解封裝該數(shù)據(jù)包(例如,移除nsh),并且將數(shù)據(jù)包轉(zhuǎn)發(fā)到出口節(jié)點(diǎn)16。
如上文所述,本文描述的實(shí)施例可以在包括兩個(gè)以上管理域的網(wǎng)絡(luò)中實(shí)現(xiàn)。圖5示出了涉及三個(gè)自治系統(tǒng)(as1、as2、as3)的示例。在該示例中,每個(gè)as包括一個(gè)服務(wù)節(jié)點(diǎn)和一個(gè)服務(wù)功能。
一旦接收到數(shù)據(jù)包,分類器12就將數(shù)據(jù)包分類,并且將sfpid標(biāo)識(shí)為100以待應(yīng)用(圖5中的步驟1)。分類器12將數(shù)據(jù)包轉(zhuǎn)發(fā)到sn1。服務(wù)節(jié)點(diǎn)sn1接收具有sfpid=100和服務(wù)索引(si)=1的數(shù)據(jù)包(步驟2)。在由服務(wù)功能sf1處理后,服務(wù)節(jié)點(diǎn)sn1將si增加到2并且將數(shù)據(jù)包轉(zhuǎn)發(fā)到邊界1。邊界1用sfpid=200重寫nsh,將si增加到3并且將數(shù)據(jù)包轉(zhuǎn)發(fā)到邊界2(步驟3)。一旦接收到數(shù)據(jù)包,邊界2就將si增加到4,并且將數(shù)據(jù)包發(fā)送到sn2(步驟4)。服務(wù)節(jié)點(diǎn)sn2接收具有sfpid=200和服務(wù)index=4的數(shù)據(jù)包(步驟5)。在由服務(wù)功能sf2處理后,服務(wù)節(jié)點(diǎn)sn2將si增加到5,并且將數(shù)據(jù)包發(fā)送到邊界3。然后,邊界3用sfpid=300重寫nsh報(bào)頭,將si增加到6并且將數(shù)據(jù)包轉(zhuǎn)發(fā)到邊界4(步驟6)。一旦接收到數(shù)據(jù)包,邊界4就將si增加到7并且將數(shù)據(jù)包轉(zhuǎn)發(fā)到服務(wù)節(jié)點(diǎn)sn3(步驟7)。服務(wù)節(jié)點(diǎn)sn3接收具有sfpid=300和服務(wù)索引=7的數(shù)據(jù)包(步驟8)。在由服務(wù)功能sf3處理之后,服務(wù)節(jié)點(diǎn)對(duì)數(shù)據(jù)包進(jìn)行解封裝(例如,移除nsh),并且將數(shù)據(jù)包轉(zhuǎn)發(fā)到出口節(jié)點(diǎn)16。
如從上述內(nèi)容可以看出,本文描述的實(shí)施例提供了許多優(yōu)點(diǎn)。一個(gè)或多個(gè)實(shí)施例允許服務(wù)鏈在任意數(shù)量的管理域上延伸,并且以任何順序傳遞到這些管理域中的任何部分而無需在域之間進(jìn)行地址泄露,因而在域之間保留了隱私。此外,由于數(shù)據(jù)包在離開第一域時(shí)被修改,所以無需對(duì)第二域的入口節(jié)點(diǎn)進(jìn)行分類。
盡管已經(jīng)根據(jù)示出的實(shí)施例描述了方法和裝置,但本領(lǐng)域普通技術(shù)人員將很容易認(rèn)識(shí)到,在不脫離本發(fā)明的范圍的情況下可以對(duì)實(shí)施例做出改變。因此,意在以上描述中所包含的和在附圖中示出的所有內(nèi)容應(yīng)被理解為是說明性的而不是限制性的。