新聞中心

EEPW首頁(yè) > 測(cè)試測(cè)量 > 設(shè)計(jì)應(yīng)用 > BGP4+協(xié)議及一致性測(cè)試

BGP4+協(xié)議及一致性測(cè)試

——
作者:吳英樺 時(shí)間:2006-07-22 來(lái)源:中國(guó)多媒體通信 收藏
一 概述

  下一代互聯(lián)網(wǎng)將以IPv6為核心技術(shù),IPv6網(wǎng)絡(luò)的形成是一個(gè)漸進(jìn)的發(fā)展過(guò)程,這個(gè)過(guò)程的第一步是穿過(guò)IPv4網(wǎng)絡(luò)的“海洋”連接各個(gè)IPv6實(shí)驗(yàn)網(wǎng)“孤島”,第二步是在IPv6商業(yè)網(wǎng)絡(luò)逐步建立的情況下,實(shí)現(xiàn)不同運(yùn)營(yíng)商IPv6網(wǎng)絡(luò)的互聯(lián),同時(shí)實(shí)現(xiàn)運(yùn)營(yíng)商網(wǎng)絡(luò)內(nèi)部不同IPv6自治域之間的互聯(lián),通過(guò)逐步的互聯(lián)使網(wǎng)絡(luò)的規(guī)模不斷擴(kuò)大,最終形成統(tǒng)一的IPv6大網(wǎng)。

  支持IPv6的邊界網(wǎng)關(guān)協(xié)議()是支持上述幾種互聯(lián)方式的唯一的IPv6域間路由協(xié)議,對(duì)于實(shí)現(xiàn)IPv6網(wǎng)的互聯(lián)互通、完成IPv4到IPv6網(wǎng)絡(luò)技術(shù)的平穩(wěn)過(guò)渡起著非常關(guān)鍵的作用。是對(duì)BGP4協(xié)議的擴(kuò)展,沿用了RFC1771中規(guī)定的BGP4的基本消息格式,增加了RFC2858規(guī)定的用于傳送IPv6路由信息的擴(kuò)展屬性,并按照RFC1771中的規(guī)定對(duì)所有IPv6路由進(jìn)行處理,同時(shí)支持RFC1966、RFC1997等協(xié)議中規(guī)定的BGP路由反射、BGP聯(lián)盟等擴(kuò)展功能。

  建立會(huì)話連接的兩個(gè)路由器可以位于一個(gè)自治域內(nèi),也可以位于不同的自治域邊界上,前者構(gòu)成了兩個(gè)IBGP4+對(duì)等體,后者構(gòu)成了兩個(gè)EBGP4+對(duì)等體。兩個(gè)BGP4+對(duì)等體之間使用TCP協(xié)議建立傳輸層的連接,本地監(jiān)聽(tīng)TCP的179端口,在TCP連接之上傳送BGP4+協(xié)議消息。

  BGP4+協(xié)議的內(nèi)容包含三方面的規(guī)定:一是消息傳送規(guī)程的規(guī)定,二是路由處理方面的規(guī)定,三是消息格式的規(guī)定。下文將就這三方面的規(guī)定做簡(jiǎn)要介紹。此外,由于BGP4+在IPv6網(wǎng)的發(fā)展階段有獨(dú)特的重要作用,對(duì)IP路由器進(jìn)行BGP4+協(xié)議一致性檢驗(yàn)是非常必要和重要的,因此本文對(duì)一致性的內(nèi)容也將做簡(jiǎn)要說(shuō)明。

二  通信規(guī)程

  BGP4+規(guī)定了一個(gè)簡(jiǎn)單而高效的通信規(guī)程,主要包括連接的建立、保持和斷開(kāi)方面的規(guī)定。

  BGP4+對(duì)等體向?qū)Χ税l(fā)送OPEN消息,其中包含協(xié)議版本號(hào)、連接保持時(shí)間、本地的路由器標(biāo)識(shí)符、認(rèn)證信息等,對(duì)端如果接受這些參數(shù),就回復(fù)KEEPALIVE消息確認(rèn)連接的建立。

  BGP4+會(huì)話連接成功地建立之后,路由器可以將需要建立或刪除的路由信息通過(guò)UPDATE消息傳送到對(duì)端。如果沒(méi)有路由信息需要傳送,路由器要定期向?qū)Χ税l(fā)送KEEPALIVE消息,以便保持連接的激活狀態(tài)。

  對(duì)端路由器收到UPDATE消息后,如果認(rèn)為路由信息正確,則在完成本地的路由處理后向其他BGP4+對(duì)等體轉(zhuǎn)發(fā)路由信息;如果認(rèn)為路由信息有錯(cuò),則回復(fù)一個(gè)NOTIFICATION消息報(bào)告錯(cuò)誤狀態(tài)。

  BGP4+會(huì)話連接的斷開(kāi)存在兩種情況,一種是在超過(guò)了一個(gè)規(guī)定的時(shí)間后,在既沒(méi)收到路由也沒(méi)收到KEEPALIVE消息的情況下自動(dòng)斷開(kāi)連接;還有一種情況是在收到NOTIFICATION消息后斷開(kāi)連接,終止BGP4+會(huì)話關(guān)系。 

 
三  路由處理規(guī)程

  由于路由信息均通過(guò)UPDATE消息傳送,因此路由處理方面的規(guī)定主要是針對(duì)UPDATE消息進(jìn)行的處理。從下文UPDATE消息的格式上可以看出,隨路由一同傳來(lái)的還有路由的屬性,包括路由的來(lái)源、經(jīng)過(guò)的自治域、路由的本地優(yōu)先級(jí)、權(quán)值等信息,根據(jù)這些信息確定路由的有效性,決定是否向本地路由庫(kù)中添加路由或刪除某個(gè)路由、是否向其他BGP4+對(duì)等體轉(zhuǎn)發(fā)路由以及如何轉(zhuǎn)發(fā),隨后完成一系列相關(guān)動(dòng)作。路由處理上主要包括下列功能:

  1.路由轉(zhuǎn)發(fā)

  路由器收到UPDATE消息后,如果確認(rèn)路由有效,則在本地的路由表中增加或刪除相應(yīng)路由,同時(shí)將路由信息向其他BGP4+對(duì)等體轉(zhuǎn)發(fā)。如果收到的路由信息來(lái)自EBGP4+對(duì)等體,則要向其他所有EBGP4+對(duì)等體和自治域內(nèi)的所有的IBGP4+對(duì)等體轉(zhuǎn)發(fā)路由;如果路由來(lái)自IBGP4+對(duì)等體,則向所有EBGP4+對(duì)等體轉(zhuǎn)發(fā)路由,不把路由轉(zhuǎn)發(fā)給自治域內(nèi)的其他任何IBGP4+對(duì)等體。

  2.路由選擇

  如果路由器收到了兩個(gè)不同的BGP4+對(duì)等體發(fā)來(lái)的同一條路由,就要選擇其中的一條做為本地路由并向其他對(duì)等體轉(zhuǎn)發(fā),路由選擇遵循如下幾條主要原則

 ?。?)外部對(duì)等體發(fā)來(lái)的路由優(yōu)于內(nèi)部對(duì)等體發(fā)來(lái)的路由;

 ?。?)對(duì)于從外部對(duì)等體收到的路由,優(yōu)先選擇MULTI-EXIT-DISC值低的路由(應(yīng)注意此時(shí)兩條路由應(yīng)來(lái)自同一個(gè)外部自治域,否則不具備可比較性);

 ?。?)對(duì)于所有從內(nèi)部對(duì)等體收到的路由,優(yōu)先選擇LOCAL-PREF值高的路由;

 ?。?)能夠根據(jù)預(yù)先設(shè)置的策略優(yōu)先選擇某個(gè)路由;

 ?。?)在所有可比較條件均相同的情況下,根據(jù)BGP4+標(biāo)識(shí)符打破平局,選擇BGP4+標(biāo)識(shí)符值低的路由。

  3.重疊路由處理

  如果路由器收到了兩個(gè)不同的BGP4+對(duì)等體發(fā)來(lái)的兩條重疊路由,通常要選擇更精確(more specific)的路由,即地址前綴更長(zhǎng)的路由。

  4.路由聚合

  路由器收到兩個(gè)不同的BGP4+對(duì)等體發(fā)來(lái)的兩條路由后,如果發(fā)現(xiàn)兩條路由可以聚合,則要將他們聚合起來(lái)轉(zhuǎn)發(fā)給第三方,同時(shí)要在UPDATE消息中對(duì)聚合的路由正確地賦予ORIGIN、AS_PATH等路由屬性字段的值。

  5.路由傳送流量控制

  路由器既要傳送BGP4+等控制信息,又要傳送用戶IP業(yè)務(wù)流,兩類數(shù)據(jù)的傳送和處理是共享線路帶寬和節(jié)點(diǎn)設(shè)備資源的,控制信息的過(guò)多傳送會(huì)影響用戶IP業(yè)務(wù)的質(zhì)量,因此BGP4+中規(guī)定了路由傳送的流量控制策略,設(shè)置了若干個(gè)計(jì)時(shí)器,保證建立路由的UPDATE消息的傳送會(huì)間隔一定時(shí)間,同時(shí)保證刪除路由的UPDATE消息立即傳送,不受時(shí)間間隔約束。

  6.路由反射

  BGP4+協(xié)議要求IBGP4+對(duì)等體收到來(lái)自其他自治域的路由消息后,要轉(zhuǎn)發(fā)給本自治域內(nèi)的所有IBGP4+對(duì)等體,這就意味著IGBP4+對(duì)等體之間要建立全網(wǎng)狀的連接,這對(duì)網(wǎng)絡(luò)的擴(kuò)展顯然是不利的。因此,RFC1966中規(guī)定了一個(gè)擴(kuò)展的功能,即將IBGP4+對(duì)等體分成若干組,每組選一個(gè)路由器做為反射路由器(RR),其他路由器為客戶(Client)。

  協(xié)議規(guī)定,RR之間建立網(wǎng)狀連接,組與組之間路由的轉(zhuǎn)發(fā)要通過(guò)RR;在組內(nèi),以RR為核心建立星型連接,client之間路由的傳遞要通過(guò)RR轉(zhuǎn)發(fā),組內(nèi)這種路由信息的傳送方式被形象地比喻為“反射“。通過(guò)這種方式保證了路由信息送達(dá)所有的IBGP4+對(duì)等體,同時(shí)避免了所有IBGP4+對(duì)等體的全網(wǎng)狀連接。RFC1966對(duì)主要的處理功能進(jìn)行了規(guī)定。

  7.BGP聯(lián)盟

  解決IBGP4+自治域內(nèi)所有對(duì)等體全網(wǎng)狀互連的另一個(gè)方式是使用BGP聯(lián)盟,即將一個(gè)自治域劃分為若干子域,使自治域成為多個(gè)子域構(gòu)成的聯(lián)盟。子域內(nèi)部的對(duì)等體可進(jìn)行網(wǎng)狀互聯(lián),子域之間不需要網(wǎng)狀互聯(lián)。聯(lián)盟對(duì)外使用一個(gè)統(tǒng)一的AS號(hào),對(duì)內(nèi)為每個(gè)子域分配了內(nèi)部的AS號(hào)。同時(shí),在BGP消息中還規(guī)定了一個(gè)COMMUNITIES屬性,利用這個(gè)屬性的值來(lái)控制路由信息傳播的范圍。RFC1997對(duì)相關(guān)的路由處理功能進(jìn)行了規(guī)定。

四  消息格式

  BGP消息分為四類,即OPEN、UPDATE、KEEPALIVE和NOTIFICATION,消息功能分別如下

 ?。?)Open:用于請(qǐng)求建立BGP4+會(huì)話連接;

 ?。?)Update:用于傳送建立或刪除路由的信息;

 ?。?)Notification:在出現(xiàn)路由差錯(cuò)時(shí)向?qū)Χ税l(fā)送通知,同時(shí)將出錯(cuò)原因告知對(duì)端;

  (4)Keepalive:為保持激活狀態(tài)而傳送的消息,此外建立連接時(shí)做Open消息的響應(yīng)。

  四類消息采用通用的BGP4+消息格式,消息由標(biāo)簽(marker)、消息長(zhǎng)度、消息類型、消息體四個(gè)部分構(gòu)成,前三個(gè)部分構(gòu)成了BGP4+消息的通用消息頭。

  BGP4+通用消息頭中,各個(gè)字段的功能如下:

 ?。?)       Marker – 包含信息接收端可預(yù)測(cè)值,例如認(rèn)證信息;

 ?。?)       Length – 以字節(jié)為單位的包括消息頭在內(nèi)的消息總長(zhǎng)度;

 ?。?)       Type – 消息類型代碼?!?”為Open消息,“2”為UPDATE消息,“3”為NOTIFICATION消息,“4”為KEEPALIVE。 

 



  1.Open消息格式

  OPEN消息用于發(fā)起建立BGP會(huì)話連接 

 



  Open消息中各個(gè)字段的功能如下:

 ?。?)       ersion :指明發(fā)端路由器使用的協(xié)議版本號(hào);

 ?。?)       My Autonomous System :指明發(fā)端路由器的本地AS號(hào);

 ?。?)       Hold Time :發(fā)端路由器建議的保持激活時(shí)間;

 ?。?)       BGP Identifier :發(fā)端路由器的標(biāo)識(shí)符;

 ?。?)       OptParmLen :指明以字節(jié)為單位的可選參數(shù)字段的長(zhǎng)度;

  (6)       Optional Parameters :其中包含一些可選參數(shù),例如認(rèn)證信息等。
2.UPDATE消息格式

  BGP4+協(xié)議中所有的路由信息都是通過(guò)UPDATE消息傳送的。



 

  UPDATE消息中各個(gè)字段的功能如下:

  (1)不可達(dá)路由長(zhǎng)度:指明刪除路由字段的長(zhǎng)度,以字節(jié)為單位;

 ?。?)刪除路由:其中包含若干需要?jiǎng)h除的IPv4路由的地址前綴,如果單純傳送IPv6路由,這一字段可以為空;

 ?。?)路徑屬性總長(zhǎng)度:指明路徑屬性字段的長(zhǎng)度,以字節(jié)為單位;

 ?。?)路徑屬性:其中包含與路由相關(guān)的參數(shù)以及IPv6路由信息;

 ?。?)網(wǎng)絡(luò)層可達(dá)信息:其中包含若干需要建立的IPv4路由的地址前綴,如果單純傳送IPv6路由,這一字段可以為空。

  BGP4+是對(duì)BGP4協(xié)議的擴(kuò)展,不使用BGP4定義的刪除路由和網(wǎng)絡(luò)層可達(dá)信息字段來(lái)傳送路由,IPv6路由及相關(guān)的參數(shù)均通過(guò)路徑屬性中的字段來(lái)傳送。路徑屬性字段中的主要子字段及其功能如下:

 ?。?)ORIGIN:指明路由的來(lái)源,來(lái)自自治域內(nèi)、自治域外,或通過(guò)其他途徑得到;

 ?。?)AS_PATH:路由經(jīng)過(guò)的自治域的列表;

 ?。?)NEXT_HOP:IPv4路由的下一跳地址,如果單純傳送IPv6路由,此字段可以為空;

 ?。?)MULT_EXIT_DISC(MED):來(lái)自自治域外的路由的權(quán)值,進(jìn)行路由選擇時(shí),MED值較低的路由被優(yōu)先選擇;

 ?。?)LOCAL_PREF:本自治域內(nèi)路由的優(yōu)選等級(jí),進(jìn)行路由選擇時(shí),此值較高的路由被優(yōu)先選擇;

 ?。?)ATOMIC_AGGREGATE:如果路由器選擇了一個(gè)較低精確度(less specific)的路由,而不是選擇較高精確度的路由,則傳送路由時(shí)用這一屬性通知其他路由器;

  (7)MP_REACH_NLRI:其中包含若干個(gè)需要建立的IPv6路由的地址前綴及其下一跳地址;

  (8)MP_UNREACH_NLRI:其中包含若干個(gè)需要?jiǎng)h除的IPV6路由的地址前綴。 

 

3.NOTIFICATION消息格式

  Notification消息主要用于發(fā)送差錯(cuò)通知。

  消息中各個(gè)字段的功能如下:

 ?。?)Error Code : 錯(cuò)誤類型代碼;

  (2)Error Subcode :某種錯(cuò)誤類型下具體的出錯(cuò)原因的代碼;

 ?。?)Data :包含與出錯(cuò)類型有關(guān)的診斷用信息,例如,如果收端路由器發(fā)現(xiàn)UPDATE消息中的某個(gè)屬性類型錯(cuò)誤,會(huì)將該屬性的類型、長(zhǎng)度和值復(fù)制到Data字段中傳送給發(fā)端路由器。

  BGP4+中規(guī)定的錯(cuò)誤類型有如下六種:

  (1)消息頭錯(cuò)誤 :消息頭中的差錯(cuò)包括marker字段出現(xiàn)錯(cuò)誤值、Type字段出現(xiàn)未定義的消息類型值、Length字段的值有錯(cuò)等等;

 ?。?)Open消息錯(cuò)誤 :指Open消息中出現(xiàn)了不可識(shí)別的協(xié)議版本號(hào)、AS號(hào)、路由器標(biāo)識(shí)符、不可接受的計(jì)時(shí)器值等等;

  (3)Update消息錯(cuò)誤:指UPDATE消息中出現(xiàn)了屬性格式錯(cuò)誤、屬性值不可識(shí)別或不合理、缺少了某些必備屬性等情況;

 ?。?)保持激活計(jì)時(shí)器超時(shí) :指在規(guī)定的保持激活時(shí)間范圍內(nèi)沒(méi)收到對(duì)端路由器發(fā)來(lái)的Keepalive消息;

 ?。?)有限狀態(tài)機(jī)錯(cuò)誤:指路由器發(fā)現(xiàn)的本地的某些故障狀態(tài),此時(shí)路由器會(huì)主動(dòng)用Notification消息向?qū)Χ税l(fā)送錯(cuò)誤通知;

  (6)終止(Cease):路由器在沒(méi)有任何故障的情況下,主動(dòng)向?qū)Χ税l(fā)送錯(cuò)誤類型為Cease的Notification消息,用于斷開(kāi)連接。

  4.KEEPALIVE消息格式

  Keepalive消息用于保持兩個(gè)路由器BGP4+會(huì)話連接的激活狀態(tài)。該消息只有消息頭,沒(méi)有消息體。路由器上有兩個(gè)計(jì)時(shí)器的值與保持激活有關(guān),即keepalive計(jì)時(shí)器和Hold Time計(jì)時(shí)器。KeepAlive計(jì)時(shí)器的缺省值為30秒,發(fā)端路由器在沒(méi)有任何消息需要發(fā)送的情況下,必須每隔30秒向?qū)Χ税l(fā)送一次keepalive消息,以便保持會(huì)話連接的激活狀態(tài);Hold Time計(jì)時(shí)器的缺省值為90秒,收端路由器如果超過(guò)90秒還未收到對(duì)端發(fā)來(lái)的keepalive消息,則發(fā)送Notification消息斷開(kāi)連接。

  將BGP4+協(xié)議對(duì)消息格式的規(guī)定與對(duì)通信規(guī)程、路由處理規(guī)程的規(guī)定相結(jié)合,我們可以清楚地看出BGP4+協(xié)議的概況。

五  協(xié)議一致性

  路由器進(jìn)行BGP4+的協(xié)議一致性,是為了檢驗(yàn)不同廠商開(kāi)發(fā)的IPv6路由器支持BGP4+協(xié)議的準(zhǔn)確性,判斷路由器完成的各種處理功能是否符合國(guó)際標(biāo)準(zhǔn)的規(guī)定。主要包括下列測(cè)試內(nèi)容:

  (1)連接建立功能測(cè)試:檢驗(yàn)路由器建立BGP4+會(huì)話連接的能力;

 ?。?)UPDATE消息格式:檢驗(yàn)傳送路由信息的UPDATE消息的格式是否符合BGP4+協(xié)議的規(guī)定;

 ?。?)UPDATE消息處理功能測(cè)試:檢驗(yàn)路由器是否能對(duì)UPDATE消息進(jìn)行正確的處理,完成防止不合理路由的擴(kuò)散、防止路由循環(huán)、正確處理路由權(quán)值及選路策略信息等方面的功能;

 ?。?)路由處理功能測(cè)試:檢驗(yàn)路由器建立、刪除、分發(fā)、轉(zhuǎn)發(fā)路由以及路由選擇、路由聚合、路由傳送流量控制等方面的功能是否符合協(xié)議的規(guī)定;

 ?。?)差錯(cuò)處理功能測(cè)試:檢驗(yàn)路由器在發(fā)現(xiàn)各種路由信息差錯(cuò)時(shí),能正確地向?qū)Χ税l(fā)送NOTIFICATION消息,以便對(duì)端了解出錯(cuò)原因并斷開(kāi)連接;

 ?。?)路由反射功能測(cè)試:檢驗(yàn)路由器是否支持路由反射功能,客戶間的路由是否能夠以反射的方式通過(guò)RR轉(zhuǎn)發(fā),自治域內(nèi)路由是否能到達(dá)每個(gè)IBGP4+對(duì)等體;

 ?。?)COMMUNITY屬性處理功能測(cè)試:檢驗(yàn)路由器是否能支持BGP聯(lián)盟并有效地控制路由信息的傳播范圍。

六  結(jié)束語(yǔ)

  目前國(guó)內(nèi)6Tnet、Cernet2、IPv6-CJ等實(shí)驗(yàn)網(wǎng)絡(luò)已經(jīng)建成,中國(guó)移動(dòng)、中國(guó)網(wǎng)通等運(yùn)營(yíng)商參與的CNGI工程也已經(jīng)展開(kāi),國(guó)內(nèi)IPv6商用網(wǎng)投入了建設(shè),國(guó)際上韓國(guó)和日本也推出了自己的IPv6商用網(wǎng)。隨著IPv6技術(shù)的逐步推廣,BGP4+協(xié)議的應(yīng)用也會(huì)越來(lái)越廣泛。

  鑒于BGP4+協(xié)議對(duì)于IPv6網(wǎng)絡(luò)的互聯(lián)互通以及IPv4向IPv6技術(shù)的平穩(wěn)過(guò)渡具有關(guān)鍵作用,信產(chǎn)部電信研究院標(biāo)準(zhǔn)研究所制定了《支持IPv6的路由協(xié)議測(cè)試方法——邊界網(wǎng)關(guān)協(xié)議(BGP4+)》行業(yè)標(biāo)準(zhǔn),用于檢驗(yàn)IPv6路由器支持BGP4+協(xié)議的能力。該行標(biāo)規(guī)定的測(cè)試方法已經(jīng)用于國(guó)內(nèi)一些實(shí)驗(yàn)網(wǎng)、商用網(wǎng)的組網(wǎng)設(shè)備選型測(cè)試以及信產(chǎn)部的IPv6路由器入網(wǎng)檢驗(yàn)工作中。






評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉