文章目錄
CCNP8:BGP的【宣告、聚合、反射器、聯邦、六大基本屬性(權重、本地優先級、優選本地下一跳、AS-path、起源、MED)、選路規則、社團屬性、簡化配置技術】
一、BGP的宣告問題:
一臺運行BGP協議的設備在宣告本地路由表中非本地直連路由時,將攜帶本地到達這些路由的度量以及下一跳地址。度量值可以讓本地EBGP鄰居,判定那臺EBGP設備離目標最近。
當本地(2、6)從一臺IBGP鄰居處學習到的路由(X網段),需要傳遞給本地的EBGP鄰居時(3、7),度量值清除。
注意:爲保障路徑的優秀,建議所有存在EBGP鄰居的BGP路由器均需要宣告本地 AS的路由。
有關下一跳:
本地將路由傳遞給本地的EBGP鄰居時,下一跳地址自動修改爲本地。
在沒有AS-BY-AS這個屬性,由於流量是遞歸的這也可能是導致出環的原因:我下一跳是你、你下一跳是他、他下一跳是我。
若從IBGP鄰居處學習到的路由條目中,下一跳地址爲本地將拒絕接收,迫使所有存在EBGP設備路由器均需要宣告內網路由;但next-hop-self會使得路由傳遞給鄰居時下一跳地址修改爲本地,故需要管理員自己爲所有存在EBGP鄰居的BGP設備上宣告內網路由。
二、BGP的關閉自動彙總:
我們知道,在距離矢量的路由協議中,如果關閉自動彙總之後,傳遞的時候都是主類掩碼,而非精確掩碼,因爲自動彙總了。
自動彙總的命令不針對普通的BGP路由,正常宣告路由即使設備在 auto-summary條件下也攜帶路由表中的實際掩碼。12.2(8)T以上IOS默認關閉自動彙總。
因此自動彙總僅針對從IGP重發布到BGP的路由。
R2(config)#router bgp 2
R2(config-router)#redistribute ospf 1
no auto-summary(默認):攜帶原有的掩碼、度量值、下一跳 |
---|
auto-summary:不攜帶原有的掩碼、度量值、下一跳 |
關於BGP路由的理解: |
---|
在BGP協議中的逐條宣告,可以理解爲逐條將其他協議產生的路由重發布到BGP協議中。 |
在BGP協議中進行重發布,可以理解爲批量的將其他協議產生的路由宣告到BGP協議中。 |
注意:重發布進入BGP的路由和宣告進入BGP的路由其屬性中,它們的起源屬性不同。
三、BGP的聚合(彙總):
由於BGP彙總後的路由非常的大,且經常會出現超網級的路由,因此它的彙總就不叫做彙總,而是叫做聚合。
1、利用BGP的宣告特點(推薦):
BGP的宣告特點:本地路由表中無論條目的來源均可宣告。
現在本地配置一條到達彙總地址的空接口防環路由,然後再在BGP協議中宣告這條彙總路由。
R1(config)#ip route 10.1.0.0 255.255.252.0 null 0
R1(config)#router bgp 3
R1(config-router)#network 10.1.0.0 mask 255.255.252.0
基於優選路徑的要求,BGP協議常常需要在傳遞彙總路由給EBGP鄰居後,再傳遞部分的明細路由。這種聚合配置,只需要在宣告了彙總條目後,再逐一宣告需要的明細路由即可。
2、BGP的標準聚合:
先逐條宣告明細路由,再在彙總源路由上,進行聚合配置。
R5(config)#router bgp 3
//默認所有的明細和聚合條目同時發送。
R5(config-router)#network 5.5.5.0 mask 255.255.255.0
R5(config-router)#network 5.5.6.0 mask 255.255.255.0
R5(config-router)#aggregate-address 5.5.4.0 255.255.252.0
目前還沒有聚合完,上面會導致路由表中3條路由同時存在,這就與我們的目的相違背。因此,我們還需要以下配置。
//僅發送彙總路由,所有的明細路由被抑制(s)傳輸
R5(config-router)#aggregate-address 5.5.4.0 255.255.252.0 summary-only
標準的聚合配置將自動產生空接口防環路由。
3、控制明細的收發:
這節很明顯的表明了BGP的可控性非常強。
(1)抑制列表:
抑制列表,必須在進行標準聚合配置才能使用。
在彙總時,設定一張抑制列表,未被抑制的明細路由和彙總路由同時發出。
在彙總配置時,先不抑制明細路由,再定義一張抑制列表。
//抓取5.5.5.0/24這個流量
R5(config)#ip prefix-list xxx permit 5.5.5.0/24
//製作抑制列表
R5(config)#route-map xxx permit 10
//匹配5.5.5.0/24這個流量
R5(config-route-map)#match ip address prefix-list xxx
R5(config)#router bgp 3
//調用抑制列表
R5(config-router)#aggregate-address 5.5.4.0 255.255.252.0 suppress-map xxx
//由於BGP是增量更新,因此在做完策略後,要進行軟重啓。
R5#clear ip bgp * soft
注意:因爲這是抑制列表,因此這種做法Route-map中允許的流量反而被抑制。有些違背正常的邏輯。
(2)前綴列表(推薦):
將抓流量的前綴列表直接當作分發列表使用。
R5(config)#ip prefix-list xxx deny 5.5.5.0/24
R5(config)#ip prefix-list xxx permit 0.0.0.0/0 le 32
R5(config)#router bgp 3
R5(config-router)#neighbor 4.4.4.4 prefix-list xxx out
R5#clear ip bgp * soft
(3)分發列表:
//抑制5.5.5.0
R5(config)#access-list 1 deny 5.5.5.0
R5(config)#access-list 1 permit any
R5(config)#router bgp 3
R5(config-router)#neighbor 4.4.4.4 distribute-list 1 out
R5(config-router)#end
R5#clear ip bgp * soft
(4)Route-map:
R5(config)#ip prefix-list xxx permit 5.5.5.0/24
//抑制
R5(config)#route-map xxx deny 10
R5(config-route-map)#match ip address prefix-list xxx
R5(config)#route-map xxx permit 20
R5(config)#router bgp 3
//控制層面方向,它的方向是出。
R5(config-router)#neighbor 4.4.4.4 route-map xxx out
R5#clear ip bgp * soft
4、其他AS做彙總時:
彙總地址不處於更新源AS時,默認聚合條件將會留到更新源AS,導致黑洞路由流量必須到彙總的AS來丟棄。
解決方法:
利用EBGP水平分割:路由條目在傳遞時記錄所有經過的AS編號,接收到的條目中若存在本地的AS號將拒絕接收。
將明細路由上的AS-path屬性附着於彙總條目上。
R3(config)#router bgp 2
R3(config-router)#aggregate-address 5.5.4.0 255.255.252.0 summary-only as-set
四、有條件的打破IBGP水平分割:AS-BY-AS
我們先回顧一下IBGP水平分割:
IBGP水平分割規則:從一臺IBGP鄰居處學習到的路由不得傳遞給另一個IBGP鄰居。
爲避免IBGP環路,存在IBGP水平分割機制,在該機制下爲實現全網的路由正常傳遞,必須使鄰居關係全連:本AS內所有的BGP路由間均需要存在IBGP鄰居關係,但是建鄰數量成幾何上升。
大量的配置,會使任務量急劇增加, 因此我們需要打破水平分割,然後必須保證沒有環路,這就是有條件的打破。
如果打破IBGP水平分割之後,且保證它們的無環。我們就可以按下圖這樣建鄰就可以了:
但是我們看到,如果其中兩臺路由器之間斷了鄰居關係,那麼它們的鄰居關係也將會斷掉。爲了避免諸如此類的情況發生,一般我們還會穿插的建上幾個鄰居,保證網絡的穩定性。
而如何打破水平分割,則下面兩種方法:反射器、聯邦
1、反射器:
(1)反射器原理:
反射器存在三種角色,客戶端、非客戶端、RR(反射器),這三種角色以RR爲中心構成一個簇。
要求:一個簇中,只有一臺RR、客戶端至少有一臺、非客戶端在一個組內數量不限制,所有的客戶端、非客戶端與RR間必須爲IBGP鄰居關係。
反射器在反射路由時,遵從AS-BY-AS規則,默認不對條目中的屬性進行修改,只反射優的路由。
因此,R3從R2學習到的路由會通過RR反射給R4、R5,根據AS-BY-AS,R4、R5從R3學習到的路由,會和R3從R2學習到的路由是完全一樣的。
如果多一個R6,就和之前的簇沒有關係了。但是隻要他們是IBGP鄰居關係,我們就可以構造一個簇,由R5當做反射器RR。如下:
(2)反射器規則:
規則: |
---|
RR從非客戶端學習到的路由,傳遞給本地的客戶端、其他EBGP鄰居,不傳遞給本地其他的非客戶端。 |
RR從客戶端(IBGP)學習到的路由,可以傳遞給本地的客戶端、非客戶端、其他EBGP鄰居。 |
RR從EBGP鄰居處學習到的路由,可以傳遞給本地的客戶端、非客戶端、其他EBGP鄰居(廢話) |
R3(config)#router bgp 2
//IBGP鄰居2.2.2.2成爲本地的客戶端,同時本地成爲RR
R3(config-router)#neighbor 2.2.2.2 route-reflector-client
切記:反射器僅反射優的路徑,因爲只有優的路徑才存在傳遞性。
之前說過在傳路由的時候,若修改下一跳爲本地,可能會出環,而對於存在反射器機制的拓撲來說。如上圖,當R2將路由倒進來的時候,R3即使反射之後,這個路由條目的下一跳並不會在傳遞的時候發生改變,下一跳保持不變都是R2。
最後整個AS內訪問該網段,下一跳都是R2,這就避免了環路的出現。
(3)反射器使用過程:
注意:若在真機上,一臺設備成爲RR或者客戶端,那麼在這個設備配置修改下一跳爲本地後無效。但是模擬器可以生效。怎麼辦呢?
可以在真機上使用Route-map來替代:
R2(config)#route-map xxx permit 10
//所有流量的下一跳都修改爲本地
R2(config-route-map)#set ip next-hop peer-address
R2(config)#router bgp 2
//將路由發個3.3.3.3的時候,執行Route-map xxx
R2(config-router)#neighbor 3.3.3.3 route-map xxx out
R3#clear ip bgp * soft
對於一個AS內一連串IBGP鄰居,它們之間傳遞路由的時候,會需要構造很多的反射器。如下:
當然,如果反射器,建好之後,路由從另一端回來,也是可以的:
但是這樣佈置起來會很麻煩,如果這個圖很大,BGP設備蠻多的,因此還有另一種打破水平分割的辦法,但是配置也麻煩,就是接下來要說的聯邦。
2、聯邦:
聯邦:在一個真實的AS中,邏輯中的劃分多個小AS,小AS間爲聯邦內EBGP鄰居關係,這種關係可以向EBGP關係一樣傳遞路由,但不能修改屬性。
配置步驟:
1)首先所有配置均基於私有AS號進行,包括:啓動、建鄰、策略。
2)然後聯邦內所有BGP設備聲明自己所在的公有AS號。
//所在公有AS號爲2
R1(config-router)#bgp confederation identifier 2
3)私有AS號之間互 指peer:
//指出對端所在私有AS號爲64513
R2(config-router)#bgp confederation peers 64513
總結:在實際工程案例中,以上兩種技術被同時使用。
比如說電信的一個AS內部:
先是將一個大的公有AS,分爲倆私有AS,然後根據路由傳遞,和BGP路由傳遞規則。儘可能少的設置反射器,但同時保證當從外部學來一條路由的時候,其餘所有鄰居,不管是通過私有AS號之間的EBGP還是通過反射器,都要能夠學到外部的路由。
序號①表示當這臺路由器從外收到一條路由的時候,會首先發給它的鄰居。其他鄰居由於IBGP水平分割,不會給其他鄰居,因此我們構建了反射器RR,讓路由進行了第二次傳播,如果還有鄰居沒有收到,我們需要再次構建反射器RR。
如果是該私有AS區域的邊界路由器收到了這條路由後,它會將它發到另一臺私有AS內。接着同上,讓其他鄰居都學到路由。
需要思考的是:比如說其中一臺路由器壞了,有沒有其他路由器能起到備份作用,路由還能不能到,這是我們着重需要考慮的。
五、BGP的基本屬性:
BGP的選路依賴屬性,所謂的屬性是各種參數,由於BGP的屬性非常的多,因此它的可控性非常的強。
這些參數存在排序之分,管理員修改各個屬性可以直接干涉BGP的選路,BGP協議沒有優秀的選路算法,故正常的BGP協議收斂的路徑不一定是最佳路徑。
5種公有基本屬性,Cisco存在一種私有的基本屬性。
用一張圖來說明一下這些屬性,我會先從重要的屬性講起,再依次講解其他屬性。
這張圖中R4和R1相連的是以太網線,而其餘線是串線。它們建立好鄰居關係了。
R4學習R2環回的路由用的是IBGP鄰居關係選路,它要從R1、R3之間做出選擇。而R2學習R4環回的路由則是BGP選路。
1、Weight:
這個屬性放在最前面,確實因爲它的影響力非常強,這個屬性一調整,其他的就不用調整了。
Weight | 傳播範圍 | 默認數值 | 數值優劣 |
---|---|---|---|
Cisco私有屬性 | 不傳播 | 本地32768,鄰居0 範圍:0-65535 |
越大越優 |
上面我們建立好鄰居關係之後,接下來,R2宣告自己的環回。我們再對比一下bgp表。
通過對比我們發現,只有宣告這條環回的路由器的weight值是32768,其餘的都是0。而R4上到該環回顯示有兩條路都可以走,但是隻優選了下一跳是1.1.1.1的路。說明它如果訪問R2的環回,那它會走底下的路徑。
那麼我們現在要讓它走上面的路徑,應該怎麼修改這個weight值呢?
答:由於這個屬性不傳播,因此R4要選路,就需要在R4上進行修改:
//全局修改:本地所有從3.3.3.3學習的路由,權重值修改爲1。
R4(config)#router bgp 2
R4(config-router)#neighbor 3.3.3.3 weight 1
R4#clear ip bgp * soft
之後我們查看bgp表,就發現它的下一跳爲3.3.3.3了:
但是這種修改不好,我們再給R2上宣告一個環回2.2.3.0/24的時候,R4訪問R2的環回,下一跳還會是R3。
由於這種做法不太科學,建議還是做成負載分擔。負載分擔我曾經在這篇文章中將Channel的時候講過:
CCNP3交換:管理VLAN、三層交換機、Ether Channel、數據交換方式、網關冗餘(HSRP、VRRP、GLBP)
負載分擔:
基於不同的目標選擇不同的最佳路徑。
同樣的,由於weight值不傳播,做負載分擔還是要在R4上進行修改。
現在我們,給R2上新增一個環回2.2.3.0/24,然後給從R2學來的2.2.2.0/24的網段weight值加1吧。讓他實現這樣的選路:
R4(config)#ip prefix-list xxx permit 2.2.2.0/24
R4(config)#route-map xxx permit 10
R4(config-route-map)#match ip address prefix-list xxx
R4(config-route-map)#set weight 1
R4(config)#route-map xxx permit 20
R4(config)#router bgp 2
//R3把路由給R4的時候,R4修改weight
R4(config-router)#neighbor 3.3.3.3 route-map xxx in
R4#clear ip bgp * soft
做完策略之後,我們看到當R4去2.2.2.0/24,它的下一跳是3.3.3.3,而去訪問2.2.3.0/24它的下一跳是1.1.1.1,這樣就實現了負載分擔。
注:調用時只能在本地的控制層面入向,因爲該屬性不傳播。
2、LocPrf(本地優先級):
本地優先級,最常用於干涉IBGP鄰居關係選路。
LocPrf | 傳播範圍 | 默認數值 | 數值優劣 |
---|---|---|---|
公有屬性 | IBGP鄰居關係 | 100 範圍0-255 |
越大越優 |
我們再回到最初的圖:
R3(config)#router bgp 2
//本地發送給所有IBGP鄰居的路由,優先級均修改爲101
R3(config-router)#bgp default local-preference 101
R3#clear ip bgp * soft
這樣做也會導致,R4訪問R2環回的時候,下一跳都是R3,這樣做不好,同理,我們還是要做負載分擔:
負載分擔:
基於部分的路由進行修改,可以在控制層面流量的入或出接口上修改,
R4(config)#ip prefix-list xxx permit 2.2.2.0/24
R4(config)#route-map xxx permit 10
R4(config-route-map)#match ip address prefix-list xxx
R4(config-route-map)#set local-preference 101
R4(config)#route-map xxx permit 20
R4(config)#router bgp 2
R4(config-router)#neighbor 3.3.3.3 route-map xxx in
r4#clear ip bgp * soft
3、優選本地下一跳(Next Hop):
當需要訪問的網段與自己是直連的關係時,下一跳顯示地址爲0.0.0.0,表示優選本地下一跳。
4、AS-Path:
AS的路徑:條目在傳遞過程中記錄所有經過的公有AS編號,優選經過AS數量最少的路徑。
它以一個AS爲一跳,AS的增加只能在EBGP鄰居關係進行。
從上圖我們可以看到,方括號裏面的1其實就是指該路由所經過的AS號
干涉注意事項:
管理員可以策略在EBGP鄰居關係間增加AS的數量,但不能減少。修改A路徑,優選B路徑。雖然配置地點必須在EBGP鄰居關係間,但也可對IBGP鄰居關係的選路造成影響。
作用一:
用於EBGP水平分割,防止EBGP的環路,如果接受到的條目中存在本地的AS號將拒絕接收該條目。
作用二:
用於選路,可以優選經過的AS數量較少的路徑,該參數在傳遞給EBGP鄰居時才添加。
R1(config)#ip prefix-list xxx permit 2.2.2.0/24
R1(config)#route-map xxx permit 10
R1(config-route-map)#match ip address prefix-list xxx
//在你之前,我還經過3、4、5的AS
R1(config-route-map)#set as-path prepend 3 4 5
R1(config)#route-map xxx permit 20
R1(config)#router bgp 2
R1(config-router)#neighbor 12.1.1.1 route-map xxx in
R1#clear ip bgp * soft
注:調用時在EBGP鄰居間的控制層面接口的入或出方向干涉選路:
假設我們之前經過的AS號不是1,而是x。最前端AS號爲最新經過的AS號,那麼:
調用方向 | 顯示 |
---|---|
出向調用 | x 3 4 5 |
入向調用 | 3 4 5 x |
若人爲添加的AS號,在網絡的後端實際存在,那麼將導致這些路由無法進入這些AS,可以修改策略反覆添加已經經過的AS編號,或者私有AS號。
R1(config)#route-map xxx permit 10
R1(config-route-map)#no set as-path prepend 3 4 5
R1(config-route-map)#set as-path prepend 1 1 1
5、Path(起源屬性):
所謂起源屬性,及條目是通過什麼方式進入BGP協議來的。
符號 | 註解 |
---|---|
i | 標識network,管理員宣告路由條目 |
e | 將EGP協議重發布到BGP來的 |
? | 將IGP協議重發布到BGP協議。 |
規則:i 優於 e 優於 ?
R1(config)#ip prefix-list xxx permit 2.2.2.0/24
R1(config)#route-map xxx permit 10
R1(config-route-map)#match ip address prefix-list xxx
R1(config-route-map)#set origin ?
egp remote EGP
igp local IGP
incomplete unknown heritage
//設置對端起源屬性的AS號,這裏是2
R1(config-route-map)#set origin egp 2
R1(config)#route-map xxx permit 20
R1(config)#router bgp 2
//在控制層面的出向上做
R1(config-router)#neighbor 4.4.4.4 route-map xxx out
R1#clear ip bgp * soft
由於我們現在基本上不適用EGP,因此EGP都是人爲改出來的。
6、MED:多出口的鑑別屬性(Metric)
BGP協議本身不存在度量值,但是管理員可以人爲去賦值,來干涉選路。可用於干涉EBGP、IBGP鄰居下的選路,但最常用於干涉EBGP鄰居間的選路。
比如:AS1干涉AS2對AS1的選路。
之前都是R4的環回訪問R2的環回都是走的下面,現在要求R4的環回訪問R2的時候應該走上面,而不是下面。
我們只需要R2把2.2.2.0/24這條路由發給R1的時候,將R2和R1之間的度量值加一即可。R2到R3的度量是0,之後R4訪問2.2.2.0/24的時候就會走上面。
R2(config)#ip prefix-list med permit 2.2.2.0/24
R2(config)#route-map med permit 10
R2(config-route-map)#match ip address prefix-list med
R2(config-route-map)#set metric 1
R2(config)#route-map med permit 20
R2(config)#router bgp 1
R2(config-router)#neighbor 12.1.1.2 route-map med out
R2#clear ip bgp * soft
要怎麼驗證呢?我們知道我們在實驗的情況下是直接在R4上查看bgp表就可以知道了。但是大前提是R2並沒有和R4在一個AS之中。
因此,如果要驗證,可以使用擴展Ping:
最後我們看到,它是從上面回來的,說明策略生效了。
六、BGP的選路規則:
BGP在選路的時候首先會比較前提,同步被關閉,下一跳可達,證明路徑均可優的。這樣這些路徑在比較時才存在可比性。
比較順序 | 規則 | 可用於干涉的鄰居關係 |
---|---|---|
1 | 首先比較weight,大優,Cisco私有(不傳遞) | EBGP、IBGP |
2 | 比較本地優先級,默認100,僅IBGP鄰居傳遞,大優 | IBGP |
3 | 優選本地下一跳 | |
4 | 比較AS-Path,經過的AS數量少優,EBGP鄰居可增添 | EBGP、IBGP |
5 | 起源碼最小,i(igp)=0、e(egp)=1、?(incomplete)=2,i優於e優於? | EBGP、IBGP |
6 | MED值最小 | EBGP(常用於) IBGP |
7 | 普通的EBGP鄰居優於聯邦內EBGP鄰居優於IBGP鄰居 | |
8 | 優選最近的IGP鄰居(IGP鄰居度量小) | IBGP |
9 | 優選最先建立EBGP鄰居 | EBGP |
10 | 最小BGP鄰居的RID | IBGP |
11 | 優選最小的RR list 列表 | |
12 | 若收到到達同一目的地兩條均可優的EBGP路由,可以人爲實現負載均衡。 R2(config)#router bgp 1 R2(config-router)#maximum-paths 2 (設置最大路徑爲2條) |
1、關於第7條補充:
上面這張圖沒有涉及到這個問題,R4選擇R1或R3的時候,均爲IBGP鄰居。
2、關於第8條補充:
我們看到R4在第7條選擇均一樣的前提下,最後選擇了走底下的以太網線路,就是因爲這條選路規則,選擇度量最近的IGP鄰居。
3、關於第10條補充:
若第8條選路是相同的,比如說RIP,R4在比較IBGP鄰居關係時發現,R4到R1和R3的跳數是相同的,此時就會比較低10條,誰BGP-RID小,就選擇誰。
4、關於第9條補充:
圖中R2在選路的過程中,若上述前7條均一樣,則比較自己和R1、R3之間誰先建立的鄰居,最先建立的EBGP鄰居,選路最優先。
5、關於第12條選路規則的補充圖:
R2到R4環回有兩條路,可以人爲實現負載均衡。
七、BGP的擴展屬性:
1、BGP的社團屬性:
各個廠商的產品默認不傳播社團屬性,故在使用社團屬性時,必須開啓傳遞性
社團屬性有以下幾種:
R1(config-route-map)#set community ?
<1-4294967295> community number
aa:nn community number in aa:nn format
additive Add to the existing community
internet Internet (well-known community)
local-AS Do not send outside local AS (well-known community)
no-advertise Do not advertise to any peer (well-known community)
no-export Do not export to next AS (well-known community)
none No community attribute
開啓傳遞性後,纔將社團屬性傳遞給下一個鄰居,每臺BGP設備均需要與下一臺設備間開啓。
這裏講講用來控制關閉條目傳播範圍的幾種社團屬性
屬性 | 註解 |
---|---|
no-advertise | 接收到的路由條目中,若存在該屬性,將不再傳遞給下一個鄰居 |
no-export | 接收到的路由條目中,若存在該屬性,將不再傳遞給下一個公有AS |
local-AS | 接收到的路由條目中,若存在該屬性,將不再傳遞給下一個私有AS |
注:若沒有私有AS,no-export和local-AS作用一致,均不傳遞給下一個公有AS。
// 定製社團屬性
R1(config)#route-map xxx permit 10
R1(config-route-map)#set community no-advertise
R1(config)#router bgp 1
R1(config-router)#neighbor 12.1.1.1 route-map xxx out
R1(config)#router bgp 1
//開啓傳遞性
R1(config-router)#neighbor 12.1.1.1 send-community
R1#clear ip bgp * soft
2、Peer-group簡化BGP的配置的技術:
該技術用來簡化BGP的配置:比如說R1要同時和多個設備建立BGP鄰居關係,進行配置,這樣會非常累。因此我們可以用這個技術。
R1(config)#router bgp 1
//創建名爲xxx的peer-group
R1(config-router)#neighbor xxx peer-group
//定製xxx的內容
R1(config-router)#neighbor xxx remote-as 2
R1(config-router)#neighbor xxx next-hop-self
R1(config-router)#neighbor xxx update-source loopback 0
R1(config-router)#neighbor xxx ebgp-multihop
//針對鄰居進行調用
R1(config-router)#neighbor 2.2.2.2 peer-group xxx
R1(config-router)#neighbor 3.3.3.3 peer-group xxx
R1(config-router)#neighbor 4.4.4.4 peer-group xxx
注:一旦和某個鄰居間調用了peer-group,那麼之後與該鄰居的大部分操作均需要在peer-group中定製。