BGP知識點
概況:
BGP(Border Gateway Protocol) 邊界網(wǎng)關(guān)協(xié)議荆虱,路徑矢量協(xié)議
協(xié)議優(yōu)先級:255 metric:屬性
Hold time:180s Keepalive time:60s
如果BGP 對等體兩端的時間不同凶赁,以時間小的為準(zhǔn)
timer keepalive 20 hold 60 進(jìn)程下修改
鄰居發(fā)現(xiàn):一端端口使用隨機(jī)端口號向另一端的179端口發(fā)起TCP連接
版本是BGP-4
AS(Autonomous System穴吹,自治系統(tǒng))
AS是指由同一個技術(shù)管理機(jī)構(gòu)管理,使用統(tǒng)一選路策略的一些路由器的集合斟珊。
AS內(nèi)部使用IGP來計算和發(fā)現(xiàn)路由 AS之間使用BGP來傳遞和控制路由浮毯。
BGP 基礎(chǔ)配置:
bgp 100
router-id 10.0.1.1
peer 10.0.2.2 as-number 100 建立鄰居
peer 10.0.2.2 connect-interface loop 0 以環(huán)回口建立鄰居
peer 10.0.2.2 ebgp-max-hop 2 環(huán)回口建立ebgp鄰居時邮弹,修改ebgp多跳
network 10.0.1.1 32 宣告路由
peer 10.0.2.2 next-hop-local 將AS內(nèi)下一跳地址改為本地;從 EBGP 鄰居收到的路由廷雅,發(fā)送給IBGP 鄰居的時候耗美,改變下一跳
display bgp peer
display bgp routing-table
dis default-parameter bgp 查看協(xié)議默認(rèn)值
兩種鄰居關(guān)系:IBGP EBGP(環(huán)回口物理接口)
AS號相同則為IBGP鄰居關(guān)系;AS號不同航缀,則為EBGP鄰居關(guān)系商架。
IBGP可非直連建立鄰居,EBGP必須直連建立鄰居芥玉。
IBGP采用環(huán)回接口建立蛇摸,EBGP采用直連接口建立。
BGP 5種報文
? Open報文:用于建立BGP對等體連接灿巧。
? Update報文:用于在對等體之間交換路由信息皇型。
? Notification報文:用于中斷BGP連接。
? Keepalive報文:用于保持BGP連接砸烦。
? Route-refresh報文:用于在改變路由策略后請求對等體重新發(fā)送路由信息弃鸦。只有支持路由刷新(Route-refresh)能力的BGP設(shè)備會發(fā)送和響應(yīng)此報文。
6種鄰居狀態(tài):Idle幢痘,Connect唬格,Active,OpenSent,OpenConfirm购岗,Established
BGP認(rèn)證:簡單汰聋,keychain
bgp 100
peer 10.0.12.2 password simple huawei 簡單認(rèn)證
keychain key mode periodic daily 定義模式
key-id 1
key-string huawei 密碼為huawei
algorithm md5 加密算法md5
send daily 09:00 to 17:00 發(fā)送時間
receive-time daily 09:00 to 17:00 接收時間
bgp 100
peer 10.0.23.3 keychain key 調(diào)用keychain
BGP對等體之間的交互原則:
BGP 設(shè)備將最優(yōu)路由加入 BGP 路由表,形成 BGP 路由喊积。BGP 設(shè)備與對等體建立鄰居關(guān)系后烹困,采取以下交互原則:
1、從IBGP對等體獲得的BGP路由乾吻,BGP設(shè)備只發(fā)布給它的EBGP對等體髓梅。
2、從 EBGP對等體獲得的BGP路由绎签,BGP設(shè)備發(fā)布給它所有EBGP和IBGP對等體枯饿。
3、當(dāng)存在多條到達(dá)同一目的地址的有效路由時诡必,BGP設(shè)備只將最優(yōu)路由發(fā)布給
對等體奢方。
4、路由更新時爸舒,BGP設(shè)備只發(fā)送更新的BGP路由蟋字。
5、所有對等體發(fā)送的路由扭勉,BGP設(shè)備都會接收
6鹊奖、只向?qū)Φ润w發(fā)送自身可用最優(yōu)路由信息
fake-as:使用 fake-as 可以將本地真實的 AS 編號隱藏,其他AS 內(nèi)的對等體在指定本端對等體所在的AS 編號時剖效,應(yīng)該設(shè)置成這個偽AS 編號
bgp 2000
peer 10.0.12.1 fake-as 200
BGP 路由自動聚合:
自動路由聚合是在自然邊界路由器上自動執(zhí)行的嫉入,在默認(rèn)情況下,BGP 的自動路由聚合功能是關(guān)閉的璧尸,并且BGP不會自動聚合BGP鄰居發(fā)送的路由以及使用network 命令通告的路由咒林。
自動路由聚合只適用于通過路由引入方式引入的路由;且聚合后為主類(A,B,C)路由爷光。
bgp 100
summary automatic
import-route direct
BGP手動路由聚合(detail-suppressed垫竞,suppress-policy,attribute-policy,origin-policy)
相對于自動路由聚合來講蛀序,手動路由聚合具有更高的靈活性和可控性欢瞪。
手動路由聚合時,可以手動控制聚合路由的掩碼長度徐裸,修改聚合路由屬性等遣鼓。
有兩種方法:
1.配置一條靜態(tài)路由,然后network 命令進(jìn)行通告
ip route-static 192.168.0.0 21 NULL 0
bgp 400
network 192.168.0.0 255.255.248.0
ip ip-prefix noad permit 172.16.1.0 24
ip ip-prefix noad permit 192.168.1.0 24
route-policy noad permit node 10
if-match ip-prefix noad
apply community no-advertise
route-policy noad permit node 20
bgp 400
peer 192.168.35.3 route-policy noad export
peer 192.168.35.3 advertise-community 可選過渡屬性重贺,向鄰居聲明可識別
2.使用aggregate命令進(jìn)行聚合骑祟。
bgp 400
aggregate 172.16.0.0 255.255.248.0
detail-suppressed 抑制全部明細(xì)
bgp 400
aggregate 172.16.0.0 21 detail-suppressed
suppress-policy 抑制部分明細(xì)
bgp 400
aggregate 172.16.0.0 21 suppress-policy sup 設(shè)置route-policy(sup)匹配將被抑制的路由
attribute-policy 可以修改聚合后的路由屬性
route-policy att permit node 10
apply origin incomplete
bgp 400
aggregate 172.16.0.0 21 attribute-policy att
origin-policy:通過符合route-policy的具體路由來產(chǎn)生聚合路由回懦,不符合時不會聚合,以某條路由為觸發(fā)條件
acl 2000
rule permit source 192.168.7.0 0.0.0.255
route-policy or permit node 10
if-match acl 2000
bgp 400
aggregate 192.168.0.0 21 origin-policy or
as-set:在聚合的路由中添加AS_Path次企,防止環(huán)路
4大類細(xì)分10種屬性:
公認(rèn)必遵:BGP的Update消息中必須包含的屬性怯晕。
Origin
AS_Path
Next_hop
公認(rèn)任意:不必存在于BGP的Update消息中,可以根據(jù)需求自由選擇的屬性缸棵。
Local_Pref
Atomic_aggregate
可選過渡:BGP 不能識別該屬性资柔,但可以接收該屬性并將其發(fā)布給它的鄰居的屬性较性。
Aggregator
Community
可選非過渡:BGP可以忽略包含該屬性的消息并且不向它的鄰居發(fā)布个盆。
MED
cluster-list
originator_id
BGP 選路:
當(dāng)?shù)竭_(dá)同一目的地存在多條路由且下一跳可達(dá)
1.優(yōu)選協(xié)議首選值(Preference_Value)最高的路由假抄。
2.優(yōu)選本地優(yōu)先級(Local_Preference)最高的路由。
3.優(yōu)選本地生成的路由(手動聚合>自動聚合>network>import>對等體傳來的)
4.優(yōu)選AS_Path短的路由
5.比較Origin屬性型诚,起源類型IGP>EGP>Incomplete
6.優(yōu)選MED(Multi Exit Discriminator)值最低的路由客燕。
7.優(yōu)選從EBGP學(xué)來的路由(EBGP>IBGP)鸳劳。
8.優(yōu)選AS內(nèi)部IGP的Metric最小的路由狰贯。
9.優(yōu)選 Cluster_List 最短的路由。
10.優(yōu)選 Router_ID 最小的路由器發(fā)布的路由赏廓。
11.優(yōu)選具有較小 IP 地址的鄰居學(xué)來的路由涵紊。
前8 條選路規(guī)則一樣,可以實現(xiàn)BGP 的負(fù)載分擔(dān)
bgp 100
maximum load-balancing 2 負(fù)載分擔(dān)
幾個重要屬性對比:
首選值幔摸,默認(rèn)值為0 摸柄,越大越優(yōu),僅在本地有效
優(yōu)選本地優(yōu)先級既忆,默認(rèn)為 100驱负,越大越優(yōu),在 IBGP 中傳遞患雇,選擇流量離開 AS時的最佳路由跃脊,也就是控制流量從哪個出口離開AS
MED 值,默認(rèn)值為 0苛吱,越小越優(yōu)酪术,在 EBGP 中傳遞,控制來自鄰居 AS 的流量從哪個入口進(jìn)入到本AS中
首選值(PrefVal):僅華為設(shè)備可識別翠储,不會發(fā)送給任何BGP鄰居绘雁,僅作為本地路由器用來選路使用
BG 路由屬性的比較過程中,首先要比較的就是路由信息首選值 Preference Value,也簡稱為 PreVal. 值越大援所,優(yōu)先級越高庐舟,默認(rèn)為 0。
修改鄰居所有傳來的路由的首選值住拭,在本地修改
bgp 200
peer 10.0.2.2 preferred-value 100
修改鄰居傳來的一條路由的首選值 挪略,在本地修改
ip ip-prefix 1 permit 10.0.55.0 24
route-policy 10 permit node 1
if-match ip-prefix 1
apply preferred-value 100 修改首選值
route-policy 10 permit node 2 放行其他路由條目
bgp 100
peer 10.0.2.2 route-policy 10 import 針對該鄰居發(fā)來的路由修改此屬性
本地優(yōu)先級(LocPrf):公認(rèn)任意耻涛,僅在IBGP鄰居傳遞(出AS的路由器配置)
BGP 首先比較路由信息的首選值,如果 PrefVal 相同瘟檩,就會比較本地優(yōu)先級(Local Preference)屬性抹缕。 越大,越優(yōu)先墨辛,默認(rèn)為100 卓研;用于判斷流量離開AS時的最佳路徑。
修改默認(rèn)本地優(yōu)先級 睹簇,在下一跳路由的鄰居上修改(連接AS外路由器的設(shè)備)
bgp 200
default local-preference 200
修改一條路由的本地優(yōu)先級 奏赘,在下一跳路由的鄰居上修改(連接AS外路由器的設(shè)備)
ip ip-prefix 1 permit 10.0.1.0 24
route-policy 10 permit node 1
if-match ip-prefix 1
apply local-preference 500
route-policy 10 permit node 2
bgp 200
peer 10.0.12.1 route-policy 10 import 針對EBGP鄰居發(fā)來的路由修改屬性
AS_Path: 在本地修改
AS_Path 屬性順序記錄了某條 BGP 路由所經(jīng)過的 AS 信息,BGP 在比較AS_Path 屬性后太惠,會優(yōu)選 AS_Path 長度較短的那條路由磨淌。另外,AS_Path 還可以用來防止路由之間的環(huán)路凿渊。當(dāng)路由器從 EBGP 鄰居收到 BGP 路由時梁只,如果該路由的AS_Path中包含了自己的AS 編號,則該路由將會直接丟棄埃脏。
ip ip-prefix asp permit 2.2.2.0 24
route-policy 10 permit node 1
if-match ip-prefix asp
apply as-path 500 500 additive 增加AS_Path
route-policy 10 permit node 2 允許其他所有路由
bgp 100
peer 10.0.15.5 route-policy 10 import 針對該鄰居發(fā)來的路由修改此屬性
apply as-path 300 500 500 100 overwrite 覆蓋AS_Path
Warning: The AS-Path lists of routes to which this route-policy is applied will be overwritten. Continue? [Y/N] y
MED 多出口區(qū)分器:可選非過渡搪锣,不會傳遞給其他AS
MED(Multi-exit-disc)也稱為多出口鑒別器,它是一個4字節(jié)的整數(shù)彩掐,默認(rèn)MED值為0构舟,MED值越小,表明相應(yīng)的路由優(yōu)先級越高堵幽。MED屬性主要作用是用來控制來自鄰居AS的流量從哪個入口進(jìn)入到本AS中狗超。只有去往同一個目標(biāo)網(wǎng)絡(luò)的多條路由來自同一個AS時,才比較MED朴下,配置命令compare-different-as-med 后可比較來自不同AS的路由努咐。
acl 2001
rule permit source 172.16.1.0 0.0.0.25
acl 2002
rule permit source 172.16.2.0 0.0.0.25
route-policy R2 permit node 10
if-match acl 2001
apply cost 20
route-policy R2 permit node 20
if-match acl 2002
apply cost 30
route-policy R2 permit node 30
route-policy R3 permit node 10
if-match acl 2001
apply cost 38
route-policy R3 permit node 20
if-match acl 2002
apply cost 20
route-policy R3 permt node 30
bgp 100
peer 192.168.12.2 route-policy R2 export 針對發(fā)向該鄰居的路由添加該屬性
peer 192.168.13.3 route-policy R3 export
bgp 400
compare-different-as-med 配置該命令可比較來自不同AS的路由MED值
優(yōu)選AS內(nèi)部IGP的Metric最小的路由
BGP在比較Next Hop 屬性時,會優(yōu)選去往Next Hop 屬性中IP 地址的IGP開銷最小的路由桐猬。 通信雙方的往返報文選用不同路徑的現(xiàn)象稱為不對稱路由麦撵。對于某些特定的應(yīng)用,以及部署了某些特別的安全設(shè)備和安全策略的情況下溃肪,不對稱路由的存在可能會導(dǎo)致通過中斷的現(xiàn)象免胃。
int g0/0/0
ospf cost 2000
community屬性:可選過渡,產(chǎn)生該路由的設(shè)備上配置
BGP路由反射器可以用來減少大型AS中IBGP鄰居關(guān)系的數(shù)量和簡化IBGP鄰居關(guān)系的管理和維護(hù)惫撰,BGP聯(lián)盟(Condeferation)也可以用來實現(xiàn)類似的目的羔沙。
一個 BGP 聯(lián)盟是一個具有內(nèi)部層次結(jié)構(gòu)的 AS,一個BGP 聯(lián)盟由若干個子 AS組成厨钻。對于一個 BGP 聯(lián)盟扼雏,其成員 AS 內(nèi)部的路由器之間需要建立全互聯(lián)的IBGP鄰居使用BGP路由反射器坚嗜,而成員之間需要建立EBGP鄰居關(guān)系。從聯(lián)盟外的 EBGP對等體來看诗充,整個聯(lián)盟無異于一個普通的 AS苍蔬,聯(lián)盟內(nèi)部的結(jié)構(gòu)對于聯(lián)盟外的EBGP對等體來說是完全透明的。
若公司網(wǎng)絡(luò)規(guī)模需要擴(kuò)大蝴蜓,則一般只需要在相應(yīng)的成員AS中添加路由器并進(jìn)行相關(guān)的配置即可碟绑,配置工作量遠(yuǎn)遠(yuǎn)小于不使用BGP聯(lián)盟的情形。
bgp 2001
confederation id 200 創(chuàng)建團(tuán)體AS200
confederation peer-as 2002 宣布團(tuán)體AS內(nèi)的其他鄰居as2002
peer 10.0.23.3 as-number 2002
peer 10.0.23.3 next-hop-loacl 在一個團(tuán)體內(nèi)的不同AS間也要設(shè)置該屬性
團(tuán)體屬性是BGP路由的一種可選屬性茎匠,路由器在向BGP對等體傳遞路由時格仲,如果希望所傳遞的路由攜帶團(tuán)體的屬性,則需要額外的配置 4個特殊的團(tuán)體:
internet : 可以向任何BGP對等體發(fā)布路由
no-export: 不會發(fā)給 EBGP 對等體诵冒,但可以發(fā)布給聯(lián)盟(Confederation)EBGP對等體
no-export-Subconfed:不會發(fā)給 EBGP 對等體凯肋,也不會發(fā)布給聯(lián)盟(Confederation)EBGP對等體
no-advertise: 不會發(fā)給任何BGP對等體
aa:nn 自定義團(tuán)體屬性
ip ip-prefix 2 permit 10.0.100.2 32
route-policy 10 permit node 2
if-match ip-prefix 2
apply community internet / no-export / no-export-Subconfed / no-advertise
route-policy 10 permit node 10
bgp 100
peer 192.168.12.2 advertise-community 讓鄰居可識別community屬性,每臺路由器都設(shè)置
peer 192.168.12.2 route-policy 10 export
display bgp routing-table community 查看community信息
正常的團(tuán)體屬性難以滿足這樣的需求汽馋,所以添加自定義團(tuán)體屬性
R1:產(chǎn)生該路由時添加community屬性標(biāo)記
ip ip-prefix 5 permit 10.0.100.5 32
route-policy 10 permit node 5
if-match ip-prefix 5
apply community 100:5
route-policy 10 permit node 10
R4:識別該屬性侮东,并拒絕
ip community-filter 1 permit 100:5 識別community 100:5的屬性標(biāo)記
route-policy 10 deny node 10
if-match community-filter 1
route-policy 10 permit node 20
bgp 2001
peer 192.168.24.2 route-policy 10 import
路由反射器:(同一個AS內(nèi))
從一個非客戶端那里接收到的路由,反射器會將它只傳遞給所有的客戶端惭蟋;
從一個客戶端那里接收到的路由苗桂,反射器會將它傳遞給所有其它的客戶端以及非客戶端 药磺;
從 EBGP 對等體那里接收到的路由告组,反射器會將它傳遞給所有客戶端和非客戶端。
禁止客戶機(jī)之間的路由反射
bgp 100
undo reflect between-clients 關(guān)閉鄰居間路由反射功能
在反射器服務(wù)器上配置癌佩,反射器客戶端只需要與服務(wù)器建立鄰居木缝,不用相互建立鄰居
bgp 100
router-id 1.1.1.1
group 1 創(chuàng)建組
peer 2.2.2.2 group 1 宣布鄰居2.2.2.2為group 1
peer 3.3.3.3 group 1
peer 1 reflect-client 宣告組內(nèi)的客戶端
peer 1 next-hop-local
reflector cluster-id 1 設(shè)置cluster-id編號
BGP路由過濾:
路由屬性的豐富性可以為實現(xiàn)路由過濾、路由引入等路由策略和控制提供非常有利的條件围辙。
利用AS-Path進(jìn)行路由過濾
ip as-path-filter 1 permit 100$ 匹配路由始發(fā)與AS100
bgp 200
peer 192.168.13.1 as-path-filter 1 import
利用Community 屬性進(jìn)行路由過濾
route-policy 10 permit node 1
apply community no-export
bgp 300
peer 192.168.14.1 route-policy 10 export
peer 192.168.14.1 advertise-community
利用Next Hop屬性進(jìn)行路由過濾
ip ip-prefix 1 permit 192.168.25.5 32
route-policy 10 deny node 1
if-match ip next-hop ip-prefix 1
route-policy 10 permit node 2
bgp 100
peer 192.168.26.6 route-policy 10 export
BGP路由引入:
在多協(xié)議混合的網(wǎng)絡(luò)環(huán)境中我碟,不同的路由協(xié)議使用的協(xié)議報文各不相同,就好比說著不同的語言姚建。如果一種路由協(xié)議需要從別的路由協(xié)議那里獲取路由信息矫俺,則可以使用路由引入技術(shù)。
ip ip-prefix 10 permit 5.5.5.5 32
route-policy 10 permit node 1
if-match ip-prefix 10
bgp 100
import-route ospf 1 route-policy 10
BGP缺省路由:(下放默認(rèn)路由)
在BGP網(wǎng)絡(luò)中掸冤,一臺路由器可以向它的一個BGP對等體發(fā)布一條下一跳為自己的缺省路由厘托,也可以使用 network 向整個 AS 通告一條下一跳為自己的缺省路由,另外稿湿,還可以根據(jù)需要在BGP路由器上手工配置靜態(tài)缺省路由铅匹。
第一種方法:
default-route-advertise
bgp 100
peer 192.168.14.1 default-route-advertise
第二種方法:手工寫一條缺省路由,在BGP中通告
network 0.0.0.0
ip route-static 0.0.0.0 0.0.0.0 NULL 0
bgp 100
network 0.0.0.0 0.0.0.0
第三種方法:手工添加一條靜態(tài)缺省路由
ip route-static 0.0.0.0 0.0.0.0 192.168.12.2
IBGP防環(huán):
路由器從它的一個BGP對等體那里接收到的路由條目不會將該路由器再傳遞給其它IBGP對等體饺藤,這個原則被稱為BGP水平分割包斑。
EBGP防環(huán):
當(dāng)路由器從EBGP鄰居收到BGP路由時流礁,如果該路由的AS_Path中包含了自己的AS編號,則該路由將會直接丟棄罗丰。
RR防環(huán):
Originator_id可選非過渡屬性神帅,由RR產(chǎn)生,封裝在Update消息中萌抵,使用router-id值標(biāo)識路由的始發(fā)者枕稀,用于防止集群內(nèi)路由環(huán)路。
Cluster_list可選非過渡屬性谜嫉,記錄路由經(jīng)過的每個集群的Cluster_id ,用來在集群間避免環(huán)路萎坷。