06-BGP基礎配置
本章節下載: 06-BGP基礎配置 (1.55 MB)
目 錄
2.6.5 配置BGP根據EBGP路由的第一個AS號過濾發布對象
2.7.3 配置BGP會話發送Update消息的時間間隔和每次發送Update消息的最大數目
3.4.2 配置忽略BGP路由的ORIGINATOR_ID屬性
4.3.2 配置向IPv6 BGP對等體發布路由時下一跳信息隻攜帶全球單播地址
4.6.2 配置BGP在選擇最優路由時忽略AS_PATH屬性
4.6.5 配置發送BGP更新消息時AS_PATH屬性中不攜帶私有AS號
4.7.5 配置允許比較來自同一聯盟不同子自治係統鄰居路由的MED屬性值
4.9 配置BGP在選擇最優路由時忽略IGP Metric的比較
4.11.3 配置BGP路由的下一跳為隧道或IP地址時影響路由優選
BGP(Border Gateway Protocol,邊界網關協議)是一種既可以用於不同AS(Autonomous System,自治係統)之間,又可以用於同一AS內部的動態路由協議。當BGP運行於同一AS內部時,被稱為IBGP(Internal BGP);當BGP運行於不同AS之間時,稱為EBGP(External BGP)。AS是擁有同一選路策略,屬於同一技術管理部門的一組路由器。當前使用的BGP版本是BGP-4。
BGP具有如下特點:
· BGP是一種EGP(Exterior Gateway Protocol,外部網關協議),與OSPF、RIP等IGP(Interior Gateway Protocol,內部網關協議)不同,其著眼點不在於發現和計算路由,而在於控製路由的傳播和選擇最佳路由。
· BGP使用TCP作為其傳輸層協議(端口號179),提高了協議的可靠性。
· BGP是一種路徑矢量(Path-Vector)路由協議,它采用到達目的地址所經過的AS列表來衡量到達目的地址的距離。
· BGP支持CIDR(Classless Inter-Domain Routing,無類域間路由)。
· 路由更新時,BGP隻發送更新的路由,大大減少了BGP傳播路由所占用的帶寬,適用於在Internet上傳播大量的路由信息。
· BGP路由通過攜帶AS路徑信息徹底解決路由環路問題。
· BGP提供了豐富的路由策略,能夠對路由實現靈活的過濾和選擇。
· BGP易於擴展,能夠適應網絡新的發展。
運行BGP協議的路由器稱為BGP發言者。BGP發言者接收或產生路由信息,並將路由信息發布給其它BGP發言者。
相互之間存在TCP連接、相互交換路由信息的BGP發言者互為BGP對等體。
根據對等體所在的AS,可以將對等體分為以下兩種:
· IBGP對等體:對等體與本地路由器位於同一AS。
· EBGP對等體:對等體與本地路由器位於不同AS。
根據對等體的IP地址類型,可以將對等體分為以下兩種:
· IPv4對等體:通過IPv4地址創建的對等體。
· IPv6對等體:通過IPv6地址創建的對等體。
BGP定義了以下幾種消息類型:
· Open:TCP連接建立後發送的第一個消息,用於在BGP對等體之間建立會話。
· Update:用於在對等體之間交換路由信息。一條Update消息可以發布具有相同路徑屬性的多條可達路由,也可以同時撤銷多條不可達路由。
· Keepalive:BGP周期性地向對等體發送Keepalive消息,以保持會話的有效性。
· Route-refresh:用來要求對等體重新發送指定地址族的路由信息。
· Notification:當BGP檢測到錯誤狀態時,就向對等體發出Notification消息,之後BGP會話會立即中斷。
BGP路由屬性是跟隨路由一起發布出去的一組參數。它對特定的路由進行了進一步的描述,使得路由接收者能夠根據路由屬性值對路由進行過濾和選擇。下麵將介紹幾種常見的路由屬性。
ORIGIN屬性定義了路由信息的來源,標記一條BGP路由是怎麼生成的。它有以下三種類型:
· IGP:優先級最高,表示路由產生於本AS內。
· EGP:優先級次之,表示路由通過EGP學到。
· Incomplete:優先級最低,表示路由的來源無法確定。例如,從其它路由協議引入的路由信息。
AS_PATH屬性記錄了某條路由從本地到目的地址所要經過的所有AS號。當BGP路由器將一條路由通告到其他AS時,會把本地AS號添加在AS_PATH列表中。收到此路由的BGP路由器根據AS_PATH屬性就可以知道到達目的地址所要經過的AS。
AS_PATH屬性有以下兩種類型:
· AS_SEQUENCE:AS號按照一定的順序排列。如圖1-1所示,離本地AS最近的相鄰AS號排在前麵,其他AS號按順序依次排列。
· AS_SET:AS號隻是經過的AS的簡單羅列,沒有順序要求。
AS_PATH屬性具有如下用途:
· 避免路由環路的形成:缺省情況下,如果BGP路由器接收到的路由的AS_PATH屬性中已經包含了本地的AS號,則BGP路由器認為出現路由環路,不會接受該路由。
· 影響路由的選擇:在其他因素相同的情況下,BGP會優先選擇路徑較短的路由。比如在圖1-1中,AS 50中的BGP路由器會選擇經過AS 40的路徑作為到目的地址8.0.0.0的最優路由。用戶可以使用路由策略來人為地增加AS路徑的長度,以便更為靈活地控製BGP路徑的選擇。路由策略的詳細介紹,請參見“三層技術-IP路由配置指導”中的“路由策略”。
· 對路由進行過濾:通過配置AS路徑過濾列表,可以針對AS_PATH屬性中所包含的AS號來對路由進行過濾。AS路徑過濾列表的詳細介紹,請參見“三層技術-IP路由配置指導”中的“路由策略”。
BGP的NEXT_HOP屬性取值不一定是鄰居路由器的IP地址。如圖1-2所示,NEXT_HOP屬性取值情況分為幾種:
· BGP發言者把自己產生的路由發給所有鄰居時,將該路由信息的NEXT_HOP屬性設置為自己與對端連接的接口地址;
· BGP發言者把接收到的路由發送給EBGP對等體時,將該路由信息的NEXT_HOP屬性設置為自己與對端連接的接口地址;
· BGP發言者把從EBGP鄰居得到的路由發給IBGP鄰居時,並不改變該路由信息的NEXT_HOP屬性。如果配置了負載分擔,等價路由被發給IBGP鄰居時則會修改NEXT_HOP屬性。關於“負載分擔”的概念請參見“1.7 BGP負載分擔”。
MED屬性僅在相鄰兩個AS之間交換,收到此屬性的AS不會再將其通告給其它AS。
MED屬性相當於IGP使用的度量值(metrics),它用於判斷流量進入AS時的最佳路由。當一個BGP路由器通過不同的EBGP對等體得到目的地址相同但下一跳不同的多條路由時,在其它條件相同的情況下,將優先選擇MED值較小者作為最佳路由。如圖1-3所示,從AS 10到AS 20的流量將選擇Router B作為入口。
圖1-3 MED屬性
通常情況下,BGP隻比較來自同一個AS的路由的MED屬性值。在某些特殊的應用中,用戶也可以通過配置compare-different-as-med命令,強製BGP比較來自不同AS的路由的MED屬性值。
LOCAL_PREF屬性僅在IBGP對等體之間交換,不通告給其他AS。它表明BGP路由器的優先級。
LOCAL_PREF屬性用於判斷流量離開AS時的最佳路由。當BGP路由器通過不同的IBGP對等體得到目的地址相同但下一跳不同的多條路由時,將優先選擇LOCAL_PREF屬性值較高的路由。如圖1-4所示,從AS 20到AS 10的流量將選擇Router C作為出口。
BGP將具有相同特征的路由歸為一組,稱為一個團體,通過在路由中攜帶團體屬性標識路由所屬的團體。團體沒有物理上的邊界,不同AS的路由可以屬於同一個團體。
根據需要,一條路由可以攜帶一個或多個團體屬性值(每個團體屬性值用一個四字節的整數表示)。接收到該路由的路由器可以通過比較團體屬性值對路由作出適當的處理(比如決定是否發布該路由、在什麼範圍發布等),而不需要匹配複雜的過濾規則(如ACL),從而簡化路由策略的應用和降低維護管理的難度。
公認的團體屬性有:
· INTERNET:缺省情況下,所有的路由都屬於INTERNET團體。具有此屬性的路由可以被通告給所有的BGP對等體。
· NO_EXPORT:具有此屬性的路由在收到後,不能被發布到本地AS之外。如果使用了聯盟,則不能被發布到聯盟之外,但可以發布給聯盟中的其他子AS(關於聯盟的定義請參見“1.8 6. 聯盟”)。
· NO_ADVERTISE:具有此屬性的路由被接收後,不能被通告給任何其他的BGP對等體。
· NO_EXPORT_SUBCONFED:具有此屬性的路由被接收後,不能被發布到本地AS之外,也不能發布到聯盟中的其他子AS。
除了公認的團體屬性外,用戶還可以使用團體屬性列表自定義團體屬性,以便更為靈活地控製路由策略。
隨著團體屬性的應用日益廣泛,原有四字節的團體屬性無法滿足用戶的需求。因此,BGP定義了新的路由屬性——擴展團體屬性。擴展團體屬性與團體屬性有如下不同:
· 擴展團體屬性為八字節,提供了更多的屬性值。
· 擴展團體屬性可以劃分類型。在不同的組網應用中,可以使用不同類型的擴展團體屬性對路由進行過濾和控製。與不區分類型、統一使用同一個屬性值空間的團體屬性相比,擴展團體屬性的配置和管理更為簡單。
目前,設備支持的擴展團體屬性有VPN Target屬性和SoO(Site of Origin,源站點)屬性。VPN Target屬性的詳細介紹,請參見“MPLS配置指導”中的“MPLS L3VPN”。
SoO擴展團體屬性用來標識路由的原始站點。路由器不會將帶有SoO屬性的路由發布給該SoO標識的站點,確保來自某個站點的路由不會再被發布到該站點,從而避免路由環路。在AS路徑信息丟失時,可以通過SoO屬性來避免發生環路。
SoO屬性有五種格式:
· 16位自治係統號:32位用戶自定義數,例如:101:3。
· 32位IP地址:16位用戶自定義數,例如:192.168.122.15:1。
· 32位自治係統號:16位用戶自定義數,其中的自治係統號最小值為65536。例如:65536:1。
· 32位IP地址/IPv4地址掩碼:16位用戶自定義數,例如:192.168.122.15/24:1。
· 32位自治係統號的點分方式:16位用戶自定義數,例如:65535.65535:1。
目前,BGP選擇路由的過程為:
(1) 丟棄下一跳(NEXT_HOP)不可達的路由;
(2) 優選首選值(Preferred-value)最大的路由;
(3) 優選本地優先級(LOCAL_PREF)最高的路由;
(4) 依次選擇network命令生成的路由、import-route命令引入的路由、聚合路由;
(5) 優選攜帶AIGP屬性的路由,AIGP屬性值越小優先級越高;
(6) 優選AS路徑(AS_PATH)最短的路由;
(7) 依次選擇ORIGIN類型為IGP、EGP、Incomplete的路由;
(8) 優選MED值最低的路由;
(9) 依次選擇從EBGP、聯盟EBGP、聯盟IBGP、IBGP學來的路由;
(10) 優選IGP Metric值最小的路由;
(11) 優選迭代深度值小的路由;
(12) 如果當前的最優路由為EBGP路由,則BGP路由器收到來自不同的EBGP鄰居的路由後,不會改變最優路由;
(13) 優選Router ID最小的路由器發布的路由。如果路由包含RR屬性,那麼在路由選擇過程中,就用ORIGINATOR_ID來替代Router ID;
(14) 優選CLUSTER_LIST長度最短的路由;
(15) 優選IP地址最小的對等體發布的路由。
· CLUSTER_ID為路由反射器的集群ID,CLUSTER_LIST由CLUSTER_ID序列組成,路由反射器將自己的CLUSTER_ID加入CLUSTER_LIST中。若路由反射器收到路由中的CLUSTER_LIST包含自己的CLUSTER_ID,則丟棄該路由,從而避免集群內發生環路。
· 如果配置了負載分擔,並且有多條到達同一目的地的路由,則根據配置的路由條數選擇多條路由進行負載分擔。
BGP發布路由時采用如下策略:
· 存在多條有效路由時,BGP發言者隻將最優路由發布給對等體。如果配置了advertise-rib-active命令,則BGP發布IP路由表中的最優路由;否則,發布BGP路由表中的最優路由。
· BGP發言者隻把自己使用的路由發布給對等體。
· BGP發言者會將從EBGP獲得的路由發布給它的所有BGP對等體(包括EBGP對等體和IBGP對等體)。
· BGP發言者會將從IBGP獲得的路由發布給它的EBGP對等體,但不會發布給它的IBGP對等體。
· 會話一旦建立,BGP發言者將把滿足上述條件的所有BGP路由發布給新對等體。之後,BGP發言者隻在路由變化時,向對等體發布更新的路由。
BGP可以通過如下兩種方式實現負載分擔:
· 基於迭代路由實現負載分擔
· 通過改變BGP選路規則實現負載分擔
由於BGP協議本身的特殊性,它產生的路由的下一跳地址可能不是當前路由器直接相連的鄰居。常見的一個原因是:IBGP之間發布路由信息時不改變下一跳。這種情況下,為了能夠將報文正確轉發出去,路由器必須先找到一個直接可達的地址(查找IGP建立的路由表項),通過這個地址到達路由表中指示的下一跳。在上述過程中,去往直接可達地址的路由被稱為依賴路由,BGP路由依賴於這些路由指導報文轉發。根據下一跳地址找到依賴路由的過程就是路由迭代。
目前係統支持基於迭代的BGP負載分擔,即如果依賴路由本身是負載分擔的(假設有三個下一跳地址),則BGP也會生成與依賴路由數量相同的下一跳地址來指導報文轉發。需要說明的是,基於迭代的BGP負載分擔並不需要命令配置,這一特性在係統上始終啟用。
在實現方法上,BGP的負載分擔與IGP的負載分擔有所不同:
· IGP(如RIP、OSPF)是通過協議定義的路由算法,對到達同一目的地址的不同路由,根據計算結果,將度量值(metric)相等的路由進行負載分擔,選擇的標準很明確(按metric)。
· BGP本身並沒有路由計算的算法,它隻是一個選路的路由協議,因此,不能根據一個明確的度量值決定是否對路由進行負載分擔,但BGP有豐富的選路規則,可以在對路由進行一定的選擇後,有條件地進行負載分擔,也就是將負載分擔加入到BGP的選路規則中去。
采用本方式進行負載分擔時,BGP不再按照“1.5 BGP的選路規則”中的規則選擇路由,當路由同時滿足如下條件時,即在這些路由間進行負載分擔:
· ORIGIN屬性、LOCAL_PREF屬性、AIGP屬性和MED屬性完全相同。
· AS_PATH屬性滿足如下要求:
¡ 隻要配置了balance as-path-neglect命令,則AS_PATH屬性可以不同。
¡ 如果配置了balance as-path-relax命令,但未配置balance as-path-neglect命令,則AS_PATH屬性內容不同但長度相同的路由之間能夠形成BGP負載分擔。
¡ 如果未配置balance as-path-neglect和balance as-path-relax命令,則要求AS_PATH屬性也必須相同。
· 路由下一跳的IGP路由的Metric值滿足如下要求:
¡ 若未配置bestroute igp-metric-ignore命令,則路由下一跳的IGP的Metric值必須相同。
¡ 配置了bestroute igp-metric-ignore命令後,不同路由下一跳的IGP Metric值不同也能形成BGP負載分擔。
· 同為標簽路由(具有對應MPLS標簽值的路由)或同為非標簽路由。
圖1-5 BGP負載分擔示意圖
在圖1-5中,Router A和Router B是Router C的IBGP對等體。當Router D和Router E同時向Router C通告到達同一目的地的路由時,如果用戶在Router C上配置了進行負載分擔的BGP路由條數為2,則當這兩條路由滿足負載分擔條件時,Router C就把這兩條路由同時加入到轉發表中,實現BGP路由的負載分擔。Router C隻向Router A和Router B轉發一次該路由,該路由的屬性按照如下方法確定:
· 如果未配置balance as-path-neglect和balance as-path-relax命令,形成負載分擔的路由的AS_PATH屬性相同,則發布路由的AS_PATH屬性就為該值;如果配置了balance as-path-neglect或balance as-path-relax命令,形成負載分擔的路由的AS_PATH屬性不同,則發布路由的AS_PATH屬性為最佳路由的AS_PATH屬性。
· NEXT_HOP屬性改變為Router C的地址,而不是原來的EBGP對等體地址。
· 其它的BGP路由屬性為最佳路由的屬性。
BGP負載分擔特性適用於EBGP、IBGP以及聯盟之間。
在大規模BGP網絡中,對等體的數目眾多,路由表龐大,配置和維護極為不便。通過如下方法,可以降低管理難度,提高路由發布效率。
在大規模的網絡中,BGP路由表十分龐大,使用路由聚合(Routes Aggregation)可以大大減小BGP路由表的規模。
路由聚合實際上是將多條路由合並的過程。這樣BGP在向對等體通告路由時,可以隻通告聚合後的路由,而不是將所有的具體路由都通告出去。
目前係統支持自動聚合和手動聚合方式。使用後者還可以控製聚合路由的屬性,以及決定是否發布具體路由。
路由發生變化時,路由協議會向鄰居發布路由更新,收到路由更新的路由器需要重新計算路由並修改路由表。如果發生路由震蕩,即路由不穩定,路由表中的某條路由反複消失和重現,則會消耗大量的帶寬資源和CPU資源,嚴重時會影響到網絡的正常工作。
在多數情況下,BGP協議都應用於複雜的網絡環境中,路由變化十分頻繁。為了防止持續的路由震蕩帶來的不利影響,BGP使用衰減來抑製不穩定的路由。
BGP衰減使用懲罰值來衡量一條路由的穩定性,懲罰值越高說明路由越不穩定。如圖1-6所示,路由每次從可達狀態變為不可達狀態,或者可達路由的屬性每次發生變化時,BGP給此路由增加一定的懲罰值(係統固定為1000,不可修改)。當懲罰值超過抑製閾值時,此路由被抑製,不參與路由選擇。懲罰值達到設置的上限後,不再繼續增加。
發生震蕩的路由如果沒有再次震蕩,則路由的懲罰值會逐漸減少。每經過一段時間,懲罰值便會減少一半,這個時間稱為半衰期(Half-life)。當懲罰值低於再使用閾值時,此路由變為可用路由,參與路由選擇。
圖1-6 BGP路由衰減示意圖
在大規模BGP網絡中,對等體的數量很多,其中很多對等體具有相同的策略,在配置時會重複使用一些命令。此時,將這些對等體加入一個對等體組,可以簡化配置。
對等體組是具有某些相同屬性的對等體的集合。當一個對等體加入對等體組時,此對等體將獲得與所在對等體組相同的配置。當對等體組的配置改變時,組內成員的配置也相應改變。
在大規模的網絡中,如果通過地址前綴列表、ACL、AS_PATH等實現對路由的控製,不僅配置複雜,而且不方便維護。利用團體屬性和擴展團體屬性,可以提高路由策略配置的靈活度,簡化路由策略的管理,從而降低維護管理的難度。團體屬性和擴展團體屬性的介紹請參見“1.4 BGP的路由屬性”。
為保證IBGP對等體之間的連通性,需要在IBGP對等體之間建立全連接關係。假設在一個AS內部有n台路由器,那麼應該建立的IBGP連接數就為n(n-1)/2。當IBGP對等體數目很多時,對網絡資源和CPU資源的消耗都很大。
利用路由反射可以解決這一問題。在一個AS內,其中一台路由器作為RR(Route Reflector,路由反射器),作為客戶機(Client)的路由器與路由反射器之間建立IBGP連接。路由反射器從客戶機接收到路由後,將其傳遞(反射)給所有其他的客戶機,從而保證客戶機之間不需要建立BGP連接,就可以學習到彼此的路由。
既不是路由反射器也不是客戶機的BGP路由器被稱為非客戶機(Non-client)。非客戶機與路由反射器之間,以及所有的非客戶機之間仍然必須建立全連接關係。其示意圖如圖1-7所示。
路由反射器及其客戶機形成了一個集群。通常情況下,一個集群中隻有一個路由反射器,該反射器的Router ID就作為集群ID,用於識別該群。如圖1-8所示,為了提高網絡的可靠性、避免單點故障,一個集群中可以設置多個路由反射器。此時,集群中所有路由反射器上都需要配置相同的集群ID,以便集群具有統一的標識,避免路由環路的產生。
如果配置了路由反射器後,由於組網需要在路由反射器的客戶機之間又建立了全連接,則客戶機之間可以直接交換路由信息,客戶機到客戶機之間的路由反射是沒有必要的。此時,不需要修改網絡配置或改變網絡拓撲,隻需在路由反射器上通過相關命令禁止其在客戶機之間反射路由,就可以避免路由反射,減少占用的帶寬資源。
禁止客戶機之間的路由反射後,客戶機到非客戶機之間的路由仍然可以被反射。
聯盟(Confederation)是處理自治係統內部的IBGP網絡連接激增的另一種方法,它將一個自治係統劃分為若幹個子自治係統,每個子自治係統內部的IBGP對等體建立全連接關係,子自治係統之間建立聯盟內部EBGP連接關係。其示意圖如圖1-9所示。
在不屬於聯盟的BGP發言者看來,屬於同一個聯盟的多個子自治係統是一個整體,外界不需要了解內部的子自治係統情況,聯盟ID就是標識聯盟這一整體的自治係統號,如上圖中的AS 200就是聯盟ID。
聯盟的缺陷是從非聯盟方案向聯盟方案轉變時,要求路由器重新進行配置,邏輯拓撲也要改變。
在大型BGP網絡中,路由反射器和聯盟可以被同時使用。
BGP-4隻能傳遞IPv4單播的路由信息,不能傳遞其它網絡層協議(如IPv6等)的路由信息。
為了提供對多種網絡層協議的支持,IETF對BGP-4進行了擴展,形成MP-BGP(Multiprotocol Border Gateway Protocol,多協議邊界網關協議)。MP-BGP可以為多種網絡層協議傳遞路由信息。
· IPv6單播
通過MP-BGP發布和維護IPv6單播路由前綴信息。
· VPNv4/VPNv6
通過MP-BGP發布和維護VPNv4/VPNv6路由前綴信息,詳細介紹請參見“MPLS配置指導”中的“MPLS L3VPN”和“IPv6 MPLS L3VPN”。
· 帶標簽的IPv4單播/IPv6單播
通過MP-BGP發布和維護IPv4單播/IPv6單播路由前綴的同時,還發布為該路由前綴分配的MPLS標簽。帶標簽的IPv4單播路由主要應用於MPLS L3VPN的跨域VPN-OptionC組網中;帶標簽的IPv6單播路由主要應用於6PE和MPLS L3VPN的跨域VPN-OptionC組網中。跨域VPN-OptionC組網的詳細介紹,請參見“MPLS配置指導”中的“MPLS L3VPN”。
· EVPN
通過MP-BGP發布和維護EVPN路由信息,以實現自動發現VTEP、自動建立和關聯VXLAN隧道、通告MAC地址和ARP信息。詳細介紹請參見“EVPN配置指導”中的“EVPN”。
路由信息中與網絡層協議相關的關鍵信息包括路由前綴和下一跳地址。BGP-4通過Update消息中的NLRI(Network Layer Reachability Information,網絡層可達性信息)字段攜帶可達路由的前綴信息,Withdrawn Routes字段攜帶不可達路由的前綴信息,NEXT_HOP屬性攜帶下一跳地址信息。NLRI字段、Withdrawn Routes字段和NEXT_HOP屬性不易於擴展,無法攜帶多種網絡層協議的信息。
為實現對多種網絡層協議的支持,MP-BGP定義了兩個新的路徑屬性:
· MP_REACH_NLRI(Multiprotocol Reachable NLRI,多協議可達NLRI):用於攜帶多種網絡層協議的可達路由前綴及下一跳地址信息,以便向鄰居發布該路由。
· MP_UNREACH_NLRI(Multiprotocol Unreachable NLRI,多協議不可達NLRI):用於攜帶多種網絡層協議的不可達路由前綴信息,以便撤銷該路由。
MP-BGP通過上述兩個路徑屬性傳遞不同網絡層協議的可達路由和不可達路由信息。不支持MP-BGP的BGP發言者接收到帶有這兩個屬性的Update消息後,忽略這兩個屬性,不把它們傳遞給其它鄰居。
MP-BGP采用地址族(Address Family)和子地址族(Subsequent Address Family)來區分MP_REACH_NLRI屬性、MP_UNREACH_NLRI屬性中攜帶路由信息所屬的網絡層協議。例如,如果MP_REACH_NLRI屬性中AFI(Address Family Identifier,地址族標識符)為2、SAFI(Subsequent Address Family Identifier,子地址族標識符)為1,則表示該屬性中攜帶的是IPv6單播路由信息。關於地址族的一些取值可以參考RFC 1700。
MP-BGP支持IPvX(X可以為4或6)對等體之間交互IPv4和IPv6路由,即IPv4對等體之間除了交互IPv4路由以外還可以交互IPv6路由,IPv6對等體之間除了交互IPv6路由以外還可以交互IPv4路由:
· IPv6路由的下一跳為IPv4地址時,MP-BGP將此IPv4地址映射為IPv6地址封裝在Update報文的Next-Hop屬性中。此時,需要配置路由策略,將IPv6路由的下一跳地址修改為對端設備的IPv6地址,否則無法正常進行路由迭代。
· IPv4路由的下一跳為IPv6地址時,需要BGP會話協商支持擴展IPv6下一跳能力,將IPv4 NLRI封裝在MP_REACH_NLRI屬性中。此時,需要配置路由策略,將IPv4路由的下一跳地址修改為對端設備的IPv4地址,否則無法正常進行路由迭代。
圖1-10 MP-BGP支持BGP IPvX會話承載IPv4和IPv6路由
以圖1-10為例,Device B和Device C之間僅建立BGP IPv6會話,Device A和DeviceB、Device C和Device D之間同時建立BGP IPv4和BGP IPv6會話,Device A和Device D可以學習到對方的IPv4和IPv6路由並且兩個地址族下的流量都能正常互通。當Device C收到Device B發布的IPv4路由時,下一跳為Device B的IPv6地址,需要在Device C上配置路由策略將這類路由的下一跳屬性修改為Device B上出接口Port A的IPv4地址10.1.1.1/24,反之同理。
一台BGP路由器上可以同時啟動多個BGP進程,每個BGP進程對應一個BGP實例。BGP為不同的BGP實例維護獨立的路由表。
設備為BGP定義了多種視圖,分別用來管理不同BGP實例、不同地址族及不同VPN實例的路由信息。BGP支持VPN多實例,可以為不同的VPN實例維護獨立的路由表。
大多數BGP配置命令可以在多個視圖下執行,不同視圖下命令的作用範圍有所不同,詳細介紹如表1-1所示。
表1-1 BGP相關視圖介紹
視圖名稱 |
進入視圖方法 |
說明 |
BGP實例視圖 |
執行bgp命令時,可以通過instance參數指定BGP實例名稱,以便進入指定BGP實例的視圖,該視圖下有些配置對指定BGP實例的公網和所有VPN實例內所有地址族的路由和對等體生效(如聯盟、GR、日誌功能的配置等),有些配置隻對指定BGP實例的公網內所有地址族的路由和對等體生效 |
|
BGP IPv4單播地址族視圖 |
該視圖下的配置對指定BGP實例的公網內的IPv4單播路由和對等體生效 |
|
BGP IPv6單播地址族視圖 |
該視圖下的配置對指定BGP實例的公網內的IPv6單播路由和對等體生效 |
|
BGP VPNv4地址族視圖 |
該視圖下的配置對指定BGP實例的VPNv4路由和對等體生效 BGP VPNv4地址族視圖的配置請參見“MPLS配置指導”中的“MPLS L3VPN” |
|
BGP VPNv6地址族視圖 |
該視圖下的配置對指定BGP實例的VPNv6路由和對等體生效 BGP VPNv6地址族視圖的配置請參見“MPLS配置指導”中的“IPv6 MPLS L3VPN” |
|
BGP EVPN地址族視圖 |
該視圖下的配置對指定BGP實例的EVPN路由和對等體生效 BGP EVPN地址族的配置請參見“EVPN配置指導”中的“EVPN” |
|
BGP-VPN實例視圖 |
該視圖下的配置對指定BGP實例的指定VPN實例內所有地址族的路由和對等體生效 VPN實例的詳細介紹,請參見“MPLS配置指導”中的“MPLS L3VPN” |
|
BGP-VPN IPv4單播地址族視圖 |
該視圖下的配置對指定BGP實例的指定VPN實例內的IPv4單播路由和對等體生效 VPN實例的詳細介紹,請參見“MPLS配置指導”中的“MPLS L3VPN” |
|
BGP-VPN IPv6單播地址族視圖 |
該視圖下的配置對指定BGP實例的指定VPN實例內的IPv6單播路由和對等體生效 VPN實例的詳細介紹,請參見“MPLS配置指導”中的“MPLS L3VPN” |
|
BGP-VPN VPNv4地址族視圖 |
該視圖下的配置對指定BGP實例的指定VPN實例內的VPNv4路由和對等體生效 BGP-VPN VPNv4地址族視圖的配置請參見“MPLS配置指導”中的“MPLS L3VPN” |
|
BGP LS地址族視圖 |
該視圖下的配置對指定BGP實例的LS信息和對等體生效 |
|
BGP IPv4 RT-Filter地址族視圖 |
該視圖下的配置對指定BGP實例的IPv4 RT-Filter路由和對等體生效 BGP IPv4 RT-Filter地址族視圖的配置請參見“MPLS配置指導”中的“MPLS L3VPN” |
與BGP相關的協議規範有:
· RFC 1700:ASSIGNED NUMBERS
· RFC 1997:BGP Communities Attribute
· RFC 2439:BGP Route Flap Damping
· RFC 2545:Use of BGP-4 Multiprotocol Extensions for IPv6 Inter-Domain Routing
· RFC 2918:Route Refresh Capability for BGP-4
· RFC 3107:Carrying Label Information in BGP-4
· RFC 4271:A Border Gateway Protocol 4 (BGP-4)
· RFC 4275:BGP-4 MIB Implementation Survey
· RFC 4277:Experience with the BGP-4 Protocol
· RFC 4360:BGP Extended Communities Attribute
· RFC 4364:BGP/MPLS IP Virtual Private Networks (VPNs)
· RFC 4382:MPLS/BGP Layer 3 Virtual Private Network (VPN) Management
· RFC 4451:BGP MULTI_EXIT_DISC (MED) Consideration
· RFC 4456:BGP Route Reflection: An Alternative to Full Mesh Internal BGP
· RFC 4486:Subcodes for BGP Cease Notification Message
· RFC 4659:BGP-MPLS IP Virtual Private Network (VPN) Extension for IPv6 VPN
· RFC 4684:Constrained Route Distribution for Border Gateway Protocol/MultiProtocol Label Switching (BGP/MPLS) Internet Protocol (IP) Virtual Private Networks (VPNs)
· RFC 4724:Graceful Restart Mechanism for BGP
· RFC 4760:Multiprotocol Extensions for BGP-4
· RFC 4781:Graceful Restart Mechanism for BGP with MPLS
· RFC 5004:Avoid BGP Best Path Transitions from One External to Another
· RFC 5065:Autonomous System Confederations for BGP
· RFC 5082:The Generalized TTL Security Mechanism (GTSM)
· RFC 5291:Outbound Route Filtering Capability for BGP-4
· RFC 5292:Address-Prefix-Based Outbound Route Filter for BGP-4
· RFC 5492:Capabilities Advertisement with BGP-4
· RFC 5549:Advertising IPv4 Network Layer Reachability Information with an IPv6 Next Hop
· RFC 5668:4-Octet AS Specific BGP Extended Community
· RFC 6037:Cisco Systems' Solution for Multicast in BGP MPLS IP VPNs
· RFC 6198:Requirements for the Graceful Shutdown of BGP Sessions
· RFC 6368:Internal BGP as the Provider/Customer Edge Protocol for BGP/MPLS IP
· RFC 6624:Layer 2 Virtual Private Networks Using BGP for Auto-Discovery and Signaling
· RFC 6793:BGP Support for Four-Octet Autonomous System (AS) Number Space
· RFC 7432:BGP MPLS-Based Ethernet VPN
· RFC 7752:North-Bound Distribution of Link-State and Traffic Engineering (TE) Information Using BGP
· RFC 7854:BGP Monitoring Protocol (BMP)
· RFC 7911:Advertisement of Multiple Paths in BGP
BGP對BGP實例具有如下要求:
· 一個BGP實例下可以創建多個公網地址族,但不同BGP實例下不能創建相同的公網地址族(公網IPv4單播地址族、公網IPv6單播地址族、公網VPNv4地址族和公網VPNv6地址族除外)。
· 一個BGP實例下可以創建多個VPN實例,每個VPN實例下可以創建多個地址族,但不同BGP實例下不能創建相同的VPN實例。
· BGP不同實例的相同地址族不能配置相同地址的鄰居。
· 不同BGP實例對應的AS號可以相同,不同BGP實例的實例名稱不能相同。
IPv4單播的BGP配置任務如下:
(1) 配置BGP基本功能
a. 啟動BGP
b. 手工創建BGP對等體
c. 動態創建BGP對等體
d. 配置IBGP對等體組
在大規模的BGP網絡中可通過配置BGP對等體組簡化配置。
e. 配置EBGP對等體組
在大規模的BGP網絡中可通過配置BGP對等體組簡化配置。
f. (可選)配置建立TCP連接使用的源地址
g. (可選)配置TCP連接的MSS值
(2) 生成BGP路由信息
請至少選擇其中一項任務進行配置:
¡ (可選)配置BGP路由聚合
¡ (可選)配置向對等體/對等體組發送缺省路由
(3) (可選)控製BGP路由信息的發布
(4) (可選)控製BGP路由信息的接收
¡ 配置SoO屬性
¡ 配置鏈路帶寬屬性
(5) (可選)配置BGP定時器
(6) (可選)配置BGP日誌和告警功能
IPv6單播的BGP配置任務如下:
(1) 配置BGP基本功能
a. 啟動BGP
b. 手工創建BGP對等體
c. 動態創建BGP對等體
d. 配置IBGP對等體組
在大規模的BGP網絡中可通過配置BGP對等體組簡化配置。
e. 配置EBGP對等體組
在大規模的BGP網絡中可通過配置BGP對等體組簡化配置。
f. (可選)配置建立TCP連接使用的源地址
g. (可選)配置TCP連接的MSS值
(2) 生成BGP路由信息
請至少選擇其中一項任務進行配置:
¡ (可選)配置BGP路由聚合
¡ (可選)配置向對等體/對等體組發送缺省路由
(3) (可選)控製BGP路由信息的發布
(4) (可選)控製BGP路由信息的接收
¡ 配置SoO屬性
¡ 配置鏈路帶寬屬性
(5) (可選)配置BGP定時器
(6) (可選)配置BGP日誌和告警功能
如果要在BGP實例下運行BGP協議,則必須為BGP實例指定Router ID。Router ID用來在一個自治係統中唯一的標識一台路由器。
· 用戶可以在啟動BGP實例進入BGP實例視圖後指定該實例的Router ID。不同BGP實例的Router ID可以相同。配置時,必須保證自治係統中任意兩台路由器的Router ID都不相同。通常的做法是將路由器的Router ID配置為與該路由器某個接口的IP地址一致,為了增加網絡的可靠性,建議將Router ID配置為Loopback接口的IP地址。
· 如果沒有在BGP實例視圖下配置Router ID,則該實例使用全局Router ID。
· BGP實例的Router ID一旦確定為非零值後不會隨著係統視圖下router id命令配置的改變而改變。隻能在BGP實例視圖下通過router-id命令改變BGP的Router ID。
· 如果是在BGP實例視圖下配置的Router ID,則Router ID所在接口被刪除時路由器不會重新選擇Router ID,隻有在BGP實例視圖下使用undo router-id命令刪除手工配置的Router ID後,路由器才會重新選擇Router ID。
(1) 進入係統視圖。
system-view
(2) 配置全局Router ID。
router id router-id
缺省情況下,未配置全局Router ID。
如果未配置全局Router ID,則按照下麵的規則進行選擇:
¡ 如果存在配置IP地址的Loopback接口,則選擇Loopback接口地址中最大的作為Router ID。
¡ 如果所有Loopback接口都未配置IP地址,則從其他接口的IP地址中選擇最大的作為Router ID(不考慮接口的up/down狀態)。
(3) 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
缺省情況下,沒有運行BGP,不存在BGP實例。
(4) (可選)為指定的BGP實例配置路由器的Router ID。
router-id router-id
缺省情況下,未配置BGP路由器在BGP實例內的Router ID,為係統視圖下通過router id命令配置的全局Router ID。
(5) (可選)進入BGP-VPN實例視圖。
ip vpn-instance vpn-instance-name
進入BGP-VPN實例視圖時,指定的VPN實例必須已經創建,且VPN實例內必須配置RD(Route Distinguisher,路由標識符)。
(6) (可選)為指定的VPN實例配置路由器的Router ID。
router-id { router-id | auto-select }
缺省情況下,未配置BGP路由器在VPN實例內的Router ID。
如果在BGP實例視圖下執行了router-id命令,則BGP路由器在VPN實例內的Router ID為該命令配置的Router ID;否則,為係統視圖下由router id命令配置的全局Router ID。
當通過IPv6鏈路本地地址創建對等體或向對等體組中添加指定的對等體時,必須使用直連接口建立對等關係,且必須通過peer connect-interface命令將本地直連出接口指定為建立TCP連接使用的源接口。
配置IPv6對等體交互IPv4單播路由或IPv4對等體交互IPv6路由時,必須配置路由策略修改從對等體收到路由的下一跳:將從對等體收到的IPv4路由的下一跳修改為對端出接口的IPv4地址,IPv6路由的下一跳修改為對端出接口的IPv6地址,否則轉發時不能迭代出正確的下一跳。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖或BGP-VPN實例視圖。
¡ 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
¡ 請依次執行以下命令進入BGP-VPN實例視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 創建IPv4 BGP對等體,並指定對等體的AS號。
peer ipv4-address as-number as-number
(4) (可選)配置對等體的描述信息。
peer ipv4-address description text
缺省情況下,對等體沒有描述信息。
(5) 創建BGP IPv4單播地址族或BGP-VPN IPv4單播地址族,並進入相應地址族視圖。
address-family ipv4 [ unicast ]
(6) 允許本地路由器與指定對等體交換IPv4單播路由信息。
peer ipv4-address enable
缺省情況下,本地路由器不能與對等體交換IPv4單播路由信息。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖或BGP-VPN實例視圖。
¡ 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
¡ 請依次執行以下命令進入BGP-VPN實例視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 創建IPv4 BGP對等體,並指定對等體的AS號。
peer ipv4-address as-number as-number
(4) (可選)配置對等體的描述信息。
peer ipv4-address description text
缺省情況下,對等體沒有描述信息。
(5) 創建BGP IPv6單播地址族,並進入相應地址族視圖。
address-family ipv6 [ unicast ]
(6) 允許本地路由器與指定對等體交換IPv6單播路由信息。
peer ipv4-address enable
缺省情況下,本地路由器不能與對等體交換IPv6單播路由信息。
(7) 為IPv4對等體設置基於路由策略的路由修改下一跳策略。
peer ipv4-address route-policy route-policy-name import
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖或BGP-VPN實例視圖。
¡ 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
¡ 請依次執行以下命令進入BGP-VPN實例視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 創建IPv6 BGP對等體,並指定對等體的AS號。
peer ipv6-address as-number as-number
(4) (可選)配置對等體的描述信息。
peer ipv6-address description text
缺省情況下,對等體沒有描述信息。
(5) 創建BGP IPv6單播地址族或BGP-VPN IPv6單播地址族,並進入相應地址族視圖。
address-family ipv6 [ unicast ]
(6) 允許本地路由器與指定對等體交換IPv6單播路由信息。
peer ipv6-address enable
缺省情況下,本地路由器不能與對等體/對等體組交換IPv6單播路由信息。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖或BGP-VPN實例視圖。
¡ 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
¡ 請依次執行以下命令進入BGP-VPN實例視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 創建IPv6 BGP對等體,並指定對等體的AS號。
peer ipv6-address as-number as-number
(4) (可選)配置對等體的描述信息。
peer ipv6-address description text
缺省情況下,對等體沒有描述信息。
(5) 創建BGP IPv4單播地址族,並進入相應地址族視圖。
address-family ipv4 [ unicast ]
(6) 允許本地路由器與指定對等體交換IPv4單播路由信息。
peer ipv6-address enable
缺省情況下,本地路由器不能與對等體交換IPv4單播路由信息。
(7) 為IPv6對等體設置基於路由策略的路由修改下一跳策略。
peer ipv6-address route-policy route-policy-name import
設備需要和大量的鄰居建立對等體關係時,如果逐個配置對等體關係,則配置工作量大,新增或者刪除對等體的維護、升級工作難度較大,且容易出錯。
如果設備的鄰居位於同一個網段內,則可以通過BGP動態對等體功能簡化配置。在設備上簡單地配置一個網段地址內的鄰居作為動態對等體,就可以接受來自該網段內的所有鄰居的連接請求,並與其建立對等體關係。隻有當鄰居發起連接請求時,本地才會維護與該鄰居的對等體關係;否則,不維護對等體關係。BGP動態對等體功能既簡化了配置,又大大降低了維護和升級成本。
配置動態對等體時,設備和鄰居隻能有一端配置網段地址,另一端必須配置實際IP地址。
當通過IPv6鏈路本地地址創建對等體或向對等體組中添加指定的對等體時,必須使用直連接口建立對等關係,且必須通過peer connect-interface命令將本地直連出接口指定為建立TCP連接使用的源接口。
配置IPv6對等體交互IPv4單播路由或IPv4對等體交互IPv6路由時,必須配置路由策略修改從對等體收到路由的下一跳:將從對等體收到的IPv4路由的下一跳修改為對端出接口的IPv4地址,IPv6路由的下一跳修改為對端出接口的IPv6地址,否則轉發時不能迭代出正確的下一跳。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖或BGP-VPN實例視圖。
¡ 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
¡ 請依次執行以下命令進入BGP-VPN實例視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 創建IPv4 BGP動態對等體,並指定對等體的AS號。
peer ipv4-address mask-length as-number as-number
(4) (可選)配置對等體的描述信息。
peer ipv4-address mask-length description text
缺省情況下,動態對等體沒有描述信息。
(5) 創建BGP IPv4單播地址族或BGP-VPN IPv4單播地址族,並進入相應地址族視圖。
address-family ipv4 [ unicast ]
(6) 允許本地路由器與指定動態對等體交換IPv4單播路由信息。
peer ipv4-address mask-length enable
缺省情況下,本地路由器不能與動態對等體交換IPv4單播路由信息。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖或BGP-VPN實例視圖。
¡ 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
¡ 請依次執行以下命令進入BGP-VPN實例視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 創建IPv4 BGP動態對等體,並指定對等體的AS號。
peer ipv4-address mask-length as-number as-number
(4) (可選)配置對等體的描述信息。
peer ipv4-address mask-length description text
缺省情況下,動態對等體沒有描述信息。
(5) 創建BGP IPv6單播地址族,並進入相應地址族視圖。
address-family ipv6 [ unicast ]
(6) 允許本地路由器與指定對等體交換IPv6單播路由信息。
peer ipv4-address mask-length enable
缺省情況下,本地路由器不能與動態對等體交換IPv6單播路由信息。
(7) 為BGP IPv4動態對等體設置基於路由策略的路由修改下一跳策略。
peer ipv4-address mask-length route-policy route-policy-name import
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖或BGP-VPN實例視圖。
¡ 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
¡ 請依次執行以下命令進入BGP-VPN實例視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 創建IPv6 BGP動態對等體,並指定對等體的AS號。
peer ipv6-address prefix-length as-number as-number
(4) (可選)配置動態對等體的描述信息。
peer ipv6-address prefix-length description text
缺省情況下,動態對等體沒有描述信息。
(5) 創建BGP IPv6單播地址族或BGP-VPN IPv6單播地址族,並進入相應地址族視圖。
address-family ipv6 [ unicast ]
(6) 允許本地路由器與指定動態對等體交換IPv6單播路由信息。
peer ipv6-address prefix-length enable
缺省情況下,本地路由器不能與動態對等體交換IPv6單播路由信息。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖或BGP-VPN實例視圖。
¡ 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
¡ 請依次執行以下命令進入BGP-VPN實例視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 創建IPv6 BGP動態對等體,並指定對等體的AS號。
peer ipv6-address prefix-length as-number as-number
(4) (可選)配置動態對等體的描述信息。
peer ipv6-address prefix-length description text
缺省情況下,動態對等體沒有描述信息。
(5) 創建BGP IPv4單播地址族,並進入相應地址族視圖。
address-family ipv4 [ unicast ]
(6) 允許本地路由器與指定對等體交換IPv4單播路由信息。
peer ipv6-address prefix-length enable
缺省情況下,本地路由器不能與動態對等體交換IPv4單播路由信息。
(7) 為BGP IPv6動態對等體設置基於路由策略的路由修改下一跳策略。
peer ipv6-address mask-length route-policy route-policy-name import
IBGP對等體組是指對等體組中的對等體與當前路由器位於同一AS。
創建IBGP對等體組後,係統在將對等體加入IBGP對等體組時,會自動在BGP實例視圖下創建該對等體,並設置其AS號為本地AS號。
當通過IPv6鏈路本地地址創建對等體或向對等體組中添加指定的對等體時,必須使用直連接口建立對等關係,且必須通過peer connect-interface命令將本地直連出接口指定為建立TCP連接使用的源接口。
配置IPv6對等體交互IPv4單播路由或IPv4對等體交互IPv6路由時,必須配置路由策略修改從對等體收到路由的下一跳:將從對等體收到的IPv4路由的下一跳修改為對端出接口的IPv4地址,IPv6路由的下一跳修改為對端出接口的IPv6地址,否則轉發時不能迭代出正確的下一跳。
如果分別對對等體組和對等體組中的對等體進行了某項BGP配置,則以最後一次配置為準。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖或BGP-VPN實例視圖。
¡ 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
¡ 請依次執行以下命令進入BGP-VPN實例視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 創建IBGP對等體組。
group group-name [ internal ]
(4) 向對等體組中添加指定的IPv4 BGP對等體。
peer ipv4-address [ mask-length ] group group-name [ as-number as-number ]
as-number as-number參數可選可不選,如果選擇則必須和本地的AS號一致。
(5) (可選)配置對等體組的描述信息。
peer group-name description text
缺省情況下,對等體組沒有描述信息。
(6) 創建BGP IPv4單播地址族或BGP-VPN IPv4單播地址族,並進入相應地址族視圖。
address-family ipv4 [ unicast ]
(7) 允許本地路由器與指定對等體組中的對等體交換IPv4單播路由信息。
peer group-name enable
缺省情況下,本地路由器不能與對等體交換IPv4單播路由信息。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖或BGP-VPN實例視圖。
¡ 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
¡ 請依次執行以下命令進入BGP-VPN實例視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 創建IBGP對等體組。
group group-name [ internal ]
(4) 向對等體組中添加指定的IPv4 BGP對等體。
peer ipv4-address [ mask-length ] group group-name [ as-number as-number ]
as-number as-number參數可選可不選,如果選擇則必須和本地的AS號一致。
(5) (可選)配置對等體組的描述信息。
peer group-name description text
缺省情況下,對等體組沒有描述信息。
(6) 創建BGP IPv6單播地址族,並進入相應地址族視圖。
address-family ipv6 [ unicast ]
允許本地路由器與指定對等體組中的對等體交換IPv6單播路由信息。
(7) peer group-name enable
缺省情況下,本地路由器不能與對等體交換IPv6單播路由信息。
(8) 為BGP IPv4對等體組設置基於路由策略的路由修改下一跳策略。
peer group-name route-policy route-policy-name import
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖或BGP-VPN實例視圖。
¡ 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
¡ 請依次執行以下命令進入BGP-VPN實例視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 創建IBGP對等體組。
group group-name [ internal ]
(4) 向對等體組中添加指定的IPv6 BGP對等體。
peer ipv6-address [ prefix-length ] group group-name [ as-number as-number ]
as-number as-number參數可選可不選,如果選擇則必須和本地的AS號一致。
(5) (可選)配置對等體組的描述信息。
peer group-name description text
缺省情況下,對等體組沒有描述信息。
(6) 創建BGP IPv6單播地址族或BGP-VPN IPv6單播地址族,並進入相應地址族視圖。
address-family ipv6 [ unicast ]
(7) 允許本地路由器與指定對等體組中的對等體交換IPv6單播路由信息。
peer group-name enable
缺省情況下,本地路由器不能與對等體交換IPv6單播路由信息。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖或BGP-VPN實例視圖。
¡ 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
¡ 請依次執行以下命令進入BGP-VPN實例視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 創建IBGP對等體組。
group group-name [ internal ]
(4) 向對等體組中添加指定的IPv6 BGP對等體。
peer ipv6-address [ prefix-length ] group group-name [ as-number as-number ]
as-number as-number參數可選可不選,如果選擇則必須和本地的AS號一致。
(5) (可選)配置對等體組的描述信息。
peer group-name description text
缺省情況下,對等體組沒有描述信息。
(6) 創建BGP IPv4單播地址族,並進入相應地址族視圖。
address-family ipv4 [ unicast ]
(7) 允許本地路由器與指定對等體組中的對等體交換IPv4單播路由信息。
peer group-name enable
缺省情況下,本地路由器不能與對等體交換IPv4單播路由信息。
(8) 為BGP IPv6對等體組設置基於路由策略的路由修改下一跳策略。
peer group-name route-policy route-policy-name import
EBGP對等體組是指對等體組中的對等體與當前路由器位於不同AS。
根據對等體組中的對等體是否屬於同一個外部AS,EBGP對等體組又可以分為純EBGP對等體組和混合EBGP對等體組。如果對等體組中的對等體屬於同一個外部AS,該對等體組就是純EBGP對等體組;如果對等體組中的對等體屬於不同外部AS,該對等體組就是混合EBGP對等體組。
用戶有三種方式配置EBGP對等體組:
· 第一種方式是創建對等體組後,先指定對等體組的AS號,再將對等體加入到對等體組中,該方式下加入的對等體具有相同的AS號,均為對等體組的AS號。對等體加入對等體組之前可以配置AS號,且為對等體配置的AS號必須與對等體組的AS號相同。
· 第二種方式是創建對等體組後,先配置對等體的AS號,再將對等體加入對等體組中。該方式下,對等體組中對等體的AS號可以相同也可以不同。
· 第三種方式是創建對等體組後,將對等體加入對等體組的同時指定AS號。該方式下,對等體組中對等體的AS號可以相同也可以不同。
配置IPv6對等體交互IPv4單播路由或IPv4對等體交互IPv6路由時,必須配置路由策略修改從對等體收到路由的下一跳:將從對等體收到的IPv4路由的下一跳修改為對端出接口的IPv4地址,IPv6路由的下一跳修改為對端出接口的IPv6地址,否則轉發時不能迭代出正確的下一跳。
如果分別對對等體組和對等體組中的對等體進行了某項BGP配置,則以最後一次配置為準。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖或BGP-VPN實例視圖。
¡ 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
¡ 請依次執行以下命令進入BGP-VPN實例視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 創建EBGP對等體組。
group group-name external
(4) 指定對等體組的AS號。
peer group-name as-number as-number
缺省情況下,未指定對等體組的AS號。
如果對等體組中已經存在對等體,則不能改變該對等體組的AS號,也不能使用undo命令刪除已指定的AS號。
(5) 向對等體組中添加指定的IPv4 BGP對等體。
peer ipv4-address [ mask-length ] group group-name [ as-number as-number ]
as-number as-number參數可選可不選,如果選擇則必須和peer group-name as-number as-number命令中配置的一致。
(6) (可選)配置對等體組的描述信息。
peer group-name description text
缺省情況下,對等體組沒有描述信息。
(7) 創建BGP IPv4單播地址族或BGP-VPN IPv4單播地址族,並進入相應地址族視圖。
address-family ipv4 [ unicast ]
(8) 允許本地路由器與指定對等體組中的對等體交換IPv4單播路由信息。
peer group-name enable
缺省情況下,本地路由器不能與對等體交換IPv4單播路由信息。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖或BGP-VPN實例視圖。
¡ 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
¡ 請依次執行以下命令進入BGP-VPN實例視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 創建EBGP對等體組。
group group-name external
(4) 創建IPv4 BGP對等體,並指定對等體的AS號。
peer ipv4-address [ mask-length ] as-number as-number
(5) 向對等體組中添加指定的IPv4 BGP對等體。
peer ipv4-address [ mask-length ] group group-name [ as-number as-number ]
as-number as-number參數可選可不選,如果選擇則必須和peer ipv4-address [ mask-length ] as-number as-number命令中配置的一致。
(6) (可選)配置對等體組的描述信息。
peer group-name description text
缺省情況下,對等體組沒有描述信息。
(7) 創建BGP IPv4單播地址族或BGP-VPN IPv4單播地址族,並進入相應地址族視圖。
address-family ipv4 [ unicast ]
(8) 允許本地路由器與指定對等體組中的對等體交換IPv4單播路由信息。
peer group-name enable
缺省情況下,本地路由器不能與對等體交換IPv4單播路由信息。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖或BGP-VPN實例視圖。
¡ 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
¡ 請依次執行以下命令進入BGP-VPN實例視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 創建EBGP對等體組。
group group-name external
(4) 向對等體組中添加指定的對等體。
peer ipv4-address [ mask-length ] group group-name as-number as-number
(5) (可選)配置對等體組的描述信息。
peer group-name description text
缺省情況下,對等體組沒有描述信息。
(6) 創建BGP IPv4單播地址族或BGP-VPN IPv4單播地址族,並進入相應地址族視圖。
address-family ipv4 [ unicast ]
(7) 允許本地路由器與指定對等體組中的對等體交換IPv4單播路由信息。
peer group-name enable
缺省情況下,本地路由器不能與對等體交換IPv4單播路由信息。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖或BGP-VPN實例視圖。
¡ 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
¡ 請依次執行以下命令進入BGP-VPN實例視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 創建EBGP對等體組。
group group-name external
(4) 指定對等體組的AS號。
peer group-name as-number as-number
缺省情況下,未指定對等體組的AS號。
如果對等體組中已經存在對等體,則不能改變該對等體組的AS號,也不能使用undo命令刪除已指定的AS號。
(5) 向對等體組中添加指定的IPv4 BGP對等體。
peer ipv4-address [ mask-length ] group group-name [ as-number as-number ]
as-number as-number參數可選可不選,如果選擇則必須和peer group-name as-number as-number命令中配置的一致。
(6) (可選)配置對等體組的描述信息。
peer group-name description text
缺省情況下,對等體組沒有描述信息。
(7) 創建BGP IPv6單播地址族,並進入相應地址族視圖。
address-family ipv6 [ unicast ]
(8) 允許本地路由器與指定對等體組中的對等體交換IPv6單播路由信息。
peer group-name enable
缺省情況下,本地路由器不能與對等體交換IPv6單播路由信息。
(9) 為BGP IPv4對等體組設置基於路由策略的路由修改下一跳策略。
peer group-name route-policy route-policy-name import
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖或BGP-VPN實例視圖。
¡ 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
¡ 請依次執行以下命令進入BGP-VPN實例視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 創建EBGP對等體組。
group group-name external
(4) 創建IPv4 BGP對等體,並指定對等體的AS號。
peer ipv4-address [ mask-length ] as-number as-number
(5) 向對等體組中添加指定的IPv4 BGP對等體。
peer ipv4-address [ mask-length ] group group-name [ as-number as-number ]
as-number as-number參數可選可不選,如果選擇則必須和peer ipv4-address [ mask-length ] as-number as-number命令中配置的一致。
(6) (可選)配置對等體組的描述信息。
peer group-name description text
缺省情況下,對等體組沒有描述信息。
(7) 創建BGP IPv6單播地址族,並進入相應地址族視圖。
address-family ipv6 [ unicast ]
(8) 允許本地路由器與指定對等體組中的對等體交換IPv6單播路由信息。
peer group-name enable
缺省情況下,本地路由器不能與對等體交換IPv6單播路由信息。
(9) 為BGP IPv4對等體組設置基於路由策略的路由修改下一跳策略。
peer group-name route-policy route-policy-name import
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖或BGP-VPN實例視圖。
¡ 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
¡ 請依次執行以下命令進入BGP-VPN實例視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 創建EBGP對等體組。
group group-name external
(4) 向對等體組中添加指定的對等體。
peer ipv4-address [ mask-length ] group group-name as-number as-number
(5) (可選)配置對等體組的描述信息。
peer group-name description text
缺省情況下,對等體組沒有描述信息。
(6) 創建BGP IPv6單播地址族,並進入相應地址族視圖。
address-family ipv6 [ unicast ]
(7) 允許本地路由器與指定對等體組中的對等體交換IPv6單播路由信息。
peer group-name enable
缺省情況下,本地路由器不能與對等體交換IPv6單播路由信息。
(8) 為BGP IPv4對等體組設置基於路由策略的路由修改下一跳策略。
peer group-name route-policy route-policy-name import
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖或BGP-VPN實例視圖。
¡ 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
¡ 請依次執行以下命令進入BGP-VPN實例視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 創建EBGP對等體組。
group group-name external
(4) 指定對等體組的AS號。
peer group-name as-number as-number
缺省情況下,未指定對等體組的AS號。
如果對等體組中已經存在對等體,則不能改變該對等體組的AS號,也不能使用undo命令刪除已指定的AS號。
(5) 向對等體組中添加指定的IPv6 BGP對等體。
peer ipv6-address [ prefix-length ] group group-name [ as-number as-number ]
as-number as-number參數可選可不選,如果選擇則必須和peer group-name as-number as-number命令中配置的一致。
(6) (可選)配置對等體組的描述信息。
peer group-name description text
缺省情況下,對等體組沒有描述信息。
(7) 創建BGP IPv6單播地址族或BGP-VPN IPv6單播地址族,並進入相應地址族視圖。
address-family ipv6 [ unicast ]
(8) 允許本地路由器與指定對等體組中的對等體交換IPv6單播路由信息。
peer group-name enable
缺省情況下,本地路由器不能與對等體交換IPv6單播路由信息。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖或BGP-VPN實例視圖。
¡ 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
¡ 請依次執行以下命令進入BGP-VPN實例視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 創建EBGP對等體組。
group group-name external
(4) 創建IPv6 BGP對等體,並指定對等體的AS號。
peer ipv6-address [ prefix-length ] as-number as-number
(5) 向對等體組中添加指定的IPv6 BGP對等體。
peer ipv6-address [ prefix-length ] group group-name [ as-number as-number ]
as-number as-number參數可選可不選,如果選擇則必須和peer ipv6-address [ prefix-length ] as-number as-number命令中配置的一致。
(6) (可選)配置對等體組的描述信息。
peer group-name description text
缺省情況下,對等體組沒有描述信息。
(7) 創建BGP IPv6單播地址族或BGP-VPN IPv6單播地址族,並進入相應地址族視圖。
address-family ipv6 [ unicast ]
(8) 允許本地路由器與指定對等體組中的對等體交換IPv6單播路由信息。
peer group-name enable
缺省情況下,本地路由器不能與對等體交換IPv6單播路由信息。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖或BGP-VPN實例視圖。
¡ 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
¡ 請依次執行以下命令進入BGP-VPN實例視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 創建EBGP對等體組。
group group-name external
(4) 向對等體組中添加指定的IPv6 BGP對等體。
peer ipv6-address [ prefix-length ] group group-name as-number as-number
(5) (可選)配置對等體組的描述信息。
peer group-name description text
缺省情況下,對等體組沒有描述信息。
(6) 創建BGP IPv6單播地址族或BGP-VPN IPv6單播地址族,並進入相應地址族視圖。
address-family ipv6 [ unicast ]
(7) 允許本地路由器與指定對等體組中的對等體交換IPv6單播路由信息。
peer group-name enable
缺省情況下,本地路由器不能與對等體交換IPv6單播路由信息。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖或BGP-VPN實例視圖。
¡ 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
¡ 請依次執行以下命令進入BGP-VPN實例視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 創建EBGP對等體組。
group group-name external
(4) 指定對等體組的AS號。
peer group-name as-number as-number
缺省情況下,未指定對等體組的AS號。
如果對等體組中已經存在對等體,則不能改變該對等體組的AS號,也不能使用undo命令刪除已指定的AS號。
(5) 向對等體組中添加指定的IPv6 BGP對等體。
peer ipv6-address [ prefix-length ] group group-name [ as-number as-number ]
as-number as-number參數可選可不選,如果選擇則必須和peer group-name as-number as-number命令中配置的一致。
(6) (可選)配置對等體組的描述信息。
peer group-name description text
缺省情況下,對等體組沒有描述信息。
(7) 創建BGP IPv4單播地址族,並進入相應地址族視圖。
address-family ipv4 [ unicast ]
(8) 允許本地路由器與指定對等體組中的對等體交換IPv4單播路由信息。
peer group-name enable
缺省情況下,本地路由器不能與對等體交換IPv4單播路由信息。
(9) 為BGP IPv6對等體組設置基於路由策略的路由修改下一跳策略。
peer group-name route-policy route-policy-name import
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖或BGP-VPN實例視圖。
¡ 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
¡ 請依次執行以下命令進入BGP-VPN實例視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 創建EBGP對等體組。
group group-name external
(4) 創建IPv6 BGP對等體,並指定對等體的AS號。
peer ipv6-address [ prefix-length ] as-number as-number
(5) 向對等體組中添加指定的IPv6 BGP對等體。
peer ipv6-address [ prefix-length ] group group-name [ as-number as-number ]
as-number as-number參數可選可不選,如果選擇則必須和peer ipv6-address [ prefix-length ] as-number as-number命令中配置的一致。
(6) (可選)配置對等體組的描述信息。
peer group-name description text
缺省情況下,對等體組沒有描述信息。
(7) 創建BGP IPv4單播地址族,並進入相應地址族視圖。
address-family ipv4 [ unicast ]
(8) 允許本地路由器與指定對等體組中的對等體交換IPv4單播路由信息。
peer group-name enable
缺省情況下,本地路由器不能與對等體交換IPv4單播路由信息。
(9) 為BGP IPv6對等體組設置基於路由策略的路由修改下一跳策略。
peer group-name route-policy route-policy-name import
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖或BGP-VPN實例視圖。
¡ 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
¡ 請依次執行以下命令進入BGP-VPN實例視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 創建EBGP對等體組。
group group-name external
(4) 向對等體組中添加指定的IPv6 BGP對等體。
peer ipv6-address [ prefix-length ] group group-name as-number as-number
(5) (可選)配置對等體組的描述信息。
peer group-name description text
缺省情況下,對等體組沒有描述信息。
(6) 創建BGP IPv4單播地址族,並進入相應地址族視圖。
address-family ipv4 [ unicast ]
(7) 允許本地路由器與指定對等體組中的對等體交換IPv4單播路由信息。
peer group-name enable
缺省情況下,本地路由器不能與對等體交換IPv4單播路由信息。
(8) 為BGP IPv6對等體組設置基於路由策略的路由修改下一跳策略。
peer group-name route-policy route-policy-name import
BGP使用TCP作為其傳輸層協議。在如下場合需要通過本配置指定建立TCP連接使用的源地址或源接口(即采用指定源接口的IP地址/IPv6地址與對等體/對等體組建立TCP連接):
· 當指定對等體的IP地址/IPv6地址不是本地路由器與對等體之間直連接口的IP地址/IPv6地址時,需要在對等體上通過本配置指定建立TCP連接的源接口為對等體IP地址/IPv6地址所在的接口或者指定TCP連接的源地址為對等體IP地址/IPv6地址。
· 當通過IPv6鏈路本地地址創建對等體或向對等體組中添加指定的對等體時,必須使用直連接口建立對等關係,且必須通過peer connect-interface命令將本地直連出接口指定為建立TCP連接使用的源接口。
· 當建立BGP會話的路由器之間存在冗餘鏈路時,如果路由器上的一個接口發生故障,鏈路狀態變為down,建立TCP連接的源地址可能會隨之發生變化,導致BGP需要重新建立TCP連接,造成網絡震蕩。為了避免該情況的發生,建議網絡管理員將建立TCP連接所使用的源地址配置為Loopback接口的地址,或將源接口配置為Loopback接口,以提高TCP連接的可靠性和穩定性。
· 當BGP對等體之間同時建立多條BGP會話時,如果沒有明確指定建立TCP連接的源地址,可能會導致根據最優路由選擇TCP連接源地址錯誤,並影響BGP會話的建立。如果多條BGP會話基於不同接口的IP地址建立,則建議用戶在配置BGP對等體時,通過配置源接口或源地址明確指定每個BGP會話的TCP連接源地址;如果多條BGP會話基於同一接口的不同IP地址建立,則建議用戶通過配置源地址,明確指定每個BGP會話的TCP連接源地址。
對於IBGP鄰居,如果通過peer connect-interface命令指定的接口為物理接口,則當該接口發生故障、鏈路狀態變為down時,IBGP鄰居關係會立即斷開,從而加快路由收斂。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖或BGP-VPN實例視圖。
¡ 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
¡ 請依次執行以下命令進入BGP-VPN實例視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 指定與IPv4對等體/對等體組創建BGP會話時建立TCP連接使用的源地址或源接口。
¡ 指定與IPv4對等體/對等體組創建BGP會話時建立TCP連接使用的源地址。
peer { group-name | ipv4-address [ mask-length ] } source-address source-ipv4-address
¡ 指定與IPv4對等體/對等體組創建BGP會話時建立TCP連接使用的源接口。
peer { group-name | ipv4-address [ mask-length ] } connect-interface interface-type interface-number
缺省情況下,BGP使用到達BGP對等體的最佳路由出接口的主IPv4地址與對等體/對等體組建立TCP連接。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖或BGP-VPN實例視圖。
¡ 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
¡ 請依次執行以下命令進入BGP-VPN實例視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 指定與IPv6對等體/對等體組創建BGP會話時建立TCP連接使用的源地址或源接口。
¡ 指定與IPv6對等體/對等體組創建BGP會話時建立TCP連接使用的源地址。
peer { group-name | ipv6-address [ prefix-length ] } source-address source-ipv6-address
¡ 指定與IPv6對等體/對等體組創建BGP會話時建立TCP連接使用的源接口。
peer { group-name | ipv6-address [ prefix-length ] } connect-interface interface-type interface-number
缺省情況下,BGP使用到達BGP對等體的最佳路由出接口的IPv6地址與對等體/對等體組建立TCP連接。
BGP對等體之間經過多跳建立TCP連接時,如果通信路徑上不同網絡的鏈路層MTU不同,則可能導致BGP報文傳輸時需要在不同節點上進行多次分片,通過本功能配置與指定對等體/對等體組間TCP連接的MSS(Maximum Segment Size,最大報文段大小)值,可以保證TCP報文能在源端分段後、到達目的端前不再重新進行分片,從而提高網絡性能。
本功能僅對配置後新建立或重建的BGP會話生效。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖或BGP-VPN實例視圖。
¡ 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
¡ 請依次執行以下命令進入BGP-VPN實例視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 配置與指定對等體/對等體組間TCP連接的MSS值。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } tcp-mss mss-value
缺省情況下,與指定對等體/對等體組建立TCP連接時不限製TCP報文段長度。
通過本配置可以將本地路由表中指定網段的路由添加到BGP路由表中,以便通過BGP發布該網段路由。通過該種方式發布的路由的ORIGIN屬性為IGP。網絡管理員還可以通過使用路由策略更為靈活地控製所發布的路由。
本配置中指定的網段路由必須存在於本地的IP路由表中,且處於Active狀態,否則無法將該網段路由添加到BGP路由表中。
(1) 進入係統視圖。
system-view
(2) 進入BGP IPv4單播地址族視圖或BGP-VPN IPv4單播地址族視圖。
¡ 請依次執行以下命令進入BGP IPv4單播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv4 [ unicast ]
¡ 請依次執行以下命令進入BGP-VPN IPv4單播地址族視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv4 [ unicast ]
(3) 配置BGP發布的本地網段路由。
network ipv4-address [ mask-length | mask ] [ route-policy route-policy-name ]
缺省情況下,BGP不發布本地的網段路由。
(1) 進入係統視圖。
system-view
(2) 進入BGP IPv6單播地址族視圖或BGP-VPN IPv6單播地址族視圖。
¡ 請依次執行以下命令進入BGP IPv6單播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv6 [ unicast ]
¡ 請依次執行以下命令進入BGP-VPN IPv6單播地址族視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv6 [ unicast ]
(3) 配置BGP發布的本地網段路由。
network ipv6-address prefix-length [ route-policy route-policy-name ]
缺省情況下,BGP不發布本地的網段路由。
BGP可以向鄰居AS發送本地AS內部網絡的路由信息,但BGP不是自己去發現AS內部的路由信息,而是將IGP路由協議的路由信息引入到BGP路由表中,並發布給對等體。在引入IGP路由協議的路由時,可以針對不同的路由協議來對路由信息進行過濾。
缺省情況下,BGP引入IGP路由協議的路由時,不會引入該協議的缺省路由。用戶可以通過配置,指定BGP引入IGP路由協議的路由時,允許將缺省路由引入到BGP路由表中。
通過引入方式發布的路由的ORIGIN屬性為Incomplete。
隻能引入路由表中狀態為active的路由,是否為active狀態可以通過display ip routing-table protocol命令或display ipv6 routing-table protocol命令來查看。這兩條命令的詳細介紹,請參見“三層技術-IP路由命令參考”中的“IP路由基礎”。
針對同一協議進程重複執行import-route命令引入路由時,最後一次執行的命令生效。若要引入同一協議進程時不覆蓋已存在配置,則可以通過import-route-append命令附加引入IGP路由。針對同一協議進程同時配置import-route與import-route-append命令時:
· 通過任意一條命令中路由策略過濾的路由將被引入到BGP路由表中,若引入的路由同時通過了兩條命令中路由策略的過濾,則在被引入到BGP路由表中時,兩條命令指定的路由策略包含的Apply子句在不衝突的情況下同時生效,否則僅import-route-append命令指定的路由策略中的Apply子句生效。
· 如果均指定了引入路由的MED度量值,以import-route-append命令的配置為準。
(1) 進入係統視圖。
system-view
(2) 進入BGP IPv4單播地址族視圖或BGP-VPN IPv4單播地址族視圖。
¡ 請依次執行以下命令進入BGP IPv4單播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv4 [ unicast ]
¡ 請依次執行以下命令進入BGP-VPN IPv4單播地址族視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv4 [ unicast ]
(3) 將IGP路由協議的路由信息引入到BGP路由表中。
¡ 引入IS-IS、OSPF、RIP協議的路由。
import-route { isis | ospf | rip } [ { process-id | all-processes } [ allow-direct | med med-value | route-policy route-policy-name ] * ]
¡ 引入直連或靜態路由。
import-route { direct | static } [ med med-value | route-policy route-policy-name ] *
缺省情況下,BGP不會引入IGP路由協議的路由信息。
(4) (可選)以附加的方式將IGP路由協議的路由信息引入到BGP路由表中。
¡ 引入IS-IS、OSPF、RIP協議的路由。
import-route-append { isis | ospf | rip } [ { process-id | all-processes } [ allow-direct | med med-value | route-policy route-policy-name ] * ]
¡ 引入直連或靜態路由。
import-route-append { direct | static } [ med med-value | route-policy route-policy-name ] *
缺省情況下,BGP不會引入IGP路由協議的路由信息。
(5) (可選)允許將缺省路由引入到BGP路由表中。
default-route imported
缺省情況下,BGP不允許將缺省路由引入到BGP路由表中。
(1) 進入係統視圖。
system-view
(2) 進入BGP IPv6單播地址族視圖或BGP-VPN IPv6單播地址族視圖。
¡ 請依次執行以下命令進入BGP IPv6單播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv6 [ unicast ]
¡ 請依次執行以下命令進入BGP-VPN IPv6單播地址族視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv6 [ unicast ]
(3) 將IGP路由協議的路由信息引入到IPv6 BGP路由表中。
¡ 引入IS-ISv6、OSPFv3、RIPng協議的路由。
import-route { isisv6 | ospfv3 | ripng } [ { process-id | all-processes } [ allow-direct | med med-value | route-policy route-policy-name ] * ]
¡ 引入直連或靜態路由。
import-route { direct | static } [ med med-value | route-policy route-policy-name ] *
缺省情況下,BGP不會引入IGP路由協議的路由信息。
(4) (可選)以附加的方式將IGP路由協議的路由信息引入到BGP路由表中。
¡ 引入IS-ISv6、OSPFv3、RIPng協議的路由。
import-route-append { isisv6 | ospfv3 | ripng } [ { process-id | all-processes } [ allow-direct | med med-value | route-policy route-policy-name ] * ]
¡ 引入直連或靜態路由。
import-route-append { direct | static } [ med med-value | route-policy route-policy-name ] *
缺省情況下,BGP不會引入IGP路由協議的路由信息。
(5) (可選)允許將缺省路由引入到IPv6 BGP路由表中。
default-route imported
缺省情況下,BGP不允許將缺省路由引入到IPv6 BGP路由表中。
在中型或大型BGP網絡中,在向對等體發布路由信息時,可以配置路由聚合,減少發布的路由數量,並減小路由表的規模。IPv4 BGP支持自動聚合和手動聚合兩種聚合方式,同時配置時,手動聚合的優先級高於自動聚合的優先級。IPv6 BGP隻支持手動聚合。
配置自動聚合功能後,BGP將對通過import-route命令引入的IGP子網路由進行聚合,不再發布子網路由,而是發布聚合的自然網段的路由。
自動聚合是按照自然網段進行聚合,而且隻能對IGP引入的子網路由進行聚合。通過配置手動聚合,用戶可以同時對從IGP路由協議引入的子網路由和用network命令發布的路由進行聚合,而且還可以根據需要定義聚合路由的子網掩碼長度。
BGP路由表中創建的聚合路由的出接口為Null0接口,聚合後可以減少向BGP對等體發布的路由數目。在使用中應注意不要使這條聚合路由成為本設備的優選路由,否則會導致報文轉發失敗。如果聚合路由的子網掩碼長度和被聚合的某一條具體路由完全相同,且聚合路由優先級高於具體路由,則聚合路由會成為優選路由,這種情況下需要通過修改路由優先級等方式,來確保優選的路由為具體路由。
(1) 進入係統視圖。
system-view
(2) 進入BGP IPv4單播地址族視圖或BGP-VPN IPv4單播地址族視圖。
¡ 請依次執行以下命令進入BGP IPv4單播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv4 [ unicast ]
¡ 請依次執行以下命令進入BGP-VPN IPv4單播地址族視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv4 [ unicast ]
(3) 配置對引入的子網路由進行自動聚合。
summary automatic
缺省情況下,不對引入的子網路由進行自動聚合。
(1) 進入係統視圖。
system-view
(2) 進入BGP IPv4單播地址族視圖或BGP-VPN IPv4單播地址族視圖。
¡ 請依次執行以下命令進入BGP IPv4單播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv4 [ unicast ]
¡ 請依次執行以下命令進入BGP-VPN IPv4單播地址族視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv4 [ unicast ]
(3) 在BGP路由表中創建一條聚合路由。
aggregate ipv4-address { mask-length | mask } [ as-set | attribute-policy route-policy-name | detail-suppressed | origin-policy route-policy-name | suppress-policy route-policy-name ] *
缺省情況下,未配置聚合路由。
(1) 進入係統視圖。
system-view
(2) 進入BGP IPv6單播地址族視圖或BGP-VPN IPv6單播地址族視圖。
¡ 請依次執行以下命令進入BGP IPv6單播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv6 [ unicast ]
¡ 請依次執行以下命令進入BGP-VPN IPv6單播地址族視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv6 [ unicast ]
(3) 在IPv6 BGP路由表中創建一條聚合路由。
aggregate ipv6-address prefix-length [ as-set | attribute-policy route-policy-name | detail-suppressed | origin-policy route-policy-name | suppress-policy route-policy-name ] *
缺省情況下,未配置聚合路由。
執行本配置後,設備將向指定對等體/對等體組發布一條下一跳地址為本地地址的缺省路由。
(1) 進入係統視圖。
system-view
(2) 進入BGP IPv4單播地址族視圖或BGP-VPN IPv4單播地址族視圖。
¡ 請依次執行以下命令進入BGP IPv4單播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv4 [ unicast ]
¡ 請依次執行以下命令進入BGP-VPN IPv4單播地址族視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv4 [ unicast ]
(3) 向對等體/對等體組發送缺省路由。
peer { group-name | ipv4-address [ mask-length ] } default-route-advertise [ route-policy route-policy-name ]
缺省情況下,不向對等體/對等體組發送缺省路由。
(1) 進入係統視圖。
system-view
(2) 進入BGP IPv6單播地址族視圖或BGP-VPN IPv6單播地址族視圖。
¡ 請依次執行以下命令進入BGP IPv6單播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv6 [ unicast ]
¡ 請依次執行以下命令進入BGP-VPN IPv6單播地址族視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv6 [ unicast ]
(3) 向對等體/對等體組發送缺省路由。
peer { group-name | ipv6-address [ prefix-length ] } default-route-advertise [ route-policy route-policy-name ]
缺省情況下,不向對等體/對等體組發送缺省路由。
缺省情況下,BGP發布BGP路由表中的最優路由,不管該路由在IP路由表中是否為最優路由。通過本配置可以保證BGP發送出去的路由是IP路由表中的最優路由,以減少BGP發送的路由數量。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
(3) 全局配置發布IP路由表中的最優路由。
advertise-rib-active
缺省情況下,BGP發布BGP路由表中的最優路由。
(4) 進入BGP IPv4單播地址族視圖或BGP-VPN IPv4單播地址族視圖。
¡ 請執行以下命令進入BGP IPv4單播地址族視圖。
address-family ipv4 [ unicast ]
¡ 請依次執行以下命令進入BGP-VPN IPv4單播地址族視圖。
ip vpn-instance vpn-instance-name
address-family ipv4 [ unicast ]
(5) 在指定地址族視圖下,配置發布IP路由表中的最優路由。
advertise-rib-active
缺省情況下,與BGP實例視圖下的配置保持一致。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
(3) 全局配置發布IPv6路由表中的最優路由。
advertise-rib-active
缺省情況下,BGP發布BGP路由表中的最優路由。
(4) 進入BGP IPv6單播地址族視圖或BGP-VPN IPv6單播地址族視圖。
¡ 進入BGP IPv6單播地址族視圖。
address-family ipv6 [ unicast ]
¡ 請依次執行以下命令進入BGP-VPN IPv6單播地址族視圖。
ip vpn-instance vpn-instance-name
address-family ipv6 [ unicast ]
(5) 在指定地址族視圖下,配置發布IPv6路由表中的最優路由。
advertise-rib-active
缺省情況下,與BGP實例視圖下的配置保持一致。
BGP路由器向對等體發送路由撤銷消息時,不會優先發送缺省路由的撤銷消息。當BGP鄰居關係斷開時,無法保證優先撤銷缺省路由,如果需要撤銷的路由數量較多,那麼較長時間後才能撤銷缺省路由,造成流量中斷時間較長。通過配置本功能,BGP路由器會優先發送缺省路由的撤銷消息,在BGP鄰居關係斷開時,最大限度地減少流量中斷時間。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
(3) 配置優先發送缺省路由的撤銷消息。
default-route update-first
缺省情況下,不優先發送缺省路由的撤銷消息。
當BGP路由器需要撤銷大量路由時,撤銷所有的路由會耗費一定時間,導致有些流量不能快速切換到有效路徑。對於某些重要的、不希望長時間中斷的流量,可以通過本配置,確保BGP路由器優先發送這些路由的撤銷消息,以便將指定流量快速地切換到有效路徑上,最大限度地減少流量中斷時間。
(1) 進入係統視圖。
system-view
(2) 進入BGP IPv4單播地址族視圖或BGP-VPN IPv4單播地址族視圖。
¡ 請依次執行以下命令進入BGP IPv4單播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv4 [ unicast ]
¡ 請依次執行以下命令進入BGP-VPN IPv4單播地址族視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv4 [ unicast ]
(3) 配置優先發送指定路由的撤銷消息。
update-first route-policy route-policy-name
缺省情況下,不支持優先發送指定路由的撤銷消息。
(1) 進入係統視圖。
system-view
(2) 進入BGP IPv6單播地址族視圖或BGP-VPN IPv6單播地址族視圖。
¡ 請依次執行以下命令進入BGP IPv6單播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv6 [ unicast ]
¡ 請依次執行以下命令進入BGP-VPN IPv6單播地址族視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv6 [ unicast ]
(3) 配置優先發送指定路由的撤銷消息。
update-first route-policy route-policy-name
缺省情況下,不支持優先發送指定路由的撤銷消息。
可以通過以下幾種方式配置BGP路由信息的發布策略:
· 使用訪問控製列表或地址前綴列表對向所有對等體發布的路由信息進行過濾。
· 向指定對等體或對等體組發布路由時,使用路由策略、訪問控製列表、AS路徑過濾列表或地址前綴列表對發布給該對等體或對等體組的路由信息進行過濾。
用戶可以根據需求選擇過濾策略。如果同時配置了幾種過濾策略,則按照如下順序過濾發布的路由信息:
· filter-policy export
· peer filter-policy export
· peer as-path-acl export
· peer prefix-list export
· peer route-policy export
隻有通過前麵的過濾策略,才能繼續執行後麵的過濾策略;隻有通過所有配置的過濾策略後,路由信息才能被發布。
配置BGP路由信息的發布/接收策略前,根據采取的策略,需要配置下列過濾器:
· 訪問控製列表,詳細配置過程請參見“ACL和QoS配置指導”中的“ACL”。
· 地址前綴列表,詳細配置過程請參見“三層技術-IP路由配置指導”中的“路由策略”。
· 路由策略,詳細配置過程請參見“三層技術-IP路由配置指導”中的“路由策略”。
· AS路徑過濾列表,詳細配置過程請參見“三層技術-IP路由配置指導”中的“路由策略”。
(1) 進入係統視圖。
system-view
(2) 進入BGP IPv4單播地址族視圖或BGP-VPN IPv4單播地址族視圖。
¡ 請依次執行以下命令進入BGP IPv4單播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv4 [ unicast ]
¡ 請依次執行以下命令進入BGP-VPN IPv4單播地址族視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv4 [ unicast ]
(3) 配置BGP路由信息的發布策略。請至少選擇其中一項進行配置。
¡ 對向所有對等體發布的路由信息進行過濾。
filter-policy { ipv4-acl-number | name ipv4-acl-name | prefix-list ipv4-prefix-list-name } export [ direct | { isis | ospf | rip } process-id | static ]
¡ 通過存在策略對BGP發布路由進行控製。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } advertise-policy advertise-policy-name exist-policy exist-policy-name
本命令僅支持在BGP IPv4單播地址族視圖下配置。
¡ 通過不存在策略對BGP發布路由進行控製。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ]} advertise-policy advertise-policy-name non-exist-policy non-exist-policy-name
本命令僅支持在BGP IPv4單播地址族視圖下配置。
¡ 為對等體/對等體組設置基於路由策略的路由發布過濾策略。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } route-policy route-policy-name export
¡ 為對等體/對等體組設置基於ACL的路由發布過濾策略。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } filter-policy ipv4-acl-number export
¡ 為對等體/對等體組設置基於AS路徑過濾列表的路由發布過濾策略。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } as-path-acl as-path-acl-number export
¡ 為對等體/對等體組設置基於IPv4地址前綴列表的路由發布過濾策略。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } prefix-list ipv4-prefix-list-name export
缺省情況下,不對發布的路由信息進行過濾。
僅BGP IPv4單播地址族視圖下支持IPv6參數。
(1) 進入係統視圖。
system-view
(2) 進入BGP IPv6單播地址族視圖或BGP-VPN IPv6單播地址族視圖。
¡ 請依次執行以下命令進入BGP IPv6單播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv6 [ unicast ]
¡ 請依次執行以下命令進入BGP-VPN IPv6單播地址族視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv6 [ unicast ]
(3) 配置BGP路由信息的發布策略。請至少選擇其中一項進行配置。
¡ 對向所有IPv6 BGP對等體發布的路由信息進行過濾。
filter-policy { ipv6-acl-number | name ipv6-acl-name | prefix-list ipv6-prefix-list-name } export [ direct | { isisv6 | ospfv3 | ripng } process-id | static ]
¡ 通過存在策略對BGP發布路由進行控製。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } advertise-policy advertise-policy-name exist-policy exist-policy-name
本命令僅支持在BGP IPv6單播地址族視圖下配置。
¡ 通過不存在策略對BGP發布路由進行控製。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } advertise-policy advertise-policy-name non-exist-policy non-exist-policy-name
¡ 本命令僅支持在BGP IPv6單播地址族視圖下配置。
¡ 為對等體/對等體組設置基於路由策略的路由發布過濾策略。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } route-policy route-policy-name export
¡ 為對等體/對等體組設置基於ACL的路由發布過濾策略。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } filter-policy ipv6-acl-number export
¡ 為對等體/對等體組設置基於AS路徑過濾列表的路由發布過濾策略。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } as-path-acl as-path-acl-number export
¡ 為對等體/對等體組設置基於IPv6地址前綴列表的路由發布過濾策略。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } prefix-list ipv6-prefix-list-name export
缺省情況下,設備接收到EBGP路由後,會將其發布給除發送該路由的對等體之外的所有BGP對等體,這樣會造成網絡設備上的BGP路由數目龐大,不利於維護。通過配置本功能,可以減少EBGP對等體接收到的路由條目。配置本功能後,BGP向EBGP對等體發布EBGP路由時,會檢查AS_Path屬性中的第一個AS號,不會向EBGP對等體發布第一個AS號與該EBGP對等體所在的AS相同的路由。
僅R5111及以上版本支持配置本功能。
(1) 進入係統視圖。
system-view
(2) 進入BGP IPv4單播地址族視圖或BGP-VPN IPv4單播地址族視圖。
¡ 請依次執行以下命令進入BGP IPv4單播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv4 [ unicast ]
¡ 請依次執行以下命令進入BGP-VPN IPv4單播地址族視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv4 [ unicast ]
(3) 配置根據EBGP路由的第一個AS號來過濾發布對象。
peer-as-check enable
缺省情況下,設備接收到EBGP路由後,會將其發布給除發送該路由的對等體之外的所有BGP對等體,不會根據EBGP路由的第一個AS號來過濾發布對象。
(1) 進入係統視圖。
system-view
(2) 進入BGP IPv6單播地址族視圖或BGP-VPN IPv6單播地址族視圖。
¡ 請依次執行以下命令進入BGP IPv6單播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv6 [ unicast ]
¡ 請依次執行以下命令進入BGP-VPN IPv6單播地址族視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv6 [ unicast ]
(3) 配置根據EBGP路由的第一個AS號來過濾發布對象。
peer-as-check enable
缺省情況下,設備接收到EBGP路由後,會將其發布給除發送該路由的對等體之外的所有BGP對等體,不會根據EBGP路由的第一個AS號來過濾發布對象。
網絡中新增路由數量較大時,如果在短時間內發布大量路由,可能會導致BGP對等體已接收到新增路由並添加對應的轉發表項,本地設備上的轉發表項卻尚未添加,從而導致流量轉發失敗。通過本功能合理地配置BGP發送新增路由的速率可以避免上述情況發生。
請根據設備的性能合理配置BGP發送新增路由的速率,如果設備的性能較高,可以將BGP發送新增路由的速率適當調大;如果設備的性能一般,建議將BGP發送新增路由的速率適當調小。
當網絡發生震蕩時,建議不要將BGP新增路由發布速率配置為0或過小,否則可能會導致失效路由無法及時撤銷。
目前,僅支持對新增IPv4單播和IPv6單播路由的發送速率進行限製。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
(3) 配置BGP新增路由發布速率。
route-rate-limit rate
缺省情況下,不限製BGP發送新增路由的發布速率。
通過配置當前設備在重啟後延遲發布路由更新消息,可以保證在重啟時BGP先引入其他鄰居的所有路由信息,然後再優選並向其他設備發布,以減少設備重啟造成的流量丟失。
配置BGP延遲發布後,如果需要部分路由前綴不受延遲發布控製,可以使用前綴列表進行控製,通過前綴列表過濾的路由不受延遲發布的影響。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
(3) 配置設備在重啟後延遲發布路由更新消息。
bgp update-delay on-startup seconds
缺省情況下,設備重啟後立刻向BGP鄰居發布路由更新消息。
(4) (可選)配置通過前綴列表控製BGP延遲發布IPv4路由。
bgp update-delay on-startup prefix-list ipv4-prefix-list-name
缺省情況下,未配置通過前綴列表控製BGP延遲發布IPv4路由。
(5) (可選)配置通過前綴列表控製BGP延遲發布IPv6路由。
bgp update-delay on-startup ipv6-prefix-list ipv6-prefix-list-name
缺省情況下,未配置通過前綴列表控製BGP延遲發布IPv6路由。
BGP路由發生變化時,BGP路由器會發送Update消息通知對等體。如果同一路由頻繁變化,BGP路由器會頻繁發送Update消息更新路由,導致路由震蕩。通過本配置指定向對等體/對等體組發布同一路由更新的時間間隔,可以避免每次路由變化都發送Update消息,避免路由震蕩。對於需要撤銷的路由,BGP路由器會立即向鄰居發送路由撤銷消息,不受本配置的控製。
向某一對等體發布同一路由時,最小間隔時間為peer route-update-interval命令和route-update-delay命令中配置的較大的時間(若未配置peer route-update-interval命令,則使用缺省值與route-update-delay的配置值比較)。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖或BGP-VPN實例視圖。
¡ 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
¡ 請依次執行以下命令進入BGP-VPN實例視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 配置向指定對等體/對等體組發布同一路由的時間間隔。
peer { group-name | ipv4-address [ mask-length ] } route-update-interval interval
缺省情況下,向IBGP對等體發布同一路由的時間間隔為15秒,向EBGP對等體發布同一路由的時間間隔為30秒。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖或BGP-VPN實例視圖。
¡ 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
¡ 請依次執行以下命令進入BGP-VPN實例視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 配置向指定IPv6 BGP對等體/對等體組發布同一路由的時間間隔。
peer { group-name | ipv6-address [ prefix-length ] } route-update-interval interval
缺省情況下,向IBGP對等體發布同一路由的時間間隔為15秒,向EBGP對等體發布同一路由的時間間隔為30秒。
BGP路由發生變化時,設備會發送Update消息通知對等體,當短時間內需要更新的路由數量較多時,可能出現本端還未將更新後的BGP路由刷新到FIB表項中,就已經通過Update消息將BGP路由發送給了對等體的情形,導致部分流量轉發到本機時,由於無法找到轉發路徑而被丟棄。根據設備的性能合理配置BGP路由延遲發布時間,可以避免由於路由下發FIB表項不及時導致的流量丟失。
向某一對等體發送BGP路由時,BGP路由延遲發布時間為route-update-delay命令和peer route-update-interval命令中配置的較大的時間(若未配置peer route-update-interval命令,則與其缺省值比較)。
目前,本功能僅支持對BGP IPv4單播路由、BGP IPv6單播路由、BGP VPNv4路由和BGP VPNv6路由的發布進行延遲。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
(3) 配置BGP路由延遲發布功能,並指定延遲發布時間。
route-update-delay delay-value
缺省情況下,BGP路由延遲發布功能處於關閉狀態,即BGP路由不延遲發布。
設備在啟動時,通過為BGP路由應用啟動策略,修改發送的BGP路由的屬性值,使得接收端優選其他設備發送的路由,可以減少設備重啟造成的流量丟失。
如圖2-1所示,Router B重啟過程中,在路由沒有完全收斂之前對外發布路由更新消息,可能會導致Router A通過Router B去往目的地的流量丟失。配置本功能後,在RouterB重啟過程中,發送應用通過命令bgp policy on-startup med配置的MED屬性值的路由更新消息,即修改路由更新消息中攜帶的屬性值,使RouterA優選RouterC作為去往目的地的路由,從而減少設備重啟造成的流量丟失。
圖2-1 設備啟動時為BGP路由應用啟動策略示意圖
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
(3) 配置設備在重啟後發送應用啟動策略的路由更新消息的時間。
bgp apply-policy on-startup duration seconds
缺省情況下,設備重啟後發布未應用啟動策略的路由更新消息。
(4) 配置啟動策略中的MED值。
bgp policy on-startup med med-value
缺省情況下,啟動策略中的MED值為4294967295。
當設備短時間內向鄰居發送大量BGP消息(通常為Update類型消息)時,如果本端發送緩衝區太小,可能造成部分BGP消息在發送前丟失,從而導致BGP收斂時間過長。通過本功能為設備設置合理的發送緩衝區大小,可提高BGP收斂性能。
本功能僅對配置後新建立或重建的BGP會話生效。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
(3) 全局配置BGP會話發送緩衝區的大小。
send-buffer-size size
缺省情況下,BGP會話發送緩衝區大小為32768字節。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖或BGP-VPN實例視圖。
¡ 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
¡ 請依次執行以下命令進入BGP-VPN實例視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 配置與指定對等體/對等體組間BGP會話的發送緩衝區大小。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } send-buffer-size size
缺省情況下,未指定與對等體/對等體組間BGP會話的發送緩衝區大小,以send-buffer-size命令的配置為準。
本命令與send-buffer-size命令同時配置時,以本命令的配置為準。
BGP發言者需要在路由更新時通過Update消息向對等體發布更新的路由。適當調整本地設備向外發送BGP Update消息的參數,可以避免短時間內發布大量Update消息過度占用本地設備和對等體設備係統資源的問題,同時提升BGP網絡收斂性能。
可通過以下配置調整BGP Update消息的發送參數:
· 配置BGP會話發送Update消息的時間間隔和每次發送Update消息的最大數目
· 配置BGP Update消息的發送隊列參數。
BGP Update消息發送參數的相關配置僅對配置後新建立或重建的BGP會話生效。
配置本功能後,設備會按照Update消息的發送時間間隔將需要更新的路由組裝成Update消息,並發送給對等體。同時,通過本配置可以指定每個Update消息中允許攜帶的最大路由更新數量。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
(3) 全局配置BGP會話發送Update消息的時間間隔和每次發送Update消息的最大數目。
advertisement-interval interval count
缺省情況下,未配置BGP會話發送Update消息的時間間隔以及每次發送的Update消息最大數目,需要更新路由時BGP會話立即發送Update消息,每次發送的Update消息數量不受限製。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖或BGP-VPN實例視圖。
¡ 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
¡ 請依次執行以下命令進入BGP-VPN實例視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 配置向指定對等體/對等體組發送Update消息的時間間隔和每次發送Update消息的最大數目。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } advertisement-interval interval count
缺省情況下,未配置向指定對等體/對等體組發送Update消息的時間間隔以及每次發送的Update消息最大數目,以advertisement-interval命令的配置為準。
本命令與advertisement-interval命令同時配置時,以本命令的配置為準。
各BGP會話將組裝好的Update消息按順序放入待發送隊列,每當設備輪詢到本BGP會話發送報文時,發送隊首指定數量的報文(由send-count參數決定),當待發送隊列中的報文達到上限(由packet-count參數決定)時,此會話將暫停組裝Update消息。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
(3) BGP Update消息的發送隊列參數
bgp queue-limit { packet packet-count | send send-count } *
缺省情況下,BGP處理Update報文時,最大報文組裝數量為100個,每次發送報文數量為5個。
通過本配置可以避免攻擊者向路由器發送大量的BGP路由,對路由器進行攻擊。
當路由器從指定對等體/對等體組接收的路由數量超過指定的最大值時,可以選擇以下處理方式:
· 路由器中斷與該對等體/對等體組的BGP會話,不再嚐試重建會話。
· 路由器保持與該對等體/對等體組的BGP會話,可以繼續接收路由,僅打印日誌信息。
· 路由器保持與該對等體/對等體組的BGP會話,丟棄超出限製的路由,並打印日誌信息。
· 路由器中斷與該對等體/對等體組的BGP會話,經過指定的時間後自動與對等體/對等體組重建會話。
執行本配置任務時,還可以指定路由器產生日誌信息的閾值,即路由器接收的路由數量與配置的最大值的百分比達到指定的閾值時,路由器將產生日誌信息。
(1) 進入係統視圖。
system-view
(2) 進入BGP IPv4單播地址族視圖或BGP-VPN IPv4單播地址族視圖。
¡ 請依次執行以下命令進入BGP IPv4單播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv4 [ unicast ]
¡ 請依次執行以下命令進入BGP-VPN IPv4單播地址族視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv4 [ unicast ]
(3) 配置允許從對等體/對等體組接收的路由的最大數量。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ]} route-limit prefix-number [ { alert-only | discard | reconnect reconnect-time } | percentage-value ] *
缺省情況下,不限製從對等體/對等體組接收的路由數量。
(1) 進入係統視圖。
system-view
(2) 進入BGP IPv6單播地址族視圖或BGP-VPN IPv6單播地址族視圖。
¡ 請依次執行以下命令進入BGP IPv6單播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv6 [ unicast ]
¡ 請依次執行以下命令進入BGP-VPN IPv6單播地址族視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv6 [ unicast ]
(3) 配置允許從對等體/對等體組接收的路由的最大數量。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } route-limit prefix-number [ { alert-only | discard | reconnect reconnect-time } | percentage-value ] *
缺省情況下,不限製從對等體/對等體組接收的路由數量。
可以通過以下幾種方式配置BGP路由信息的接收策略:
· 使用訪問控製列表或地址前綴列表對從所有對等體接收的路由信息進行過濾。
· 從指定對等體或對等體組接收路由時,使用路由策略、訪問控製列表、AS路徑過濾列表或地址前綴列表對從該對等體或對等體組接收的路由信息進行過濾。
用戶可以根據需求選擇過濾策略。如果同時配置了幾種過濾策略,則按照如下順序過濾接收的路由:
· filter-policy import
· peer filter-policy import
· peer as-path-acl import
· peer prefix-list import
· peer route-policy import
隻有通過前麵的過濾策略,才能繼續執行後麵的過濾策略;隻有通過所有配置的過濾策略後,路由信息才能被接收。
配置BGP路由信息的發布/接收策略前,根據采取的策略,需要配置下列過濾器:
· 訪問控製列表,詳細配置過程請參見“ACL和QoS配置指導”中的“ACL”。
· 地址前綴列表,詳細配置過程請參見“三層技術-IP路由配置指導”中的“路由策略”。
· 路由策略,詳細配置過程請參見“三層技術-IP路由配置指導”中的“路由策略”。
· AS路徑過濾列表,詳細配置過程請參見“三層技術-IP路由配置指導”中的“路由策略”。
(1) 進入係統視圖。
system-view
(2) 進入BGP IPv4單播地址族視圖或BGP-VPN IPv4單播地址族視圖。
¡ 請依次執行以下命令進入BGP IPv4單播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv4 [ unicast ]
¡ 請依次執行以下命令進入BGP-VPN IPv4單播地址族視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv4 [ unicast ]
(3) 配置BGP路由信息的接收策略。請至少選擇其中一項進行配置。
¡ 對從所有對等體接收的路由信息進行過濾。
filter-policy { ipv4-acl-number | name ipv4-acl-name | prefix-list ipv4-prefix-list-name } import
¡ 為對等體/對等體組設置基於路由策略的路由接收過濾策略。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } route-policy route-policy-name import
¡ 為對等體/對等體組設置基於ACL的路由接收過濾策略。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } filter-policy ipv4-acl-number import
¡ 為對等體/對等體組設置基於AS路徑過濾列表的路由接收過濾策略。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } as-path-acl as-path-acl-number import
¡ 為對等體/對等體組設置基於IPv4地址前綴列表的路由接收過濾策略。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } prefix-list ipv4-prefix-list-name import
缺省情況下,不對接收的路由信息進行過濾。
(1) 進入係統視圖。
system-view
(2) 進入BGP IPv6單播地址族視圖或BGP-VPN IPv6單播地址族視圖。
¡ 請依次執行以下命令進入BGP IPv6單播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv6 [ unicast ]
¡ 請依次執行以下命令進入BGP-VPN IPv6單播地址族視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv6 [ unicast ]
(3) 配置BGP路由信息的接收策略。請至少選擇其中一項進行配置。
¡ 對從所有IPv6 BGP對等體接收的路由信息進行過濾。
filter-policy { ipv6-acl-number | name ipv6-acl-name | prefix-list ipv6-prefix-list-name } import
¡ 為對等體/對等體組設置基於路由策略的路由接收過濾策略。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } route-policy route-policy-name import
¡ 為對等體/對等體組設置基於ACL的路由接收過濾策略。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } filter-policy ipv6-acl-number import
¡ 為對等體/對等體組設置基於AS路徑過濾列表的路由接收過濾策略。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } as-path-acl as-path-acl-number import
¡ 為對等體/對等體組設置基於IPv6地址前綴列表的路由接收過濾策略。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } prefix-list ipv6-prefix-list-name import
缺省情況下,不對接收的路由信息進行過濾。
為BGP對等體/對等體組配置SoO屬性後,從該BGP對等體/對等體組接收路由時設備會為路由增加SoO屬性,並且向該BGP對等體/對等體組發布路由時設備會檢查路由的SoO屬性,如果路由中攜帶的SoO屬性與為對等體/對等體組配置的SoO屬性相同,則不會將該路由發布給對等體/對等體組,從而避免路由環路。
(1) 進入係統視圖。
system-view
(2) 進入BGP IPv4單播地址族視圖或BGP-VPN IPv4單播地址族視圖。
¡ 請依次執行以下命令進入BGP IPv4單播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv4 [ unicast ]
¡ 請依次執行以下命令進入BGP-VPN IPv4單播地址族視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv4 [ unicast ]
(3) 為BGP對等體/對等體組配置SoO屬性。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } soo site-of-origin
缺省情況下,沒有為BGP對等體/對等體組配置SoO屬性。
(1) 進入係統視圖。
system-view
(2) 進入BGP IPv6單播地址族視圖或BGP-VPN IPv6單播地址族視圖。
¡ 請依次執行以下命令進入BGP IPv6單播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv6 [ unicast ]
¡ 請依次執行以下命令進入BGP-VPN IPv6單播地址族視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv6 [ unicast ]
(3) 為BGP對等體/對等體組配置SoO屬性。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } soo site-of-origin
缺省情況下,沒有為BGP對等體/對等體組配置SoO屬性。
為EBGP對等體/對等體組配置鏈路帶寬屬性後,從該EBGP對等體/對等體組接收路由時設備會為路由增加鏈路帶寬屬性,帶寬值為與該直連EBGP建立鄰居的接口帶寬。該路由在傳遞給其他IBGP鄰居時,將攜帶此鏈路帶寬屬性,設備可以根據路由攜帶的鏈路帶寬屬性對路由進行過濾。
本功能僅對直連EBGP對等體/對等體組生效,如果指定的對等體/對等體組由直連EBGP鄰居變為非直連EBGP鄰居,則從該鄰居接收到的路由時,不再添加鏈路帶寬屬性。
(1) 進入係統視圖。
system-view
(2) 進入BGP IPv4單播地址族視圖或BGP-VPN IPv4單播地址族視圖。
¡ 請依次執行以下命令進入BGP IPv4單播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv4 [ unicast ]
¡ 請依次執行以下命令進入BGP-VPN IPv4單播地址族視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv4 [ unicast ]
(3) 為BGP對等體/對等體組配置鏈路帶寬屬性。
peer { group-name | ipv4-address [ mask-length ] } bandwidth
缺省情況下,沒有為對等體/對等體組配置鏈路帶寬屬性。
(1) 進入係統視圖。
system-view
(2) 進入BGP IPv6單播地址族視圖或BGP-VPN IPv6單播地址族視圖。
¡ 請依次執行以下命令進入BGP IPv6單播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv6 [ unicast ]
¡ 請依次執行以下命令進入BGP-VPN IPv6單播地址族視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv6 [ unicast ]
(3) 為BGP對等體/對等體組配置鏈路帶寬屬性。
peer { group-name | ipv6-address [ prefix-length ] } bandwidth
缺省情況下,沒有為對等體/對等體組配置鏈路帶寬屬性。
當對等體間建立了BGP會話後,它們定時向對端發送Keepalive消息,以防止路由器認為BGP會話已中斷。Keepalive消息的發送時間間隔稱為存活時間間隔。
若路由器在設定的會話保持時間(Holdtime)內未收到對端的Keepalive消息或Update消息,則認為此BGP會話已中斷,從而斷開此BGP會話。
用戶可以全局配置當前路由器上所有BGP會話的存活時間間隔與保持時間,也可以配置與指定對等體/對等體組建立的BGP會話的存活時間間隔和保持時間。如果同時配置了兩者,則為指定對等體/對等體組配置的值具有較高的優先級。
存活時間間隔、會話保持時間的協商及計算方法如下:
· 如果當前路由器上配置的保持時間與對端設備(對等體)上配置的保持時間不一致,則數值較小者作為協商後的保持時間。協商的保持時間為0時,不向對等體發送Keepalive消息,與對等體之間的會話永遠不會超時斷開。
· 存活時間間隔不為0時,將協商的保持時間的三分之一與配置的存活時間間隔比較,取最小值作為存活時間間隔。
配置的保持時間必須大於或等於存活時間的三倍。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖或BGP-VPN實例視圖。
¡ 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
¡ 請依次執行以下命令進入BGP-VPN實例視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 配置BGP會話的存活時間間隔和保持時間。請至少選擇其中一項進行配置。
¡ 配置所有BGP會話的存活時間間隔和保持時間。
timer keepalive keepalive hold holdtime
配置本命令後,不會影響已建立的BGP會話,隻對新建立的會話生效。
¡ 配置本地路由器與指定對等體/對等體組之間BGP會話的存活時間間隔和保持時間。
peer { group-name | ipv4-address [ mask-length ] } timer keepalive keepalive hold holdtime
缺省情況下,BGP會話的存活時間間隔為60秒,保持時間為180秒。
配置timer或peer timer命令後,不會馬上斷開會話,而是等到其他條件觸發會話重建(如複位BGP會話)時,再以配置的保持時間協商建立會話。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖或BGP-VPN實例視圖。
¡ 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
¡ 請依次執行以下命令進入BGP-VPN實例視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 配置BGP會話的存活時間間隔和保持時間。請至少選擇其中一項進行配置。
¡ 配置所有BGP會話的存活時間間隔和保持時間。
timer keepalive keepalive hold holdtime
配置本命令後,不會影響已建立的BGP會話,隻對新建立的會話生效。
¡ 配置本地路由器與指定IPv6 BGP對等體/對等體組之間BGP會話的存活時間間隔和保持時間。
peer { group-name | ipv6-address [ prefix-length ] } timer keepalive keepalive hold holdtime
缺省情況下,BGP會話的存活時間間隔為60秒,保持時間為180秒。
配置timer或peer timer命令後,不會馬上斷開會話,而是等到其他條件觸發會話重建(如複位BGP會話)時,再以配置的保持時間協商建立會話。
通過配置本功能可以控製重新建立BGP會話的速度:
· 當鄰居關係建立失敗,可以將定時器時間間隔的值調小,從而加快BGP會話建立的速度,便於路由快速收斂。
· 當鄰居關係震蕩時,可以將定時器時間間隔的值調大,從而減輕路由震蕩。
配置本地路由器與指定對等體/對等體組之間重新建立BGP會話的時間間隔比配置本地路由器與所有對等體之間重新建立BGP會話的時間間隔的優先級高。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖或BGP-VPN實例視圖。
¡ 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
¡ 請依次執行以下命令進入BGP-VPN實例視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 配置本地路由器與對等體之間重新建立BGP會話的時間間隔。請選擇其中一項進行配置。
¡ 配置本地路由器與所有對等體之間重新建立BGP會話的時間間隔。
timer connect-retry retry-time
¡ 配置本地路由器與指定對等體/對等體組之間重新建立BGP會話的時間間隔。
peer { group-name | ipv4-address [ mask-length ] } timer connect-retry retry-time
缺省情況下,本地路由器與對等體/對等體組之間重新建立BGP會話的時間間隔為32秒。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖或BGP-VPN實例視圖。
¡ 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
¡ 請依次執行以下命令進入BGP-VPN實例視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 配置本地路由器與對等體之間重新建立BGP會話的時間間隔。請選擇其中一項進行配置。
¡ 配置本地路由器與所有對等體之間重新建立BGP會話的時間間隔。
timer connect-retry retry-time
¡ 配置本地路由器與指定IPv6 BGP對等體/對等體組之間重新建立BGP會話的時間間隔。
peer { group-name | ipv6-address [ prefix-length ] | link-local-address interface interface-type interface-number } timer connect-retry retry-time
缺省情況下,本地路由器與對等體/對等體組之間重新建立BGP會話的時間間隔為32秒。
本地標簽是指本地設備通過VPNv4路由、VPNv6路由、帶標簽的IPv4單播路由或帶標簽的IPv6單播路由分配給其他BGP對等體的MPLS標簽。為路由分配的本地標簽發生變化時,如果立即刪除本地標簽,則BGP對等體可能尚未收到新的標簽,仍然采用舊的標簽轉發報文,從而導致流量中斷。為了避免上述情況發生,BGP需要延遲一段時間再刪除本地標簽。通過本配置可以調整本地標簽的延遲刪除時間。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
(3) 配置刪除本地標簽的延遲時間。
retain local-label retain-time
缺省情況下,刪除本地標簽的延遲時間為60秒。
全局使能BGP日誌記錄功能,並使能與指定對等體/對等體組之間BGP會話的日誌記錄功能後,與該對等體/對等體組之間的BGP會話建立以及斷開時會生成日誌信息,通過display bgp peer ipv4 unicast log-info命令或display bgp peer ipv6 unicast log-info命令可以查看記錄的日誌信息。生成的日誌信息還將被發送到設備的信息中心,通過設置信息中心的參數,決定日誌信息的輸出規則(即是否允許輸出以及輸出方向)。
有關信息中心參數的配置請參見“網絡管理和監控配置指導”中的“信息中心”。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
(3) 全局使能BGP日誌記錄功能。
log-peer-change
缺省情況下,全局BGP日誌記錄功能處於開啟狀態。
(4) (可選)進入BGP-VPN實例視圖。
ip vpn-instance vpn-instance-name
(5) 使能與指定對等體/對等體組之間BGP會話的日誌記錄功能。
peer { group-name | ipv4-address [ mask-length ] } log-change
缺省情況下,與所有對等體/對等體組之間BGP會話的日誌記錄功能均處於開啟狀態。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
(3) 全局使能BGP日誌記錄功能。
log-peer-change
缺省情況下,全局BGP日誌記錄功能處於開啟狀態。
(4) (可選)進入BGP-VPN實例視圖。
ip vpn-instance vpn-instance-name
(5) 使能與指定對等體/對等體組之間BGP會話的日誌記錄功能。
peer { group-name | ipv6-address [ prefix-length ] } log-change
缺省情況下,與所有對等體/對等體組之間BGP會話的日誌記錄功能均處於開啟狀態。
使能BGP對應地址族的路由抖動日誌記錄功能後,當該地址族的路由發生抖動並滿足日誌輸出條件時會生成路由抖動日誌信息。生成的日誌信息還將被發送到設備的信息中心,通過設置信息中心的參數,決定日誌信息的輸出規則(即是否允許輸出以及輸出方向)。
有關信息中心參數的配置請參見“網絡管理和監控配置指導”中的“信息中心”。
(1) 進入係統視圖。
system-view
(2) 進入BGP IPv4單播地址族視圖或BGP-VPN IPv4單播地址族視圖。
¡ 請依次執行以下命令進入BGP IPv4單播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv4 [ unicast ]
¡ 請依次執行以下命令進入BGP-VPN IPv4單播地址族視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv4 [ unicast ]
(3) 使能BGP的路由抖動日誌記錄功能。
log-route-flap monitor-time monitor-count [ log-count-limit | route-policy route-policy-name ] *
缺省情況下,BGP的路由抖動日誌記錄功能處於關閉狀態。
(1) 進入係統視圖。
system-view
(2) 進入BGP IPv6單播地址族視圖或BGP-VPN IPv6單播地址族視圖。
¡ 請依次執行以下命令進入BGP IPv6單播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv6 [ unicast ]
¡ 請依次執行以下命令進入BGP-VPN IPv6單播地址族視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv6 [ unicast ]
(3) 使能BGP的路由抖動日誌記錄功能。
log-route-flap monitor-time monitor-count [ log-count-limit | route-policy route-policy-name ] *
缺省情況下,BGP的路由抖動日誌記錄功能處於關閉狀態。
開啟BGP模塊的告警功能後,當BGP的鄰居狀態變化時BGP會產生RFC 4273中規定的告警信息,該信息包含鄰居地址、最近一次出現錯誤的錯誤碼和錯誤子碼、當前的鄰居狀態。生成的告警信息將發送到設備的SNMP模塊,通過設置SNMP中告警信息的發送參數,來決定告警信息輸出的相關屬性。
通過MIB(Management Information Base,管理信息庫)節點對BGP進行管理時,BGP無法獲知被管理的節點屬於哪個BGP實例。為不同的BGP實例配置不同的SNMP上下文可以解決上述問題。
設備接收到SNMP報文後,根據報文中攜帶的上下文(對於SNMPv3)或團體名稱(對於SNMPv1/v2c),判斷如何進行處理:
· 對於SNMPv3報文:
¡ 如果報文中不攜帶上下文,且沒有為default實例配置SNMP上下文,則對BGP default實例的MIB節點進行相應處理。
¡ 如果報文中攜帶上下文,設備上存在對應的SNMP上下文(通過係統視圖下的snmp-agent context命令創建),且該上下文與為某一個BGP實例配置的上下文相同,則對該BGP實例的MIB節點進行相應處理。
¡ 其他情況下,不允許對任何MIB節點進行處理。
· 對於SNMPv1/v2c報文:
¡ 如果設備上沒有通過係統視圖下的snmp-agent community-map命令將報文中的團體名映射為SNMP上下文,且沒有為default實例配置SNMP上下文,則對BGP default實例的MIB節點進行相應處理。
¡ 如果設備上將團體名映射為SNMP上下文,設備上存在對應的SNMP上下文,且該上下文與為某一個BGP實例配置的上下文相同,則對該BGP實例的MIB節點進行相應處理。
¡ 其他情況下,不允許對任何MIB節點進行處理。
有關告警信息的詳細和SNMP上下文和團體名的詳細介紹,請參見“網絡管理和監控配置指導”中的“SNMP”。
(1) 進入係統視圖。
system-view
(2) 開啟BGP模塊的告警功能。
snmp-agent trap enable bgp [ instance instance-name ]
缺省情況下,BGP模塊的告警功能處於開啟狀態。
(3) 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
(4) 配置BGP實例的SNMP上下文。
snmp context-name context-name
缺省情況下,未配置BGP實例的SNMP上下文。
可在任意視圖下執行以下命令:
· 顯示BGP IPv4單播對等體組的信息。
display bgp [ instance instance-name ] group ipv4 [ unicast ] [ vpn-instance vpn-instance-name ] [ group-name group-name ]
· 顯示BGP IPv4單播地址族下的對等體或對等體組的狀態和統計信息。
display bgp [ instance instance-name ] peer ipv4 [ unicast ] [ vpn-instance vpn-instance-name ] [ ipv4-address mask-length | { ipv4-address | group-name group-name } log-info | [ ipv4-address ] verbose ]
display bgp [ instance instance-name ] peer ipv4 [ unicast ] [ vpn-instance vpn-instance-name ] [ ipv6-address prefix-length | ipv6-address log-info | [ ipv6-address ] verbose ]
display bgp [ instance instance-name ] peer ipv4 [ unicast ] vpn-instance-all [ verbose ]
· 顯示通過network命令發布的路由信息和通過network short-cut命令配置的Short-cut路由信息。
display bgp [ instance instance-name ] network ipv4 [ unicast ] [ vpn-instance vpn-instance-name ]
· 顯示BGP IPv4單播路由信息。
display bgp [ instance instance-name ] routing-table ipv4 [ unicast ] [ vpn-instance vpn-instance-name ] [ ipv4-address [ { mask-length | mask } [ longest-match ] ] | ipv4-address [ mask-length | mask ] advertise-info | as-path-acl { as-path-acl-number | as-path-acl-name } | community-list { { basic-community-list-number | comm-list-name } [ whole-match ] | adv-community-list-number } | peer { ipv4-address | ipv6-address } { advertised-routes | received-routes } [ ipv4-address [ mask-length | mask ] | statistics ] | statistics ]
· 顯示BGP鄰居斷開的原因。
display bgp [ instance instance-name ] troubleshooting [ event-count ] [ reverse ]
· 顯示BGP IPv4單播地址族下打包組的相關信息。
display bgp [ instance instance-name ] update-group ipv4 [ unicast ] [ vpn-instance vpn-instance-name ] [ ipv4-address | ipv6-address ]
· 顯示BGP對等體和BGP路由的彙總信息。
display bgp [ instance instance-name ] ipv4 vpn-instance vpn-instance-name summary
· 顯示所有BGP實例的信息。
display bgp instance-info
可在任意視圖下執行以下命令:
· 顯示BGP IPv6單播對等體組的信息。
display bgp [ instance instance-name ] group ipv6 [ unicast ] [ vpn-instance vpn-instance-name ] [ group-name group-name ]
· 顯示BGP IPv6單播地址族下的對等體或對等體組的狀態和統計信息。
display bgp [ instance instance-name ] peer ipv6 [ unicast ] [ vpn-instance vpn-instance-name ] [ ipv6-address prefix-length | { ipv6-address | group-name group-name } log-info | [ ipv6-address ] verbose ]
display bgp [ instance instance-name ] peer ipv6 [ unicast ] [ ipv4-address mask-length | ipv4-address log-info | [ ipv4-address ] verbose ]
display bgp [ instance instance-name ] peer ipv6 [ unicast ] vpn-instance-all [ verbose ]
· 顯示通過network命令發布的路由信息和通過network short-cut命令配置的Short-cut路由信息。
display bgp [ instance instance-name ] network ipv6 [ unicast ] [ vpn-instance vpn-instance-name ]
display bgp [ instance instance-name ] peer ipv6 [ unicast ] [ ipv4-address mask-length | ipv4-address log-info | [ ipv4-address ] verbose ]
display bgp [ instance instance-name ] peer ipv6 [ unicast ] vpn-instance-all [ verbose ]
· 顯示BGP IPv6單播路由信息。
display bgp [ instance instance-name ] routing-table ipv6 [ unicast ] [ vpn-instance vpn-instance-name ] [ ipv6-address prefix-length [ advertise-info ] | as-path-acl { as-path-acl-number | as-path-acl-name } | community-list { { basic-community-list-number | comm-list-name } [ whole-match ] | adv-community-list-number } | peer ipv6-address { advertised-routes | received-routes } [ ipv6-address prefix-length | statistics ] | statistics ]
display bgp [ instance instance-name ] routing-table ipv6 [ unicast ] peer ipv4-address { advertised-routes | received-routes } [ ipv6-address prefix-length | statistics ]
· 顯示BGP鄰居斷開的原因。
display bgp [ instance instance-name ] troubleshooting [ event-count ] [ reverse ]
· 顯示BGP IPv6單播地址族下打包組的相關信息。
display bgp [ instance instance-name ] update-group ipv6 [ unicast ] [ vpn-instance vpn-instance-name ] [ ipv4-address | ipv6-address ]
· 顯示BGP對等體和BGP路由的彙總信息。
display bgp [ instance instance-name ] ipv6 vpn-instance vpn-instance-name summary
· 顯示所有BGP實例的信息。
display bgp instance-info
當BGP路由策略或協議發生變化後,可以通過複位BGP會話使新的配置生效。執行複位BGP相關命令後,設備會斷開並重新建立BGP鄰居關係,以便更新BGP路由信息。
複位BGP會話時,會造成短暫的BGP會話中斷。
請在用戶視圖下執行以下命令:
· 複位IPv4單播地址族下的BGP會話。
reset bgp [ instance instance-name ] { as-number | ipv4-address [ mask-length ] | all | external | group group-name | internal } ipv4 [ unicast ] [ vpn-instance vpn-instance-name ]
reset bgp ipv6-address [ mask-length ] ipv4 [ unicast ]
· 複位IPv6單播地址族下的BGP會話。
reset bgp [ instance instance-name ] { as-number | ipv6-address [ prefix-length ] | all | external | group group-name | internal } ipv6 [ unicast ] [ vpn-instance vpn-instance-name ]
reset bgp ipv4-address [ mask-length ] ipv6 [ unicast ]
· 複位所有BGP會話。
reset bgp [ instance instance-name ] all
可在任意視圖下執行以下命令:
· 顯示BGP IPv4單播路由的震蕩統計信息。
display bgp [ instance instance-name ] routing-table flap-info ipv4 [ unicast ] [ vpn-instance vpn-instance-name ] [ ipv4-address [ { mask-length | mask } [ longest-match ] ] | as-path-acl { as-path-acl-number | as-path-acl-name } ]
· 顯示BGP IPv6單播路由的震蕩統計信息。
display bgp [ instance instance-name ] routing-table flap-info ipv6 [ unicast ] [ vpn-instance vpn-instance-name ] [ ipv6-address prefix-length | as-path-acl { as-path-acl-number | as-path-acl-name } ]
請在用戶視圖下執行以下命令:
· 清除BGP IPv4單播路由的震蕩統計信息。
reset bgp [ instance instance-name ] flap-info ipv4 [ unicast ] [ vpn-instance vpn-instance-name ] [ ipv4-address [ mask-length | mask ] | as-path-acl { as-path-acl-number | as-path-acl-name } | peer ipv4-address [ mask-length ] ]
· 清除BGP IPv6單播路由的震蕩統計信息。
reset bgp [ instance instance-name ] flap-info ipv6 [ unicast ] [ vpn-instance vpn-instance-name ] [ ipv6-address prefix-length | as-path-acl { as-path-acl-number | as-path-acl-name } | peer ipv6-address [ prefix-length ] ]
如圖2-2所示,所有路由器均運行BGP協議。要求Router A和Router B之間建立EBGP連接,Router B和Router C之間建立IBGP連接,使得Router C能夠訪問Router A直連的8.1.1.0/24網段。
圖2-2 BGP基本配置組網圖
缺省情況下,本設備的接口處於ADM(Administratively Down)狀態,請根據實際需要在對應接口視圖下使用undo shutdown命令開啟接口。
(1) 配置各接口的IP地址(略)
(2) 配置IBGP連接
¡ 為了防止端口狀態不穩定引起路由震蕩,本舉例使用Loopback接口來創建IBGP對等體。
¡ 使用Loopback接口創建IBGP對等體時,因為Loopback接口不是兩對等體實際連接的接口,所以,必須使用peer connect-interface命令將Loopback接口配置為BGP連接的源接口。
¡ 在AS 65009內部,使用OSPF協議,保證Router B到Router C的Loopback接口路由可達。
# 配置Router B。
<RouterB> system-view
[RouterB] bgp 65009
[RouterB-bgp-default] router-id 2.2.2.2
[RouterB-bgp-default] peer 3.3.3.3 as-number 65009
[RouterB-bgp-default] peer 3.3.3.3 connect-interface loopback 0
[RouterB-bgp-default] address-family ipv4 unicast
[RouterB-bgp-default-ipv4] peer 3.3.3.3 enable
[RouterB-bgp-default-ipv4] quit
[RouterB-bgp-default] quit
[RouterB] ospf 1
[RouterB-ospf-1] area 0
[RouterB-ospf-1-area-0.0.0.0] network 2.2.2.2 0.0.0.0
[RouterB-ospf-1-area-0.0.0.0] network 9.1.1.0 0.0.0.255
[RouterB-ospf-1-area-0.0.0.0] quit
[RouterB-ospf-1] quit
# 配置Router C。
<RouterC> system-view
[RouterC] bgp 65009
[RouterC-bgp-default] router-id 3.3.3.3
[RouterC-bgp-default] peer 2.2.2.2 as-number 65009
[RouterC-bgp-default] peer 2.2.2.2 connect-interface loopback 0
[RouterC-bgp-default] address-family ipv4 unicast
[RouterC-bgp-default-ipv4] peer 2.2.2.2 enable
[RouterC-bgp-default-ipv4] quit
[RouterC-bgp-default] quit
[RouterC] ospf 1
[RouterC-ospf-1] area 0
[RouterC-ospf-1-area-0.0.0.0] network 3.3.3.3 0.0.0.0
[RouterC-ospf-1-area-0.0.0.0] network 9.1.1.0 0.0.0.255
[RouterC-ospf-1-area-0.0.0.0] quit
[RouterC-ospf-1] quit
[RouterC] display bgp peer ipv4
BGP local router ID : 3.3.3.3
Local AS number : 65009
Total number of peers : 1 Peers in established state : 1
* - Dynamically created peer
Peer AS MsgRcvd MsgSent OutQ PrefRcv Up/Down State
2.2.2.2 65009 7 10 0 0 00:06:09 Established
以上顯示信息表明Router B和Router C之間的IBGP連接已經建立。
(3) 配置EBGP連接
¡ EBGP鄰居關係的兩台路由器(通常屬於兩個不同運營商),處於不同的AS域,對端的Loopback接口一般路由不可達,所以一般使用直連地址建立EBGP鄰居。
¡ 因為要求Router C能夠訪問Router A直連的8.1.1.0/24網段,所以,建立EBGP連接後,需要將8.1.1.0/24網段路由通告到BGP路由表中。
# 配置Router A。
<RouterA> system-view
[RouterA] bgp 65008
[RouterA-bgp-default] router-id 1.1.1.1
[RouterA-bgp-default] peer 3.1.1.1 as-number 65009
[RouterA-bgp-default] address-family ipv4 unicast
[RouterA-bgp-default-ipv4] peer 3.1.1.1 enable
[RouterA-bgp-default-ipv4] network 8.1.1.0 24
[RouterA-bgp-default-ipv4] quit
[RouterA-bgp-default] quit
# 配置Router B。
[RouterB] bgp 65009
[RouterB-bgp-default] peer 3.1.1.2 as-number 65008
[RouterB-bgp-default] address-family ipv4 unicast
[RouterB-bgp-default-ipv4] peer 3.1.1.2 enable
[RouterB-bgp-default-ipv4] quit
[RouterB-bgp-default] quit
# 查看Router B的BGP對等體的連接狀態。
[RouterB] display bgp peer ipv4
BGP local router ID : 2.2.2.2
Local AS number : 65009
Total number of peers : 2 Peers in established state : 2
* - Dynamically created peer
Peer AS MsgRcvd MsgSent OutQ PrefRcv Up/Down State
3.3.3.3 65009 12 10 0 3 00:09:16 Established
3.1.1.2 65008 3 3 0 1 00:00:08 Established
可以看出,Router B與Router C、Router B與Router A之間的BGP連接均已建立。
# 查看Router A的BGP路由表。
[RouterA] display bgp routing-table ipv4
Total number of routes: 1
BGP local router ID is 1.1.1.1
Status codes: * - valid, > - best, d - dampened, h - history,
s - suppressed, S - stale, i - internal, e - external
a – additional-path
Origin: i - IGP, e - EGP, ? - incomplete
Network NextHop MED LocPrf PrefVal Path/Ogn
* > 8.1.1.0/24 8.1.1.1 0 32768 i
# 顯示Router B的BGP路由表。
[RouterB] display bgp routing-table ipv4
Total number of routes: 1
BGP local router ID is 2.2.2.2
Status codes: * - valid, > - best, d - dampened, h - history,
s - suppressed, S - stale, i - internal, e - external
a – additional-path
Origin: i - IGP, e - EGP, ? - incomplete
Network NextHop MED LocPrf PrefVal Path/Ogn
* >e 8.1.1.0/24 3.1.1.2 0 0 65008i
# 顯示Router C的BGP路由表。
[RouterC] display bgp routing-table ipv4
Total number of routes: 1
BGP local router ID is 3.3.3.3
Status codes: * - valid, > - best, d - dampened, h - history,
s - suppressed, S - stale, i - internal, e - external
a – additional-path
Origin: i - IGP, e - EGP, ? - incomplete
Network NextHop MED LocPrf PrefVal Path/Ogn
i 8.1.1.0/24 3.1.1.2 0 100 0 65008i
從路由表可以看出,Router A沒有學到AS 65009內部的任何路由,Router C雖然學到了AS 65008中的8.1.1.0的路由,但因為下一跳3.1.1.2不可達,所以也不是有效路由。
(4) 配置BGP引入直連路由
在Router B上配置BGP引入直連路由,以便Router A能夠獲取到網段9.1.1.0/24的路由,Router C能夠獲取到網段3.1.1.0/24的路由。
# 配置Router B。
[RouterB] bgp 65009
[RouterB-bgp-default] address-family ipv4 unicast
[RouterB-bgp-default-ipv4] import-route direct
[RouterB-bgp-default-ipv4] quit
[RouterB-bgp-default] quit
# 顯示Router A的BGP路由表。
[RouterA] display bgp routing-table ipv4
Total number of routes: 4
BGP local router ID is 1.1.1.1
Status codes: * - valid, > - best, d - dampened, h - history,
s - suppressed, S - stale, i - internal, e - external
a – additional-path
Origin: i - IGP, e - EGP, ? - incomplete
Network NextHop MED LocPrf PrefVal Path/Ogn
* >e 2.2.2.2/32 3.1.1.1 0 0 65009?
* >e 3.1.1.0/24 3.1.1.1 0 0 65009?
* > 8.1.1.0/24 8.1.1.1 0 32768 i
* >e 9.1.1.0/24 3.1.1.1 0 0 65009?
以上顯示信息表明,在Router B上引入直連路由後,Router A新增了到達2.2.2.2/32和9.1.1.0/24的兩條路由。
# 顯示Router C的BGP路由表。
[RouterC] display bgp routing-table ipv4
Total number of routes: 4
BGP local router ID is 3.3.3.3
Status codes: * - valid, > - best, d - dampened, h - history,
s - suppressed, S - stale, i - internal, e - external
a – additional-path
Origin: i - IGP, e - EGP, ? - incomplete
Network NextHop MED LocPrf PrefVal Path/Ogn
* >i 2.2.2.2/32 2.2.2.2 0 100 0 ?
* >i 3.1.1.0/24 2.2.2.2 0 100 0 ?
* >i 8.1.1.0/24 3.1.1.2 0 100 0 65008i
* >i 9.1.1.0/24 2.2.2.2 0 100 0 ?
以上顯示信息表明,到8.1.1.0的路由變為有效路由,下一跳為Router A的地址。
# 使用Ping進行驗證。
[RouterC] ping 8.1.1.1
Ping 8.1.1.1 (8.1.1.1): 56 data bytes, press CTRL_C to break
56 bytes from 8.1.1.1: icmp_seq=0 ttl=255 time=2.000 ms
56 bytes from 8.1.1.1: icmp_seq=1 ttl=255 time=0.000 ms
56 bytes from 8.1.1.1: icmp_seq=2 ttl=255 time=0.000 ms
56 bytes from 8.1.1.1: icmp_seq=3 ttl=255 time=0.000 ms
56 bytes from 8.1.1.1: icmp_seq=4 ttl=255 time=1.000 ms
--- Ping statistics for 8.1.1.1 ---
5 packet(s) transmitted, 5 packet(s) received, 0.0% packet loss
round-trip min/avg/max/std-dev = 0.000/0.600/2.000/0.800 ms
如圖2-3所示,公司A的所有設備在AS 65008內,公司B的所有設備在AS 65009內,AS 65008和AS 65009通過設備Router A和Router B相連。
現要求實現Router A能夠訪問AS 65009內的網段9.1.2.0/24,Router C能夠訪問AS 65008內的網段8.1.1.0/24。
圖2-3 BGP與IGP交互配置組網圖
缺省情況下,本設備的接口處於ADM(Administratively Down)狀態,請根據實際需要在對應接口視圖下使用undo shutdown命令開啟接口。
(1) 配置各接口的IP地址(略)
(2) 配置OSPF
在AS 65009內配置OSPF,使得Router B能獲取到到9.1.2.0/24網段的路由。
# 配置Router B。
<RouterB> system-view
[RouterB] ospf 1
[RouterB-ospf-1] area 0
[RouterB-ospf-1-area-0.0.0.0] network 2.2.2.2 0.0.0.0
[RouterB-ospf-1-area-0.0.0.0] network 9.1.1.0 0.0.0.255
[RouterB-ospf-1-area-0.0.0.0] quit
[RouterB-ospf-1] quit
# 配置Router C。
<RouterC> system-view
[RouterC] ospf 1
[RouterC-ospf-1] import-route direct
[RouterC-ospf-1] area 0
[RouterC-ospf-1-area-0.0.0.0] network 9.1.1.0 0.0.0.255
[RouterC-ospf-1-area-0.0.0.0] quit
[RouterC-ospf-1] quit
(3) 配置EBGP連接
配置EBGP連接,並在Router A上將8.1.1.0/24網段通告到BGP路由表中,以便Router B獲取到網段8.1.1.0/24的路由。
# 配置Router A。
<RouterA> system-view
[RouterA] bgp 65008
[RouterA-bgp-default] router-id 1.1.1.1
[RouterA-bgp-default] peer 3.1.1.1 as-number 65009
[RouterA-bgp-default] address-family ipv4 unicast
[RouterA-bgp-default-ipv4] peer 3.1.1.1 enable
[RouterA-bgp-default-ipv4] network 8.1.1.0 24
[RouterA-bgp-default-ipv4] quit
[RouterA-bgp-default] quit
# 配置Router B。
[RouterB] bgp 65009
[RouterB-bgp-default] router-id 2.2.2.2
[RouterB-bgp-default] peer 3.1.1.2 as-number 65008
[RouterB-bgp-default] address-family ipv4 unicast
[RouterB-bgp-default-ipv4] peer 3.1.1.2 enable
(4) 配置BGP與IGP交互
¡ 在Router B上配置BGP引入OSPF路由,以便Router A能夠獲取到到9.1.2.0/24網段的路由。
¡ 在Router B上配置OSPF引入BGP路由,以便Router C能夠獲取到到8.1.1.0/24網段的路由。
# 在Router B上配置BGP和OSPF互相引入路由。
[RouterB-bgp-default-ipv4] import-route ospf 1
[RouterB-bgp-default-ipv4] quit
[RouterB-bgp-default] quit
[RouterB] ospf 1
[RouterB-ospf-1] import-route bgp
[RouterB-ospf-1] quit
# 查看Router A的BGP路由表。
[RouterA] display bgp routing-table ipv4
Total number of routes: 3
BGP local router ID is 1.1.1.1
Status codes: * - valid, > - best, d - dampened, h - history,
s - suppressed, S - stale, i - internal, e - external
a – additional-path
Origin: i - IGP, e - EGP, ? - incomplete
Network NextHop MED LocPrf PrefVal Path/Ogn
* >e 3.3.3.3/32 3.1.1.1 1 0 65009?
* > 8.1.1.0/24 8.1.1.1 0 32768 i
* >e 9.1.2.0/24 3.1.1.1 1 0 65009?
# 查看Router C的OSPF路由表。
[RouterC] display ospf routing
OSPF Process 1 with Router ID 3.3.3.3
Routing Tables
Routing for Network
Destination Cost Type NextHop AdvRouter Area
9.1.1.0/24 1 Transit 9.1.1.2 3.3.3.3 0.0.0.0
2.2.2.2/32 1 Stub 9.1.1.1 2.2.2.2 0.0.0.0
Routing for ASEs
Destination Cost Type Tag NextHop AdvRouter
8.1.1.0/24 1 Type2 1 9.1.1.1 2.2.2.2
Total Nets: 3
Intra Area: 2 Inter Area: 0 ASE: 1 NSSA: 0
# 使用Ping進行驗證。
[RouterA] ping -a 8.1.1.1 9.1.2.1
Ping 9.1.2.1 (9.1.2.1) from 8.1.1.1: 56 data bytes, press CTRL_C to break
56 bytes from 9.1.2.1: icmp_seq=0 ttl=254 time=10.000 ms
56 bytes from 9.1.2.1: icmp_seq=1 ttl=254 time=12.000 ms
56 bytes from 9.1.2.1: icmp_seq=2 ttl=254 time=2.000 ms
56 bytes from 9.1.2.1: icmp_seq=3 ttl=254 time=7.000 ms
56 bytes from 9.1.2.1: icmp_seq=4 ttl=254 time=9.000 ms
--- Ping statistics for 9.1.2.1 ---
5 packet(s) transmitted, 5 packet(s) received, 0.0% packet loss
round-trip min/avg/max/std-dev = 2.000/8.000/12.000/3.406 ms
[RouterC] ping -a 9.1.2.1 8.1.1.1
Ping 8.1.1.1 (8.1.1.1) from 9.1.2.1: 56 data bytes, press CTRL_C to break
56 bytes from 8.1.1.1: icmp_seq=0 ttl=254 time=9.000 ms
56 bytes from 8.1.1.1: icmp_seq=1 ttl=254 time=4.000 ms
56 bytes from 8.1.1.1: icmp_seq=2 ttl=254 time=3.000 ms
56 bytes from 8.1.1.1: icmp_seq=3 ttl=254 time=3.000 ms
56 bytes from 8.1.1.1: icmp_seq=4 ttl=254 time=3.000 ms
--- Ping statistics for 8.1.1.1 ---
5 packet(s) transmitted, 5 packet(s) received, 0.0% packet loss
round-trip min/avg/max/std-dev = 3.000/4.400/9.000/2.332 ms
所有路由器均運行BGP協議。Router A需要分別與Router B、Router C和Router D建立IBGP連接。在Router A上配置BGP動態對等體,以簡化配置。
配置Router A作為路由反射器,在Router B、Router C和Router D之間反射路由。
圖2-4 BGP動態對等體配置組網圖
缺省情況下,本設備的接口處於ADM(Administratively Down)狀態,請根據實際需要在對應接口視圖下使用undo shutdown命令開啟接口。
(1) 配置各接口的IP地址(略)
(2) 配置IBGP連接
# 在Router A上配置BGP動態對等體。
<RouterA> system-view
[RouterA] bgp 200
[RouterA-bgp-default] router-id 1.1.1.1
[RouterA-bgp-default] peer 10.1.0.0 16 as-number 200
[RouterA-bgp-default] address-family ipv4
[RouterA-bgp-default-ipv4] peer 10.1.0.0 16 enable
# 在Router B上配置與Router A建立IBGP連接。
<RouterB> system-view
[RouterB] bgp 200
[RouterB-bgp-default] router-id 2.2.2.2
[RouterB-bgp-default] peer 10.1.1.1 as-number 200
[RouterB-bgp-default] address-family ipv4
[RouterB-bgp-default-ipv4] peer 10.1.1.1 enable
# 在Router C上配置與Router A建立IBGP連接。
<RouterC> system-view
[RouterC] bgp 200
[RouterC-bgp-default] router-id 3.3.3.3
[RouterC-bgp-default] peer 10.1.2.1 as-number 200
[RouterC-bgp-default] address-family ipv4
[RouterC-bgp-default-ipv4] peer 10.1.2.1 enable
# 在Router D上配置與Router A建立IBGP連接。
<RouterD> system-view
[RouterD] bgp 200
[RouterD-bgp-default] router-id 4.4.4.4
[RouterD-bgp-default] peer 10.1.3.1 as-number 200
[RouterD-bgp-default] address-family ipv4
[RouterD-bgp-default-ipv4] peer 10.1.3.1 enable
# 查看Router A的BGP對等體的連接狀態。
[RouterA] display bgp peer ipv4
BGP local router ID : 1.1.1.1
Local AS number : 200
Total number of peers : 3 Peers in established state : 3
* - Dynamically created peer
Peer AS MsgRcvd MsgSent OutQ PrefRcv Up/Down State
*10.1.1.2 200 7 10 0 0 00:06:09 Established
*10.1.2.2 200 7 10 0 0 00:06:09 Established
*10.1.3.2 200 7 10 0 0 00:06:09 Established
以上顯示信息表明Router A與Router B、Router C和Router D之間的IBGP連接已經建立。
(3) 配置路由反射器
# 配置Router A作為路由反射器,將網段10.1.0.0/16中的對等體作為路由反射的客戶機。
[RouterA-bgp-default-ipv4] peer 10.1.0.0 16 reflect-client
(4) 配置發布網段路由
# 在Router C上配置發布網段路由9.1.1.0/24。
[RouterC-bgp-default-ipv4] network 9.1.1.0 24
# 在Router A、Router B和Router D上查看BGP路由表,可以看到均已學習到路由9.1.1.0/24。以Router A為例:
[RouterA-bgp-default] display bgp routing-table ipv4
Total Number of Routes: 1
BGP Local router ID is 1.1.1.1
Status codes: * - valid, > - best, d - dampened, h - history,
s - suppressed, S - stale, i - internal, e - external
a – additional-path
Origin: i - IGP, e - EGP, ? - incomplete
Network NextHop MED LocPrf PrefVal Path/Ogn
* i 9.1.1.0/24 10.1.2.2 0 100 0 ?
通過在邊界設備Router C和外部網絡設備Router D之間建立EBGP連接,實現公司內部網絡與外部網絡的互通。
在公司內部,核心層設備Router B與彙聚層設備Router A之間配置靜態路由,Router B與Router C之間配置OSPF,並在OSPF路由中引入靜態路由,以實現公司內部網絡的互通。
公司內部網絡包括三個網段:192.168.64.0/24、192.168.74.0/24和192.168.99.0/24。在Router C上配置路由聚合,將這三個網段的路由聚合為一條路由,以減少通過BGP發布的路由數量。
圖2-5 BGP路由聚合組網圖
缺省情況下,本設備的接口處於ADM(Administratively Down)狀態,請根據實際需要在對應接口視圖下使用undo shutdown命令開啟接口。
(1) 配置各接口的IP地址(略)
(2) 在Router A和Router B之間配置靜態路由
# 在Router A上配置缺省路由,下一跳為Router B。
<RouterA> system-view
[RouterA] ip route-static 0.0.0.0 0 192.168.212.1
# 在Router B上配置靜態路由,到達目的網絡192.168.64.0/24、192.168.74.0/24和192.168.99.0/24的路由下一跳均為Router A。
<RouterB> system-view
[RouterB] ip route-static 192.168.64.0 24 192.168.212.161
[RouterB] ip route-static 192.168.74.0 24 192.168.212.161
[RouterB] ip route-static 192.168.99.0 24 192.168.212.161
(3) 在Router B和Router C之間配置OSPF,並引入靜態路由
# 在Router B上配置OSPF發布本地網段路由,並引入靜態路由。
[RouterB] ospf
[RouterB-ospf-1] area 0
[RouterB-ospf-1-area-0.0.0.0] network 172.17.100.0 0.0.0.255
[RouterB-ospf-1-area-0.0.0.0] quit
[RouterB-ospf-1] import-route static
[RouterB-ospf-1] quit
# 在Router C上配置OSPF發布本地網段路由。
[RouterC] ospf
[RouterC-ospf-1] area 0
[RouterC-ospf-1-area-0.0.0.0] network 172.17.100.0 0.0.0.255
[RouterC-ospf-1-area-0.0.0.0] network 10.220.2.0 0.0.0.255
[RouterC-ospf-1-area-0.0.0.0] quit
[RouterC-ospf-1] quit
# 在Router C上查看路由表信息,可以看到Router C通過OSPF學習到了到達192.168.64.0/24、192.168.74.0/24和192.168.99.0/24網段的路由。
[RouterC] display ip routing-table protocol ospf
Summary count : 5
OSPF Routing table Status : <Active>
Summary count : 3
Destination/Mask Proto Pre Cost NextHop Interface
192.168.64.0/24 O_ASE2 150 1 172.17.100.1 HGE1/0/1
192.168.74.0/24 O_ASE2 150 1 172.17.100.1 HGE1/0/1
192.168.99.0/24 O_ASE2 150 1 172.17.100.1 HGE1/0/1
OSPF Routing table Status : <Inactive>
Summary count : 2
Destination/Mask Proto Pre Cost NextHop Interface
10.220.2.0/24 O_INTRA 10 1 10.220.2.16 HGE1/0/2
172.17.100.0/24 O_INTRA 10 1 172.17.100.2 HGE1/0/1
(4) 在Router C和Router D之間配置BGP,並引入OSPF路由
# 在Router C上配置Router D為其EBGP對等體,並引入OSPF路由。
[RouterC] bgp 65106
[RouterC-bgp-default] router-id 3.3.3.3
[RouterC-bgp-default] peer 10.220.2.217 as-number 64631
[RouterC-bgp-default] address-family ipv4 unicast
[RouterC-bgp-default-ipv4] peer 10.220.2.217 enable
[RouterC-bgp-default-ipv4] import-route ospf
# 在Router D上配置Router C為其EBGP對等體。
[RouterD] bgp 64631
[RouterD-bgp-default] router-id 4.4.4.4
[RouterD-bgp-default] peer 10.220.2.16 as-number 65106
[RouterD-bgp-default] address-family ipv4 unicast
[RouterD-bgp-default-ipv4] peer 10.220.2.16 enable
[RouterD-bgp-default-ipv4] quit
[RouterD-bgp-default] quit
# 在Router D上查看路由表信息,可以看到Router D通過BGP學習到了到達192.168.64.0/24、192.168.74.0/24和192.168.99.0/24三個網段的路由。
[RouterD] display ip routing-table protocol bgp
Summary count : 3
BGP Routing table Status : <Active>
Summary count : 3
Destination/Mask Proto Pre Cost NextHop Interface
192.168.64.0/24 BGP 255 1 10.220.2.16 HGE1/0/1
192.168.74.0/24 BGP 255 1 10.220.2.16 HGE1/0/1
192.168.99.0/24 BGP 255 1 10.220.2.16 HGE1/0/1
BGP Routing table Status : <Inactive>
Summary count : 0
完成上述配置後,在Router D上可以ping通192.168.64.0/24、192.168.74.0/24和192.168.99.0/24網段內的主機。
(5) 在Router C上配置路由聚合
# 在Router C上將路由192.168.64.0/24、192.168.74.0/24和192.168.99.0/24聚合為192.168.64.0/18,並抑製發布具體路由。
[RouterC-bgp-default-ipv4] aggregate 192.168.64.0 18 detail-suppressed
[RouterC-bgp-default-ipv4] quit
[RouterC-bgp-default] quit
# 在Router C上查看路由表信息,可以看到Router C上產生了一條聚合路由192.168.64.0/18,該聚合路由的出接口為Null0。
[RouterC] display ip routing-table | include 192.168
192.168.64.0/18 BGP 130 0 127.0.0.1 NULL0
192.168.64.0/24 O_ASE2 150 1 172.17.100.1 HGE1/0/1
192.168.74.0/24 O_ASE2 150 1 172.17.100.1 HGE1/0/1
192.168.99.0/24 O_ASE2 150 1 172.17.100.1 HGE1/0/1
# 在Router D上查看路由表信息,可以看到Router D上到達公司內部三個網絡的路由聚合為一條路由192.168.64.0/18。
[RouterD] display ip routing-table protocol bgp
Summary count : 1
BGP Routing table Status : <Active>
Summary count : 1
Destination/Mask Proto Pre Cost NextHop Interface
192.168.64.0/18 BGP 255 0 10.220.2.16 HGE1/0/1
BGP Routing table Status : <Inactive>
Summary count : 0
完成上述配置後,成功實現了路由聚合。並且,在Router D上可以ping通192.168.64.0/24、192.168.74.0/24和192.168.99.0/24網段內的主機。
如圖2-6所示,所有路由器均運行IPv6 BGP協議。Router A位於AS 65008;Router B和Router C位於AS 65009。要求Router A和Router B之間建立EBGP連接,Router B和Router C之間建立IBGP連接,使得Router C能夠訪問Router A直連的50::/64網段。
圖2-6 IPv6 BGP基本配置組網圖
缺省情況下,本設備的接口處於ADM(Administratively Down)狀態,請根據實際需要在對應接口視圖下使用undo shutdown命令開啟接口。
(1) 配置各接口的IPv6地址及Loopback接口的IPv4地址(略)
(2) 配置IBGP連接
# 配置Router B。
<RouterB> system-view
[RouterB] bgp 65009
[RouterB-bgp-default] router-id 2.2.2.2
[RouterB-bgp-default] peer 9::2 as-number 65009
[RouterB-bgp-default] address-family ipv6
[RouterB-bgp-default-ipv6] peer 9::2 enable
[RouterB-bgp-default-ipv6] quit
# 配置Router C。
<RouterC> system-view
[RouterC] bgp 65009
[RouterC-bgp-default] router-id 3.3.3.3
[RouterC-bgp-default] peer 9::1 as-number 65009
[RouterC-bgp-default] address-family ipv6
[RouterC-bgp-default-ipv6] peer 9::1 enable
(3) 配置EBGP連接
# 配置Router A。
<RouterA> system-view
[RouterA] bgp 65008
[RouterA-bgp-default] router-id 1.1.1.1
[RouterA-bgp-default] peer 10::1 as-number 65009
[RouterA-bgp-default] address-family ipv6
[RouterA-bgp-default-ipv6] peer 10::1 enable
# 配置Router B。
[RouterB-bgp-default] peer 10::2 as-number 65008
[RouterB-bgp-default] address-family ipv6
[RouterB-bgp-default-ipv6] peer 10::2 enable
(4) 配置通過IPv6 BGP發布的網段路由
# 配置Router A。
[RouterA-bgp-default-ipv6] network 10:: 64
[RouterA-bgp-default-ipv6] network 50:: 64
[RouterA-bgp-default-ipv6] quit
[RouterA-bgp-default] quit
# 配置Router B。
[RouterB-bgp-default-ipv6] network 10:: 64
[RouterB-bgp-default-ipv6] network 9:: 64
[RouterB-bgp-default-ipv6] quit
[RouterB-bgp-default] quit
# 配置Router C。
[RouterC-bgp-default-ipv6] network 9:: 64
[RouterC-bgp-default-ipv6] quit
[RouterC-bgp-default] quit
# 在Router B上查看IPv6 BGP對等體的信息。可以看出,Router A和Router B之間建立了EBGP連接,Router B和Router C之間建立了IBGP連接。
[RouterB] display bgp peer ipv6
BGP local router ID: 2.2.2.2
Local AS number: 65009
Total number of peers: 2 Peers in established state: 2
* - Dynamically created peer
Peer AS MsgRcvd MsgSent OutQ PrefRcv Up/Down State
9::2 65009 41 43 0 1 00:29:00 Established
10::2 65008 38 38 0 2 00:27:20 Established
# 在Router A上查看IPv6 BGP路由表信息。可以看出,Router A學習到了AS 65009內的路由信息。
[RouterA] display bgp routing-table ipv6
Total number of routes: 4
BGP local router ID is 1.1.1.1
Status codes: * - valid, > - best, d - dampened, h - history,
s - suppressed, S - stale, i - internal, e - external
a – additional-path
Origin: i - IGP, e - EGP, ? - incomplete
* >e Network : 9:: PrefixLen : 64
NextHop : 10::1 LocPrf :
PrefVal : 0 OutLabel : NULL
MED : 0
Path/Ogn: 65009i
* > Network : 10:: PrefixLen : 64
NextHop : :: LocPrf :
PrefVal : 32768 OutLabel : NULL
MED : 0
Path/Ogn: i
* e Network : 10:: PrefixLen : 64
NextHop : 10::1 LocPrf :
PrefVal : 0 OutLabel : NULL
MED : 0
Path/Ogn: 65009i
* > Network : 50:: PrefixLen : 64
NextHop : :: LocPrf :
PrefVal : 32768 OutLabel : NULL
MED : 0
Path/Ogn: i
# 在Router C上查看IPv6 BGP路由表信息。可以看出,Router C學習到了到達50::/64網段的路由。
[RouterC] display bgp routing-table ipv6
Total number of routes: 4
BGP local router ID is 3.3.3.3
Status codes: * - valid, > - best, d - dampened, h - history,
s - suppressed, S - stale, i - internal, e - external
a – additional-path
Origin: i - IGP, e - EGP, ? - incomplete
* > Network : 9:: PrefixLen : 64
NextHop : :: LocPrf :
PrefVal : 32768 OutLabel : NULL
MED : 0
Path/Ogn: i
* i Network : 9:: PrefixLen : 64
NextHop : 9::1 LocPrf : 100
PrefVal : 0 OutLabel : NULL
MED : 0
Path/Ogn: i
* >i Network : 10:: PrefixLen : 64
NextHop : 9::1 LocPrf : 100
PrefVal : 0 OutLabel : NULL
MED : 0
Path/Ogn: i
* >i Network : 50:: PrefixLen : 64
NextHop : 10::2 LocPrf : 100
PrefVal : 0 OutLabel : NULL
MED : 0
Path/Ogn: 65008i
# 在Router C上可以ping通50::/64網段內的主機。(略)
使用display bgp peer ipv4 unicast命令或display bgp peer ipv6 unicast命令查看BGP對等體的信息,發現與對端的連接無法進入Established狀態。
BGP鄰居的建立需要能夠使用179端口建立TCP會話,以及能夠正確交換Open消息。
(1) 執行display current-configuration命令查看當前配置,檢查鄰居的AS號配置是否正確。
(2) 執行display bgp peer ipv4 unicast命令或display bgp peer ipv6 unicast命令檢查鄰居的IP地址/IPv6地址是否正確。
(3) 如果使用Loopback接口,檢查是否配置了peer connect-interface命令。
(4) 如果是物理上非直連的EBGP鄰居,檢查是否配置了peer ebgp-max-hop命令。
(5) 如果配置了peer ttl-security hops命令,請檢查對端是否也配置了該命令,且保證雙方配置的hop-count不小於兩台設備實際需要經過的跳數。
(6) 檢查路由表中是否存在到鄰居的可用路由。
(7) 使用ping命令檢查鏈路是否暢通。
(8) 使用display tcp verbose命令或display ipv6 tcp verbose命令檢查TCP連接是否正常。
檢查是否配置了禁止TCP端口179的ACL。
大規模BGP網絡配置任務如下:
· 配置BGP團體
· 配置BGP聯盟
¡ (可選)配置聯盟兼容性
通過配置BGP路由衰減,可以抑製不穩定的路由信息,不允許這類路由參與路由選擇。
本配置隻對EBGP路由生效,對IBGP路由無效。
配置本功能後,EBGP鄰居down了之後,來自該鄰居的路由不會被刪除,而是進行路由衰減。
(1) 進入係統視圖。
system-view
(2) 進入BGP IPv4單播地址族視圖或BGP-VPN IPv4單播地址族視圖。
¡ 請依次執行以下命令進入BGP IPv4單播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv4 [ unicast ]
¡ 請依次執行以下命令進入BGP-VPN IPv4單播地址族視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv4 [ unicast ]
(3) 配置BGP路由衰減。
dampening [ half-life-reachable half-life-unreachable reuse suppress ceiling | route-policy route-policy-name ] *
缺省情況下,未配置BGP路由衰減。
(1) 進入係統視圖。
system-view
(2) 進入BGP IPv6單播地址族視圖或BGP-VPN IPv6單播地址族視圖。
¡ 請依次執行以下命令進入BGP IPv6單播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv6 [ unicast ]
¡ 請依次執行以下命令進入BGP-VPN IPv6單播地址族視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv6 [ unicast ]
(3) 配置IPv6 BGP路由衰減。
dampening [ half-life-reachable half-life-unreachable reuse suppress ceiling | route-policy route-policy-name ] *
缺省情況下,未配置IPv6 BGP路由衰減。
缺省情況下,本地路由器不向對等體/對等體組發布團體屬性和擴展團體屬性。如果接收到的路由中攜帶團體屬性或擴展團體屬性,則本地路由器刪除該團體屬性或擴展團體屬性後,再將路由發布給對等體/對等體組。
通過本配置可以允許本地路由器在向對等體發布路由時攜帶團體屬性或擴展團體屬性,以便根據團體屬性或擴展團體屬性對路由進行過濾和控製。本配置和路由策略配合使用,可以靈活地控製路由中攜帶的團體屬性和擴展團體屬性值,例如在路由中添加團體屬性或擴展團體屬性、修改路由中原有的團體屬性或擴展團體屬性值。路由策略的詳細介紹,請參見“三層技術-IP路由配置指導”中的“路由策略”。
(1) 進入係統視圖。
system-view
(2) 進入BGP IPv4單播地址族視圖或BGP-VPN IPv4單播地址族視圖。
¡ 請依次執行以下命令進入BGP IPv4單播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv4 [ unicast ]
¡ 請依次執行以下命令進入BGP-VPN IPv4單播地址族視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv4 [ unicast ]
(3) 配置向對等體/對等體組發布團體屬性。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } advertise-community
缺省情況下,不向對等體/對等體組發布團體屬性。
(4) 配置向對等體/對等體組發布擴展團體屬性。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } advertise-ext-community
缺省情況下,不向對等體/對等體組發布擴展團體屬性。
(5) (可選)對發布給對等體/對等體組的路由指定路由策略。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } route-policy route-policy-name export
缺省情況下,不指定對等體/對等體組的路由策略。
(1) 進入係統視圖。
system-view
(2) 進入BGP IPv6單播地址族視圖或BGP-VPN IPv6單播地址族視圖。
¡ 請依次執行以下命令進入BGP IPv6單播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv6 [ unicast ]
¡ 請依次執行以下命令進入BGP-VPN IPv6單播地址族視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv6 [ unicast ]
(3) 配置向對等體/對等體組發布團體屬性。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } advertise-community
缺省情況下,不向IPv6 BGP對等體/對等體組發布團體屬性。
(4) 配置向對等體/對等體組發布擴展團體屬性。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } advertise-ext-community
缺省情況下,不向IPv6 BGP對等體/對等體組發布擴展團體屬性。
(5) (可選)對發布給IPv6 BGP對等體/對等體組的路由指定路由策略。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } route-policy route-policy-name export
缺省情況下,不指定對等體/對等體組的路由策略。
如果同一個AS內有多個BGP路由器,為了減少在同一AS內建立的IBGP連接數,可以將一台BGP路由器配置為路由反射器,其他路由器作為前者的客戶機,使反射器和它的客戶機組成為一個集群。集群內部通過路由反射器在客戶機之間反射路由,各客戶機之間不需要建立BGP連接即可交換路由信息。
為了增加網絡的可靠性和防止單點故障,可以在一個集群中配置一個以上的路由反射器,這時,網絡管理員必須給位於相同集群中的每個路由反射器配置相同的集群ID,以避免路由環路。
當一台路由反射器可能連接網絡中的多個集群時,可以為不同對等體/對等體組指定集群ID,以便對路由反射進行更精細控製。
BGP路由反射功能僅需在作為反射器的設備上進行配置,其他設備不需要感知本機在反射功能中作為客戶機或是非客戶機。
設備被配置為路由反射器後,發布路由的規則如下:
· 將從IBGP對等體中非客戶機設備收到的路由,發布給本反射器的所有客戶機;
· 將從IBGP對等體中客戶機收到的路由,發布給本反射器所有的非客戶機和客戶機;
· 將從所有EBGP對等體收到的路由,發布給本反射器所有的非客戶機和客戶機。
針同一個對等體/對等體組同時配置reflector cluster-id和peer cluster-id命令,則以peer cluster-id命令為準。如果未配置peer cluster-id命令為對等體/對等體組指定集群ID,則該對等體/對等體組的集群ID以reflector cluster-id命令的配置為準。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖或BGP-VPN實例視圖。
¡ 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
¡ 請依次執行以下命令進入BGP-VPN實例視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 為對等體/對等體組配置路由反射器的集群ID。
peer { group-name | ipv4-address [ mask-length ] } cluster-id cluster-id
缺省情況下,沒有為對等體/對等體組配置路由反射器的集群ID。
(4) 進入BGP IPv4單播地址族視圖或BGP-VPN IPv4單播地址族視圖。
¡ 請依次執行以下命令進入BGP IPv4單播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv4 [ unicast ]
¡ 請依次執行以下命令進入BGP-VPN IPv4單播地址族視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv4 [ unicast ]
僅BGP實例視圖下支持本配置。
(5) 配置本機作為路由反射器,對等體/對等體組作為路由反射器的客戶機。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } reflect-client
缺省情況下,未配置路由反射器及其客戶機。
(6) (可選)允許路由反射器在客戶機之間反射路由。
reflect between-clients
缺省情況下,允許路由反射器在客戶機之間反射路由。
(7) (可選)配置路由反射器的集群ID。
reflector cluster-id { cluster-id | ipv4-address }
缺省情況下,每個路由反射器都使用自己的Router ID作為集群ID。
(8) (可選)允許路由反射器反射路由時修改路由屬性。
reflect change-path-attribute
缺省情況下,不允許路由反射器反射路由時修改路由屬性。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖或BGP-VPN實例視圖。
¡ 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
¡ 請依次執行以下命令進入BGP-VPN實例視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 為對等體/對等體組配置路由反射器的集群ID。
peer { group-name | ipv6-address [ prefix-length ] } cluster-id cluster-id
缺省情況下,沒有為對等體/對等體組配置路由反射器的集群ID。
(4) 進入BGP IPv6單播地址族視圖。請依次執行以下命令進入BGP IPv6單播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv6 [ unicast ]
僅BGP實例視圖下支持本配置。
(5) 配置本機作為路由反射器,對等體/對等體組作為路由反射器的客戶機。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } reflect-client
缺省情況下,未配置路由反射器及其客戶機。
(6) (可選)允許路由反射器在客戶機之間反射路由。
reflect between-clients
缺省情況下,允許路由反射器在客戶機之間反射路由。
(7) (可選)配置路由反射器的集群ID。
reflector cluster-id { cluster-id | ipv4-address }
缺省情況下,每個路由反射器都使用自己的Router ID作為集群ID。
(8) (可選)允許路由反射器反射路由時修改路由屬性。
reflect change-path-attribute
缺省情況下,不允許路由反射器反射路由時修改路由屬性。
路由反射器從某個對等體接收到路由後,在反射該路由之前為其添加ORIGINATOR_ID屬性,標識該路由在本AS內的起源。ORIGINATOR_ID屬性的值為該對等體的Router ID。BGP路由器接收到路由後,將路由中的ORIGINATOR_ID屬性值與本地的Router ID進行比較,如果二者相同則丟棄該路由,從而避免路由環路。
在某些特殊的組網中(如防火牆組網),如果需要接收ORIGINATOR_ID屬性值與本地Router ID相同的路由,則需要通過本配置忽略BGP路由的ORIGINATOR_ID屬性。
請謹慎使用本命令。如果無法確保執行本命令後網絡中不會產生環路,請不要執行本命令。
執行本命令後,BGP路由的CLUSTER_LIST屬性也會被忽略。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖或BGP-VPN實例視圖。
¡ 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
¡ 請依次執行以下命令進入BGP-VPN實例視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 配置忽略BGP路由的ORIGINATOR_ID屬性。
peer { group-name | ipv4-address [ mask-length ] } ignore-originatorid
缺省情況下,BGP路由器不會忽略BGP路由的ORIGINATOR_ID屬性。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖或BGP-VPN實例視圖。
¡ 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
¡ 請依次執行以下命令進入BGP-VPN實例視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 配置忽略BGP路由的ORIGINATOR_ID屬性。
peer { group-name | ipv6-address [ prefix-length ] } ignore-originatorid
缺省情況下,BGP路由器不會忽略BGP路由的ORIGINATOR_ID屬性。
聯盟是處理AS內部的IBGP網絡連接激增的另一種方法,它將一個自治係統劃分為若幹個子自治係統,每個子自治係統內部的IBGP對等體建立全連接關係,子自治係統之間建立EBGP連接關係。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
(3) 配置聯盟的ID。
confederation id as-number
缺省情況下,未配置聯盟的ID。
在不屬於聯盟的BGP發言者看來,屬於同一個聯盟的多個子自治係統是一個整體,聯盟ID就是標識聯盟這一整體的自治係統號。
(4) 配置聯盟中的子自治係統。
confederation peer-as as-number-list
缺省情況下,未配置聯盟中的子自治係統。一個聯盟最多可包括32個子自治係統,配置屬於聯盟的子自治係統時使用的as-number僅在聯盟內部有效。
如果路由器與聯盟中的其它子自治係統建立EBGP鄰居關係,需要在該路由器上指定該聯盟體中除了自己還包含哪些子自治係統。
如果其他路由器的聯盟實現機製不同於RFC 3065標準,可以通過如下配置與未采用RFC 3065配置的AS聯盟兼容。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
(3) 配置設備可以與未遵循RFC 3065實現聯盟的路由器互通。
confederation nonstandard
缺省情況下,設備不能與未遵循RFC 3065實現聯盟的路由器互通。
可在任意視圖下執行以下命令:
· 顯示BGP IPv4單播路由的路由衰減參數。
display bgp [ instance instance-name ] dampening parameter ipv4 [ unicast ] [ vpn-instance vpn-instance-name ]
· 顯示BGP IPv4單播對等體組的信息。
display bgp [ instance instance-name ] group ipv4 [ unicast ] [ vpn-instance vpn-instance-name ] [ group-name group-name ]
· 顯示BGP IPv4單播地址族下的對等體或對等體組的狀態和統計信息。
display bgp [ instance instance-name ] peer ipv4 [ unicast ] [ vpn-instance vpn-instance-name ] [ ipv4-address mask-length | { ipv4-address | group-name group-name } log-info | [ ipv4-address ] verbose ]
display bgp [ instance instance-name ] peer ipv4 [ unicast ] [ ipv6-address prefix-length | ipv6-address log-info | [ ipv6-address ] verbose ]
· 顯示衰減的BGP IPv4單播路由信息。
display bgp [ instance instance-name ] routing-table dampened ipv4 [ unicast ] [ vpn-instance vpn-instance-name ]
可在任意視圖下執行以下命令:
· 顯示BGP IPv6單播路由的路由衰減參數。
display bgp [ instance instance-name ] dampening parameter ipv6 [ unicast ] [ vpn-instance vpn-instance-name ]
· 顯示BGP IPv6單播對等體組的信息。
display bgp [ instance instance-name ] group ipv6 [ unicast ] [ vpn-instance vpn-instance-name ] [ group-name group-name ]
· 顯示BGP IPv6單播地址族下的對等體或對等體組的狀態和統計信息。
display bgp [ instance instance-name ] peer ipv6 [ unicast ] [ vpn-instance vpn-instance-name ] [ ipv6-address prefix-length | { ipv6-address | group-name group-name } log-info | [ ipv6-address ] verbose ]
display bgp [ instance instance-name ] peer ipv6 [ unicast ] [ ipv4-address mask-length | ipv4-address log-info | [ ipv4-address ] verbose ]
· 顯示衰減的BGP IPv6單播路由信息。
display bgp [ instance instance-name ] routing-table dampened ipv6 [ unicast ] [ vpn-instance vpn-instance-name ]
可在任意視圖下執行以下命令:
· 顯示BGP IPv4單播路由的震蕩統計信息。
display bgp [ instance instance-name ] routing-table flap-info ipv4 [ unicast ] [ vpn-instance vpn-instance-name ] [ ipv4-address [ { mask-length | mask } [ longest-match ] ] | as-path-acl { as-path-acl-number | as-path-acl-name } ]
· 顯示BGP IPv6單播路由的震蕩統計信息。
display bgp [ instance instance-name ] routing-table flap-info ipv6 [ unicast ] [ vpn-instance vpn-instance-name ] [ ipv6-address prefix-length | as-path-acl { as-path-acl-number | as-path-acl-name } ]
請在用戶視圖下執行以下命令:
· 清除BGP IPv4單播路由的震蕩統計信息。
reset bgp [ instance instance-name ] flap-info ipv4 [ unicast ] [ vpn-instance vpn-instance-name ] [ ipv4-address [ mask-length | mask ] | as-path-acl as-path-acl-number | peer ipv4-address [ mask-length ] ]
· 清除BGP IPv6單播路由的震蕩統計信息。
reset bgp [ instance instance-name ] flap-info ipv6 [ unicast ] [ vpn-instance vpn-instance-name ] [ ipv6-address prefix-length | as-path-acl { as-path-acl-number | as-path-acl-name } | peer ipv6-address [ prefix-length ] ]
Router B分別與Router A、Router C之間建立EBGP連接。
通過在Router A上配置NO_EXPORT團體屬性,使得AS 10發布到AS 20中的路由,不會再被AS 20發布到其他AS。
圖3-1 BGP團體組網圖
缺省情況下,本設備的接口處於ADM(Administratively Down)狀態,請根據實際需要在對應接口視圖下使用undo shutdown命令開啟接口。
(1) 配置各接口的IP地址(略)
(2) 配置EBGP
# 配置Router A。
<RouterA> system-view
[RouterA] bgp 10
[RouterA-bgp-default] router-id 1.1.1.1
[RouterA-bgp-default] peer 200.1.2.2 as-number 20
[RouterA-bgp-default] address-family ipv4 unicast
[RouterA-bgp-default-ipv4] peer 200.1.2.2 enable
[RouterA-bgp-default-ipv4] network 9.1.1.0 255.255.255.0
[RouterA-bgp-default-ipv4] quit
[RouterA-bgp-default] quit
# 配置Router B。
<RouterB> system-view
[RouterB] bgp 20
[RouterB-bgp-default] router-id 2.2.2.2
[RouterB-bgp-default] peer 200.1.2.1 as-number 10
[RouterB-bgp-default] peer 200.1.3.2 as-number 30
[RouterB-bgp-default] address-family ipv4 unicast
[RouterB-bgp-default-ipv4] peer 200.1.2.1 enable
[RouterB-bgp-default-ipv4] peer 200.1.3.2 enable
[RouterB-bgp-default-ipv4] quit
[RouterB-bgp-default] quit
# 配置Router C。
<RouterC> system-view
[RouterC] bgp 30
[RouterC-bgp-default] router-id 3.3.3.3
[RouterC-bgp-default] peer 200.1.3.1 as-number 20
[RouterC-bgp-default] address-family ipv4 unicast
[RouterC-bgp-default-ipv4] peer 200.1.3.1 enable
[RouterC-bgp-default-ipv4] quit
[RouterC-bgp-default] quit
# 查看Router B的路由表。
[RouterB] display bgp routing-table ipv4 9.1.1.0
BGP local router ID: 2.2.2.2
Local AS number: 20
Paths: 1 available, 1 best
BGP routing table information of 9.1.1.0/24:
From : 200.1.2.1 (1.1.1.1)
Rely nexthop : 200.1.2.1
Original nexthop: 200.1.2.1
OutLabel : NULL
RxPathID : 0x0
TxPathID : 0x0
AS-path : 10
Origin : igp
Attribute value : pref-val 0
State : valid, external, best
IP precedence : N/A
QoS local ID : N/A
Traffic index : N/A
VPN-Peer UserID : N/A
DSCP : N/A
EXP : N/A
# 查看Router B的路由發送信息。
[RouterB] display bgp routing-table ipv4 9.1.1.0 advertise-info
BGP local router ID: 2.2.2.2
Local AS number: 20
Paths: 1 best
BGP routing table information of 9.1.1.0/24(TxPathID:0):
Advertised to peers (1 in total):
200.1.3.2
可以看出,Router B能夠把到達目的地址9.1.1.0/24的路由通過BGP發布出去。
# 查看Router C的BGP路由表。
[RouterC] display bgp routing-table ipv4
Total number of routes: 1
BGP local router ID is 3.3.3.3
Status codes: * - valid, > - best, d - dampened, h - history,
s - suppressed, S - stale, i - internal, e - external
a – additional-path
Origin: i - IGP, e - EGP, ? - incomplete
Network NextHop MED LocPrf PrefVal Path/Ogn
* >e 9.1.1.0/24 200.1.3.1 0 20 10i
可以看出,Router C從Router B那裏學到了目的地址為9.1.1.0/24的路由。
(3) 配置BGP團體屬性
# 配置路由策略。
[RouterA] route-policy comm_policy permit node 0
[RouterA-route-policy-comm_policy-0] apply community no-export
[RouterA-route-policy-comm_policy-0] quit
# 應用路由策略。
[RouterA] bgp 10
[RouterA-bgp-default] address-family ipv4 unicast
[RouterA-bgp-default-ipv4] peer 200.1.2.2 route-policy comm_policy export
[RouterA-bgp-default-ipv4] peer 200.1.2.2 advertise-community
# 查看Router B的路由表。
[RouterB] display bgp routing-table ipv4 9.1.1.0
BGP local router ID: 2.2.2.2
Local AS number: 20
Paths: 1 available, 1 best
BGP routing table information of 9.1.1.0/24:
From : 200.1.2.1 (1.1.1.1)
Rely nexthop : 200.1.2.1
Original nexthop: 200.1.2.1
OutLabel : NULL
RxPathID : 0x0
TxPathID : 0x0
Community : No-Export
AS-path : 10
Origin : igp
Attribute value : pref-val 0
State : valid, external, best
IP precedence : N/A
QoS local ID : N/A
Traffic index : N/A
VPN-Peer UserID : N/A
DSCP : N/A
EXP : N/A
# 查看Router B的路由發送信息。
[RouterB] display bgp routing-table ipv4 9.1.1.0 advertise-info
BGP local router ID: 2.2.2.2
Local AS number: 20
Paths: 1 best
BGP routing table information of 9.1.1.0/24(TxPathID:0):
Not advertised to any peers yet
# 查看Router C的BGP路由表。
[RouterC] display bgp routing-table ipv4
Total number of routes: 0
在Router B的BGP路由表中可以看到配置的團體屬性,Router B不會通過BGP將到達目的地址9.1.1.0/24的路由發布出去。
所有路由器運行BGP協議,Router A與Router B建立EBGP連接,Router C與Router B和Router D之間建立IBGP連接。
Router C作為路由反射器,Router B和Router D為Router C的客戶機。
Router D能夠通過Router C學到路由20.0.0.0/8。
圖3-2 配置BGP路由反射器的組網圖
缺省情況下,本設備的接口處於ADM(Administratively Down)狀態,請根據實際需要在對應接口視圖下使用undo shutdown命令開啟接口。
(1) 配置各接口的IP地址,並在AS 200內配置OSPF(略)
(2) 配置BGP連接
# 配置Router A。
<RouterA> system-view
[RouterA] bgp 100
[RouterA-bgp-default] router-id 1.1.1.1
[RouterA-bgp-default] peer 192.1.1.2 as-number 200
[RouterA-bgp-default] address-family ipv4 unicast
[RouterA-bgp-default-ipv4] peer 192.1.1.2 enable
# 通告20.0.0.0/8網段路由到BGP路由表中。
[RouterA-bgp-default-ipv4] network 20.0.0.0
[RouterA-bgp-default-ipv4] quit
[RouterA-bgp-default] quit
# 配置Router B。
<RouterB> system-view
[RouterB] bgp 200
[RouterB-bgp-default] router-id 2.2.2.2
[RouterB-bgp-default] peer 192.1.1.1 as-number 100
[RouterB-bgp-default] peer 193.1.1.1 as-number 200
[RouterB-bgp-default] address-family ipv4 unicast
[RouterB-bgp-default-ipv4] peer 192.1.1.1 enable
[RouterB-bgp-default-ipv4] peer 193.1.1.1 enable
[RouterB-bgp-default-ipv4] peer 193.1.1.1 next-hop-local
[RouterB-bgp-default-ipv4] quit
[RouterB-bgp-default] quit
# 配置Router C。
<RouterC> system-view
[RouterC] bgp 200
[RouterC-bgp-default] router-id 3.3.3.3
[RouterC-bgp-default] peer 193.1.1.2 as-number 200
[RouterC-bgp-default] peer 194.1.1.2 as-number 200
[RouterC-bgp-default] address-family ipv4 unicast
[RouterC-bgp-default-ipv4] peer 193.1.1.2 enable
[RouterC-bgp-default-ipv4] peer 194.1.1.2 enable
[RouterC-bgp-default-ipv4] quit
[RouterC-bgp-default] quit
# 配置Router D。
<RouterD> system-view
[RouterD] bgp 200
[RouterD-bgp-default] router-id 4.4.4.4
[RouterD-bgp-default] peer 194.1.1.1 as-number 200
[RouterD-bgp-default] address-family ipv4 unicast
[RouterD-bgp-default-ipv4] peer 194.1.1.1 enable
[RouterD-bgp-default-ipv4] quit
[RouterD-bgp-default] quit
(3) 配置路由反射器
# 配置Router C。
[RouterC] bgp 200
[RouterC-bgp-default] address-family ipv4 unicast
[RouterC-bgp-default-ipv4] peer 193.1.1.2 reflect-client
[RouterC-bgp-default-ipv4] peer 194.1.1.2 reflect-client
[RouterC-bgp-default-ipv4] quit
[RouterC-bgp-default] quit
# 查看Router B的BGP路由表。
[RouterB] display bgp routing-table ipv4
Total number of routes: 1
BGP local router ID is 2.2.2.2
Status codes: * - valid, > - best, d - dampened, h - history,
s - suppressed, S - stale, i - internal, e - external
a – additional-path
Origin: i - IGP, e - EGP, ? - incomplete
Network NextHop MED LocPrf PrefVal Path/Ogn
* >e 20.0.0.0/8 192.1.1.1 0 0 100i
# 查看Router D的BGP路由表。
[RouterD] display bgp routing-table ipv4
Total number of routes: 1
BGP local router ID is 4.4.4.4
Status codes: * - valid, > - best, d - dampened, h - history,
s - suppressed, S - stale, i - internal, e - external
a – additional-path
Origin: i - IGP, e - EGP, ? - incomplete
Network NextHop MED LocPrf PrefVal Path/Ogn
* >i 20.0.0.0/8 193.1.1.2 0 100 0 100i
可以看出,Router D從Router C已經學到了20.0.0.0/8路由。
AS 200中有多台BGP路由器,為了減少IBGP的連接數,現將他們劃分為3個子自治係統:AS 65001、AS 65002和AS 65003。其中AS 65001內的三台路由器建立IBGP全連接。
圖3-3 配置聯盟組網圖
設備 |
接口 |
IP地址 |
設備 |
接口 |
IP地址 |
Router A |
HGE1/0/1 |
10.1.2.1/24 |
Router D |
HGE1/0/1 |
10.1.5.1/24 |
|
HGE1/0/2 |
10.1.3.1/24 |
|
HGE1/0/2 |
10.1.3.2/24 |
|
HGE1/0/3 |
10.1.4.1/24 |
Router E |
HGE1/0/1 |
10.1.5.2/24 |
|
HGE1/0/4 |
200.1.1.1/24 |
|
HGE1/0/2 |
10.1.4.2/24 |
|
HGE1/0/5 |
10.1.1.1/24 |
Router F |
HGE1/0/1 |
9.1.1.1/24 |
Router B |
HGE1/0/1 |
10.1.1.2/24 |
|
HGE1/0/2 |
200.1.1.2/24 |
Router C |
HGE1/0/1 |
10.1.2.2/24 |
|
缺省情況下,本設備的接口處於ADM(Administratively Down)狀態,請根據實際需要在對應接口視圖下使用undo shutdown命令開啟接口。
(1) 配置各接口的IP地址(略)
(2) 配置BGP聯盟
# 配置Router A。
<RouterA> system-view
[RouterA] bgp 65001
[RouterA-bgp-default] router-id 1.1.1.1
[RouterA-bgp-default] confederation id 200
[RouterA-bgp-default] confederation peer-as 65002 65003
[RouterA-bgp-default] peer 10.1.1.2 as-number 65002
[RouterA-bgp-default] peer 10.1.2.2 as-number 65003
[RouterA-bgp-default] address-family ipv4 unicast
[RouterA-bgp-default-ipv4] peer 10.1.1.2 enable
[RouterA-bgp-default-ipv4] peer 10.1.2.2 enable
[RouterA-bgp-default-ipv4] peer 10.1.1.2 next-hop-local
[RouterA-bgp-default-ipv4] peer 10.1.2.2 next-hop-local
[RouterA-bgp-default-ipv4] quit
[RouterA-bgp-default] quit
# 配置Router B。
<RouterB> system-view
[RouterB] bgp 65002
[RouterB-bgp-default] router-id 2.2.2.2
[RouterB-bgp-default] confederation id 200
[RouterB-bgp-default] confederation peer-as 65001 65003
[RouterB-bgp-default] peer 10.1.1.1 as-number 65001
[RouterB-bgp-default] address-family ipv4 unicast
[RouterB-bgp-default-ipv4] peer 10.1.1.1 enable
[RouterB-bgp-default-ipv4] quit
[RouterB-bgp-default] quit
# 配置Router C。
<RouterC> system-view
[RouterC] bgp 65003
[RouterC-bgp-default] router-id 3.3.3.3
[RouterC-bgp-default] confederation id 200
[RouterC-bgp-default] confederation peer-as 65001 65002
[RouterC-bgp-default] peer 10.1.2.1 as-number 65001
[RouterC-bgp-default] address-family ipv4 unicast
[RouterC-bgp-default-ipv4] peer 10.1.2.1 enable
[RouterC-bgp-default-ipv4] quit
[RouterC-bgp-default] quit
(3) 配置AS 65001內的IBGP連接
# 配置Router A。
[RouterA] bgp 65001
[RouterA-bgp-default] peer 10.1.3.2 as-number 65001
[RouterA-bgp-default] peer 10.1.4.2 as-number 65001
[RouterA-bgp-default] address-family ipv4 unicast
[RouterA-bgp-default-ipv4] peer 10.1.3.2 enable
[RouterA-bgp-default-ipv4] peer 10.1.4.2 enable
[RouterA-bgp-default-ipv4] peer 10.1.3.2 next-hop-local
[RouterA-bgp-default-ipv4] peer 10.1.4.2 next-hop-local
[RouterA-bgp-default-ipv4] quit
[RouterA-bgp-default] quit
# 配置Router D。
<RouterD> system-view
[RouterD] bgp 65001
[RouterD-bgp-default] router-id 4.4.4.4
[RouterD-bgp-default] confederation id 200
[RouterD-bgp-default] peer 10.1.3.1 as-number 65001
[RouterD-bgp-default] peer 10.1.5.2 as-number 65001
[RouterD-bgp-default] address-family ipv4 unicast
[RouterD-bgp-default-ipv4] peer 10.1.3.1 enable
[RouterD-bgp-default-ipv4] peer 10.1.5.2 enable
[RouterD-bgp-default-ipv4] quit
[RouterD-bgp-default] quit
# 配置Router E。
<RouterE> system-view
[RouterE] bgp 65001
[RouterE-bgp-default] router-id 5.5.5.5
[RouterE-bgp-default] confederation id 200
[RouterE-bgp-default] peer 10.1.4.1 as-number 65001
[RouterE-bgp-default] peer 10.1.5.1 as-number 65001
[RouterE-bgp-default] address-family ipv4 unicast
[RouterE-bgp-default-ipv4] peer 10.1.4.1 enable
[RouterE-bgp-default-ipv4] peer 10.1.5.1 enable
[RouterE-bgp-default-ipv4] quit
[RouterE-bgp-default] quit
(4) 配置AS 100和AS 200之間的EBGP連接
# 配置Router A。
[RouterA] bgp 65001
[RouterA-bgp-default] peer 200.1.1.2 as-number 100
[RouterA-bgp-default] address-family ipv4 unicast
[RouterA-bgp-default-ipv4] peer 200.1.1.2 enable
[RouterA-bgp-default-ipv4] quit
[RouterA-bgp-default] quit
# 配置Router F。
<RouterF> system-view
[RouterF] bgp 100
[RouterF-bgp-default] router-id 6.6.6.6
[RouterF-bgp-default] peer 200.1.1.1 as-number 200
[RouterF-bgp-default] address-family ipv4 unicast
[RouterF-bgp-default-ipv4] peer 200.1.1.1 enable
[RouterF-bgp-default-ipv4] network 9.1.1.0 255.255.255.0
[RouterF-bgp-default-ipv4] quit
[RouterF-bgp-default] quit
# 查看Router B的BGP路由表。Router C的BGP路由表與此類似。
[RouterB] display bgp routing-table ipv4
Total number of routes: 1
BGP local router ID is 2.2.2.2
Status codes: * - valid, > - best, d - dampened, h - history,
s - suppressed, S - stale, i - internal, e - external
a – additional-path
Origin: i - IGP, e - EGP, ? - incomplete
Network NextHop MED LocPrf PrefVal Path/Ogn
* >i 9.1.1.0/24 10.1.1.1 0 100 0 (65001)
100i
[RouterB] display bgp routing-table ipv4 9.1.1.0
BGP local router ID: 2.2.2.2
Local AS number: 65002
Paths: 1 available, 1 best
BGP routing table information of 9.1.1.0/24:
From : 10.1.1.1 (1.1.1.1)
Rely nexthop : 10.1.1.1
Original nexthop: 10.1.1.1
OutLabel : NULL
RxPathID : 0x0
TxPathID : 0x0
AS-path : (65001) 100
Origin : igp
Attribute value : MED 0, localpref 100, pref-val 0, pre 255
State : valid, external-confed, best
IP precedence : N/A
QoS local ID : N/A
Traffic index : N/A
VPN-Peer UserID : N/A
DSCP : N/A
EXP : N/A
# 查看Router D的BGP路由表。
[RouterD] display bgp routing-table ipv4
Total number of routes: 1
BGP local router ID is 4.4.4.4
Status codes: * - valid, > - best, d - dampened, h - history,
s - suppressed, S - stale, i - internal, e - external
a – additional-path
Origin: i - IGP, e - EGP, ? - incomplete
Network NextHop MED LocPrf PrefVal Path/Ogn
* >i 9.1.1.0/24 10.1.3.1 0 100 0 100i
[RouterD] display bgp routing-table ipv4 9.1.1.0
BGP local router ID: 4.4.4.4
Local AS number: 65001
Paths: 1 available, 1 best
BGP routing table information of 9.1.1.0/24:
From : 10.1.3.1 (1.1.1.1)
Rely nexthop : 10.1.3.1
Original nexthop: 10.1.3.1
OutLabel : NULL
RxPathID : 0x0
TxPathID : 0x0
AS-path : 100
Origin : igp
Attribute value : MED 0, localpref 100, pref-val 0, pre 255
State : valid, internal-confed, best
IP precedence : N/A
QoS local ID : N/A
Traffic index : N/A
VPN-Peer UserID : N/A
DSCP : N/A
EXP : N/A
通過以上顯示信息可以看出:
· Router F隻需要和Router A建立EBGP連接,而不需要和Router B、Router C建立連接,同樣可以通過聯盟將路由信息傳遞給Router B和Router C。
· Router B和Router D在同一個聯盟裏,但是屬於不同的子自治係統,它們都是通過Router A來獲取外部路由信息,生成的BGP路由表項也是一致的,等效於在同一個自治係統內,但是又不需要物理上全連接。
BGP具有很多路由屬性,通過配置這些屬性可以控製BGP路徑的選擇。
控製BGP路徑選擇的配置任務如下:
(1) 配置BGP的路由優先級
(2) 配置NEXT_HOP屬性
¡ 配置向IPv6 BGP對等體發布路由時下一跳信息隻攜帶全球單播地址
(3) 為接收路由分配首選值
(4) 配置本地優先級的缺省值
(5) 配置AS_PATH屬性
¡ 配置發送BGP更新消息時AS_PATH屬性中不攜帶私有AS號
(6) 配置MED屬性
¡ 配置MED缺省值
¡ 配置允許比較來自同一聯盟不同子自治係統鄰居路由的MED屬性值
(7) 配置AIGP屬性
(8) 配置BGP在選擇最優路由時忽略IGP Metric的比較
(10) 配置下一跳隧道影響路由優選
路由器上可能同時運行多個動態路由協議,存在各個路由協議之間路由信息共享和選擇的問題。係統為每一種路由協議設置一個優先級,在不同協議發現同一條路由時,優先級高的路由將被優先選擇。
用戶可以通過preference命令修改EBGP路由、IBGP路由以及本地產生的BGP路由的優先級,或應用路由策略為通過匹配規則過濾的特定路由配置優先級,沒有通過過濾的路由使用缺省優先級。
缺省情況下,EBGP路由的優先級低於本地產生的BGP路由的優先級。設備上存在到達某一目的網絡的EBGP路由和本地產生的BGP路由時,不會選擇EBGP路由。通過執行network short-cut命令將一條EBGP路由配置成short-cut,可以使得指定EBGP路由的優先級與本地產生的BGP路由的優先級相同,從而提高該EBGP路由成為最佳路由的可能性。
(1) 進入係統視圖。
system-view
(2) 進入BGP IPv4單播地址族視圖或BGP-VPN IPv4單播地址族視圖。
¡ 請依次執行以下命令進入BGP IPv4單播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv4 [ unicast ]
¡ 請依次執行以下命令進入BGP-VPN IPv4單播地址族視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv4 [ unicast ]
(3) 配置BGP路由的優先級。
preference { external-preference internal-preference local-preference | route-policy route-policy-name }
缺省情況下,EBGP路由的優先級為255,IBGP路由的優先級為255,本地產生的BGP路由的優先級為130。
(4) (可選)提高接收到的指定EBGP路由的路由優先級。
network ipv4-address [ mask-length | mask ] short-cut
缺省情況下,接收到的EBGP路由的路由優先級為255。
(1) 進入係統視圖。
system-view
(2) 進入BGP IPv6單播地址族視圖或BGP-VPN IPv6單播地址族視圖。
¡ 請依次執行以下命令進入BGP IPv6單播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv6 [ unicast ]
¡ 請依次執行以下命令進入BGP-VPN IPv6單播地址族視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv6 [ unicast ]
(3) 配置BGP路由的優先級。
preference { external-preference internal-preference local-preference | route-policy route-policy-name }
缺省情況下,EBGP路由的優先級為255,IBGP路由的優先級為255,本地產生的BGP路由的優先級為130。
(4) (可選)提高接收到的指定EBGP路由的路由優先級。
network ipv6-address prefix-length short-cut
(5) 缺省情況下,接收到的EBGP路由的路由優先級為255。
缺省情況下,路由器向IBGP對等體/對等體組發布路由時,不將自身地址作為下一跳,但有的時候為了保證IBGP鄰居能夠找到下一跳,可以配置將自身地址作為下一跳。以下圖為例,Router A與Router B建立EBGP鄰居關係,Router B與Router C建立IBGP鄰居關係,Router B在向Router C發布從Router A學到的BGP路由時,如果Router C上沒有到達1.1.1.1/24的路由,可以在Router B上配置peer next-hop-local命令將3.1.1.1/24作為下一跳,這樣,Router C就能找到下一跳。
圖4-1 配置BGP NEXT_HOP屬性應用組網圖一
在一些比較特殊的組網環境中(即兩個BGP連接在同一網段的廣播網),路由器向EBGP對等體/對等體組發布路由時不會將自身地址作為下一跳,以下圖為例:Router A與Router B建立EBGP鄰居關係,Router B與Router C建立IBGP鄰居關係,兩個BGP連接都位於同一個廣播網1.1.1.0/24中,Router B向Router A發布EBGP路由時不會將自身地址1.1.1.2/24作為下一跳,但如果用戶有需要,也可以通過配置peer next-hop-local命令實現將自身地址1.1.1.2/24作為下一跳。
圖4-2 配置BGP NEXT_HOP屬性應用組網圖二
如果配置了BGP負載分擔,則不論是否配置了peer next-hop-local命令,本地路由器向IBGP對等體/對等體組發布路由時都先將下一跳地址改變為自身地址。
(1) 進入係統視圖。
system-view
(2) 進入BGP IPv4單播地址族視圖或BGP-VPN IPv4單播地址族視圖。
¡ 請依次執行以下命令進入BGP IPv4單播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv4 [ unicast ]
¡ 請依次執行以下命令進入BGP-VPN IPv4單播地址族視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv4 [ unicast ]
(3) 配置向對等體/對等體組發布路由時,將下一跳屬性修改為自身的地址。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } next-hop-local
缺省情況下,向EBGP對等體/對等體組發布路由時,將下一跳屬性修改為自身的地址;向IBGP對等體/對等體組發布路由時,不修改下一跳屬性。
(1) 進入係統視圖。
system-view
(2) 進入BGP IPv6單播地址族視圖或BGP-VPN IPv6單播地址族視圖。
¡ 請依次執行以下命令進入BGP IPv6單播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv6 [ unicast ]
¡ 請依次執行以下命令進入BGP-VPN IPv6單播地址族視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv6 [ unicast ]
(3) 配置向對等體/對等體組發布路由時,將下一跳屬性修改為自身的地址。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } next-hop-local
缺省情況下,向EBGP對等體/對等體組發布路由時,將下一跳屬性修改為自身的地址;向IBGP對等體/對等體組發布路由時,不修改下一跳屬性。
本地設備向IPv6 BGP對等體發布路由時,其攜帶的下一跳屬性可能同時包含全球單播地址和鏈路本地地址,若對等體無法解析該路由更新報文,將導致對等體路由學習失敗。為了避免上述情況的發生,需要在本地設備配置向IPv6 BGP對等體發布路由時下一跳信息隻攜帶全球單播地址功能。配置本功能後,本端向對端發布的路由信息中將僅攜帶全球單播地址。
配置本功能後,存在一種例外情況:本端設備與對端設備使用直連接口建立EBGP鄰居關係,且本端設備發布的路由信息的下一跳與建立EBGP鄰居關係使用的直連接口地址在同一網段、直連接口為廣播類型的接口時,本端向對端發布的路由信息中仍會同時攜帶全球單播地址和鏈路本地地址。
(1) 進入係統視圖。
system-view
(2) 進入BGP IPv4單播地址族視圖或BGP-VPN IPv4單播地址族視圖。
¡ 請依次執行以下命令進入BGP IPv4單播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv4 [ unicast ]
¡ 請依次執行以下命令進入BGP-VPN IPv4單播地址族視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv4 [ unicast ]
(3) 配置向IPv6 BGP對等體發布路由時下一跳信息隻攜帶全球單播地址。
nexthop global-address-only
缺省情況下,本地設備向IPv6 BGP對等體發布路由時,如果本地設備存在鏈路本地地址,則向IPv6 BGP對等體發布的路由的下一跳信息將同時攜帶全球單播地址和鏈路本地地址。
(1) 進入係統視圖。
system-view
(2) 進入BGP IPv6單播地址族視圖或BGP-VPN IPv6單播地址族視圖。
¡ 請依次執行以下命令進入BGP IPv6單播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv6 [ unicast ]
¡ 請依次執行以下命令進入BGP-VPN IPv6單播地址族視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv6 [ unicast ]
(3) 配置向IPv6 BGP對等體發布路由時下一跳信息隻攜帶全球單播地址。
nexthop global-address-only
缺省情況下,本地設備向IPv6 BGP對等體發布路由時,如果本地設備存在鏈路本地地址,則向IPv6 BGP對等體發布的路由的下一跳信息將同時攜帶全球單播地址和鏈路本地地址。
BGP選擇路由時首先丟棄下一跳不可達的路由,其次優選Preferred-value值最大的路由。通過本配置,可以修改路由的Preferred-value,以便控製BGP路徑的選擇。
缺省情況下,從對等體/對等體組學到的路由的首選值為0,網絡管理員可以為從某個對等體/對等體組接收的路由配置首選值,從而提高從指定對等體/對等體組學到的路由的優先級。
(1) 進入係統視圖。
system-view
(2) 進入BGP IPv4單播地址族視圖或BGP-VPN IPv4單播地址族視圖。
¡ 請依次執行以下命令進入BGP IPv4單播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv4 [ unicast ]
¡ 請依次執行以下命令進入BGP-VPN IPv4單播地址族視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv4 [ unicast ]
(3) 為從對等體/對等體組接收的路由分配首選值。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } preferred-value value
缺省情況下,從對等體/對等體組接收的路由的首選值為0。
(1) 進入係統視圖。
system-view
(2) 進入BGP IPv6單播地址族視圖或BGP-VPN IPv6單播地址族視圖。
¡ 請依次執行以下命令進入BGP IPv6單播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv6 [ unicast ]
¡ 請依次執行以下命令進入BGP-VPN IPv6單播地址族視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv6 [ unicast ]
(3) 為從IPv6 BGP對等體/對等體組接收的路由分配首選值。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } preferred-value value
缺省情況下,從IPv6 BGP對等體/對等體組接收的路由的首選值為0。
本地優先級用來判斷流量離開AS時的最佳路由。當BGP路由器通過不同的IBGP對等體得到目的地址相同但下一跳不同的多條路由時,將優先選擇本地優先級較高的路由。
用戶可以通過本配置改變BGP路由器向IBGP對等體發送的路由本地優先級的缺省值。
(1) 進入係統視圖。
system-view
(2) 進入BGP IPv4單播地址族視圖或BGP-VPN IPv4單播地址族視圖。
¡ 請依次執行以下命令進入BGP IPv4單播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv4 [ unicast ]
¡ 請依次執行以下命令進入BGP-VPN IPv4單播地址族視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv4 [ unicast ]
(3) 配置本地優先級的缺省值。
default local-preference value
缺省情況下,本地優先級的缺省值為100。
(1) 進入係統視圖。
system-view
(2) 進入BGP IPv6單播地址族視圖或BGP-VPN IPv6單播地址族視圖。
¡ 請依次執行以下命令進入BGP IPv6單播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv6 [ unicast ]
¡ 請依次執行以下命令進入BGP-VPN IPv6單播地址族視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv6 [ unicast ]
(3) 配置本地優先級的缺省值。
default local-preference value
缺省情況下,本地優先級的缺省值為100。
通常情況下,BGP會檢查對等體發來的路由的AS_PATH屬性,如果其中已存在本地AS號,則BGP會忽略此路由,以免形成路由環路。
但是,在某些特殊的組網環境下(如MPLS L3VPN的Hub&Spoke組網),需要允許本地AS號在接收路由的AS_PATH屬性中出現,否則無法正確發布路由。通過本配置,可以允許本地AS號在所接收的路由的AS_PATH屬性中出現,並可同時配置允許出現的次數。
(1) 進入係統視圖。
system-view
(2) 進入BGP IPv4單播地址族視圖或BGP-VPN IPv4單播地址族視圖。
¡ 請依次執行以下命令進入BGP IPv4單播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv4 [ unicast ]
¡ 請依次執行以下命令進入BGP-VPN IPv4單播地址族視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv4 [ unicast ]
(3) 配置允許本地AS號在對等體/對等體組接收路由的AS_PATH屬性中出現,並配置允許出現的次數。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } allow-as-loop [ number ]
缺省情況下,不允許本地AS號在接收路由的AS_PATH屬性中出現。
(1) 進入係統視圖。
system-view
(2) 進入BGP IPv6單播地址族視圖或BGP-VPN IPv6單播地址族視圖。
¡ 請依次執行以下命令進入BGP IPv6單播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv6 [ unicast ]
¡ 請依次執行以下命令進入BGP-VPN IPv6單播地址族視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv6 [ unicast ]
(3) 配置允許本地AS號在對等體/對等體組接收路由的AS_PATH屬性中出現,並配置允許出現的次數。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } allow-as-loop [ number ]
缺省情況下,不允許本地AS號在接收路由的AS_PATH屬性中出現。
路由器在選擇最優路由時會優選AS路徑最短的路由,通過如下配置BGP在選擇最優路由時會忽略AS_PATH屬性。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖或BGP-VPN實例視圖。
¡ 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
¡ 請依次執行以下命令進入BGP-VPN實例視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 配置BGP在選擇最優路由時忽略AS_PATH屬性。
bestroute as-path-neglect
缺省情況下,BGP將AS_PATH屬性作為選擇最優路由的一個條件。
進行係統移植時,例如,Router A原來位於AS 2,現在將它移植到AS 3裏,網絡管理員需要在Router A的所有EBGP對等體上修改Router A所在的AS號。通過在Router A上為EBGP對等體/對等體組配置一個虛擬的本地自治係統號2,可以將本地真實的AS號3隱藏起來。在EBGP對等體看來Router A始終位於AS 2,不需要改變EBGP對等體上的配置。
本功能隻適用於EBGP對等體和對等體組。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖或BGP-VPN實例視圖。
¡ 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
¡ 請依次執行以下命令進入BGP-VPN實例視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 為對等體/對等體組指定一個虛擬的本地自治係統號。
peer { group-name | ipv4-address [ mask-length ] } fake-as as-number
缺省情況下,對等體/對等體組未配置虛擬的本地自治係統號。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖或BGP-VPN實例視圖。
¡ 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
¡ 請依次執行以下命令進入BGP-VPN實例視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 為對等體/對等體組指定一個虛擬的本地自治係統號。
peer { group-name | ipv6-address [ prefix-length ] } fake-as as-number
缺省情況下,對等體/對等體組未配置虛擬的本地自治係統號。
在MPLS L3VPN中,如果PE和CE之間運行EBGP,由於BGP使用AS號檢測路由環路,為保證路由信息的正確發送,需要為物理位置不同的站點分配不同的AS號。
如果物理位置不同的CE複用相同的AS號,則需要在PE上配置BGP的AS號替換功能。當PE向指定對等體(CE)發布路由時,如果路由的AS_PATH中存在CE所在的AS號,則PE將該AS號替換成PE的AS號後,再發布該路由,以保證私網路由能夠正確發布。
圖4-3 BGP AS號替換應用示意圖(以IPv4為例)
如圖4-3所示,CE 1和CE 2都使用AS號800,在PE 2上使能針對CE 2的AS號替換功能。當CE 1發來的Update信息從PE 2發布給CE 2時,PE 2發現AS_PATH中存在與CE 2相同的AS號800,就把它替換為自己的AS號100。如果需要完全的連接性,PE 1上也需要做類似的配置。
本配置僅用於特定的組網環境。通常情況下,建議不要使用本配置,否則可能會引起路由環路。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖或BGP-VPN實例視圖。
¡ 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
¡ 請依次執行以下命令進入BGP-VPN實例視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 配置用本地AS號替換AS_PATH屬性中指定對等體/對等體組的AS號。
peer { group-name | ipv4-address [ mask-length ] } substitute-as
缺省情況下,不會用本地AS號替換AS_PATH屬性中指定對等體/對等體組的AS號。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖或BGP-VPN實例視圖。
¡ 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
¡ 請依次執行以下命令進入BGP-VPN實例視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 配置用本地AS號替換AS_PATH屬性中指定對等體/對等體組的AS號。
peer { group-name | ipv6-address [ prefix-length ] } substitute-as
缺省情況下,不會用本地AS號替換AS_PATH屬性中指定對等體/對等體組的AS號。
私有AS號是內部使用的AS號,範圍為64512~65535。私有AS號主要用於測試網絡,一般情況下不需要在公共網絡中傳播。
通過本配置,可以指定如果向EBGP對等體/對等體組發送的BGP更新消息中AS_PATH屬性隻包括私有AS號,則刪除私有AS號後,將BGP更新消息發送給對等體/對等體組。
本命令隻適用於EBGP對等體和對等體組。
(1) 進入係統視圖。
system-view
(2) 進入BGP IPv4單播地址族視圖或BGP-VPN IPv4單播地址族視圖。
¡ 請依次執行以下命令進入BGP IPv4單播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv4 [ unicast ]
¡ 請依次執行以下命令進入BGP-VPN IPv4單播地址族視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv4 [ unicast ]
(3) 配置向指定EBGP對等體/對等體組發送BGP更新消息時隻攜帶公有AS號,不攜帶私有AS號。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } public-as-only
缺省情況下,向EBGP對等體/對等體組發送BGP更新消息時,既可以攜帶公有AS號,又可以攜帶私有AS號。
(1) 進入係統視圖。
system-view
(2) 進入BGP IPv6單播地址族視圖或BGP-VPN IPv6單播地址族視圖。
¡ 請依次執行以下命令進入BGP IPv6單播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv6 [ unicast ]
¡ 請依次執行以下命令進入BGP-VPN IPv6單播地址族視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv6 [ unicast ]
(3) 配置向指定EBGP對等體/對等體組發送BGP更新消息時隻攜帶公有AS號,不攜帶私有AS號。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } public-as-only
缺省情況下,向EBGP對等體/對等體組發送BGP更新消息時,既可以攜帶公有AS號,又可以攜帶私有AS號。
本命令隻適用於EBGP對等體和對等體組。
缺省情況下,從EBGP鄰居學到路由後,會檢測路由的第一個AS號。如果此AS號不是EBGP對等體的AS號,且不是私有AS號,則斷開與該對等體的BGP會話。
通過本配置,可以忽略對EBGP路由第一個AS號的檢測。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
(3) 配置不檢測EBGP路由的第一個AS號。
ignore-first-as
缺省情況下,從EBGP鄰居學到路由後,會檢測路由的第一個AS號。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖或BGP-VPN實例視圖。
¡ 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
¡ 請依次執行以下命令進入BGP-VPN實例視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 配置不檢測從指定對等體/對等體組收到的EBGP路由的第一個AS號。
peer { group-name | ipv4-address [ mask-length ] } ignore-first-as
缺省情況下,從EBGP鄰居學到路由後,會檢測路由的第一個AS號。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖或BGP-VPN實例視圖。
¡ 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
¡ 請依次執行以下命令進入BGP-VPN實例視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 配置不檢測從指定對等體/對等體組收到的EBGP路由的第一個AS號。
peer { group-name | ipv6-address [ prefix-length ] } ignore-first-as
缺省情況下,從EBGP鄰居學到路由後,會檢測路由的第一個AS號。
本功能用來配置BGP根據AS_Path屬性中的AS號數量對BGP路由進行過濾,配置本功能後:
· 如果接收到的BGP路由中AS號數量超過配置的上限值,則該路由不會添加到BGP路由表中。
· 如果已發布的BGP路由中AS號數量超過配置的上限值,則發送Update消息撤銷該路由。
配置本功能前已經接收到的路由不受本功能影響;本地聚合路由不受本功能影響。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
(3) 配置根據AS號數量對BGP路由進行過濾。
as-path-limit [ as-numbers ]
缺省情況下,BGP不根據BGP路由AS_Path屬性中的AS號數量對BGP路由進行過濾。
MED用來判斷流量進入AS時的最佳路由。當一個BGP路由器通過不同的EBGP對等體得到目的地址相同但下一跳不同的多條路由時,在其它條件相同的情況下,將優先選擇MED屬性值較小者作為最佳路由。
(1) 進入係統視圖。
system-view
(2) 進入BGP IPv4單播地址族視圖或BGP-VPN IPv4單播地址族視圖。
¡ 請依次執行以下命令進入BGP IPv4單播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv4 [ unicast ]
¡ 請依次執行以下命令進入BGP-VPN IPv4單播地址族視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv4 [ unicast ]
(3) 配置MED的缺省值。
default med med-value
缺省情況下,MED的缺省值為0。
(1) 進入係統視圖。
system-view
(2) 進入BGP IPv6單播地址族視圖或BGP-VPN IPv6單播地址族視圖。
¡ 請依次執行以下命令進入BGP IPv6單播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv6 [ unicast ]
¡ 請依次執行以下命令進入BGP-VPN IPv6單播地址族視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv6 [ unicast ]
(3) 配置MED的缺省值。
default med med-value
缺省情況下,MED的缺省值為0。
缺省情況下,BGP隻比較來自同一個AS的路由的MED屬性值。通過配置本功能,可以強製BGP比較來自不同AS的路由的MED屬性值。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖或BGP-VPN實例視圖。
¡ 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
¡ 請依次執行以下命令進入BGP-VPN實例視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 配置允許比較來自不同AS路由的MED屬性值。
compare-different-as-med
缺省情況下,不允許比較來自不同AS路由的MED屬性值,隻比較來自同一個AS的路由的MED屬性值。
缺省情況下,BGP選擇最優路由時是將新的路由和當前BGP路由表中的最優路由進行比較,隻要新的路由比當前BGP路由表中的最優路由更優,新的路由將成為最優路由,路由學習的順序有可能會影響最優路由的選擇結果。
圖4-4 MED排序優選示意圖(以IPv4為例)
如圖4-4所示,Device D和Device A、Device B、Device C之間建立非直連EBGP鄰居,通過OSPF學習到鄰居地址1.1.1.1/32、2.2.2.2/32、3.3.3.3/32(設置不同的開銷值)。在Device D上查看IP路由表信息:
Destination/Mask Proto Pre Cost NextHop Interface
1.1.1.1/32 O_INTRA 10 10 11.1.1.2 Interface D1
2.2.2.2/32 O_INTRA 10 20 12.1.1.2 Interface D2
3.3.3.3/32 O_INTRA 10 30 13.1.1.2 Interface D3
當Device D分別從Device A和Device B學習到到達網段10.0.0.0的路由時,由於來自Device B的路由的下一跳Metric值(即下一跳在IP路由表中的Cost值)較小,因此,從Device B學來的路由被選為最優路由。在Device D上查看BGP路由表信息:
Network NextHop MED LocPrf PrefVal Path/Ogn
*>e 10.0.0.0 2.2.2.2 50 0 300 400e
* e 3.3.3.3 50 0 200 400e
當Device D再從Device C學習到到達10.0.0.0網段的路由時,它隻和當前路由表的最優路由進行比較。由於Device C和Device B位於不同的AS,選擇路由時不會比較MED值,而來自Device C的路由的下一跳Metric值更小,相對更優,它將成為最優路由。在Device D上查看BGP路由表信息:
Network NextHop MED LocPrf PrefVal Path/Ogn
*>e 10.0.0.0 1.1.1.1 60 0 200 400e
* e 10.0.0.0 2.2.2.2 50 0 300 400e
* e 3.3.3.3 50 0 200 400e
但是如果將這條路由與從Device A學習到的路由進行比較,那麼由於兩條路由來自同一個AS,且從Device C學習到的路由MED值更大,則從Device C學習到的路由應該視為無效路由。
在Device D上配置bestroute compare-med命令後,Device D學習到新的路由時,會首先按照路由來自的AS分組,對來自同一AS的路由根據MED值的大小進行優選,選出MED值最小的路由,然後再對優選出來的、來自不同AS的路由進行優選,從而避免路由優選結果的不確定性。配置對來自同一AS的路由進行MED排序優選後,從Device B學習到的到達10.0.0.0 網段的路由將成為最優路由。在Device D上查看BGP路由表信息:
Network NextHop MED LocPrf PrefVal Path/Ogn
*>e 10.0.0.0 2.2.2.2 50 0 300 400e
* e 3.3.3.3 50 0 200 400e
* e 1.1.1.1 60 0 200 400e
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖或BGP-VPN實例視圖。
¡ 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
¡ 請依次執行以下命令進入BGP-VPN實例視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 配置對來自同一AS的路由進行MED排序優選。
bestroute compare-med
缺省情況下,不會對來自同一AS的路由進行MED排序優選。
隻有AS_PATH裏不包含聯盟體外的自治係統編號時,才會比較來自同一聯盟不同子自治係統鄰居路由的MED屬性值。例如,聯盟中包含的子自治係統為65006、65007和65009。如果存在三條路由,它們的AS-PATH值分別為65006 65009、65007 65009和65008 65009,MED值分別為2、3、1,由於第三條路由包含了聯盟體外的自治係統編號,因此在選擇最優路由時第一條路由將成為最優路由。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖或BGP-VPN實例視圖。
¡ 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
¡ 請依次執行以下命令進入BGP-VPN實例視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 配置允許比較來自同一聯盟不同子自治係統鄰居路由的MED屬性值。
bestroute med-confederation
缺省情況下,不比較來自同一聯盟不同子自治係統鄰居路由的MED屬性值。
通常情況下,同一個管理部門管理的、運行同一種IGP協議的AS的集合稱為AIGP(Accumulated Interior Gateway Protocol Metric,累加內部網關協議度量屬性)管理域。通過在AIGP管理域內配置BGP路由的AIGP屬性,可以使得BGP在發布路由時攜帶AIGP屬性,轉發路徑上的IGP Metric值將在BGP路由的AIGP屬性中累加並傳遞。在同一個AIGP管理域中,BGP可以優選Metric值最小的路徑進行轉發,保證了在同一個AIGP管理域內路由的選擇結果更加符合實際的網絡狀況。
如果BGP路由器上配置了peer aigp命令,則該設備可以從指定的對等體/對等體組接收或向該對等體/對等體組發布攜帶AIGP屬性的BGP路由。如果未配置peer aigp命令,則當設備從指定的對等體/對等體組接收到攜帶AIGP屬性的路由時,會忽略該屬性;向該對等體/對等體組發布路由時也不會攜帶AIGP屬性。
當傳遞攜帶AIGP屬性的BGP路由時,如果接收設備將路由的下一跳修改為自身的地址,則該設備需要將BGP路由的AIGP屬性與到達該路由的原始下一跳的IGP Metric值相加後作為新的屬性發布;如果接收設備不修改路由的下一跳,則發布的AIGP屬性值不會改變。
根據AIGP屬性進行路由優選時遵循如下規則:
· 攜帶AIGP屬性的路由優先級高於沒有該屬性的路由。
· 如果參與優選的路由都攜帶AIGP屬性,則將BGP路由中的AIGP值與轉發路徑上到達下一跳的IGP Metric求和,選擇該計算值最小的路徑進行轉發。
當BGP為路由添加AIGP屬性後,如果AIGP屬性發生變化,則BGP會向鄰居發送Update報文更新路由信息。
建議不要在AIGP管理域的邊界設備上配置peer aigp命令向AIGP管理域外的路由器發布AIGP屬性。
BGP路由器向對等體發布路由時,如果該路由未攜帶AIGP屬性,當僅配置peer aigp命令時,發送路由不會攜帶AIGP屬性;當配置了peer aigp命令,且通過配置apply aigp命令為路由添加AIGP屬性後,發布路由會攜帶AIGP屬性。關於apply aigp命令的詳細介紹,請參見“三層技術-IP路由配置指導”中的“路由策略”。
(1) 進入係統視圖。
system-view
(2) 進入BGP IPv4單播地址族視圖或BGP-VPN IPv4單播地址族視圖。
¡ 請依次執行以下命令進入BGP IPv4單播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv4 [ unicast ]
¡ 請依次執行以下命令進入BGP-VPN IPv4單播地址族視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv4 [ unicast ]
(3) 配置為對等體/對等體組配置AIGP屬性。
peer { group-name | ipv4-address [ mask-length ] } aigp
缺省情況下,沒有為BGP對等體/對等體組配置AIGP屬性。
(4) (可選)配置將AIGP屬性值拷貝到MED屬性中發送給對等體/對等體組。
peer { group-name | ipv4-address [ mask-length ] } aigp send med
缺省情況下,AIGP屬性值不會拷貝到MED屬性中發送給對等體/對等體組。
當鄰居設備不支持AIGP功能時,可以在本端使用該命令,將路由信息中AIGP屬性的累加Metric值放到MED屬性中發送給鄰居。
(1) 進入係統視圖。
system-view
(2) 進入BGP IPv6單播地址族視圖或BGP-VPN IPv6單播地址族視圖。
¡ 請依次執行以下命令進入BGP IPv6單播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv6 [ unicast ]
¡ 請依次執行以下命令進入BGP-VPN IPv6單播地址族視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv6 [ unicast ]
(3) 配置為對等體/對等體組配置AIGP屬性。
peer { group-name | ipv6-address [ prefix-length ] } aigp
缺省情況下,沒有為BGP對等體/對等體組配置AIGP屬性。
(4) (可選)配置將AIGP屬性值拷貝到MED屬性中發送給對等體/對等體組。
peer { group-name | ipv6-address [ prefix-length ] } aigp send med
缺省情況下,AIGP屬性值不會拷貝到MED屬性中發送給對等體/對等體組。
當鄰居設備不支持AIGP功能時,可以在本端使用該命令,將路由信息中AIGP屬性的累加Metric值放到MED屬性中發送給鄰居。
從多個鄰居收到多條相同前綴但不同路徑的路由時,BGP需要選擇到達該前綴的最佳路由來指導報文轉發。缺省情況下,BGP會比較這些路由下一跳的IGP路由的Metric值,並優選IGP Metric值最小的路由。
配置了本功能後,BGP在選擇最優路由時忽略IGP Metric的比較。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖或BGP-VPN實例視圖。
¡ 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
¡ 請依次執行以下命令進入BGP-VPN實例視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 配置BGP在選擇最優路由時忽略IGP Metric的比較。
bestroute igp-metric-ignore
缺省情況下,BGP將IGP Metric作為選擇最優路由的一個條件。
BGP路由器在選擇最優路由時會優選Router ID最小的路由器發布的路由。執行本配置後,BGP在選擇最優路由時會忽略Router ID的比較。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖或BGP-VPN實例視圖。
¡ 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
¡ 請依次執行以下命令進入BGP-VPN實例視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 配置BGP在選擇最優路由時忽略Router ID。
bestroute router-id-ignore
缺省情況下,BGP在選擇最優路由時會優選Router ID最小的路由器發布的路由。
BGP路由的下一跳可以是如下類型的隧道:
· 標簽轉發路徑LSP或MPLS TE隧道
· 通過GRE、VXLAN等方式建立的Tunnel接口
· SR-MPLS TE Policy或SRv6 TE Policy
BGP路由的下一跳隧道通過隧道ID唯一標識。用戶可以通過display bgp routing-table命令詳細顯示信息中的Rely tunnel IDs字段查看BGP路由的下一跳隧道。
缺省情況下,隻有迭代出下一跳IP地址的BGP路由可以參與路由優選。在一些場景中,BGP路由無法迭代出下一跳IP地址,僅存在下一跳隧道。此時,這些BGP路由將會被視為不可達路由。配置本功能後,BGP路由隻要存在下一跳隧道,就可以參與選路。
僅R5111及以上版本支持配置本功能。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖或BGP-VPN實例視圖。
¡ 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
¡ 請依次執行以下命令進入BGP-VPN實例視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 配置BGP路由僅存在下一跳隧道時仍可參與選路。
bestroute nexthop-resolved tunnel
缺省情況下,隻有迭代出下一跳IP地址的BGP路由可以參與路由優選。
缺省情況下,BGP路由的下一跳類型不影響路由優選。配置本功能後,BGP會根據路由的下一跳類型,優選下一跳為隧道或IP地址的路由。
本功能配置的選路規則優於“優選Router ID最小的路由器發布的路由”,在“如果當前的最優路由為EBGP路由,則BGP路由器收到來自不同的EBGP鄰居的路由後,不會改變最優路由”規則之後進行優選。
僅R5111及以上版本支持配置本功能。
BGP路由無法迭代出下一跳IP地址時,不能參與選路。如果BGP路由僅存在下一跳隧道,則即使配置了本功能,該路由仍然無法參與路由優選。如需該路由參與優選,則需要配置bestroute nexthop-resolved tunnel命令。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖或BGP-VPN實例視圖。
¡ 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
¡ 請依次執行以下命令進入BGP-VPN實例視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 配置BGP路由的下一跳為隧道或IP地址時影響路由優選。
bestroute nexthop-type { ip | tunnel }
缺省情況下,BGP路由的下一跳類型不影響路由優選。
可在任意視圖下執行以下命令,顯示BGP的路由屬性信息:
display bgp [ instance instance-name ] paths [ as-regular-expression ]
所有路由器都運行BGP協議。Router A與Router B和Router C之間運行EBGP;Router D與Router B和Router C之間運行IBGP。
AS 200中運行OSPF協議。
配置路由策略,使得Router D優選從Router C學到的1.0.0.0/8路由。
圖4-5 配置BGP路徑選擇的組網圖
設備 |
接口 |
IP地址 |
設備 |
接口 |
IP地址 |
Router A |
HGE1/0/1 |
1.0.0.1/8 |
Router D |
HGE1/0/1 |
195.1.1.1/24 |
|
HGE1/0/2 |
192.1.1.1/24 |
|
HGE1/0/2 |
194.1.1.1/24 |
|
HGE1/0/3 |
193.1.1.1/24 |
Router C |
HGE1/0/1 |
193.1.1.2/24 |
Router B |
HGE1/0/1 |
192.1.1.2/24 |
|
HGE1/0/2 |
195.1.1.2/24 |
|
HGE1/0/2 |
194.1.1.2/24 |
|
缺省情況下,本設備的接口處於ADM(Administratively Down)狀態,請根據實際需要在對應接口視圖下使用undo shutdown命令開啟接口。
(1) 配置各接口的IP地址(略)
(2) 配置Router B、Router C和Router D之間運行OSPF協議
# 配置Router B。
<RouterB> system-view
[RouterB] ospf
[RouterB-ospf] area 0
[RouterB-ospf-1-area-0.0.0.0] network 192.1.1.0 0.0.0.255
[RouterB-ospf-1-area-0.0.0.0] network 194.1.1.0 0.0.0.255
[RouterB-ospf-1-area-0.0.0.0] quit
[RouterB-ospf-1] quit
# 配置Router C。
<RouterC> system-view
[RouterC] ospf
[RouterC-ospf] area 0
[RouterC-ospf-1-area-0.0.0.0] network 193.1.1.0 0.0.0.255
[RouterC-ospf-1-area-0.0.0.0] network 195.1.1.0 0.0.0.255
[RouterC-ospf-1-area-0.0.0.0] quit
[RouterC-ospf-1] quit
# 配置Router D。
<RouterD> system-view
[RouterD] ospf
[RouterD-ospf] area 0
[RouterD-ospf-1-area-0.0.0.0] network 194.1.1.0 0.0.0.255
[RouterD-ospf-1-area-0.0.0.0] network 195.1.1.0 0.0.0.255
[RouterD-ospf-1-area-0.0.0.0] quit
[RouterD-ospf-1] quit
(3) 配置BGP連接
# 配置Router A。
<RouterA> system-view
[RouterA] bgp 100
[RouterA-bgp-default] peer 192.1.1.2 as-number 200
[RouterA-bgp-default] peer 193.1.1.2 as-number 200
[RouterA-bgp-default] address-family ipv4 unicast
[RouterA-bgp-default-ipv4] peer 192.1.1.2 enable
[RouterA-bgp-default-ipv4] peer 193.1.1.2 enable
# 將1.0.0.0/8網段通告到Router A的BGP路由表中。
[RouterA-bgp-default-ipv4] network 1.0.0.0 8
[RouterA-bgp-default-ipv4] quit
[RouterA-bgp-default] quit
# 配置Router B。
[RouterB] bgp 200
[RouterB-bgp-default] peer 192.1.1.1 as-number 100
[RouterB-bgp-default] peer 194.1.1.1 as-number 200
[RouterB-bgp-default] address-family ipv4 unicast
[RouterB-bgp-default-ipv4] peer 192.1.1.1 enable
[RouterB-bgp-default-ipv4] peer 194.1.1.1 enable
[RouterB-bgp-default-ipv4] quit
[RouterB-bgp-default] quit
# 配置Router C。
[RouterC] bgp 200
[RouterC-bgp-default] peer 193.1.1.1 as-number 100
[RouterC-bgp-default] peer 195.1.1.1 as-number 200
[RouterC-bgp-default] address-family ipv4 unicast
[RouterC-bgp-default-ipv4] peer 193.1.1.1 enable
[RouterC-bgp-default-ipv4] peer 195.1.1.1 enable
[RouterC-bgp-default-ipv4] quit
[RouterC-bgp-default] quit
# 配置Router D。
[RouterD] bgp 200
[RouterD-bgp-default] peer 194.1.1.2 as-number 200
[RouterD-bgp-default] peer 195.1.1.2 as-number 200
[RouterD-bgp-default] address-family ipv4 unicast
[RouterD-bgp-default-ipv4] peer 194.1.1.2 enable
[RouterD-bgp-default-ipv4] peer 195.1.1.2 enable
[RouterD-bgp-default-ipv4] quit
[RouterD-bgp-default] quit
(4) 通過配置本地優先級,使得Router D優選從Router C學到的路由。
# 在Router C上定義編號為2000的IPv4基本ACL,允許1.0.0.0/8路由通過。
[RouterC] acl basic 2000
[RouterC-acl-ipv4-basic-2000] rule permit source 1.0.0.0 0.255.255.255
[RouterC-acl-ipv4-basic-2000] quit
# 在Router C上定義名為localpref的Route-policy,設置路由1.0.0.0/8的本地優先級為200(缺省的本地優先級為100)。
[RouterC] route-policy localpref permit node 10
[RouterC-route-policy-localpref-10] if-match ip address acl 2000
[RouterC-route-policy-localpref-10] apply local-preference 200
[RouterC-route-policy-localpref-10] quit
# 為從BGP對等體193.1.1.1的路由應用名為localpref的Route-policy。
[RouterC] bgp 200
[RouterC-bgp-default] address-family ipv4 unicast
[RouterC-bgp-default-ipv4] peer 193.1.1.1 route-policy localpref import
[RouterC-bgp-default-ipv4] quit
[RouterC-bgp-default] quit
# 查看Router D的BGP路由表。
[RouterD] display bgp routing-table ipv4
Total number of routes: 2
BGP local router ID is 195.1.1.1
Status codes: * - valid, > - best, d - dampened, h - history,
s - suppressed, S - stale, i - internal, e - external
a – additional-path
Origin: i - IGP, e - EGP, ? - incomplete
Network NextHop MED LocPrf PrefVal Path/Ogn
* >i 1.0.0.0/8 193.1.1.1 200 0 100i
* i 192.1.1.1 100 0 100i
可以看到,Router D從Router C學到1.0.0.0/8的路由是最優的。
不同款型規格的資料略有差異, 詳細信息請向具體銷售和400谘詢。H3C保留在沒有任何通知或提示的情況下對資料內容進行修改的權利!