BGP外部網(wǎng)關(guān)協(xié)議
前述:
AS:自制系統(tǒng):具有相同“路由策略”的一組路由器RFC對(duì)AS的定義:一組被統(tǒng)一管理的路由器,他們使用相同的內(nèi)部網(wǎng)關(guān)協(xié)議和統(tǒng)一的度量值,來(lái)決定如何在as內(nèi)部路由分組,并使用as間路由選擇協(xié)議來(lái)決定,如何分組路由到其他自制系統(tǒng)
取值范圍:1-65535 (16位 2字節(jié)) 4字節(jié):1-2^32
1-64511 ?。ü校?br>
64512-65535?。ㄋ接校?br>
23456 (特殊)
IGP(內(nèi)部網(wǎng)關(guān)協(xié)議):這種路由協(xié)議用于在自制系統(tǒng)(AS)內(nèi)部交換路由信息
EGP(外部網(wǎng)關(guān)協(xié)議):這種路由協(xié)議用于連接不同的自制系統(tǒng)
BGP是一個(gè)AS-by-AS之間的路由協(xié)議
BGP概述:
-通過(guò)TCP179端又來(lái)傳遞更新和建立鄰居
-單播建鄰居傳遞更新(手工指鄰居)
-支持VLSM CIDR手工匯總
-以AS為單位的路徑矢量屬性的路由協(xié)議-在會(huì)話(huà)開(kāi)始的時(shí)候發(fā)送完整的路由表,以后會(huì)觸發(fā)更新
-有豐富的路徑屬性,和簡(jiǎn)單的選路算法
-遵循AS間的水平分割
BGP的消息類(lèi)型:
-open消息(打開(kāi)消息)
-keepalive消息(保持激活)
-update消息(更新)
-notification(通告)
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
+-+-+-+-+-+-+-+-+
| Version |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| My Autonomous System |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Hold Time |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
+-+-+-+
| BGP Identi?er |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
+-+-+-+
| Opt Parm Len |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
+-+-+-+
| |
| Optional Parameters |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
bgp version number
默認(rèn)是V4,可以通過(guò)命令(neigbour version)來(lái)修改,改后向下兼容
As number :
表示會(huì)話(huà)發(fā)起方路由器的AS號(hào),確定該BGP是屬于EBGP還是IBGP
EBGP:當(dāng)收到的AS號(hào)和自己的不同
IBGP:當(dāng)收到的AS號(hào)和自己相同
Hold time:保持時(shí)間
表示路由器收到keepalive或者update報(bào)文之前可以等待的時(shí)間,cisco默認(rèn)180s,若雙方不統(tǒng)一,以小為優(yōu)。
BGP的標(biāo)示符:表示鄰居的ip地址,選舉方式等同于OSPF的routerID。
BGP可選參數(shù):該字段用來(lái)宣告支持驗(yàn)證、多協(xié)議等可選參數(shù)
Keepalive:保持激活(19字節(jié))
收到open消息后響應(yīng)一條keepalive。cisco默認(rèn)60s一條,或1/3的hold time時(shí)間。
Update :(更新)
宣告可行路由和已撤銷(xiāo)的路由
NLRI (network layer reachability information)網(wǎng)絡(luò)層可達(dá)信息宣告一個(gè)或多個(gè)IP地址前綴及長(zhǎng)度(二元組) 192.168.1.0/24
路徑屬性:path attributes
提供了允許BGP選擇最短路徑,檢測(cè)路由長(zhǎng)度,確定策略路由的相關(guān)信息
已撤銷(xiāo)路由:
描述那些變?yōu)椴豢蛇_(dá),且退出服務(wù)的二元組
注:一個(gè)UPDATE 消息一次可以只通告一條路由,但它可以攜帶多個(gè)屬性。
一個(gè)UPDATE 消息一次也可通告多條路由,但它們的屬性必須相同。
一個(gè)UPDATE 消息可以同時(shí)撤消多條路由。
實(shí)際上也就是說(shuō)一個(gè)UPDATE中只能有一條路徑屬性
Notification: 通告
路由檢測(cè)到BGP鄰居錯(cuò)誤時(shí)發(fā)送的消息
一旦鄰居收到該消息,則鄰居關(guān)系立刻回到idle狀態(tài)
BGP的狀態(tài)機(jī):
Idle----connect-----open sent-----open confirm----establish
activeidle狀態(tài):空閑
該狀態(tài)為起點(diǎn),檢查IGP是否可達(dá)(檢查自己的路由表中是否有neighbor方的具體路由條目)
connect:連接狀態(tài)
該狀態(tài)下,bgp會(huì)等待tcp的三次握手,如果成功則會(huì)進(jìn)入opensent;如果失敗則進(jìn)入active狀態(tài)。
Open sent:打開(kāi)發(fā)送
該狀態(tài)下已發(fā)送了open消息,此時(shí)bgp會(huì)等待鄰居的open消息,收到后檢測(cè)消息的每個(gè)字段,如果有差錯(cuò),發(fā)送notification消息,并進(jìn)入idle狀態(tài);如果沒(méi)有差錯(cuò)則發(fā)送keepalive,并設(shè)置定時(shí)器。
Open confirm:打開(kāi)確認(rèn)
該狀態(tài)下,bgp會(huì)等待keepalive、notification
如果收到keepalive則進(jìn)入establish狀態(tài)
如果收到notification則進(jìn)入idle狀態(tài)
Establish:建立狀態(tài)
該狀態(tài)下,bgp對(duì)等體連接已經(jīng)完全建立,此時(shí)對(duì)等體之間交互update、keepalive、notification消息
Active:激活狀態(tài)
該狀態(tài)下,bgp會(huì)嘗試與其他鄰居建立TCP連接。
connect狀態(tài)等待TCP三次握手,成功則進(jìn)入open sent狀態(tài),收到對(duì)方open消息進(jìn)入open confrim狀態(tài),收到keepalive消息進(jìn)入establish狀態(tài);如果TCP三次握手失敗則進(jìn)入active狀態(tài)。
BGP的三張表:
1.bgp表:包含了鄰居學(xué)習(xí)到的所有網(wǎng)絡(luò)列表,包含到達(dá)目標(biāo)網(wǎng)絡(luò)的多條路徑,包含了bgp對(duì)任意一條了路徑的屬性。
鄰居表:包含了所有bgp鄰居列表
BGP的鄰居有兩種:
EBGP:當(dāng)bgp運(yùn)行在不同的as之間(默認(rèn)必須直連)默認(rèn)TTL=1
IBGP:當(dāng)bgp運(yùn)行在相同的as之間(不需要直連)默認(rèn)TTL=255
bgp鄰居建立的必要條件:
1.路由可達(dá);
2.tcp三次握手;
3.手工指定鄰居;
4、驗(yàn)證通過(guò)
IBGP:as內(nèi) TTL=255 不需要直連 AD=200
EBGP:需要直連 as間 TTL=1 AD=20
從EBGP鄰居學(xué)來(lái)的路由條目?jī)?yōu)于IBGP鄰居學(xué)來(lái)的路由條目
任何兩個(gè)通過(guò)一條TCP連接來(lái)交換BGP路由信息的路由器,把他們叫做bgp peers
peer:(對(duì)等體)【鄰居】
speaker:bgp宣告者
2.路由表:和IGP的ip路由表相同,包含了到達(dá)目標(biāo)網(wǎng)絡(luò)的一條最佳路徑
負(fù)載均衡:到達(dá)同一目標(biāo)網(wǎng)絡(luò)有多條代價(jià)相同的路徑BGP默認(rèn)不允許任何負(fù)載均衡,他到達(dá)任何網(wǎng)絡(luò)只能有一條路徑。
BGP的基本配置:
用物理又建立鄰居:
router bgp <AS>
neighbor<對(duì)端的US> remote-as <對(duì)端的as>[IBGP鄰居]修改下一跳自我:neighbor<對(duì)端的US> next-hop-self
例:
QM_R1(config)#router bgp 100
QM_R1(config-router)#bgp router-id 1.1.1.1
QM_R1(config-router)#neighbor 12.12.12.2 remote-as 200 (EBGP鄰居)
QM_R2(config-router)#neighbor 3.3.3.3 next-hop-self
next-hop attribute:下一跳屬性
ibgp:下一跳不變(公告給ibgp鄰居)
ibgp:下一跳不變,用命令來(lái)修改next-hop-self 下一跳自我
ebgp:下一跳改成‘更新源
ebgp:使用命令next-hop-unchanged 傳遞路由時(shí),下一跳不變
在MA的鏈路中,傳給EBGP鄰居時(shí),下一跳不變
用loopback又建立鄰居:
更新源:update source(US)默認(rèn)更新源就是路由器的出接又建議用loopback又建立鄰居永久up,不會(huì)down
用loopback又建立鄰居,必須修改更新源
習(xí)慣:
ibgp:用loopback又做冗余
ebgp:一般不用loopback又做冗余
router bgp<AS>
neighbor<對(duì)端的US> remotes-as<對(duì)端的as>
修改更新源:neighbor<對(duì)端的US> update-source loopback0
[EBGP鄰居]修改TTL:neighbor<對(duì)端的US>ebgp-multihop<TTL>不加參數(shù),默認(rèn)255
或者關(guān)閉直連檢測(cè):neighbor 3.3.3.3 disable-connected-check
[IBGP鄰居]修改下一跳自我:neighbor<對(duì)端的US> next-hop-self
例:
[IBGP]
QM_R2(config)#router bgp 200
QM_R2(config-router)#neighbor 3.3.3.3 remote-as 200?。↖BGP鄰居)
QM_R2(config-router)#neighbor 3.3.3.3 update-source loopback 0(更新源是環(huán)回又)
QM_R2(config-router)#neighbor 3.3.3.3 next-hop-self (定義下一跳自我)
[EBGP]
QM_R2(config-router)#neighbor 1.1.1.1 ebgp-multihop 2 (EBGP設(shè)置多跳,環(huán)回又才用得上)
QM_R2(config-router)#neighbor 1.1.1.1 disable-connected-check (關(guān)閉EBGP鄰居的直連檢測(cè))
注:在同一時(shí)間內(nèi)只能開(kāi)啟一個(gè)bgp進(jìn)程
修改更新源:neighbor<對(duì)端的US> update-source loopback0
修改TTL:neighbor<對(duì)端的US>ebgp-multihop<TTL>不加參數(shù),默認(rèn)255
修改下一跳自我:neighbor<對(duì)端的US> next-hop-self
修改RID:路由模式下bgp router-id x.x.x.x
關(guān)閉同步:路由模式下 no syn
關(guān)閉匯總:路由模式下 no auto-summary
小總結(jié):
所有建立BGP鄰居的首要條件是三層必須可達(dá)而且必須有明細(xì)路由
在使用loopback又建立鄰居時(shí),需要考慮步驟
1、使用靜態(tài)或者動(dòng)態(tài)路由保證US三層可達(dá)。
2、手工指定loopback為鄰居
3、修改Update-sourec為loopback又;
4、若使Ebgp鄰居需要修改EBGP多跳或關(guān)閉直連檢測(cè)
5、IBGP鄰居需要修改下一跳自我(next-hop-self)
6、BGP Network時(shí),需要和IGP路由表嚴(yán)格匹配
BGP的查看:
QM_R2#show ip bgp summary (摘要的鄰居鄰居信息)
QM_R2#show ip bgp 2.2.2.0/24 顯示明細(xì)路由的詳細(xì)信息
QM_R2#show tcp brief 可以看到是誰(shuí)發(fā)起的TCP鏈接
QM_R2#show ip bgp neighbors (詳細(xì)的鄰居信息)
QM_R2#show ip bgp rib-failure 可以看到提示有更高AD的路由
QM_R2#show ip bgp neighbors 2.2.2.2 advertised-routes 看向這個(gè)鄰居發(fā)了哪些路由信息
QM_R2#show ip bgp neighbors 3.3.3.3 received-routes 看這個(gè)鄰居給我發(fā)了哪些路由信息,必須在本路由器上用下面這條命令開(kāi)啟后才能用
QM_R2(config-router)#neighbor 3.3.3.3 soft-reconfiguration inbound開(kāi)啟查看接收到的路由信息的功能
debgu ip routing 查看路由表調(diào)試信息
debug ip bgp updata 查看BGP更新信息
EBGP用環(huán)回又做鄰居后,不能再將此環(huán)回又宣告進(jìn)BGP,否則會(huì)出現(xiàn)遞歸錯(cuò)誤,造成鄰居BGP表的翻動(dòng),IBGP不會(huì)出現(xiàn)這一問(wèn)題,因?yàn)樗鼈傾D值是200,無(wú)法爭(zhēng)搶入路由表
BGP的network能夠通告路由表中的所有BGP或非BGP路由條目。
路由表:
用update消息傳送,update消息中有as-path
as-path作用:選擇一條最佳路徑,避免環(huán)路
1.as-path可以用于選擇一條最佳路徑的原因
當(dāng)路由信息每穿越一個(gè)as時(shí),as-path就會(huì)現(xiàn)有AS-PATH屬性前面加上本as號(hào)當(dāng)同一個(gè)路由條目從不同的路由器學(xué)習(xí)時(shí),選擇AS-PATH個(gè)數(shù)最少的作為最優(yōu)路由
2.as-path可以避免環(huán)路的原因
當(dāng)本地路由器發(fā)現(xiàn)了update消息中的as-path包含了自己的AS號(hào),則會(huì)丟棄數(shù)據(jù)包,說(shuō)明已經(jīng)出現(xiàn)環(huán)路。
network:
igp:激活接又、公告網(wǎng)段
bgp:只要在igp路由表中存在路由條目都可以公告,公告中帶
mask(為了嚴(yán)格匹配igp的路由條目)bgp的報(bào)文是通過(guò)路由表在三層轉(zhuǎn)發(fā)
原則1:
ibgp的水平分割(防止環(huán)路)(解決ibgp的環(huán)路問(wèn)題)
ebgp使用as-path來(lái)解決環(huán)路問(wèn)題
從一個(gè)ibgp鄰居學(xué)來(lái)的路由條目不會(huì)公告給其他任何一個(gè)ibgp鄰居,在ibgp鄰居中建議使用全互聯(lián)來(lái)解決ibgp的水平分割帶來(lái)的某個(gè)ibgp路由器學(xué)習(xí)不到整個(gè)路由信息。
三種方法解決IBGP水平分割帶來(lái)的路由黑洞問(wèn)題:
1、全互聯(lián)
2、將BGP路由重分發(fā)到IGP (實(shí)驗(yàn)環(huán)境)
3、MPLS BGP
原則2:
ibgp的同步原則:從ibgp學(xué)來(lái)的路由條目,不發(fā)送給ebgp鄰居,自己也不使用,除非在自己的igp路由表中存在該條目。
本地有效(全互聯(lián)):全互聯(lián)以后要關(guān)閉同步
默認(rèn)情況下:同步----關(guān)閉水平分割-----開(kāi)啟
DF_R3#sh ip bgp rib-failure
Network Next Hop RIB-failure RIB-NHMatches
50.1.1.0/24 4.4.4.4 Higher admin distance n/a
51.1.1.0/24 4.4.4.4 Higher admin distance n/a
bgp的路徑屬性:path-attribute可以理解為igp的metric
公認(rèn)的:(well-know)
必遵:update報(bào)文中必須包含,也必須傳遞
自決(discretionary):update報(bào)文中可以包含,也可以不包含但是一旦包含,就必須傳遞下去
可選的:optional:
可傳遞(transitive):即使不認(rèn)識(shí),也必須接受,并傳遞下去
非傳遞(nontransitive):不發(fā)送給peer
1.origin:(起源代碼)標(biāo)識(shí)路由的身份
2.as-path:路徑屬性
3.next-hop:下一跳
4.local-pref:本地優(yōu)先級(jí)
5.community:團(tuán)體
6.med(multi-exit-discriminator)多出又鑒別器----》metric
7.originator-id:始發(fā)站id(私有)
修改屬性的命令:
ip access-list extended acl
permit ip 10.1.1.0 0.0.0.255 any
route-map lp permit 10
match ip address acl
set local-preference 300
neighbor 1.1.1.1 route-map lp in
1.origin(起源代碼)標(biāo)識(shí)路由的的身份“公認(rèn)必遵”bgp學(xué)習(xí)路徑有三種
從igp學(xué)習(xí)來(lái)的“i”
從egp學(xué)習(xí)來(lái)的“e”(在目前的IOS中已經(jīng)不支持該屬性)
從別的方式學(xué)習(xí)來(lái)的(重分發(fā))“?”
“i”優(yōu)于“E”優(yōu)于“?”
as-path:是as號(hào)順序的組合,來(lái)決定as間路徑和路由“公認(rèn)必遵”
next-hop:下一跳“公認(rèn)必遵”
描述到達(dá)目標(biāo)地址的路徑上,下一跳路由器的ip地址,這個(gè)地址不一定是鄰居路由器的地址,是更新源
從EBGP學(xué)習(xí)來(lái)的路由條目傳給IBGP鄰居的時(shí)候,下一條屬性不變,保持原來(lái)的US
從IBGP學(xué)習(xí)來(lái)的路由條目傳給EBGP鄰居的時(shí)候,下一條屬性改變,變成自己的US
med:metric(可選,非傳遞)【多入口】
in--->學(xué)習(xí)路由的目的是出業(yè)務(wù)量(出包)【在in的方向上出包】
out--->公告路由的目的是入業(yè)務(wù)量(入包)【在out方向上入包】
MED的屬性由來(lái):
保持原先IGP或者重分發(fā)進(jìn)BGP之前的metric值不變
用于ebgp鄰居之間,在相鄰的as中傳遞,穿越下一個(gè)AS后,屬性丟失,用于決定到達(dá)目標(biāo)地址as之間的多條路由的優(yōu)先級(jí)。(def:0,以小為優(yōu))
影響的對(duì)端as選路,out公告路由,入業(yè)務(wù)量。
local-preferance:本地優(yōu)先級(jí)“公認(rèn)自決”(多出口)
只是用于ibgp之間,不會(huì)傳遞到其他的as內(nèi),只影響本地as的選路,用于決定bgp路由的優(yōu)先級(jí),取值范圍(1~2^32,def:100,越大越優(yōu))
在進(jìn)入as時(shí)打上本地優(yōu)先級(jí)---->只在學(xué)習(xí)路由的時(shí)候打上local-preferance來(lái)影響出業(yè)務(wù)量。
weight:權(quán)重:私有(0~65535,以大為優(yōu))【多出口】
default:
學(xué)習(xí)路由:0
公告的路由:32768
本路由器有效:在in方向打上weight值,他不會(huì)把值發(fā)給任何路由器,僅本路由器有效
weight值是在路由器有兩個(gè)出又的時(shí)候使用
bgp的十條選路原則:
1.weight值越大越優(yōu)
2.local-pre越大越優(yōu)(def:IBGP=100,EBGP為空)
3.起源于本地最優(yōu)(network)
4.as-path越小越優(yōu)
5.origin越小越優(yōu)(I>E>?)
6.med越小越優(yōu)(def:源于IGP)
7.ebgp鄰居優(yōu)于ibgp鄰居
8.next-hop越小越優(yōu)(igp路由表中metric越小越優(yōu))
9.ebgp時(shí)間越老越優(yōu)
10.ibgp鄰居:router-id越小越優(yōu)
11.ibgp鄰居:ip地址越小越優(yōu)
BGP匯總:
1.對(duì)IGP路由條目公告BGP中,并匯總當(dāng)其他IGP協(xié)議重分布進(jìn)BGP時(shí),默認(rèn)會(huì)進(jìn)行自動(dòng)匯總。其它情況下BGP不會(huì)自動(dòng)匯總
Auto-summary對(duì)于network的影響:
1,可以是主類(lèi)方式宣告(必須主類(lèi))(如:network 10.0.0.0),條件是:必須出現(xiàn)在路由表的子網(wǎng);
例:
QM_R1(config)#router bgp 100
QM_R1(config-router)#auto-summary
QM_R1(config-router)#network 10.0.0.0
QM_R4#sh ip route bgp B 10.0.0.0/8 [20/0] via 2.2.2.2, 00:00:02
2,也可以是明細(xì)方式宣告,必須帶mask(如:network 10.1.1.0mask 255.255.255.0),條件是:必須和IGP表的路由精確匹配。
例:
QM_R1(config-router)#auto-summary
QM_R1(config-router)#network 10.1.1.0 mask 255.255.255.0
QM_R4#sh ip route bgp 10.0.0.0/24 is subnetted, 1 subnets B 10.1.1.0 [20/0] via 2.2.2.2, 00:00:59
No auto-summary對(duì)于network的影響:
1,如果是用no auto-summary,那么network只能用明細(xì)方式宣告。通常都會(huì)用這一方式
例:
用auto-summary:
QM_R1(config)#router bgp 100
QM_R1(config-router)#no auto-summary
QM_R1(config-router)#network 10.0.0.0
QM_R1#sh ip route bgp
QM_R1#
R1無(wú)法在no auto-summary下學(xué)習(xí)到R4的匯總network
2,
QM_R1(config-router)#no auto-summary
QM_R1(config-router)#network 10.1.1.0 mask 255.255.255.0
QM_R4#sh ip route bgp
10.0.0.0/24 is subnetted, 1 subnets
B 10.1.1.0 [20/0] via 2.2.2.2, 00:00:59
宣告帶mask的路由,不管在auto-summary和no auto-summaty下均可,但必須在IGP路由表中存在該條目
QM_R1(config-router)#network 10.1.0.0 mask 255.255.0.0
QM_R1#sh ip route bgp
QM_R1#
如果此時(shí)IGP路由表中只有10.1.1.0/24的路由,并且no auto-summary ,可手工建立一條指向null0的路由:ip route 10.1.0.0 255.255.0.0null 0
在BGP的no auto-summary中,network的特點(diǎn)是:
1、必須精確宣告路由和掩碼
2、只起到宣告作用,不建鄰居
3、可宣告IGP學(xué)到的路由
Show ip bgp neighbors ip advertised-routers 查看我給這個(gè)鄰居發(fā)了哪些路由
<Summary>aggregate聚合
1)通過(guò)Network做匯總:(auto-summary開(kāi)關(guān)均可)
QM_R2(config)#ip route 10.1.0.0 255.255.0.0 Null0
QM_R2(config-router)#network 10.1.0.0 mask 255.255.0.0?。ú灰婷骷?xì),必須帶掩碼)
在BGP中的network命令只要是路由表中有的路由,它都可以宣告,直連的,靜態(tài)的,即使從IGP學(xué)到的也可以
例:
QM_R2(config)#ip route 10.1.0.0 255.255.0.0 null 0
QM_R2(config)#router bgp 100
QM_R2(config-router)#network 10.1.0.0 mask 255.255.0.0
QM_R4#sh ip route bgp
10.0.0.0/16 is subnetted, 1 subnets
B 10.1.0.0 [20/0] via 2.2.2.2, 00:00:01
2)Aggregate:(從BGP學(xué)來(lái)的路由匯總)要先宣告每一條明細(xì),再用以下命令做聚合
QM_R2(config-router)#aggregate-address 10.1.0.0 255.255.0.0 (宣告明細(xì))
明細(xì)&匯總都被發(fā)出
B 10.1.0.0/16 [20/0] via 0.0.0.0, 00:00:16,
Null0
QM_R2(config-router)#aggregate-address 10.1.0.0 255.255.0.0summary-only (只通告匯總)
必須帶這一參數(shù)才只會(huì)發(fā)匯總路由,不然連明細(xì)都會(huì)發(fā)出去,明細(xì)路由前面會(huì)加“S”
Suppress-map 抑制列表 -----抓的就是被抑制的路由
QM_R2(config)#ip prefix-list 1 permit 10.1.1.0/24
QM_R2(config)#route-map cisco deny 10
QM_R2(config-route-map)#match ip address prefix-list 1
QM_R2(config)#route-map cisco permit 20
QM_R2(config-router)#aggregate-address 10.1.0.0 255.255.0.0suppress-map cisco(抑制10.1.1.0/24路由)
QM_R4#sh ip route bgp
10.0.0.0/16 is subnetted, 1 subnets
B 10.1.0.0 [20/0] via 2.2.2.2, 00:03:52
show route-map 專(zhuān)?查看router-map
注意:如果?了suppress-map不起作?的話(huà),要清?下本路由
器,要硬清才?
如果希望匯總從其它AS學(xué)習(xí)來(lái)的路由條?時(shí),AS號(hào)屬性在本地
會(huì)消失
如:在R1上做的話(huà),明細(xì)路由攜帶AS號(hào)的?些屬性將會(huì)消失
QM_R2(con?g-router)#aggregate-address 10.1.0.0 255.255.0.0
QM_R2#sh ip bgp
Network Next Hop Metric LocPrf Weight Path
*> 10.1.0.0/16 0.0.0.0 32768 i
?下?這?命令可以還原
M_R2(con?g-router)#aggregate-address 10.1.0.0 255.255.0.0 as-set
(還原AS屬性)
QM_R2#sh ip bgp
Network Next Hop Metric LocPrf Weight Path
*> 10.1.0.0/16 0.0.0.0 100 32768 200 i
BGP:策略
router-map: 路由圖作?,?于路由的重分發(fā)、PBR、BGP
router-map cisco permit 10
cisco:名字(供neighbor調(diào)?)
permit/deny:操作碼(允許/拒絕)
10:許可操作序列碼
match:匹配流量(需要和acl結(jié)合)
set:執(zhí)?操作
注意:如果在router-map下沒(méi)有“match”匹配所有的報(bào)?和路由
如果在router-map下沒(méi)有“set”僅匹配流量,不做任何操作
match:(con?g-router-map)#match ip address 10 20 30 40
他代表或的關(guān)系(任意?個(gè)即可)匹配任何?個(gè)acl number都會(huì)
執(zhí)?
(con?g-router-map)#match ip address 10
(con?g-router-map)#match ip address 20
(con?g-router-map)#match ip address 30
是且的關(guān)系,(必須完全匹配)必須同時(shí)匹配acl number 10 20
30 才會(huì)執(zhí)?set
當(dāng)router-map中出現(xiàn)同?性質(zhì)的set,后?的set覆蓋前?的set
match interface <type><number>匹配下?跳接?的路由
match ip address<ACL number>匹配acl的流量
set metric <value>設(shè)置metric值
interface <type><number>設(shè)置出站接?
ip next-hop<ip address>設(shè)置下?跳路由器的地址
ip tos<value>設(shè)置tos位
ip precedence 設(shè)置ip優(yōu)先級(jí)
bgp的負(fù)載均衡:
1.迭代負(fù)載均衡
在去往?標(biāo)?絡(luò)的下?跳(更新源)路由,在IGP路由表中該更
新源是負(fù)載均衡。
2.as間的負(fù)載均衡
通過(guò)設(shè)置metric值,做as間的負(fù)載均衡
3.通過(guò)命令maximum-path來(lái)實(shí)現(xiàn)負(fù)載均衡
默認(rèn)只有1最?可以到32
EBGP:必須滿(mǎn)?as-path,origin,local-pref和med完全相同 (選路
原則前6條)
QM_R4(con?g-router)#maximum-path 16
IBGP:必須滿(mǎn)?as-path,origin,local-pref,med和next-hop在IGP的
metric完全相同(選路原則前8條)
QM_R4(con?g-router)#maximum-paths ibgp 16
管理?型的bgp
1.對(duì)等組
2.團(tuán)體屬性
3、路由反射器(router re?ector,RR)
--對(duì)等體組(peer group):把策略應(yīng)?在?組“路由器”上
定義模板
neighbor cisco remote-as
neighbor cisco update-source loop0
neighbor cisco next-hop-self
然后應(yīng)?到neighbor上
例:
BGP_R2#sh run | sec bgp
router bgp 200
no synchronization
bgp router-id 2.2.2.2
neighbor cisco peer-group
neighbor cisco remote-as 200
neighbor cisco update-source Loopback0
neighbor cisco next-hop-self
neighbor cisco2 peer-group
neighbor cisco2 remote-as 100
neighbor cisco2 ebgp-multihop 255
neighbor cisco2 update-source Loopback0
neighbor 1.1.1.1 peer-group cisco2
neighbor 3.3.3.3 peer-group cisco
neighbor 4.4.4.4 peer-group cisco
no auto-summary
QM_R2#sh ip bgp summary
BGP router identi?er 2.2.2.2, local AS number 200
BGP table version is 1, main routing table version 1
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ
Up/Down State/PfxRcd
1.1.1.1 4 100 8 8 1 0 0 00:04:44 0
3.3.3.3 4 200 4 5 1 0 0 00:01:11 0
4.4.4.4 4 200 4 5 1 0 0 00:01:51 0
peer-group的作?:
1、可以簡(jiǎn)化很多neighbor的命令(鄰居越多,命令簡(jiǎn)化越多)
2、可以同時(shí)對(duì)多個(gè)路由器修改BGP路徑屬性
缺點(diǎn):
不可以針對(duì)同?個(gè)peer-group中的不同路由器做不同的BGP策略
路由反射器:RR
路由器的??
1、RR的server:對(duì)路由條?進(jìn)?反射的路由器
2、RR的client(客戶(hù)機(jī)):從server接收或者向server發(fā)送路由條
?的路由器
3、?客戶(hù)機(jī):對(duì)反射的路由條?沒(méi)有任何關(guān)系的路由器
RR對(duì)路由條?的反射原則:
通過(guò)ebgp鄰居學(xué)來(lái)的路由條?,rr會(huì)反射給as內(nèi)所有的客戶(hù)機(jī)和
?客戶(hù)機(jī)。
如果路由條?是通過(guò)?客戶(hù)機(jī)學(xué)來(lái)的,該路由反射給所有的客戶(hù)
機(jī)。
如果路由條?是通過(guò)客戶(hù)機(jī)學(xué)習(xí)來(lái)的,該路由反射給除源客戶(hù)機(jī)
以外的所有客戶(hù)機(jī)和?客戶(hù)機(jī)
<Re?ector>
路由反射器
·打破IBGP的?平分割規(guī)則。
在路由反射器上做---
QM_R2(con?g-router)#neighbor 24.24.24.4 route-re?ector-client 這
?條命令全搞定
?。?4.24.24.4為R2的客戶(hù)端)
<Confederation>
聯(lián)邦:將?AS劃分成若?個(gè)?AS,?AS之間是EBGP關(guān)系。
·1、聯(lián)邦中的所有路由器都必須?起?AS號(hào)。(Route bgp 202
?AS)
R2#show ip bgp neighbor 12.1.1.1 adverised-routes
·2、聯(lián)邦中的所有路由器都必須聲明?AS號(hào)
R1(con?g-router)#bgp confederation identi?er 200
邦
3、連接?AS的邊界路由器要互相指peers:
聯(lián)邦中的?AS號(hào)(203)不算作AS-Path屬性?較
R1(con?g-router)#bgp confederation peers 203
?。▽?duì)端?AS號(hào))
注意:兩個(gè)?AS之間也要解決多跳問(wèn)題,?AS的兩個(gè)邊界必須向
內(nèi)指下?跳。
·聯(lián)邦外路由器和聯(lián)邦的邊界路由器建?鄰居關(guān)系時(shí),neighbor?
AS號(hào)。
在sh ip bgp中,?AS號(hào)會(huì)?括號(hào)括住,并且不算做?個(gè)進(jìn)?路徑
?較的AS號(hào),但是?AS號(hào)會(huì)影響IBGP的負(fù)載均衡。
<BackDoor> 后門(mén)鏈路
·通過(guò)IGP學(xué)到某條路由,又從EBGP學(xué)到相同的路由。
由于EBGP AD=20,?于IGP的AD,所以會(huì)優(yōu)先EBGP的路
由,
但實(shí)際路徑從IGP?更優(yōu)化。
例如:R2學(xué)到兩條相同的路由,?以下?法在BGP進(jìn)程下改,
實(shí)際上就是提?了從BGP學(xué)到的路由的AD值
QM_R2(con?g-router)#network 3.3.3.0 mask 255.255.255.0
backdoor
?。▽⒋寺酚傻腁D調(diào)?到200)
將BGP學(xué)到的路由的AD值提?,從20提?到200
<Dampening>
·為了防?路由頻繁抖動(dòng)。BGP利?Dampening機(jī)制,將這種頻繁
抖動(dòng)的路由有條件的加以抑制。
·BGP默認(rèn)不啟?Dampening,?且僅對(duì)EBGP鄰居傳來(lái)的路由啟
效。
·?條路由up->down,默認(rèn)懲罰1000,當(dāng)達(dá)到start suppress值時(shí),
被抑制。
被抑制的路由不會(huì)傳給本地,也不會(huì)傳給其他EBGP鄰居
·Half-life Time : 15 m 半衰期
·Reuse : 750 降到這個(gè)值以下,重新開(kāi)始啟?路
由
·Start Suppress : 2000 升到這個(gè)值以上,開(kāi)始抑制(即抖動(dòng)
3次就開(kāi)始抑制)
·Max Suppress Time : 60 m (4×15) 最?抑制時(shí)間(最長(zhǎng)抑制這么
長(zhǎng))
QM_R2(con?g-router)#bgp dampening(對(duì)所有從EBGP收到的路
由啟?Dampening)
QM_R2(con?g-router)#bgp dampening 15 750 2000 60 可這樣修改
默認(rèn)參數(shù),懲罰值不能更改
QM_R2#show ip bgp 1.1.1.0/24 可查Dampening明細(xì)
1, (suppressed due to dampening)
12.1.1.1 from 12.1.1.1 (1.1.1.1)
Origin IGP, metric 0, localpref 100, valid, external
Dampinfo: penalty 2450, ?apped 3 times in 00:11:40, reuse in
00:03:49
正在翻動(dòng)的路由會(huì)打上h
被懲罰的路由前?會(huì)打上 d
*d 1.1.1.0/24 (打d的路由,不會(huì)進(jìn)?本地路由表,也不會(huì)傳給
其他BGP鄰居)
QM_R2#clear ip bgp dampening
針對(duì)?個(gè)路由單獨(dú)做dampening,針對(duì)?個(gè)路由單獨(dú)做了,就不
要再在全局下做
QM_R2(con?g)#ip pre?x-list 1 permit 1.1.1.0/24
QM_R2(con?g)#route-map DAMP
QM_R2(con?g-route-map)#match ip address pre?x-list 1(BGP建議
都?pre?x,?ACL精確)
QM_R2(con?g-route-map)#set dampening 15 750 2000 60
QM_R2(con?g-router)#bgp dampening route-map DAMP
在進(jìn)程下調(diào)?
<Maximum-Pre?x>控制本路由器最多能收多少路由
neighbor 1.1.1.1 maximum-pre?x 10 (1)
neighbor 1.1.1.1 maximum-pre?x 10 80 (2)
neighbor 1.1.1.1 maximum-pre?x 10 80 warning-only (3)
neighbor 1.1.1.1 maximum-pre?x 10 80 restart 20 (4)
10后?跟的數(shù)字是百分?jǐn)?shù),默認(rèn)值為75%
(1)針對(duì)Neighbor 1.1.1.1傳過(guò)來(lái)的BGP路由,
如果>7條,則報(bào)警;如果>10條,則斷開(kāi)BGP連接。
Idle(PfxCt) ?旦斷開(kāi),就?法再建鄰居,必須??清
(2)如果>8條,則報(bào)警;如果>10條,則斷開(kāi)BGP連接。
(3)如果>8條,則報(bào)警;如果>10條,也只報(bào)警,不斷開(kāi)BGP連
接。
(4)如果>8條,則報(bào)警;如果>10條,則斷開(kāi)BGP連接。
20分鐘后重新連接,如果≤10條,則連接;如果仍然>10
條,還是斷開(kāi),(Neighbor會(huì)Up,然后Down).
BGP路由震蕩問(wèn)題:
第?步:??指定鄰居
R1:neighbor 2.2.2.2 remote-as 200
neighbor 2.2.2.2 ebgp-multihop
R2: neighbor 12.12.12.1 remote-as 100
neighbor 12.12.12.1 update-source loopback 0
neighbor 12.12.12.1 ebgp-multihop
第?步:解決更新源的路由問(wèn)題
R1: ip route 0.0.0.0 0.0.0.0 12.12.12.2
此時(shí),R1與R2之間的EBGP鄰居建?完成
在R2上network 22.22.22.22 mask 255.255.255.255
network 2.2.2.2 mask 255.255.255.255
-------------基于于康BGP文檔