?? rfc1771.txt
字號:
組織:中國互動出版網(http://www.china-pub.com/)
RFC文檔中文翻譯計劃(http://www.china-pub.com/compters/emook/aboutemook.htm)
E-mail:ouyang@china-pub.com
譯者:kevin73(kevin73,panzhenyu_2@263.net)
譯文發布時間:2001-4-26
版權:本中文翻譯文檔版權歸中國互動出版網所有。可以用于非商業用途自由轉載,但必須
保留本文檔的翻譯及版權信息。
Network Working Group Y. Rekhter
Request for Comments: 1771 T.J. Watson Research Center, IBM Corp.
Obsoletes: 1654 T. Li
Category: Standards Track cisco Systems
Editors
March 1995
邊界網關協議版本4(BGP-4)
(RFC1771 A Border Gateway Protocol 4 (BGP-4))
本備忘錄的狀態
本文檔講述了一種Internet社區的Internet標準跟蹤協議,它需要進一步進行討論和
建議以得到改進。請參考最新版的“Internet正式協議標準” (STD1)來獲得本協議的標準
化程度和狀態。本備忘錄的發布不受任何限制。
摘要
本文檔,以及隨同文檔,“邊檢網關協議在互聯網中的應用”,定義了互聯網的自治系
統間路由協議。
目錄
1. 致謝 3
2. 介紹 3
3. 操作總結 4
3.1 路由:通告和存儲 5
3.2 路由信息庫 5
4. 消息格式 5
4.1 消息頭格式 6
4.2 OPEN消息格式 6
4.3 UPDATE消息格式 8
4.4 KEEPALIVE消息格式 13
4.5 NOTIFICATION消息格式 13
5. 路徑屬性 15
5.1 路徑屬性使用 16
5.1.1 ORIGIN 16
5.1.2 AS-PATH 16
5.1.3 NEXT-HOP 16
5.1.4 MULTI-EXIT-DISC 17
5.1.5 LOCAL_PREF 17
5.1.6 ATOMIC_AGGREGATE 17
5.1.7 AGGREGATOR 18
6. BGP錯誤處理 18
6.1 消息頭錯誤處理. 18
6.2 OPEN 消息錯誤處理 19
6.3 UPDATE 消息錯誤處理 19
6.4 NOTIFICATION 消息錯誤處理 20
6.5 HOLD TIMER 溢出錯誤處理 20
6.6 有限狀態及錯誤處理. 20
6.7 終止 21
6.8 連接沖突檢測 21
7. BGP版本商議 21
8. BGP 有限狀態機 22
9. UPDATE 消息處理 25
9.1 決策過程 26
9.1.1 Phase 1: 優先級的計算 26
9.1.2 Phase 2: 路由選擇 27
9.1.3 Phase 3: 路由分發 28
9.1.4 路由覆蓋 29
9.2 UPDATE發送過程 29
9.2.1 內部更新 30
9.2.2 外部更新 31
9.2.3 控制路由流量開銷 31
9.2.4 路由信息的有效組織 32
9.3 路由選擇標準 34
9.4 產生BGP路由 34
附錄 1. BGP FSM 狀態轉換和行為 34
附錄 2. 對比RFC1267 37
附錄 3. 對比RFC1663 38
附錄4. 對比 RFC 1105 38
附錄5. BGP可能使用的TCP選項 39
附錄6. 應用建議 39
6.1 每個消息的多網絡前綴 39
6.2 使用流協議 40
6.3 減少路由抖動 40
6.4 BGP 計時器 40
6.5 路徑屬性順序 40
6.6 AS_SET 排序 41
6.7 版本商議控制 41
6.8 復雜 AS_PATH 聚合 41
參考 41
安全考慮 42
作者地址 42
1. 致謝
本文檔初版是1991年10月的RFC1267,由Kirk Lougheed (cisco 系統) 和 Yakov
Rekhter (IBM)合作。
我們意欲感謝Guy Almes (ANS), Len Bosack(cisco 系統), 和Jeffrey C. Honig
(Cornell 大學) 對本文檔早期版本的貢獻。
我們特別感謝Bob Braden (ISI) 回顧本文檔的早期版本并作出了建設性有價值的評論。
我們同時感謝Bob Hinden, Internet Engineering Steering Group路由主管, 以及他
組織回顧早期版本(BGP-2)的小組。本小組,包括Deborah Estrin, Milo Medin, John Moy,
Radia Perlman, Martha Steenstrup, Mike St. Johns, 和 Paul Tsuchiya, 工作頑強專
業謙遜。
本文檔作為更新版本是編者Yakov Rekhter and Tony Li 的IETF IDR 工作組的產品。
本文檔某些部分廣泛參考了IDRP[7],BGP的OSI對等協議。為此感謝ANSI X3S3.3 組,主席
是Lyman Chapin (BBN), 編輯是Charles Kunzinger(IBM Corp.)。 同時感謝Mike Craren
(Proteon, Inc.), Dimitry Haskin (Bay Networks, Inc.), John Krawczyk (Bay Networks,
Inc.), 和 Paul Traina (cisco Systems) 的深刻評論。
我們特別感謝 Dennis Ferguson (MCI)的巨大貢獻。
Yakov Rekhter 的工作資金部分來自National Science Foundation ,批號NCR-9219216.
2. 介紹
邊界網關協議(BGP)是自治系統間路由協議。它的建立來源于RFC904[1]中定義的EGP
以及RFC1092[2]和RFC1093[3]中描述的EGP在NSFNET骨干網中的使用。
BGP交互系統的主要功能是和其他的BGP系統交換網絡可達信息。網絡可達信息包括可達
信息經過的自治系統(AS)清單上的信息。這些信息有效地構造了AS互聯的圖像并由此清除
了路由環路同時在AS級別上實施了策略決策。
BGP-4提供了一套新的機制支持無類域間路由。這些機制包括支持網絡前綴的廣播取消
BGP網絡中“類”的概念。BGP-4也引入機制支持路由聚合,包括AS路徑的聚合。這些改變為
[8, 9]建議的超網方案提供了支持。
為了刻畫BGP執行的路由決策,集中講述BGP發言者通告他自己使用的路由到相鄰AS中對
端(與之通信的別的BGP發言者)的規則。這些規則反映了當今互聯網廣泛使用的“一跳一
跳”路由范例。注意一些策略不被“一跳一跳路由范例支持所以需要比如源路由之類的技術
來增強。例如,BGP不支持AS發送流量到相鄰的AS但是路由和源自相鄰AS流量有不同的路由。
另一方面,BGP支持任何與“一跳一跳”一致的策略。由于當前互聯網只使用“一跳一跳”
路由范例同時BGP支持與范例一致的策略,BGP作為AS間路由協議非常適用于當今互聯網。
BGP能否執行哪些策略超出了本文檔的討論范圍(請參考討論BGP使用的隨同文檔[5])。
BGP運行在穩定的傳輸協議上。這樣就不用再更新分段,重傳,應答和排序。傳輸協議
使用的認證機制可以作為BGP自己的認證機制的附加。BGP的錯誤通知機制假定傳輸協議支持
“體面”關閉,也就是說,說有沒有傳到的數據在聯接關閉之前要被送到。
BGP使用TCP[4]作為傳輸協議。TCP滿足BGP的傳輸需求并在所有的商業路由器和主機上
使用。在后面的敘述中,術語“傳輸協議連接”可以理解為TCP連接。BGP使用TCP端口179
建立連接。
本文檔使用術語自治系統(AS)。自治系統的經典定義是在統一技術管理下的一系列路
由器,在AS內部使用內部網關協議和通用的度量路由數據包,在AS外部使用外部網關協議路
由數據包。由于本定義的發展,通常一個AS可以使用幾個內部網關協議同時在AS內部使用多
種度量。使用自治系統這個術語強調了以下事實,即使使用了多個IGP和度量,對別的AS而
言,AS的管理表現出一致的路由計劃和一致的目的地可達。
在互聯網中使用BGP的計劃,包括拓撲問題,BGP和IGP的交互,路由策略規則的實施,
在隨同文檔[5]中表述。本文當是一系列探究BGP應用各方面問題計劃的開始。請發表評論到
BGP郵件列表(bgp@ans.net).
3. 操作總結
兩個系統通過傳輸協議互聯。他們交換消息來打開和確認連接參數。初始的數據流是整
個BGP路由表。增加的更新作為路由表改變發送。因此,BGP發言者必須保存在連接期間所有
對等體的整個BGP路由表的當前版本。KeepAlive心跳消息周期性發送來保證連接的存在。發
送通知消息報錯或者特別情況。如果一個連接遇到一個錯誤情況,要發送通知消息并且關閉
連接。
執行邊界網關協議的主機不一定是路由器。一個非路由主機可以通過EGP甚至內部網關
協議和路由器交換路由信息。然后非路由主機可以通過BGP和別的AS中的邊界路由器交換路
由信息。這種應用構架可以用于更進一步的研究。
如果一個特定AS有多個BGP發言者同時為別的AS提供中轉業務,應該注意保證本AS中對
路由有一致的觀點。AS內部路由的一致看法由內部路由協議提供。AS外部對路由的一致看法
由所有AS內部的BGP發言者保持BGP一一互聯。使用通常的策略,BGP發言者對哪一個邊界路
由器服務為和別的AS的外出/進入點達成一致。這些信息可能通過內部網關協議通信到AS的
內部路由器。注意在BGP發言者把中轉業務通告到別的AS之前所有的內部路由器需要更新中
轉信息。
不同AS之間的BGP發言者的連接被稱為“外部”鏈路。同一個AS內部的BGP連接被稱為“內
部”鏈路。同樣不同AS之間的對端被稱為外部對端,相同AS之間的對端被稱為內部對端。
3.1 路由:通告和存儲
從協議的用途出發路由被定義為組合了一個目的地和到這個目的地的路徑屬性的信息
單位。
-路由在一對BGP發言者之間通過UPDATE消息廣播。目的地也就是在網絡層可達信息
(NLRI)內報告的IP地址,路徑是在UPDATE消息路徑屬性域內報告的信息。
-路由存儲在路由信息庫(RIB)內:也就是the Adj-RIBs-In, the Loc-RIB, and the
Adj-RIBs-Out. 將被廣播到別的BGP發言者的路由放在Adj-RIB-Out內部;在本地BGP發言者
使用的路由放在Loc-RIB, 這些路由的下一跳信息保存在BGP發言者的轉發信息庫內;別的
BGP發言者收到的路由信息保存在Adj-RIBs-In內部。
如果一個BGP發言者選擇路由通告,他可以在通告路由到對端之前加入和修改路由的路
徑屬性。
BGP提供機制告訴對端先前的路由通告不再能使用。有三種方式供BGP發言者指示撤銷某
條路由的服務。
a)在UPDATE消息的WITHDRAWN ROUTES域內通告先前廣播的路由目的地IP前綴,這樣相應
的路有被標志為不再使用,
b)使用了相同網絡層可達信息的替代路由被通告,
c)BGP發言者-發言者的連接被關閉,強制撤銷這一對發言者通高的所有的路由服務。
3.2 路由信息庫
BGP發言者的路由信息庫(RIB)包括三個不同部分:
a)Adj-RIBs-In: Adj-RIBs-In 保存了從輸入UPDATE消息學習到的路由信息,這是決策
過程的輸入。
b)Loc-RIB: Loc-RIB保存了BGP發言者根據本地策略在Adj-RIBs-In內選擇的本地路由
息。
c)Adj_RIBs_Out: Adj_RIBs_Out保存了本地BGP發言者通告到對端的路由。
Adj_RIBs_Out內部的消息被放在UPDATE消息內部發送的對端。
總之,Adj_RIB_In包括了被對端廣播到BGP發言者的路由信息;Loc_RIB包括了被本地決
策過程選擇的路由信息;Adj_RIBs_Out組織路由使用UPDATE消息通告到特定對端。
盡管本概念模型區分Adj-RIBs-In,Loc-RIB,和 Adj-RIBs-Out,這并不意味著也沒有
必要具體應用中維護路由信息的獨立拷貝。應用的選擇(例如,信息庫的三份拷貝或者一個
拷貝的指針)不受協議限制。
4. 消息格式
本章描述BGP的消息格式。
消息通過一個穩定的傳輸協議互聯發送。消息只有在被完整收到之后才會處理。最大的
消息是4096字節。最小的消息就是一個不包括消息體的BGP消息頭,19字節。
4.1 消息頭格式
每一個消息包括一個定長的消息頭。消息頭后面可以/可以不包含數據部分,這取決于
消息類型。這些域設計如下:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ +
| |
+ +
| Marker |
+ +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Length | Type |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Marker(標記):
本16字節的域包含消息接收者可以預測的值。如果消息類型是OPEN,或者OPEN消息
承載了認證信息(作為可選參數),標記必須是全1。否者,標記的值要使用認證機制來計
算(認證機制是通過認證信息的一部分來指定的)。標記可以用來探測BGP對端的同步丟失,
認證進入的BGP消息。
長度(Length):
兩字節無符號整數指定了消息的字節全長,包括頭部的字節。這也就是說,允許在
傳輸層數據流定位下一個消息(的標記域)。長度的值必須最少19字節最大4096字節,同時
由于不同的消息有更多的約束。不允許“填充”多余的數據在消息后,所以長度域是需要的
最小值。
類型(Type):
一字節的無符號整數制定了消息類型編碼。如下定義:
1 - OPEN
2 - UPDATE
3 - NOTIFICATION
4 - KEEPALIVE
4.2 OPEN消息格式
在傳輸協議連接建立之后,兩邊發送的第一個消息是OPEN消息。如果OPEN消息可以接受,
需要發回一個KEEPALIVE消息來確認OPEN消息。一旦確認了OPEN消息,UPDATE,KEEKPALIVE
和NOTIFICATION消息可以交換。
在定長的BGP消息頭后面,OPEN消息包含下列域:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -