BGP邊界網關協議 之二
1
BGP的狀態
Idle:BGP連接的第一個狀態。在空閒狀態,BGP在等待一個啟動事件。啟動事件出現以後,BGP初始化資源,復位連接重試計時器(Connect-Retry),發起一條TCP連接,同時轉入Connect(連接)狀態。注:Start事件是一個操作者配置一個BGP的過程,或者重置一個已經存在的過程或者路由器軟件重置BGP過程引起的。
Connect:在此狀態,BGP發起第一個TCP連接,如果連接重試計時器(32秒)超時,就重新發起TCP連接,並繼續保持在Connect狀態,如果TCP連接成功,那麼向對等體發送open報文,並轉入OpenSent狀態,如果TCP連接失敗,就轉入Active狀態。
Active:在此狀態,BGP總是在試圖建立TCP連接,如果連接重試計時器(Connect-Retry)超時,就退回到Connect狀態,如果TCP連接成功,就轉入OpenSent狀態,如果TCP連接失敗,就繼續保持在Active狀態,並繼續發起TCP連接。
OpenSent:在此狀態,TCP連接已經建立,BGP也已經發送了第一個Open報文,剩下的工作,BGP就在等待其對等體發送Open報文。並對收到的Open報文進行正確性檢查,(檢查和協商參數:AS,RID,Hold Time以及Capability)如果有錯誤,系統就會發送一條出錯通知消息notification並退回到Idle狀態,如果沒有錯誤,BGP就開始發送Keepalive報文,並復位Keepalive計時器,開始計時。同時轉入OpenConfirm狀態。
OpenConfirm:在OpenConfirm狀態,BGP等待一個Keepalive報文,同時復位保持計時器,如果收到了一個Keepalive報文,就轉入Established階段,BGP鄰居關係就建立起來了。
Established:在Established狀態,BGP鄰居關係已經建立,這時,BGP將和它的鄰居們交換Update報文,同時復位保持計時器。
另外,在除Idle狀態以外的其它五個狀態出現任何Error的時候,BGP狀態機就會退回到Idle狀態。在BGP對等體建立的過程中,通常可見的三個狀態是:Idle、Active、Established。
Idle狀態下,BGP拒絕任何進入的連接請求,是BGP初始狀態。Active狀態下,BGP將嘗試進行TCP連接的建立,是BGP的中間狀態。Established狀態下,BGP對等體間可以交換Update報文、Route-refresh報文、Keepalive報文和Notification報文。
BGP對等體雙方的狀態必須都為Established,BGP鄰居關係才能成立,雙方通過Update報文交換路由信息。
2
EBGP多跳和指定更新源
IBGP對等體之間不一定是物理上直連的,只要TCP連接能夠建立即可。為了IBGP對等體路由通告的可靠性,我們一般採用Loopback接口建立IBGP鄰居關係,在這種情況下,必須指定用於建立TCP連接的接口(也是路由更新報文的源接口),也稱“源檢測”。
IBGP
直連:
peer 1.1.1.1as-number 400
非直連:
peer 1.1.1.1as-number 400
peer 1.1.1.1 connect-interface Loopback
路由器一般默認要求EBGP對等體之間是有物理上的直連鏈路,同時一般也提供改變這個缺省設置的配置命令。允許同非直連相連網絡上的鄰居建立EBGP連接,這時需要修改EBGP報文的最大跳數:
peer 1.1.1.1ebgp-max-hop [ ttl ]
EBGP:
直連:
peer 1.1.1.1as-number 400
非直連:
peer 1.1.1.1as-number 400
peer 1.1.1.1 connect-interface Loopback
peer 1.1.1.1ebgp-max-hop 255 默認為255
3
BGP路由提高
BGP的天職就是在AS之間傳遞路由信息,而不是去發現和計算路由信息。所以,路由信息需要通過配置命令的方式注入到BGP中。
成為BGP路由有兩種配置方法:通過network命令以及通過import-route命令。
一.network 命令
路由器將通過network命令將IP路由表裡的路由信息注入到BGP的路由表中,並通過BGP傳遞給其它對等體。通過network命令注入到BGP路由表裡的路由信息必須存在於IP路由表中,而且注入的路由需要嚴格匹配IP路由表中的掩碼長度。
相關命令:
network ipv4-address [ mask | mask-length ][ route-policy route-policy-name ]
缺省情況下,BGP不發佈任何本地的網絡路由。
二.import 命令
通過Import命令把其它協議的路由信息注入到BGP路由表中,通過import注入的路由信息可以結合策略共同使用。
import-route protocol [ process-id ] [ medmed | route-policy route-policy-name ]
protocol:指定可引入的外部路由協議,包括isis、ospf、static 、direct和rip。
process-id:當引入路由協議為isis、ospf或rip時,必須指定進程號。
med:引入路由的MED度量值,範圍0~65535。
route-policy-name:從其他路由協議引入路由時,可以使用該參數指定的路由策略過濾路由。
summaryautomatic自動彙總
閱讀更多 我叫王小壹 的文章