?? rfc1771.txt
字號:
無論何時BGP改變狀態從OpenConfirm到Idle,關閉BGP(傳輸層)連接同時釋放所有連
接占用的資源。
建立狀態:
在建立狀態,BGP交換UPDATE, NOTIFICATION,和KEEPALIVE消息到對端。
如果本的系統受到UPDATE或者KEEPALIVE消息,開啟Hold計時器,如果商議的Hold Time
值不是零。
如果本的系統受到NOTIFICATION消息,狀態轉換到Idle.
如果本的系統受到UPDATE消息,UPDATE消息的錯誤處理過程(見部分6。3)探測到錯誤,
本的系統發送NOTIFICATION消息,改變狀態到Idle。
如果斷開通告通過承載傳輸協議受到,本的系統改變狀態到Idle。
如果Hold計時器溢出,本的系統發送NOTIFICATION消息,錯誤碼是Hold Timer Expired ,
改變狀態到Idle。
如果KeepAlive計時器溢出,本的系統發送KEEPALIVE消息,重啟KeepAlive計時器。
每次本的系統發送KEEPALIVE或者UPDATE消息,重啟KeepAlive計時器,除非商議的計時
器值是零。
響應Stop事件(通過系統或者操作者初始化),本地系統發送NOTIFICATIOIN消息,錯
誤碼是Cease,改變狀態到Idle。
Start事件在Established狀態被忽略。
響應別的事件,本的系統發送NOTIFACATION消息,錯誤碼是Finite State Machine
Error,改變狀態到Idle。
無論何時P改變狀態從Established到Idle,關閉BGP(以及傳輸層)連接,釋放連接占
用的所有資源,刪除所有的連接產生的路由。
9. UPDATE 消息處理
UPDATE消息僅僅在建立狀態被接收。當一個UPDATE消息被接收,每一個域要有效性檢查,說
明見部分6。3。
如果可選的非轉發的屬性不認識,默默丟棄。如果可選轉發屬性不認識,屬性標志字節
設置部分位(第三個高位順序位),保留屬性公告到別的BGP發言者。
如果可選的屬性被認識,而且值有效,要根據可選參數的類型在本地處理,保留,,如果必
要的話,更新廣播到別的BGP發言者。
如果UPDATE消息包括非空的WITHDRAWN ROUTES域,先前廣播的路由如果目的地包括在這里面
需要從Adj-RIB_In中移出來。BGP發言者應該運行決策過程,原因是先前的公告路由不再可
用。
如果UPDATE消息包括了一個可用的路由,應該放在相應的Adj-RIB_In內部,同時做下面的步
驟:
i)如果網絡層可達信息(NLRI)和Adj-RIB_In的路由一樣,新路由應該替換老路由,這樣明
確撤銷了老路由的服務。BGP發言者運行決策過程,原因是老路由不再存在。
ii)如果新的路由重疊包含在Adj-RIB-In老路由內部(見9。1。4),BGP發言者應該運行決策
過程,因為更特殊路由使得原來的更不特殊路由的一部分不可用了。
iii)如果新路由有和Adj_RIB_In內包含的路由同樣的路徑屬性,并且更特殊(見9。1。4)。
不需要做任何事情。
iv)如果新路由的NLRI不同于Adj-RIB-In存儲的任何路由,新路由應該放入。BGP發言者應該
運行決策進程。
v)如果新路由是更不特別的重疊路由,BGP發言者應該運行對更不特殊的路由運行決策進程。
9.1 決策過程
決策過程選擇路由用于下一步的通告,方法是應用本地策略信息庫(PIB)的策略處理
Adj-RIB-In中的路由。決策過程的輸出是廣播到對端的路由集合;被選的路由存儲在
Adj-RIB-Out中。
選擇過程可以定義為一個函數,給定路由的屬性作為參數,返回非負的整數指示路由的優先
級別。計算路由優先級別的函數不能把以下的情況作為輸入:別的路由的存在,別的路由的
不存在,或者別的路由的路徑屬性。路由選擇對每一個可用路由運用優先程度算法,選擇最
高優先程度的路由。
決策過程操作Adj-RIB-In包括的路由中,同時負責:
-選擇路由通告到本地的AS中別的BGP發言者
-選擇路由通告到鄰居AS中的BGP發言者
-路由聚合和路由信息簡化
決策過程分三期,通過不同的事件觸發。
a)一期負責計算來自鄰居AS 的BGP發言者的每條路有的優先級,通告到在本地AS的
別的BGP發言者到每個確定的目的地的具有最高優先級的路由。
b)二期在一期完成的時候激活。負責從到達目的地的所有路由中選擇最好的路由,同時安裝
每個選擇的路由到相應的Loc-RIB。
c)在Loc-RIB修改后激活三期。負責發布Loc_RIB中的路由到鄰居AS的每個對端。路由聚合和
信息簡約在這期可選的執行。
9.1.1 Phase 1: 優先級的計算
無論何時本地的BGP發言者接受到鄰居AS的對端的通告新的路由,替代路由,測銷路由的
UPDATE消息,都要激活一期決策過程,
一期決策過程是獨立的過程,當沒有別的工作要做的時候就停止。
一期決策功能在操作任何包含路由之前鎖定Adj-RIB-In,在操作完成所有新的或者不可用的
路由之后,解開Adj-RIB-In。
每一個新收到或者替代的可用路由,本的BGP發言者應該確定一個優先級。如果路由是通過
本地AS的BGP發言者學習到的,或者LOCAL-PREF值被當作優先級,或者本地系統應該根據預
先配置的策略信息計算路由優先級。如果路由通過鄰居AS中的BGP發言者學習,優先級的計
算是根據預先配置的策略。策略信息的確切特性和相關計算是本地的問題。本的發言者應該
云內部更新過程9。2。1選擇并且通告最佳路由。
9.1.2 Phase 2: 路由選擇
第二期決策函數在第一期完成后激活。第二期函數是獨立的過程當沒有更進一步的工作要做
的時候就停止。第二期進程要考慮Adj_RIB_In中的所有路由,包括從自己的AS中和鄰居的AS
中的BGP發言者接收的路由。當運行第三期決策函數,第二期決策函數可以阻塞。第二期距
測函數應該在開始函數前鎖定所有的Adj-RIB-In,在完成后解開所有。
如果BGP路由的NEXT-HOP屬性描述了一個地址,在本地Loc-RIB中BGP發言者沒有路由,BGP
發言者應該排除在第二期決策函數外面。
為了Adj_RIB_In中的路由的每一個目的地集合,本地BGP發言者以確定路由:
a)對同一個目的地集和,最高優先級的路由,或者
b)是唯一的到目的的地路由,或者
c)是9.1.2.1.第二期解扣規則的選擇結果。
本地發言者應該安裝路由到Loc-RIB中,替代Loc-RIB中保存的任何道相同目的地的路由。本
地發言者必須根據選擇路由的NEXT-HOP屬性確定立即下一跳,通過查找IGP懸著IGP中的可能
的路徑。當安裝選擇路由在Loc_RIB中,立即下一跳必須被使用。如果NEXT-HOP屬性描述的
地址改變,路由選擇應該按照上面的說明重新計算。
不可用的路由應該從Loc-RIB中拿出,相應的不可用路由應該從Adj-RIBs-In拿出。
9.1.2.1 解扣(第二期)
在Adj-RIBs-In中一個BGP發言者可以有多個有相同的優先級的路由到同一個目的地。本
的發言者可以選擇包含在相應Loc-RIB中的一條路由。本地發言者認為所有的路由,不論是
鄰居AS的BGP發言者的路由,還是本地AS的BGP發言者的路由是一樣的。
下面的解扣過程假設一個自治系統的所有AS的每一個候選路由能夠確定到NEXT-HOP屬性描
述的地址的路徑代價(內部距離)。根據下面的算法解扣。
a)如果本地系統配置考慮MULTI_EXIT_DISC,候選路由的MULTI_EXIT_DISC 屬性不同,選擇
MULTI_EXIT_DISC屬性值最小的。
b)否則,選擇到路與歐的NEXT-HOP屬性描述的入口的代價(內部距離)最小的。如果有幾個
路由有相同的代價,按照下面的過程解扣
-如果最少有一個路由是通過鄰居AS的BGP發言者通告的,選擇鄰居AS的BGP發言者通告的鱸
魚哦,如果BGP的標示符的值是所有鄰居AS的BGP發言者中最小的。
-否則,選者BGP標示符最小的BGP發言者通告的路由。
9.1.3 Phase 3: 路由分發
第三期路由決策過程可以被第二期的完成激活,或者下面的事件發生:
a)Loc-RIB中的到本地目的地的路由改變。
b)當本地產生的通過BGP以外的方式學習的路由改變。
C)當新的BGP發言者-BGP發言者連接建立。
第三期函數是獨立的過程當沒有進一步的工作去做的時候停止。第三期路由決策過程應該被
阻塞,如果第二期決策過程在運行。
所有的Loc-RIB中的路由應該被處理到相應的到Adj-RIBs-Out的入口。路由聚合和信息簡約
技術(見9.2.4.1) 可選執行。
為了更好支持未來的AS間多播能力,參加AS間多播路由的BGP發言者應該通告他
從外部對端收到的路由同時如果安裝在Loc-RIB內,因該通告到接收路由的對端。對
沒有參加AS間多播路由的BGP發言者這個通告是可選的。如果做這樣一個通告,NEX
T-HOP屬性應該被設置為對端地址。應用可以優化這個通告,組合AS-PATH屬性
的信息不但包括自己的AS號碼而且通告路由的對端的AS號碼(這個組合要求ORIGI
N屬性被設置為INCOMPLETE)。另外,應用不需要傳遞可選的或者自決的路徑屬
性在這種通告中 。
當Adj-RIBs-Out更新而且轉發信息庫(FIB)完成,本地BGP發言者應該運行外部更新
進程9。2。2。
9.1.4 路由覆蓋
BGP發言者可以傳送具有重疊的網絡層可達信息(NLRI)的路由到別的BGP發言者。
NLRI重疊產生于一些列目的地對非匹配的多個路由是唯一的。由于BGP使用IP前綴
對NLRI編碼,重疊一般要展示子網關系。路由描述了更小范圍的目的地(更長的前綴)
稱為更特別路由,路由描述了更大范圍的目的地(更短的前綴)成為更一般路由。反之同樣。
這種優先關系有效分解了更一般路由為兩部分:
-一系列目的地,僅僅使用更一般路由描述。
-一系列路由,使用更一般和更特殊路由的重疊描述。
當重疊路由發生在同樣的Adj-RIB-In,更特殊的路由應該有優先權,順序是更特殊到更一般。
重疊描述的目的地的集合表明一部分更一般路由是可用的,但是當前不可用。如果一個更特
殊的路由后來撤銷了,重疊描述的目的地的集合將可以使用更一般的路由到達。
如果BGP發言者接收了重疊路由,決策過程應該考慮重疊路由的語義。特別是,如果BG
P發言者接收了同一個對端的更一般的路由同時拒絕了更特殊的路由,那末重疊表示的目的
地可能不轉發到路由的AS-PATH屬性列出的AS那里。因此,BGP發言者可以由下
面選擇:
a)同時安裝更一般和更特殊的路由
b)只安裝更特殊的路由
c)只安裝更一般路由的非重疊部分(這意味著解聚和)
d)聚合著兩條路由同時安裝聚合路由
e)安裝更一般的路由
f)都不安裝
如果一個BGP發言者選擇e),應該加入ATOMIC-AGGREGATE屬性到路由中。承載
ATOMIC-AGGREGATE屬性的路由不能被解聚和。也就是說,路由的NLRI不能被是更特殊。向這
個路由轉發不保證IP包實際沿著路由的AS-PATH屬性列出的AS中轉。如果BGP發言者選擇a),
必須不在通告更特殊的路由的時候通告更一般的路由。
9.2 Update發送過程
Update-Send 進程負責通告UPDATE消息到所有的對端。例如,他發布決策進程選擇的路由到
位于同樣的自治系統或者鄰居自治系統的BGP發言者。不同自治系統的BGP發言者之間信息交
換的法則參看9。2。2;相同自治系統的BGP發言者之間信息交換的法則參看9。2。1。
在BGP發言者集合之間的路由信息的發布,所有BGP發言者如果在同一個自治系統,稱為內部
發布。
9.2.1 內部更新
內部更新進程是發布路由信息到本地自治系統的BGP發言者。
當BGP發言者從在本地自治系統的別的BGP收到了UPDATE消息,接收BGP發言者不應該再分配
UPDATE消息中的路由信息道別的本地自治系統的BGP發言者。
當BGP發言者接收了鄰居自治系統的BGP發言者的一條新的路由,如果下面的情況之一發生,
應該使用UPDATE消息通告路由到本的自治系統的所有的BGP發言者:
1) 本地BGP發言者安排給新接收的路由的優先程度高于本
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -