2009 年 04 月 22 日
CCNP-BSCI Module 06 BGP
IGP V.S EGP
IGP | EGP | |
路徑 | 找最佳路徑 mrtic最低的 | 政策上的最佳路徑 依Policy base Routing去決定 經過AS最少的是最佳路徑 |
運作區域 | 在自己的AS之間 | AS與AS之間(可在不同網段) |
單位 | 以router為單位 故Next-Hop以Router為單位 | 以AS為單位(hop-by-hop) 故Next-Hop以AS為單位 |
路由協定 | RIP, IGRP, OSPF, IS-IS, EIGRP | BGP |
設計觀念 | 採用信任的角度 | 採不信任的角度 |
要求的目標 | 快速收歛 | 穩定 可承载大量資料 |
收斂速度 | 快 | 慢 |
鄰居的學習 | 可依賴路由協定 | 需要手動指令 |
備註 | *需要以IGP為基礎的傳輸 *進階版的distance vector |
Autonomous System (AS)
1.AS: 一個鏈路的集合在一個共通的管理政策底下,通常以正面的角度思考。 |
2.ASN(AS number):16Bits Binary 種類
(1)Public ASN:1~64511,需要向IANA申請 (2)Priority ASN:645112~65535 |
3.須要有足夠的資源才有辦法申請到ASN,台灣需要/19才有辦法申請一個Priority ASN,AS只能控制自己的AS範圍無法影響他人的AS。 |
PDA V.S PIA
種類 | 定義 |
PDA
(Provider Dependant address) | *ISP所配發的IP,ISP會幫你把網段宣告出去,但是ISP不會幫忙做轉送的服務,需要自己想辦法偵測斷線並轉換路徑。 *適合用在小型ISP |
PIA
(Provider Independent address) | 自己向NIC申請的IP,需要自己向辦法把自己的網段宣告出去,需要向其他ISP申請轉送的服務,若一條線斷掉了可以不用變更設定。 *適合用在大型ISP,跨國大公司。 |
BGP使用的狀況
1.適合使用BGP的條件:
| ||||||
2.不建議使用BGP的條件:
| ||||||
3.Multihome / Singhome / Transit的比較
|
BGP的作法
作法 | 內容 |
1.Default Routes | |
1.當Router效能比較不好時建議使用 2.不需要接收全部的Internet Full Route資訊 3.作法會參考IGP的最佳路由送出,故上圖會由Router B送出。 | |
2.Default Routes + Partial(部分) table | |
1.避免只收default route導致無法得到最佳路由資訊 2.加入Partial Route增加轉送的最佳路徑(只針對到送Partial Route的ISP路徑) 3.作法為當Partial Route裡面有的路由就先走,若沒有的路徑再走Default Route的路徑。 | |
3.Full route | |
1.可以取得全部AS的Routing的資訊 2.可以做精準的控管 3.可以得知最佳的路由資訊 |
BGP的目標
1.Scalability is the fist priority(可用性為最高目標) |
2.Secure routing information exchange(避免造成別人的Transit 採用MD5認證) *需要相互認證 |
3.Routing police support *不見得是最佳路徑 |
BGP的特性
Rliable Update | (1)都使用TCP的傳輸協定 *由179/TCP提供Reliablity *因TCP的關係會造成Router CPU Loading較高 |
(2)TCP Peer-to-Peer的特性 *Routing Update必須每一個Peer傳送一次 | |
(3)BGP Keepalive *BGP的trigger Update是利用Batched Update(分批更新),收斂速度慢 *IBGP:5sec *EBGP:30sec | |
備註 | 基本上BGP無法使用分流 只會選出一條最佳路徑 |
BGP Path-Vector Routing(避免Loop的方法)
利用AS Prepend的方法(經過的router加在前的)
BGP Session的建立
1.TCP Session的建立
| ||
TCP Session步驟
| Step1.要先指定鄰居才會送出TCP的Session Step2.雙方使用179/TCP Session,送出BGP的相關資訊 Step3.決定保留那一條TCP Session(會保留Router-ID較大的TCP Session) | |
2.BGP Session的建立 | ||
BGP Session步驟 | Step1.相互傳送Open Sent。 *Open Sent包含的資訊:
Step2.相互回應Open Confom的訊息。
Step3.相互回應Keepalive的訊息,BGP Session建立完成。 |
BGP Datebase(3張表)
1.Neighbor table | 用Soure IP建立Neighbor,要互相指定 |
2.BGP table(forwarding table) | 類似EIGRP的Topology tabel,會記錄所有的路徑 |
3.IP routing table | 會把自己認為最佳路告知鄰居Router AD值:EBGP:20 IBGP:200 |
BGP Message Type
名稱 | 內容 | 備註 |
1.Open | (1)Open Sent (2)Open Confirm | 包含BGP Session、AS Number、Hold-time、Router-ID |
2.Keepalive | 每60秒 Update | |
3.Update | (1)Update Add(增加) (2)Update Withdeaw(刪除) | 只傳送有影響的訊息 會把Prefix(目的地網路)跟參數送出 |
4.Notification | 錯誤通報 | 只要收到Notifiation會把所有BGP、TCP Session中斷 |
IBGP V.S EBGP
IBGP(Intrnal BGP) | EBGP(External BGP) | |
範圍 | 在同一個AS裡面,ASN相同 | 跨AS之間,ASN不同 |
TTL | 255(無限制) | TTL等於1(預設值) 可由其他方式變更 |
連接方式 | 不需要直聯 | 需要直聯 |
loop機制 | 有Split-Horizon的機制 從鄰居收到的IBGP的Update不轉送給其他鄰居 | |
備註 | BGP不會單獨存在,須要依附在IGP底下,因為BGP相互建立peer需要用到IGP 路由表 |
IBGP詳細介紹
*在一個AS裡面都要跑IBGP,不然會造成黑洞。 |
*利用Split-Horizon的機制避免loop,IBGP每顆Router需要建立Full Mesh的的關係。 *從某一個鄰居收到的IBGP Update不可以轉送給其他IBGP鄰居 |
Configuration BGP
設定neighbor關係,可以設定群組關係 ,要相互指定。
*手動調整Soure IP(通常使用在IBGP)
*手動調整EBGP的TTL值(預設為1)
Next-Hop Address
BGP Next-Hop:下一個AS的入口
*Update to EBGP Router:會把修改Next-Hop add為自己
*Update to IBGP Router:維持原本Next-Hop add不變
*若Update source再同一個網段也不會變(FrameRelay 除外)
|
手動指定到那一個網段 下一個Router是我
*宣告network 告知其他AS自己的網段,只提供你所宣告的網路,需要搭配routing table裡面的資料,要和routing table裡面完全相同才會被送出。
*強迫一定要summary才送出。
BGP Synchronization rule
1.預設啟動BGP Synchronization,建議關閉,因目前的架構都是Full Mesh,故可以關閉。
2.早期是用來避免黑洞,目前的作法都是建立Fully Mesh的架構,關閉BGP Synchroization。
3.Synchronization:不使用由EBGP peer學習到的Route,也不送出由EBGP學習到的route,直到由IBGP有學到。
5.舊的IOS預設啟動,新的IOS都是關閉的。
BGP 2大定義
Split-Horizon | Synchroization |
IBGP 鄰居所學到的Update不再種送出去給其他IBGP的鄰居。可以給EBGP的鄰居。 | 不使用由EBGP peer學習到的Route,也不送出由EBGP學習到的route,直到由IBGP有學到。 |
設定範例
BGP Session States
狀態 | 內容 |
Idel |
1.搜尋路由表的路由資訊,若找到資訊會跳到Active的狀態,表示在做TCP tree-way-headshake。
2.若狀態一直在Idle表示找不到路由資訊,需要檢查IGP的設定。 |
Active(補充) |
1.正常狀況:TCP建立中(一下子即完成)
2.一直停留在Active: (1)可能鄰居沒有route可以送回來。 (2)Peer的neighbor設定錯誤。 (3)相關的參數設定錯誤,導致封包直接被drop掉。 |
Connect | TCP session建立完成的狀態 |
Open sent | 把相關的參數給Peer |
Open confirm | Open sent雙方沒有問題會回Open confirm |
Established | 建立的BGP連線 |
Notification | 會中斷TCP & BGP Session |
Show的觀察
1.Show ip bgp summary |
2.show ip bgp neighbors |
適合設定在IBGP中
BGP Authentication
sh ip bgp
sh ip bgp rib-failure
Clear ip bgp
為較不好的管理方法
clear ip bgp soft out / in
BGP 選擇路徑的方法-BGP Attributes
名稱 | 內容 | 解釋 |
Well-know | Mandatoy | 必要的attribute,一定要出現在update裡,只有3種 |
一定要傳下去的update | Discretonary | 以描述為主,大家都知道的attribute,但不一定要顯示出來 |
Optional | Transitive | 廠商自己定義的,要求一定要傳下去即使看不懂 |
廠商自己定義的 | Nontransitive | 廠商定義的,看不懂並把它drop掉 |
partial bit | 若遇到為Optional-Transitve,但是一定往下傳的Update就要設定 |
*BGP Selecting Path 最大的原則為看得懂就往下傳,不管是否為Well-Know or Optional。
*沒有loadshared的機制,只選擇一條路徑。
BGP Attributes
AS Path (well-know) | 到目的地經過那些AS,若有相同的AS會被drop以避免迴圈。 |
Next-Hop (well-know) | 下一個AS的入口位址 IBGP:不會變更next-hop的IP EBGP:會以出去的router為next-hop IP |
Origin (well-know) | 表示路由如何出現在BGP裡面的,有3種 IGP-用network方式宣告 EGP:早期的EGP協定(不前已沒有) ?:由其他路由redistribute進去的 |
Local Preference | *只影響IBGP的鄰居(再同一個AS裡面),如何離開自己的AS。 *此參數不會被送出去,若送出去鄰居也不會採用。 *default值=100(數值越大越優先採用) |
MED | *影響EBGP鄰居AS,往哪顆router送出資料,影響力較弱。 *只影響EBGP鄰居不影響之後的路由(不同AS間的)。 *default 值=0(數值越小越優先採用) *會承接其他路由協定redistribute進去之前的成本 *屬於Optional-UnTransitve的封包,所以對方看不懂就不接受 |
Weight | *Cisco專屬協定 *自己有效性,不傳遞的Attribute給鄰居,自己來決定路徑。 *選擇metric大的 |
路徑選擇的順序
*若都沒有設定BGP看AS Path長短。
1.Prefer highest Weight(local to router) |
Cisco專屬的參數,本機設定,不影響它人,數值大的優先。 |
2.Prefer high Local Preference (global within AS) |
選擇metric大的,只影響相鄰IBGP的鄰居(預設值=100) |
3.Prefer router originated by the local router (next hop=0.0.0.0) |
Local 的Router自己產生的路由,0.0.0.0的路由 |
4.Prefer shortest AS path |
選擇AS path 最短的 |
5.Prefer lowest Origin code (IGP<EGP<incomplete) |
選擇IGP(i),使用network宣告的 |
6.Prefer lowest MED (exchange between automous systems) |
選擇MED metric最小的,只影響相鄰的EBGP鄰居 (預設值=0) |
Route-Map 範例設定解說
需求: 1.希望把原本到172.16.0.0/26的traffic導到192.168.28.1的GW出去 2.讓流量可以平均分攤在2個外部AS上 |
設定範例: Router A: |
觀察: Router C: |
MED(Metric)設定講解
MED(Metric)設定範例
需求: Router Z要往192.168.26.0的網段 由往172.20.50.2改到192.168.28.1 圖上為變更後的狀況 |
設定範例: Router A: |
觀察: Router Z: |
BGP in an Enterprise 架構
資料來源:http://nkongkimo.wordpress.com/category/ccnp-bsci-module-06/
沒有留言:
張貼留言