09-BGP配置
本章節下載: 09-BGP配置 (1.91 MB)
目 錄
2.1 搭建基本BGP網絡配置任務簡介(IPv4單播/IPv4組播)
2.2 搭建基本BGP網絡配置任務簡介(IPv6單播/IPv6組播)
2.10 搭建基本IPv4 BGP 網絡典型配置舉例(安全應用)
2.11 搭建基本IPv6 BGP網絡典型配置舉例(安全應用)
3.4.2 配置忽略BGP路由的ORIGINATOR_ID屬性
4.6.2 配置BGP在選擇最優路由時忽略AS_PATH屬性
4.6.5 配置發送BGP更新消息時AS_PATH屬性中不攜帶私有AS號
4.7.5 配置允許比較來自同一聯盟不同子自治係統鄰居路由的MED屬性值
4.9 配置BGP在選擇最優路由時忽略IGP Metric的比較
5.5.2 禁止與指定對等體/對等體組建立會話(IPv4單播/IPv4組播)
5.5.3 禁止與指定對等體/對等體組建立會話(IPv6單播/IPv6組播)
5.6.2 通過Route-refresh功能實現BGP軟複位(IPv4單播/IPv4組播)
5.6.3 通過Route-refresh功能實現BGP軟複位(IPv6單播/IPv6組播)
5.6.4 通過將所有路由更新信息保存在本地實現BGP軟複位(IPv4單播/IPv4組播)
5.6.5 通過將所有路由更新信息保存在本地實現BGP軟複位(IPv6單播/IPv6組播)
5.6.6 手工軟複位BGP會話(IPv4單播/IPv4組播)
5.6.7 手工軟複位BGP會話(IPv6單播/IPv6組播)
5.9 配置係統進入二級內存門限告警狀態後不斷開EBGP對等體
5.10 配置BGP路由進行下一跳路由迭代查找時采用最長匹配方式
7.5.2 通過引用路由策略的方式開啟BGP快速重路由功能(IPv4單播)
7.5.3 通過引用路由策略的方式開啟BGP快速重路由功能(IPv6單播)
7.5.4 通過pic命令開啟BGP快速重路由(IPv4單播)
7.5.5 通過pic命令開啟BGP快速重路由(IPv6單播)
7.5.6 配置BGP快速重路由通過BFD會話檢測主路由的下一跳是否可達
8.3.4 配置BGP LS信息的AS號和Router ID
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。
BGP定義了以下幾種消息類型:
· Open:TCP連接建立後發送的第一個消息,用於在BGP對等體之間建立會話。
· Update:用於在對等體之間交換路由信息。一條Update消息可以發布具有相同路徑屬性的多條可達路由,也可以同時撤銷多條不可達路由。
· Keepalive:BGP周期性地向對等體發送Keepalive消息,以保持會話的有效性。
· Route-refresh:用來要求對等體重新發送指定地址族的路由信息。
· Notification:當BGP檢測到錯誤狀態時,就向對等體發出Notification消息,之後BGP會話會立即中斷。
BGP在會話建立過程中共具有六種狀態,會話兩端設備的BGP所處狀態遷移過程如圖1-1所示。
圖1-1 BGP有限狀態機變化過程
此狀態是BGP的初始狀態,在此狀態下,BGP拒絕任何連接請求。隻有收到Start事件時,設備才給BGP分配資源,並嚐試進行TCP連接、轉入Connect狀態。
在其他的五種狀態下,如果發生了TCP連接斷開、報文錯誤、配置觸發關閉連接或收到Notification消息等錯誤事件,BGP都會轉入Idle狀態。
在此狀態下,BGP啟動Connect Retry定時器,等待TCP完成連接:
· 如果在Connect Retry定時器超時前成功建立TCP連接,則BGP關閉Connect Retry定時器,向對等體發送Open消息,並轉入OpenSent狀態。
· 如果在Connect Retry定時器超時前建立TCP連接失敗,則BGP轉入Active狀態。
· 如果Connect Retry定時器超時,BGP仍未收到對端的連接響應,則BGP重置Connect Retry定時器,再次嚐試與對等體建立TCP連接,並保持Connect狀態。
在此狀態下,BGP不斷嚐試建立TCP連接:
· 如果TCP連接建立成功,則BGP關閉Connect Retry定時器,向對等體發送Open消息,並轉入OpenSent狀態。
· 如果TCP連接建立失敗,則BGP重置Connect Retry定時器並保持Active狀態。
· 如果Connect Retry定時器超時,BGP仍未收到對端的連接響應,則BGP重置Connect Retry定時器,並轉入Connect狀態。
在此狀態下,BGP等待來自對等體的Open消息,並對Open消息中的BGP版本號、AS號等信息進行檢查:
· 如果收到的Open消息正確,則BGP向對等體發送Keepalive消息,並轉入OpenConfirm狀態。
· 如果收到的Open消息錯誤,則BGP向對等體發送Notification消息,並轉入Idle狀態。
在此狀態下如果TCP連接斷開,則BGP重置Connect Retry定時器,並轉入Active狀態,重新嚐試TCP連接的建立。
在此狀態下,BGP等待Keepalive或Notification消息。如果BGP收到Keepalive消息,則轉入Established狀態,如果收到Notification消息,則轉入Idle狀態。
在此狀態下,BGP可以和對等體交互Update、Keepalive、Route-refresh以及Notification消息:
· 收到正確的Update消息或Keepalive消息時,BGP保持Established狀態。
· 收到錯誤的Update消息或Keepalive消息時,BGP向對等體發送Notification消息並轉入Idle狀態。
· Route-refresh消息不影響BGP狀態。
· 收到Notification消息時,BGP轉入Idle狀態。
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-2所示,離本地AS最近的相鄰AS號排在前麵,其他AS號按順序依次排列。
· AS_SET:AS號隻是經過的AS的簡單羅列,沒有順序要求。
AS_PATH屬性具有如下用途:
· 避免路由環路的形成:缺省情況下,如果BGP路由器接收到的路由的AS_PATH屬性中已經包含了本地的AS號,則BGP路由器認為出現路由環路,不會接受該路由。
· 影響路由的選擇:在其他因素相同的情況下,BGP會優先選擇路徑較短的路由。比如在圖1-2中,AS 50中的BGP路由器會選擇經過AS 40的路徑作為到目的地址8.0.0.0的最優路由。用戶可以使用路由策略來人為地增加AS路徑的長度,以便更為靈活地控製BGP路徑的選擇。路由策略的詳細介紹,請參見“三層技術-IP路由配置指導”中的“路由策略”。
· 對路由進行過濾:通過配置AS路徑過濾列表,可以針對AS_PATH屬性中所包含的AS號來對路由進行過濾。AS路徑過濾列表的詳細介紹,請參見“三層技術-IP路由配置指導”中的“路由策略”。
BGP的NEXT_HOP屬性取值不一定是鄰居路由器的IP地址。如圖1-3所示,NEXT_HOP屬性取值情況分為幾種:
· BGP發言者把自己產生的路由發給所有鄰居時,將該路由信息的NEXT_HOP屬性設置為自己與對端連接的接口地址;
· BGP發言者把接收到的路由發送給EBGP對等體時,將該路由信息的NEXT_HOP屬性設置為自己與對端連接的接口地址;
· BGP發言者把從EBGP鄰居得到的路由發給IBGP鄰居時,並不改變該路由信息的NEXT_HOP屬性。如果配置了負載分擔,等價路由被發給IBGP鄰居時則會修改NEXT_HOP屬性。關於“負載分擔”的概念請參見“1.8 BGP負載分擔”。
MED屬性僅在相鄰兩個AS之間交換,收到此屬性的AS不會再將其通告給其它AS。
MED屬性相當於IGP使用的度量值(metrics),它用於判斷流量進入AS時的最佳路由。當一個BGP路由器通過不同的EBGP對等體得到目的地址相同但下一跳不同的多條路由時,在其它條件相同的情況下,將優先選擇MED值較小者作為最佳路由。如圖1-4所示,從AS 10到AS 20的流量將選擇Router B作為入口。
圖1-4 MED屬性
通常情況下,BGP隻比較來自同一個AS的路由的MED屬性值。在某些特殊的應用中,用戶也可以通過配置compare-different-as-med命令,強製BGP比較來自不同AS的路由的MED屬性值。
LOCAL_PREF屬性僅在IBGP對等體之間交換,不通告給其他AS。它表明BGP路由器的優先級。
LOCAL_PREF屬性用於判斷流量離開AS時的最佳路由。當BGP路由器通過不同的IBGP對等體得到目的地址相同但下一跳不同的多條路由時,將優先選擇LOCAL_PREF屬性值較高的路由。如圖1-5所示,從AS 20到AS 10的流量將選擇Router C作為出口。
BGP將具有相同特征的路由歸為一組,稱為一個團體,通過在路由中攜帶團體屬性標識路由所屬的團體。團體沒有物理上的邊界,不同AS的路由可以屬於同一個團體。
根據需要,一條路由可以攜帶一個或多個團體屬性值(每個團體屬性值用一個四字節的整數表示)。接收到該路由的路由器可以通過比較團體屬性值對路由作出適當的處理(比如決定是否發布該路由、在什麼範圍發布等),而不需要匹配複雜的過濾規則(如ACL),從而簡化路由策略的應用和降低維護管理的難度。
公認的團體屬性有:
· INTERNET:缺省情況下,所有的路由都屬於INTERNET團體。具有此屬性的路由可以被通告給所有的BGP對等體。
· NO_EXPORT:具有此屬性的路由在收到後,不能被發布到本地AS之外。如果使用了聯盟,則不能被發布到聯盟之外,但可以發布給聯盟中的其他子AS(關於聯盟的定義請參見“1.9 6. 聯盟”)。
· NO_ADVERTISE:具有此屬性的路由被接收後,不能被通告給任何其他的BGP對等體。
· NO_EXPORT_SUBCONFED:具有此屬性的路由被接收後,不能被發布到本地AS之外,也不能發布到聯盟中的其他子AS。
除了公認的團體屬性外,用戶還可以使用團體屬性列表自定義團體屬性,以便更為靈活地控製路由策略。
隨著團體屬性的應用日益廣泛,原有四字節的團體屬性無法滿足用戶的需求。因此,BGP定義了新的路由屬性——擴展團體屬性。擴展團體屬性與團體屬性有如下不同:
· 擴展團體屬性為八字節,提供了更多的屬性值。
· 擴展團體屬性可以劃分類型。在不同的組網應用中,可以使用不同類型的擴展團體屬性對路由進行過濾和控製。與不區分類型、統一使用同一個屬性值空間的團體屬性相比,擴展團體屬性的配置和管理更為簡單。
目前,設備支持的擴展團體屬性有VPN Target、SoO(Site of Origin,源站點)屬性、Color屬性和Priority-Color屬性。
SoO擴展團體屬性用來標識路由的原始站點。路由器不會將帶有SoO屬性的路由發布給該SoO標識的站點,確保來自某個站點的路由不會再被發布到該站點,從而避免路由環路。在AS路徑信息丟失時,可以通過SoO屬性來避免發生環路。
SoO屬性有三種格式:
· 16位自治係統號:32位用戶自定義數,例如:101:3。
· 32位IP地址:16位用戶自定義數,例如:192.168.122.15:1。
· 32位自治係統號:16位用戶自定義數,其中的自治係統號最小值為65536。例如:65536:1。
目前,BGP選擇路由的過程為:
(1) 丟棄下一跳(NEXT_HOP)不可達的路由;
(2) 優選首選值(Preferred-value)最大的路由;
(3) 優選本地優先級(LOCAL_PREF)最高的路由;
(4) 依次選擇network命令生成的路由、import-route命令引入的路由、聚合路由;
(5) 優選AS路徑(AS_PATH)最短的路由;
(6) 依次選擇ORIGIN類型為IGP、EGP、Incomplete的路由;
(7) 優選MED值最低的路由;
(8) 依次選擇從EBGP、聯盟EBGP、聯盟IBGP、IBGP學來的路由;
(9) 優選IGP Metric值最小的路由;
(10) 優選迭代深度值小的路由;
(11) 如果當前的最優路由為EBGP路由,則BGP路由器收到來自不同的EBGP鄰居的路由後,不會改變最優路由;
(12) 優選Router ID最小的路由器發布的路由。如果路由包含RR屬性,那麼在路由選擇過程中,就用ORIGINATOR_ID來替代Router ID;
(13) 優選CLUSTER_LIST長度最短的路由;
(14) 優選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.6 BGP的選路規則”中的規則選擇路由,當路由同時滿足如下條件時,即在這些路由間進行負載分擔:
· ORIGIN屬性、LOCAL_PREF屬性、和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負載分擔。
圖1-6 BGP負載分擔示意圖
在圖1-6中,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-7所示,路由每次從可達狀態變為不可達狀態,或者可達路由的屬性每次發生變化時,BGP給此路由增加一定的懲罰值(係統固定為1000,不可修改)。當懲罰值超過抑製閾值時,此路由被抑製,不參與路由選擇。懲罰值達到設置的上限後,不再繼續增加。
發生震蕩的路由如果沒有再次震蕩,則路由的懲罰值會逐漸減少。每經過一段時間,懲罰值便會減少一半,這個時間稱為半衰期(Half-life)。當懲罰值低於再使用閾值時,此路由變為可用路由,參與路由選擇。
圖1-7 BGP路由衰減示意圖
在大規模BGP網絡中,對等體的數量很多,其中很多對等體具有相同的策略,在配置時會重複使用一些命令。此時,將這些對等體加入一個對等體組,可以簡化配置。
對等體組是具有某些相同屬性的對等體的集合。當一個對等體加入對等體組時,此對等體將獲得與所在對等體組相同的配置。當對等體組的配置改變時,組內成員的配置也相應改變。
在大規模的網絡中,如果通過地址前綴列表、ACL、AS_PATH等實現對路由的控製,不僅配置複雜,而且不方便維護。利用團體屬性和擴展團體屬性,可以提高路由策略配置的靈活度,簡化路由策略的管理,從而降低維護管理的難度。團體屬性和擴展團體屬性的介紹請參見“1.5 BGP的路由屬性”。
為保證IBGP對等體之間的連通性,需要在IBGP對等體之間建立全連接關係。假設在一個AS內部有n台路由器,那麼應該建立的IBGP連接數就為n(n-1)/2。當IBGP對等體數目很多時,對網絡資源和CPU資源的消耗都很大。
利用路由反射可以解決這一問題。在一個AS內,其中一台路由器作為RR(Route Reflector,路由反射器),作為客戶機(Client)的路由器與路由反射器之間建立IBGP連接。路由反射器從客戶機接收到路由後,將其傳遞(反射)給所有其他的客戶機,從而保證客戶機之間不需要建立BGP連接,就可以學習到彼此的路由。
既不是路由反射器也不是客戶機的BGP路由器被稱為非客戶機(Non-client)。非客戶機與路由反射器之間,以及所有的非客戶機之間仍然必須建立全連接關係。其示意圖如圖1-8所示。
路由反射器及其客戶機形成了一個集群。通常情況下,一個集群中隻有一個路由反射器,該反射器的Router ID就作為集群ID,用於識別該群。如圖1-9所示,為了提高網絡的可靠性、避免單點故障,一個集群中可以設置多個路由反射器。此時,集群中所有路由反射器上都需要配置相同的集群ID,以便集群具有統一的標識,避免路由環路的產生。
如果配置了路由反射器後,由於組網需要在路由反射器的客戶機之間又建立了全連接,則客戶機之間可以直接交換路由信息,客戶機到客戶機之間的路由反射是沒有必要的。此時,不需要修改網絡配置或改變網絡拓撲,隻需在路由反射器上通過相關命令禁止其在客戶機之間反射路由,就可以避免路由反射,減少占用的帶寬資源。
禁止客戶機之間的路由反射後,客戶機到非客戶機之間的路由仍然可以被反射。
聯盟(Confederation)是處理自治係統內部的IBGP網絡連接激增的另一種方法,它將一個自治係統劃分為若幹個子自治係統,每個子自治係統內部的IBGP對等體建立全連接關係,子自治係統之間建立聯盟內部EBGP連接關係。其示意圖如圖1-10所示。
在不屬於聯盟的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單播路由前綴信息。
· IPv4組播/IPv6組播
組播路由協議PIM(Protocol Independent Multicast,協議無關組播)根據單播靜態路由或者任意單播路由協議(包括RIP、OSPF、IS-IS、BGP等)所生成的單播路由表進行RPF(Reverse Path Forwarding,逆向路徑轉發)檢查,以創建組播路由表項,從而進行組播報文的轉發。組播轉發路徑與單播轉發路徑是一致的。但是,在某些情況下,組播網絡拓撲和單播網絡拓撲有可能不同;有些用戶希望組播轉發路徑不同於單播轉發路徑,以便分別對組播流量和單播流量進行管理和控製。
MP-BGP對IPv4組播/IPv6組播的擴展,稱為MBGP(Multicast BGP,組播BGP),它通過MP-BGP傳遞用於RPF檢查的路由信息,並將該信息保存在獨立的組播BGP路由表中,以實現單播轉發和組播轉發的隔離,使得組播轉發路徑可以不同於單播轉發路徑。
有關組播、PIM和RPF檢查的詳細介紹,請參見“IP組播配置指導”。
· VPNv4/VPNv6
通過MP-BGP發布和維護VPNv4/VPNv6路由前綴信息。
路由信息中與網絡層協議相關的關鍵信息包括路由前綴和下一跳地址。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-11 MP-BGP支持BGP IPvX會話承載IPv4和IPv6路由
以圖1-11為例,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多實例具有如下要求:
· 一個BGP實例下可以創建多個公網地址族,但不同BGP實例下不能創建相同的公網地址族(IPv4單播地址族、IPv6單播地址族、VPNv4地址族、VPNv6地址族。
· 一個BGP實例下可以創建多個VPN實例,每個VPN實例下可以創建多個地址族,但不同BGP實例下不能創建相同的VPN實例。
· 不能通過公網內的不同BGP實例與相同地址的對等體建立BGP會話。
· IPv4組播與IPv6組播地址族同時配置時,隻能配置在一個BGP實例下。
· 不同BGP實例對應的AS號可以相同,不同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 IPv4組播地址族視圖 |
該視圖下的配置對指定BGP實例的IPv4組播路由和對等體生效 |
|
BGP IPv6組播地址族視圖 |
該視圖下的配置對指定BGP實例的IPv6組播路由和對等體生效 |
|
BGP VPNv4地址族視圖 |
該視圖下的配置對指定BGP實例的VPNv4路由和對等體生效 |
|
BGP VPNv6地址族視圖 |
該視圖下的配置對指定BGP實例的VPNv6路由和對等體生效 |
|
BGP-VPN實例視圖 |
該視圖下的配置對指定BGP實例的指定VPN實例內所有地址族的路由和對等體生效 |
|
BGP-VPN IPv4單播地址族視圖 |
該視圖下的配置對指定BGP實例的指定VPN實例內的IPv4單播路由和對等體生效 |
|
BGP-VPN IPv6單播地址族視圖 |
該視圖下的配置對指定BGP實例的指定VPN實例內的IPv6單播路由和對等體生效 |
|
BGP IPv4 MVPN地址族視圖 |
該視圖下的配置對指定BGP實例的MVPN路由和對等體生效 |
|
BGP LS地址族視圖 |
該視圖下的配置對指定BGP實例的LS信息和對等體生效 |
|
BGP IPv4 RT-Filter地址族視圖 |
該視圖下的配置對指定BGP實例的IPv4 RT-Filter路由和對等體生效 |
與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 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 4724:Graceful Restart Mechanism for BGP
· RFC 4760:Multiprotocol Extensions for BGP-4
· 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 5668:4-Octet AS Specific BGP Extended Community
· RFC 6608:Subcodes for BGP Finite State Machine Error
· 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 7752:North-Bound Distribution of Link-State and Traffic Engineering (TE) Information Using BGP
IPv4單播/IPv4組播的BGP配置任務如下:
(1) 配置BGP基本功能
a. 啟動BGP
b. 手工創建BGP對等體
c. 動態創建BGP對等體
d. 配置IBGP對等體組
在大規模的BGP網絡中可通過配置BGP對等體組簡化配置。
e. 配置EBGP對等體組
在大規模的BGP網絡中可通過配置BGP對等體組簡化配置。
f. (可選)配置建立TCP連接使用的源地址
(2) 生成BGP路由信息
請至少選擇其中一項任務進行配置:
¡ (可選)配置BGP路由聚合
¡ (可選)配置向對等體/對等體組發送缺省路由
(3) (可選)控製BGP路由信息的發布
IPv4組播不支持配置發布IP路由表中的最優路由。
(4) (可選)控製BGP路由信息的接收
¡ 配置SoO屬性
(5) (可選)配置BGP定時器
(6) (可選)配置BGP日誌和告警功能
IPv6單播/IPv6組播的BGP配置任務如下:
(1) 配置BGP基本功能
a. 啟動BGP
b. 手工創建BGP對等體
c. 動態創建BGP對等體
d. 配置IBGP對等體組
在大規模的BGP網絡中可通過配置BGP對等體組簡化配置。
e. 配置EBGP對等體組
在大規模的BGP網絡中可通過配置BGP對等體組簡化配置。
f. (可選)配置建立TCP連接使用的源地址
(2) 生成BGP路由信息
請至少選擇其中一項任務進行配置:
¡ (可選)配置BGP路由聚合
¡ (可選)配置向對等體/對等體組發送缺省路由
(3) (可選)控製BGP路由信息的發布
IPv6組播不支持配置發布IP路由表中的最優路由。
(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連接使用的源接口。
(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 as-number [ instance 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 as-number [ instance 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
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
(3) 創建IPv4 BGP對等體,並指定對等體的AS號。
peer ipv4-address as-number as-number
(4) (可選)配置對等體的描述信息。
peer ipv4-address description text
缺省情況下,對等體沒有描述信息。
(5) 創建BGP IPv4組播地址族,並進入BGP IPv4組播地址族視圖。
address-family ipv4 multicast
(6) 允許本地路由器與指定對等體交換用於RPF檢查的IPv4單播路由信息。
peer ipv4-address enable
缺省情況下,本地路由器不能與對等體交換用於RPF檢查的IPv4單播路由信息。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
(3) 創建IPv6 BGP對等體,並指定對等體的AS號。
peer ipv6-address as-number as-number
(4) (可選)配置對等體的描述信息。
peer ipv6-address description text
缺省情況下,對等體沒有描述信息。
(5) 創建BGP IPv6組播地址族,並進入BGP IPv6組播地址族視圖。
address-family ipv6 multicast
(6) 允許本地路由器與指定對等體交換用於RPF檢查的IPv6單播路由信息。
peer ipv6-address enable
缺省情況下,本地路由器不能與對等體/對等體組交換用於RPF檢查的IPv6單播路由信息。
設備需要和大量的鄰居建立對等體關係時,如果逐個配置對等體關係,則配置工作量大,新增或者刪除對等體的維護、升級工作難度較大,且容易出錯。
如果設備的鄰居位於同一個網段內,則可以通過BGP動態對等體功能簡化配置。在設備上簡單地配置一個網段地址內的鄰居作為動態對等體,就可以接受來自該網段內的所有鄰居的連接請求,並與其建立對等體關係。隻有當鄰居發起連接請求時,本地才會維護與該鄰居的對等體關係;否則,不維護對等體關係。BGP動態對等體功能既簡化了配置,又大大降低了維護和升級成本。
配置動態對等體時,設備和鄰居隻能有一端配置網段地址,另一端必須配置實際IP地址。
當通過IPv6鏈路本地地址創建對等體或向對等體組中添加指定的對等體時,必須使用直連接口建立對等關係,且必須通過peer connect-interface命令將本地直連出接口指定為建立TCP連接使用的源接口。
如果本地設備已經通過網段匹配成功與某一IP地址建立了動態對等體,則不允許再為該IP地址創建靜態對等體。如需創建特定IP地址的靜態對等體,而該IP地址恰好處於某個動態對等體的網段內,則需要先創建靜態對等體,再創建動態對等體。例如,如果先創建了網段為10.1.1.0/24的動態對等體,並通過此配置成功與10.1.1.1建立BGP連接,則無法再創建IP地址為10.1.1.1的靜態對等體。反之,如果先創建IP地址為10.1.1.1的靜態對等體,然後再創建網段為10.1.1.0/24的動態對等體,則沒有限製。
(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 as-number [ instance 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 as-number [ instance 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 prefix-length route-policy route-policy-name import
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖。
bgp as-number [ instance 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 IPv4組播地址族視圖。
address-family ipv4 multicast
(6) 允許本地路由器與指定動態對等體交換用於RPF檢查的IPv4單播路由信息。
peer ipv4-address mask-length enable
缺省情況下,本地路由器不能與動態對等體交換用於RPF檢查的IPv4單播路由信息。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖。
bgp as-number [ instance 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 IPv6組播地址族視圖。
address-family ipv6 multicast
(6) 允許本地路由器與指定動態對等體交換用於RPF檢查的IPv6單播路由信息。
peer ipv6-address prefix-length enable
缺省情況下,本地路由器不能與動態對等體/對等體組交換用於RPF檢查的IPv6單播路由信息。
IBGP對等體組是指對等體組中的對等體與當前路由器位於同一AS。
創建IBGP對等體組後,係統在將對等體加入IBGP對等體組時,會自動在BGP實例視圖下創建該對等體,並設置其AS號為本地AS號。
當通過IPv6鏈路本地地址創建對等體或向對等體組中添加指定的對等體時,必須使用直連接口建立對等關係,且必須通過peer connect-interface命令將本地直連出接口指定為建立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) 創建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 as-number [ instance 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 as-number [ instance 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 IPv4組播地址族視圖。
address-family ipv4 multicast
(7) 允許本地路由器與指定對等體組中的對等體交換用於RPF檢查的IPv4單播路由信息。
peer group-name enable
缺省情況下,本地路由器不能與對等體交換用於RPF檢查的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) 向對等體組中添加指定的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 as-number [ instance 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
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖。
bgp as-number [ instance 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 IPv6組播地址族視圖。
address-family ipv6 multicast
(7) 允許本地路由器與指定對等體組中的對等體交換用於RPF檢查的IPv6單播路由信息。
peer group-name enable
缺省情況下,本地路由器不能與對等體交換用於RPF檢查的IPv6單播路由信息。
EBGP對等體組是指對等體組中的對等體與當前路由器位於不同AS。
根據對等體組中的對等體是否屬於同一個外部AS,EBGP對等體組又可以分為純EBGP對等體組和混合EBGP對等體組。如果對等體組中的對等體屬於同一個外部AS,該對等體組就是純EBGP對等體組;如果對等體組中的對等體屬於不同外部AS,該對等體組就是混合EBGP對等體組。
用戶有三種方式配置EBGP對等體組:
· 第一種方式是創建對等體組後,先指定對等體組的AS號,再將對等體加入到對等體組中,該方式下加入的對等體具有相同的AS號,均為對等體組的AS號。對等體加入對等體組之前可以配置AS號,且為對等體配置的AS號必須與對等體組的AS號相同。
· 第二種方式是創建對等體組後,先配置對等體的AS號,再將對等體加入對等體組中。該方式下,對等體組中對等體的AS號可以相同也可以不同。
· 第三種方式是創建對等體組後,將對等體加入對等體組的同時指定AS號。該方式下,對等體組中對等體的AS號可以相同也可以不同。
如果分別對對等體組和對等體組中的對等體進行了某項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 as-number [ instance 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 as-number [ instance 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 as-number [ instance 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 as-number [ instance 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 IPv4組播地址族視圖。
address-family ipv4 multicast
(8) 允許本地路由器與指定對等體組中的對等體交換用於RPF檢查的IPv4單播路由信息。
peer group-name enable
缺省情況下,本地路由器不能與對等體交換用於RPF檢查的IPv4單播路由信息。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖。
bgp as-number [ instance 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 IPv4組播地址族視圖。
address-family ipv4 multicast
(8) 允許本地路由器與指定對等體組中的對等體交換用於RPF檢查的IPv4單播路由信息。
peer group-name enable
缺省情況下,本地路由器不能與對等體交換用於RPF檢查的IPv4單播路由信息。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖。
bgp as-number [ instance 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 IPv4組播地址族視圖。
address-family ipv4 multicast
(7) 允許本地路由器與指定對等體組中的對等體交換用於RPF檢查的IPv4單播路由信息。
peer group-name enable
缺省情況下,本地路由器不能與對等體交換用於RPF檢查的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) 向對等體組中添加指定的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 as-number [ instance 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 as-number [ instance 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 as-number [ instance 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
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖。
bgp as-number [ instance 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 IPv6組播地址族視圖。
address-family ipv6 multicast
(8) 允許本地路由器與指定對等體組中的對等體交換用於RPF檢查的IPv6單播路由信息。
peer group-name enable
缺省情況下,本地路由器不能與對等體交換用於RPF檢查的IPv6單播路由信息。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖。
bgp as-number [ instance 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 IPv6組播地址族視圖。
address-family ipv6 multicast
(8) 允許本地路由器與指定對等體組中的對等體交換用於RPF檢查的IPv6單播路由信息。
peer group-name enable
缺省情況下,本地路由器不能與對等體交換用於RPF檢查的IPv6單播路由信息。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖。
bgp as-number [ instance 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 IPv6組播地址族視圖。
address-family ipv6 multicast
(7) 允許本地路由器與指定對等體組中的對等體交換用於RPF檢查的IPv6單播路由信息。
peer group-name enable
缺省情況下,本地路由器不能與對等體交換用於RPF檢查的IPv6單播路由信息。
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路由表中,以便通過BGP發布該網段路由。通過該種方式發布的路由的ORIGIN屬性為IGP。網絡管理員還可以通過使用路由策略更為靈活地控製所發布的路由。
本配置中指定的網段路由必須存在於本地的IP路由表中,且處於Active狀態,否則無法將該網段路由添加到BGP路由表中。
(1) 進入係統視圖。
system-view
(2) 進入BGP IPv4單播地址族視圖、BGP-VPN IPv4單播地址族視圖或BGP 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 IPv4組播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv4 multicast
(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 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 ]
¡ 請依次執行以下命令進入BGP IPv6組播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv6 multicast
(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 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 IPv4組播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv4 multicast
(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 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 ]
¡ 請依次執行以下命令進入BGP IPv6組播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv6 multicast
(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 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 IPv4組播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv4 multicast
(3) 配置對引入的子網路由進行自動聚合。
summary automatic
缺省情況下,不對引入的子網路由進行自動聚合。
(1) 進入係統視圖。
system-view
(2) 進入BGP IPv4單播地址族視圖、BGP-VPN IPv4單播地址族視圖或BGP 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 IPv4組播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv4 multicast
(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 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 ]
¡ 請依次執行以下命令進入BGP IPv6組播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv6 multicast
(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 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 IPv4組播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv4 multicast
(3) 向對等體/對等體組發送缺省路由。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } default-route-advertise [ route-policy route-policy-name ]
缺省情況下,不向對等體/對等體組發送缺省路由。
僅BGP IPv4單播地址族支持IPv6參數。
(1) 進入係統視圖。
system-view
(2) 進入BGP IPv6單播地址族視圖、BGP-VPN IPv6單播地址族視圖或BGP 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 ]
¡ 請依次執行以下命令進入BGP IPv6組播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv6 multicast
(3) 向對等體/對等體組發送缺省路由。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } default-route-advertise [ route-policy route-policy-name ]
缺省情況下,不向對等體/對等體組發送缺省路由。
僅BGP IPv6單播地址族支持IPv4參數。
缺省情況下,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路由信息的發布策略:
· 使用訪問控製列表或地址前綴列表對向所有對等體發布的路由信息進行過濾。
· 向指定對等體或對等體組發布路由時,使用路由策略、條件通告策略(存在策略和不存在策略)、訪問控製列表、路由發送條件、AS路徑過濾列表或地址前綴列表對發布給該對等體或對等體組的路由信息進行過濾。
用戶可以根據需求選擇過濾策略。如果同時配置了幾種過濾策略,則按照如下順序過濾發布的路由信息:
· peer prefix-list export
· peer filter-policy export
· peer as-path-acl export
· filter-policy export
· peer advertise-policy exist-policy
· peer advertise-policy non-exist-policy
· peer route-policy export
隻有通過前麵的過濾策略,才能繼續執行後麵的過濾策略;隻有通過所有配置的過濾策略後,路由信息才能被發布。
配置BGP路由信息的發布/接收策略前,根據采取的策略,需要配置下列過濾器:
· 訪問控製列表,詳細配置過程請參見“ACL和QoS配置指導”中的“ACL”。
· 地址前綴列表,詳細配置過程請參見“三層技術-IP路由配置指導”中的“路由策略”。
· 路由策略,詳細配置過程請參見“三層技術-IP路由配置指導”中的“路由策略”。
· AS路徑過濾列表,詳細配置過程請參見“三層技術-IP路由配置指導”中的“路由策略”。
使用了ACL、前綴列表以及路由策略過濾器來應用BGP路由的發布/接收策略時,三者具有以下特征:
· 在過濾策略指定了以上三種過濾器時,如果指定的是不存在的過濾器,則所有BGP路由均可以通過該過濾策略的過濾。
· 過濾策略通過ACL或者前綴列表進行過濾時(例如配置filter-policy export命令時指定通過ACL或前綴列表匹配BGP路由信息):
¡ BGP路由隻有能夠通過ACL或前綴列表permit動作的匹配,該路由才能通過過濾策略的過濾。即如果一個過濾策略指定的是全部為deny動作的ACL或前綴列表,那麼所有BGP路由均無法通過該過濾策略的過濾。
¡ ACL按照配置順序進行匹配時,設備根據規則編號從小到大的順序進行匹配;前綴列表按照表項索引號從小到大的順序進行匹配。在該匹配順序下,路由匹配到了一個ACL規則或者前綴列表的表項後,就不會繼續再往下匹配。所以在配置多個規則/表項的ACL/前綴列表時,請盡量將先匹配的規則/表項的匹配範圍設置為較小一些,以免後匹配的規則/表項不生效。
¡ 指定高級ACL作為過濾器時,rule [ rule-id ] permit ip source sour-addr sour-wildcard destination dest-addr dest-wildcard中的source sour-addr sour-wildcard用來匹配路由的目的網絡地址,destination dest-addr dest-wildcard用來匹配路由的掩碼。需要注意的是,需要指定路由掩碼的點分十進製格式,例如,如果需要匹配3.3.3.0/24的路由,指定的規則應為rule [ rule-id ] permit ip source 3.3.3.0 0.0.0.255 destination 255.255.255.0 0.0.0.255。
· 使用路由策略作為過濾器時:
¡ BGP路由隻有能夠通過路由策略的permit模式節點的匹配,才能通過過濾策略的過濾。
¡ 路由策略按照節點序號從小到大的順序進行匹配。在該匹配順序下,路由匹配到了一個節點後,就不會繼續往下進行匹配(配置了continue子句的情況除外)。
¡ 如果路由策略中通過if-match命令指定了ACL或前綴列表,則BGP路由需要先通過ACL或前綴列表permit動作的匹配,再通過路由策略permit模式節點的匹配,才能通過過濾策略的過濾。
(1) 進入係統視圖。
system-view
(2) 進入BGP IPv4單播地址族視圖、BGP-VPN IPv4單播地址族視圖或BGP 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 IPv4組播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv4 multicast
(3) 配置BGP路由信息的發布策略。請至少選擇其中一項進行配置。
¡ 對向所有對等體發布的路由信息進行過濾。
filter-policy { ipv4-acl-number | 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 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 ]
¡ 請依次執行以下命令進入BGP IPv6組播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv6 multicast
(3) 配置BGP路由信息的發布策略。請至少選擇其中一項進行配置。
¡ 對向所有IPv6 BGP對等體發布的路由信息進行過濾。
filter-policy { ipv6-acl-number | 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
僅BGP IPv6單播地址族支持IPv4參數。
配置了本功能時,在經過了重啟且BGP進程恢複後,設備不能立刻向鄰居發布更新消息,而是在一段延遲時間之後才能發送。這段延遲時間的作用是,設備重啟後可以等待路由接收完成並優選後再向其他設備發布,以避免設備重啟後路由信息不全,就發布給其他設備導致流量丟失的情況。
配置本功能後,如果需要部分路由前綴不受延遲發布控製,可以使用前綴列表進行控製,通過前綴列表過濾的路由不受延遲發布的影響。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
(3) 配置設備重啟且BGP進程恢複後,經過一段延遲時間才能發送更新消息。
bgp update-delay on-startup seconds
缺省情況下,設備重啟且BGP進程恢複後,立刻向Established狀態的BGP鄰居發布路由更新消息。
(4) (可選)配置通過前綴列表控製BGP更新消息延遲發布。
bgp update-delay on-startup prefix-list ipv4-prefix-list-name
缺省情況下,未配置通過前綴列表控製BGP更新消息延遲發布。
通過本配置可以避免攻擊者向路由器發送大量的BGP路由,對路由器進行攻擊。
當路由器從指定對等體/對等體組接收的路由數量超過指定的最大值時,可以選擇以下處理方式:
· 路由器中斷與該對等體/對等體組的BGP會話,不再嚐試重建會話。
· 路由器保持與該對等體/對等體組的BGP會話,可以繼續接收路由,僅打印日誌信息。
· 路由器保持與該對等體/對等體組的BGP會話,丟棄超出限製的路由,並打印日誌信息。
· 路由器中斷與該對等體/對等體組的BGP會話,經過指定的時間後自動與對等體/對等體組重建會話。
執行本配置任務時,還可以指定路由器產生日誌信息的閾值,即路由器接收的路由數量與配置的最大值的百分比達到指定的閾值時,路由器將產生日誌信息。
(1) 進入係統視圖。
system-view
(2) 進入BGP IPv4單播地址族視圖、BGP-VPN IPv4單播地址族視圖或BGP 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 IPv4組播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv4 multicast
(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 IPv4單播地址族支持IPv6參數。
(1) 進入係統視圖。
system-view
(2) 進入BGP IPv6單播地址族視圖、BGP-VPN IPv6單播地址族視圖或BGP 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 ]
¡ 請依次執行以下命令進入BGP IPv6組播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv6 multicast
(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 IPv6單播地址族支持IPv4參數。
可以通過以下幾種方式配置BGP路由信息的接收策略:
· 使用訪問控製列表或地址前綴列表對從所有對等體接收的路由信息進行過濾。
· 從指定對等體或對等體組接收路由時,使用路由策略、訪問控製列表、AS路徑過濾列表或地址前綴列表對從該對等體或對等體組接收的路由信息進行過濾。
用戶可以根據需求選擇過濾策略。如果同時配置了幾種過濾策略,則按照如下順序過濾接收的路由:
· peer filter-policy import
· peer prefix-list import
· peer as-path-acl import
· filter-policy import
· peer route-policy import
隻有通過前麵的過濾策略,才能繼續執行後麵的過濾策略;隻有通過所有配置的過濾策略後,路由信息才能被接收。
配置BGP路由信息的發布/接收策略前,根據采取的策略,需要配置下列過濾器:
· 訪問控製列表,詳細配置過程請參見“ACL和QoS配置指導”中的“ACL”。
· 地址前綴列表,詳細配置過程請參見“三層技術-IP路由配置指導”中的“路由策略”。
· 路由策略,詳細配置過程請參見“三層技術-IP路由配置指導”中的“路由策略”。
· AS路徑過濾列表,詳細配置過程請參見“三層技術-IP路由配置指導”中的“路由策略”。
使用了ACL、前綴列表以及路由策略過濾器來應用BGP路由的發布/接收策略時,三者具有以下特征:
· 在過濾策略指定了以上三種過濾器時,如果指定的是不存在的過濾器,則所有BGP路由均可以通過該過濾策略的過濾。
· 過濾策略通過ACL或者前綴列表進行過濾時(例如配置filter-policy export命令時指定通過ACL或前綴列表匹配BGP路由信息):
¡ BGP路由隻有能夠通過ACL或前綴列表permit動作的匹配,該路由才能通過過濾策略的過濾。即如果一個過濾策略指定的是全部為deny動作的ACL或前綴列表,那麼所有BGP路由均無法通過該過濾策略的過濾。
¡ ACL按照配置順序進行匹配時,設備根據規則編號從小到大的順序進行匹配;前綴列表按照表項索引號從小到大的順序進行匹配。在該匹配順序下,路由匹配到了一個ACL規則或者前綴列表的表項後,就不會繼續再往下匹配。所以在配置多個規則/表項的ACL/前綴列表時,請盡量將先匹配的規則/表項的匹配範圍設置為較小一些,以免後匹配的規則/表項不生效。
¡ 指定高級ACL作為過濾器時,rule [ rule-id ] permit ip source sour-addr sour-wildcard destination dest-addr dest-wildcard中的source sour-addr sour-wildcard用來匹配路由的目的網絡地址,destination dest-addr dest-wildcard用來匹配路由的掩碼。需要注意的是,需要指定路由掩碼的點分十進製格式,例如,如果需要匹配3.3.3.0/24的路由,指定的規則應為rule [ rule-id ] permit ip source 3.3.3.0 0.0.0.255 destination 255.255.255.0 0.0.0.255。
· 使用路由策略作為過濾器時:
¡ BGP路由隻有能夠通過路由策略的permit模式節點的匹配,才能通過過濾策略的過濾。
¡ 路由策略按照節點序號從小到大的順序進行匹配。在該匹配順序下,路由匹配到了一個節點後,就不會繼續往下進行匹配(配置了continue子句的情況除外)。
¡ 如果路由策略中通過if-match命令指定了ACL或前綴列表,則BGP路由需要先通過ACL或前綴列表permit動作的匹配,再通過路由策略permit模式節點的匹配,才能通過過濾策略的過濾。
(1) 進入係統視圖。
system-view
(2) 進入BGP IPv4單播地址族視圖、BGP-VPN IPv4單播地址族視圖或BGP 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 IPv4組播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv4 multicast
(3) 配置BGP路由信息的接收策略。請至少選擇其中一項進行配置。
¡ 對從所有對等體接收的路由信息進行過濾。
filter-policy { ipv4-acl-number | 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 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 ipv6-prefix-list-name import
缺省情況下,不對接收的路由信息進行過濾。
僅BGP IPv4單播地址族支持IPv6參數。
(1) 進入係統視圖。
system-view
(2) 進入BGP IPv6單播地址族視圖、BGP-VPN IPv6單播地址族視圖或BGP 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 ]
¡ 請依次執行以下命令進入BGP IPv6組播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv6 multicast
(3) 配置BGP路由信息的接收策略。請至少選擇其中一項進行配置。
¡ 對從所有IPv6 BGP對等體接收的路由信息進行過濾。
filter-policy { ipv6-acl-number | prefix-list ipv6-prefix-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-name import
缺省情況下,不對接收的路由信息進行過濾。
僅BGP IPv6單播地址族支持IPv4參數。
為BGP對等體/對等體組配置SoO屬性後,從該BGP對等體/對等體組接收路由時設備會為路由增加SoO屬性,並且向該BGP對等體/對等體組發布路由時設備會檢查路由的SoO屬性,如果路由中攜帶的SoO屬性與為對等體/對等體組配置的SoO屬性相同,則不會將該路由發布給對等體/對等體組,從而避免路由環路。
(1) 進入係統視圖。
system-view
(2) 進入BGP IPv4單播地址族視圖、BGP-VPN IPv4單播地址族視圖或BGP 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 IPv4組播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv4 multicast
(3) 為BGP對等體/對等體組配置SoO屬性。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } soo site-of-origin
缺省情況下,沒有為BGP對等體/對等體組配置SoO屬性。
僅BGP IPv4單播地址族支持IPv6參數。
(1) 進入係統視圖。
system-view
(2) 進入BGP IPv6單播地址族視圖、BGP-VPN IPv6單播地址族視圖或BGP 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 ]
¡ 請依次執行以下命令進入BGP IPv6組播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv6 multicast
(3) 為BGP對等體/對等體組配置SoO屬性。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } soo site-of-origin
缺省情況下,沒有為BGP對等體/對等體組配置SoO屬性。
僅BGP IPv6單播地址族支持IPv4參數。
當對等體間建立了BGP會話後,它們定時向對端發送Keepalive消息,以防止路由器認為BGP會話已中斷。Keepalive消息的發送時間間隔稱為存活時間間隔。
若路由器在設定的會話保持時間(Holdtime)內未收到對端的Keepalive消息或Update消息,則認為此BGP會話已中斷,從而斷開此BGP會話。
用戶可以全局配置當前路由器上所有BGP會話的存活時間間隔與保持時間,也可以配置與指定對等體/對等體組建立的BGP會話的存活時間間隔和保持時間。如果同時配置了兩者,則為指定對等體/對等體組配置的值具有較高的優先級。
存活時間間隔、會話保持時間的協商及計算方法如下:
· 如果當前路由器上配置的保持時間與對端設備(對等體)上配置的保持時間不一致,則數值較小者作為協商後的保持時間。協商的保持時間為0時,不向對等體發送Keepalive消息,與對等體之間的會話永遠不會超時斷開。
· 存活時間間隔不為0時,將協商的保持時間的三分之一與配置的存活時間間隔比較,取最小值作為存活時間間隔。
配置的保持時間必須大於或等於存活時間的三倍。
本功能可以針對所有BGP會話配置,或僅針對特定的對等體/對等體組配置。對於特定的對等體/對等體組,與設備間BGP會話的存活時間間隔和保持時間以peer timer命令的配置為準,如果設備未指定該對等體/對等體組配置過peer timer命令,則采用timer命令的配置。
(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 ] } timer connect-retry retry-time
缺省情況下,本地路由器與對等體/對等體組之間重新建立BGP會話的時間間隔為32秒。
BGP路由發生變化時,BGP路由器會發送Update消息通知對等體。如果同一路由頻繁變化,BGP路由器會頻繁發送Update消息更新路由,導致路由震蕩。通過本配置指定向對等體/對等體組發布同一路由的更新時間間隔,可以避免每次路由變化都發送Update消息,避免路由震蕩。對於需要撤銷的路由,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) 配置向指定對等體/對等體組發布同一路由的時間間隔。
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日誌記錄功能,並使能與指定對等體/對等體組之間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模塊的告警功能後,當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上下文。
在完成上述配置後,在任意視圖下執行display命令可以顯示配置後BGP的運行情況,通過查看顯示信息驗證配置的效果。
表2-1 搭建基本BGP網絡配置顯示(IPv4單播)
操作 |
命令 |
顯示BGP IPv4單播對等體組的信息 |
display bgp [ instance instance-name ] group ipv4 [ unicast ] [ vpn-instance vpn-instance-name ] [ group-name group-name ] |
顯示通過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 ] 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 flap-info ipv4 [ unicast ] [ vpn-instance vpn-instance-name ] [ ipv4-address [ { mask-length | mask } [ longest-match ] ] | as-path-acl as-path-acl-number ] |
顯示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 | 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 IPv4單播地址族下打包組的相關信息 |
display bgp [ instance instance-name ] update-group ipv4 [ unicast ] [ vpn-instance vpn-instance-name ] [ ipv4-address ] display bgp [ instance instance-name ] update-group ipv4 [ unicast ] [ ipv6-address ] |
顯示所有BGP實例的信息 |
display bgp instance-info |
表2-2 搭建基本BGP網絡配置顯示(IPv6單播)
操作 |
命令 |
顯示BGP IPv6單播對等體組的信息 |
display bgp [ instance instance-name ] group ipv6 [ unicast ] [ vpn-instance vpn-instance-name ] [ group-name group-name ] |
顯示通過network命令發布的路由信息和通過network short-cut命令配置的Short-cut路由信息 |
display bgp [ instance instance-name ] network ipv6 [ unicast ] [ vpn-instance vpn-instance-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 flap-info ipv6 [ unicast ] [ vpn-instance vpn-instance-name ] [ ipv6-address prefix-length | as-path-acl as-path-acl-number ] |
顯示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 | 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 IPv6單播地址族下打包組的相關信息 |
display bgp [ instance instance-name ] update-group ipv6 [ unicast ] [ ipv4-address | ipv6-address ] display bgp [ instance instance-name ] update-group ipv6 [ unicast ] vpn-instance vpn-instance-name [ ipv6-address ] |
顯示所有BGP實例的信息 |
display bgp instance-info |
表2-3 搭建基本BGP網絡配置顯示(IPv4組播)
操作 |
命令 |
顯示BGP IPv4組播對等體組的信息 |
display bgp [ instance instance-name ] group ipv4 multicast [ group-name group-name ] |
顯示通過network命令發布的路由信息和通過network short-cut命令配置的Short-cut路由信息 |
display bgp [ instance instance-name ] network ipv4 multicast |
顯示BGP的路由屬性信息 |
display bgp [ instance instance-name ] paths [ as-regular-expression ] |
顯示BGP IPv4組播對等體或對等體組的狀態和統計信息 |
display bgp [ instance instance-name ] peer ipv4 multicast [ ipv4-address mask-length | { ipv4-address | group-name group-name } log-info | [ ipv4-address ] verbose ] |
顯示BGP IPv4組播路由的震蕩統計信息 |
display bgp [ instance instance-name ] routing-table flap-info ipv4 multicast [ ipv4-address [ { mask-length | mask } [ longest-match ] ] | as-path-acl as-path-acl-number ] |
顯示BGP IPv4組播路由信息 |
display bgp [ instance instance-name ] routing-table ipv4 multicast [ ipv4-address [ { mask-length | mask } [ longest-match ] ] | ipv4-address [ mask-length | mask ] advertise-info | as-path-acl as-path-acl-number | community-list { { basic-community-list-number | comm-list-name } [ whole-match ] | adv-community-list-number } | peer ipv4-address { advertised-routes | received-routes } [ ipv4-address [ mask-length | mask ] | statistics ] | statistics ] |
顯示BGP IPv4組播地址族下打包組的相關信息 |
display bgp [ instance instance-name ] update-group ipv4 multicast [ ipv4-address ] |
顯示所有BGP實例的信息 |
display bgp instance-info |
表2-4 搭建基本BGP網絡配置顯示(IPv6組播)
操作 |
命令 |
顯示BGP IPv6組播對等體組的信息 |
display bgp [ instance instance-name ] group ipv6 multicast [ group-name group-name ] |
顯示通過network命令發布的路由信息和通過network short-cut命令配置的Short-cut路由信息 |
display bgp [ instance instance-name ] network ipv6 multicast |
顯示BGP的路由屬性信息 |
display bgp [ instance instance-name ] paths [ as-regular-expression ] |
顯示BGP IPv6組播對等體或對等體組的狀態和統計信息 |
display bgp [ instance instance-name ] peer ipv6 multicast [ ipv6-address prefix-length | { ipv6-address | group-name group-name } log-info | [ ipv6-address ] verbose ] |
顯示BGP IPv6組播路由的震蕩統計信息 |
display bgp [ instance instance-name ] routing-table flap-info ipv6 multicast [ ipv6-address prefix-length | as-path-acl as-path-acl-number ] |
顯示BGP IPv6組播路由信息 |
display bgp [ instance instance-name ] routing-table ipv6 multicast [ ipv6-address prefix-length [ advertise-info ] | as-path-acl as-path-acl-number | 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 ] |
顯示BGP IPv6組播地址族下打包組的相關信息 |
display bgp [ instance instance-name ] update-group ipv6 multicast [ ipv6-address ] |
顯示所有BGP實例的信息 |
display bgp instance-info |
當BGP路由策略或協議發生變化後,如果需要通過複位BGP會話使新的配置生效,請在用戶視圖下進行下列配置。
複位BGP會話時,會造成短暫的BGP會話中斷。
表2-5 複位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 [ instance instance-name ] ipv6-address [ prefix-length ] ipv4 [ unicast ] |
複位IPv4組播地址族下的BGP會話 |
reset bgp [ instance instance-name ] { as-number | ipv4-address [ mask-length ] | all | external | group group-name | internal } ipv4 multicast |
複位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 [ instance instance-name ] ipv4-address [ mask-length ] ipv6 [ unicast ] |
複位IPv6組播地址族下的BGP會話 |
reset bgp [ instance instance-name ] { as-number | ipv6-address [ prefix-length ] | all | external | group group-name | internal } ipv6 multicast |
複位所有BGP會話 |
reset bgp [ instance instance-name ] all |
在用戶視圖下,執行reset命令可以清除BGP相關統計信息。
表2-6 清除BGP信息
操作 |
命令 |
清除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 IPv4組播路由的震蕩統計信息 |
reset bgp [ instance instance-name ] flap-info ipv4 multicast [ 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 | peer ipv6-address [ prefix-length ] ] |
清除BGP IPv6組播路由的震蕩統計信息 |
reset bgp [ instance instance-name ] flap-info ipv6 multicast [ ipv6-address prefix-length | as-path-acl as-path-acl-number | peer ipv6-address [ prefix-length ] ] |
如下圖所示,所有設備均運行BGP協議。要求Device A和Device B之間建立EBGP連接,Device B和Device C之間建立IBGP連接,使得Device C能夠訪問Device A直連的8.1.1.0/24網段。
圖2-1 BGP基本配置組網圖
(1) 配置各接口的IP地址(略)
(2) 根據組網圖中規劃的信息,將Device B的各接口加入對應的安全域。
<DeviceB> system-view
[DeviceB] security-zone name untrust
[DeviceB-security-zone-Untrust] import interface gigabitethernet 1/0/1
[DeviceB-security-zone-Untrust] quit
[DeviceB] security-zone name trust
[DeviceB-security-zone-Trust] import interface gigabitethernet 1/0/2
[DeviceB-security-zone-Trust] quit
(3) 配置安全策略
a. 配置安全策略放行Untrust與Local安全域之間的流量,用於Device A與Device B之間建立EBGP會話。
# 配置名稱為ebgplocalin的安全策略規則,使Device B可以接收來自Device A的BGP協議報文。
[DeviceB] security-policy ip
[DeviceB-security-policy-ip] rule name ebgplocalin
[DeviceB-security-policy-ip-0-ebgplocalin] source-zone untrust
[DeviceB-security-policy-ip-0-ebgplocalin] destination-zone local
[DeviceB-security-policy-ip-0-ebgplocalin] service bgp
[DeviceB-security-policy-ip-0-ebgplocalin] action pass
[DeviceB-security-policy-ip-0-ebgplocalin] quit
# 配置名稱為ebgplocalout的安全策略規則,使Device B可以向Device A發送BGP協議報文。
[DeviceB-security-policy-ip] rule name ebgplocalout
[DeviceB-security-policy-ip-1-ebgplocalout] source-zone local
[DeviceB-security-policy-ip-1-ebgplocalout] destination-zone untrust
[DeviceB-security-policy-ip-1-ebgplocalout] service bgp
[DeviceB-security-policy-ip-1-ebgplocalout] action pass
[DeviceB-security-policy-ip-1-ebgplocalout] quit
b. 配置安全策略放行Local與Trust安全域之間的流量,用於Device B與Device C之間建立IBGP會話。
# 配置名稱為bgplocalout的安全策略規則,使Device B可以向Device C發送BGP和OSPF協議的報文。
[DeviceB-security-policy-ip] rule name bgplocalout
[DeviceB-security-policy-ip-2-bgplocalout] source-zone local
[DeviceB-security-policy-ip-2-bgplocalout] destination-zone trust
[DeviceB-security-policy-ip-2-bgplocalout] service bgp
[DeviceB-security-policy-ip-2-bgplocalout] service ospf
[DeviceB-security-policy-ip-2-bgplocalout] action pass
[DeviceB-security-policy-ip-2-bgplocalout] quit
# 配置名稱為bgplocalin的安全策略規則,使Device B可以接收來自Device C的BGP和OSPF協議的報文。
[DeviceB-security-policy-ip] rule name bgplocalin
[DeviceB-security-policy-ip-3-bgplocalin] source-zone trust
[DeviceB-security-policy-ip-3-bgplocalin] destination-zone local
[DeviceB-security-policy-ip-3-bgplocalin] service bgp
[DeviceB-security-policy-ip-3-bgplocalin] service ospf
[DeviceB-security-policy-ip-3-bgplocalin] action pass
[DeviceB-security-policy-ip-3-bgplocalin] quit
c. 配置安全策略放行Trust與Untrust安全域之間的流量,使得Device C可以訪問Device A的直連網段8.1.1.0/24。
# 配置名稱為trust-untrust的安全策略規則,使Trust安全域和Untrust安全域之間的流量可以互通。
[DeviceB-security-policy-ip] rule name trust-untrust
[DeviceB-security-policy-ip-4-trust-untrust] source-zone trust
[DeviceB-security-policy-ip-4-trust-untrust] destination-zone untrust
[DeviceB-security-policy-ip-4-trust-untrust] source-ip-subnet 9.1.1.0 24
[DeviceB-security-policy-ip-4-trust-untrust] destination-ip-subnet 8.1.1.0 24
[DeviceB-security-policy-ip-4-trust-untrust] action pass
[DeviceB-security-policy-ip-4-trust-untrust] quit
[DeviceB-security-policy-ip] quit
(4) 配置IBGP連接
¡ 為了防止端口狀態不穩定引起路由震蕩,本舉例使用Loopback接口來創建IBGP對等體。
¡ 使用Loopback接口創建IBGP對等體時,因為Loopback接口不是兩對等體實際連接的接口,所以,必須使用peer connect-interface命令將Loopback接口配置為BGP連接的源接口。
¡ 在AS 65009內部,使用OSPF協議,保證Device B到Device C的Loopback接口路由可達。
# 配置Device B。
[DeviceB] bgp 65009
[DeviceB-bgp-default] router-id 2.2.2.2
[DeviceB-bgp-default] peer 3.3.3.3 as-number 65009
[DeviceB-bgp-default] peer 3.3.3.3 connect-interface loopback 0
[DeviceB-bgp-default] address-family ipv4 unicast
[DeviceB-bgp-default-ipv4] peer 3.3.3.3 enable
[DeviceB-bgp-default-ipv4] quit
[DeviceB-bgp-default] quit
[DeviceB] ospf 1
[DeviceB-ospf-1] area 0
[DeviceB-ospf-1-area-0.0.0.0] network 2.2.2.2 0.0.0.0
[DeviceB-ospf-1-area-0.0.0.0] network 9.1.1.0 0.0.0.255
[DeviceB-ospf-1-area-0.0.0.0] quit
[DeviceB-ospf-1] quit
# 配置Device C。
<DeviceC> system-view
[DeviceC] bgp 65009
[DeviceC-bgp-default] router-id 3.3.3.3
[DeviceC-bgp-default] peer 2.2.2.2 as-number 65009
[DeviceC-bgp-default] peer 2.2.2.2 connect-interface loopback 0
[DeviceC-bgp-default] address-family ipv4 unicast
[DeviceC-bgp-default-ipv4] peer 2.2.2.2 enable
[DeviceC-bgp-default-ipv4] quit
[DeviceC-bgp-default] quit
[DeviceC] ospf 1
[DeviceC-ospf-1] area 0
[DeviceC-ospf-1-area-0.0.0.0] network 3.3.3.3 0.0.0.0
[DeviceC-ospf-1-area-0.0.0.0] network 9.1.1.0 0.0.0.255
[DeviceC-ospf-1-area-0.0.0.0] quit
[DeviceC-ospf-1] quit
[DeviceC] 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 2 2 0 0 00:00:13 Established
以上顯示信息表明Device B和Device C之間的IBGP連接已經建立。
(5) 配置EBGP連接
¡ EBGP鄰居關係的兩台設備(通常屬於兩個不同運營商),處於不同的AS域,對端的Loopback接口一般路由不可達,所以一般使用直連地址建立EBGP鄰居。
¡ 因為要求Device C能夠訪問Device A直連的8.1.1.0/24網段,所以,建立EBGP連接後,需要將8.1.1.0/24網段路由通告到BGP路由表中。
# 配置Device A。
<DeviceA> system-view
[DeviceA] bgp 65008
[DeviceA-bgp-default] router-id 1.1.1.1
[DeviceA-bgp-default] peer 3.1.1.1 as-number 65009
[DeviceA-bgp-default] address-family ipv4 unicast
[DeviceA-bgp-default-ipv4] peer 3.1.1.1 enable
[DeviceA-bgp-default-ipv4] network 8.1.1.0 24
[DeviceA-bgp-default-ipv4] quit
[DeviceA-bgp-default] quit
# 配置Device B。
[DeviceB] bgp 65009
[DeviceB-bgp-default] peer 3.1.1.2 as-number 65008
[DeviceB-bgp-default] address-family ipv4 unicast
[DeviceB-bgp-default-ipv4] peer 3.1.1.2 enable
[DeviceB-bgp-default-ipv4] quit
[DeviceB-bgp-default] quit
# 查看Device B的BGP對等體的連接狀態。
[DeviceB] 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 4 4 0 0 00:02:49 Established
3.1.1.2 65008 2 2 0 0 00:00:05 Established
可以看出,Device B與Device C、Device B與Device A之間的BGP連接均已建立。
# 查看Device A的BGP路由表。
[DeviceA] 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
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
# 顯示Device B的BGP路由表。
[DeviceB] 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
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
# 顯示Device C的BGP路由表。
[DeviceC] 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
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
從路由表可以看出,Device A沒有學到AS 65009內部的任何路由,Device C雖然學到了AS 65008中的8.1.1.0的路由,但因為下一跳3.1.1.2不可達,所以也不是有效路由。
(6) 配置BGP引入直連路由
# 在Device B上配置BGP引入直連路由,以便Device A能夠獲取到網段9.1.1.0/24的路由,Device C能夠獲取到網段3.1.1.0/24的路由。
[DeviceB] bgp 65009
[DeviceB-bgp-default] address-family ipv4 unicast
[DeviceB-bgp-default-ipv4] import-route direct
[DeviceB-bgp-default-ipv4] quit
[DeviceB-bgp-default] quit
# 顯示Device A的BGP路由表。
[DeviceA] 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
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?
以上顯示信息表明,在Device B上引入直連路由後,Device A新增了到達2.2.2.2/32和9.1.1.0/24的兩條路由。
# 顯示Device C的BGP路由表。
[DeviceC] 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
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的路由變為有效路由,下一跳為Device A的地址。
# 使用Ping進行驗證,Device C能夠訪問Device A直連的8.1.1.0/24網段。
[DeviceC] 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
如下圖所示,所有設備均運行IPv6 BGP協議。Device A位於AS 65008;Device B和Device C位於AS 65009。要求Device A和Device B之間建立EBGP連接,Device B和Device C之間建立IBGP連接,使得Device C能夠訪問Device A直連的50::/64網段。
圖2-2 IPv6 BGP基本配置組網圖
(1) 配置各接口的IPv6地址及Loopback接口的IPv4地址(略)
(2) 根據組網圖中規劃的信息,將Device B各接口加入對應的安全域。
<DeviceB> system-view
[DeviceB] security-zone name untrust
[DeviceB-security-zone-Untrust] import interface gigabitethernet 1/0/1
[DeviceB-security-zone-Untrust] quit
[DeviceB] security-zone name trust
[DeviceB-security-zone-Trust] import interface gigabitethernet 1/0/2
[DeviceB-security-zone-Trust] quit
(3) 配置安全策略
a. 配置安全策略放行Untrust與Local安全域之間的流量,用於Device A與Device B之間建立EBGP會話。
# 配置名稱為ebgplocalin的安全策略規則,使Device B可以接收來自Device A的BGP協議報文。
[DeviceB] security-policy ipv6
[DeviceB-security-policy-ipv6] rule name ebgplocalin
[DeviceB-security-policy-ipv6-0-ebgplocalin] source-zone untrust
[DeviceB-security-policy-ipv6-0-ebgplocalin] destination-zone local
[DeviceB-security-policy-ipv6-0-ebgplocalin] service bgp
[DeviceB-security-policy-ipv6-0-ebgplocalin] action pass
[DeviceB-security-policy-ipv6-0-ebgplocalin] quit
# 配置名稱為ebgplocalout的安全策略規則,使Device B可以向Device A發送BGP協議報文。
[DeviceB-security-policy-ipv6] rule name ebgplocalout
[DeviceB-security-policy-ipv6-1-ebgplocalout] source-zone local
[DeviceB-security-policy-ipv6-1-ebgplocalout] destination-zone untrust
[DeviceB-security-policy-ipv6-1-ebgplocalout] service bgp
[DeviceB-security-policy-ipv6-1-ebgplocalout] action pass
[DeviceB-security-policy-ipv6-1-ebgplocalout] quit
b. 配置安全策略放行Local與Trust安全域之間的流量,用於Device B與Device C之間建立IBGP會話。
# 配置名稱為bgplocalout的安全策略規則,使Device B可以向Device C發送BGP協議報文。
[DeviceB-security-policy-ipv6] rule name bgplocalout
[DeviceB-security-policy-ipv6-2-bgplocalout] source-zone local
[DeviceB-security-policy-ipv6-2-bgplocalout] destination-zone trust
[DeviceB-security-policy-ipv6-2-bgplocalout] service bgp
[DeviceB-security-policy-ipv6-2-bgplocalout] action pass
[DeviceB-security-policy-ipv6-2-bgplocalout] quit
c. 配置安全策略放行Trust與Untrust安全域之間的流量,使得Device C可以訪問Device A的直連網段8.1.1.0/24。
# 配置名稱為trust-untrust的安全策略規則,使Trust安全域和Untrust安全域之間的流量可以互通。
[DeviceB-security-policy-ipv6] rule name trust-untrust
[DeviceB-security-policy-ipv6-3-trust-untrust] source-zone trust
[DeviceB-security-policy-ipv6-3-trust-untrust] destination-zone untrust
[DeviceB-security-policy-ipv6-3-trust-untrust] source-ip-subnet 9:: 64
[DeviceB-security-policy-ipv6-3-trust-untrust] destination-ip-subnet 50:: 64
[DeviceB-security-policy-ipv6-3-trust-untrust] action pass
[DeviceB-security-policy-ipv6-3-trust-untrust] quit
[DeviceB-security-policy-ipv6] quit
(4) 配置IBGP連接
# 配置Device B。
[DeviceB] bgp 65009
[DeviceB-bgp-default] router-id 2.2.2.2
[DeviceB-bgp-default] peer 9::2 as-number 65009
[DeviceB-bgp-default] address-family ipv6
[DeviceB-bgp-default-ipv6] peer 9::2 enable
[DeviceB-bgp-default-ipv6] quit
# 配置Device C。
<DeviceC> system-view
[DeviceC] bgp 65009
[DeviceC-bgp-default] router-id 3.3.3.3
[DeviceC-bgp-default] peer 9::1 as-number 65009
[DeviceC-bgp-default] address-family ipv6
[DeviceC-bgp-default-ipv6] peer 9::1 enable
(5) 配置EBGP連接
# 配置Device A。
<DeviceA> system-view
[DeviceA] bgp 65008
[DeviceA-bgp-default] router-id 1.1.1.1
[DeviceA-bgp-default] peer 10::1 as-number 65009
[DeviceA-bgp-default] address-family ipv6
[DeviceA-bgp-default-ipv6] peer 10::1 enable
# 配置Device B。
[DeviceB-bgp-default] peer 10::2 as-number 65008
[DeviceB-bgp-default] address-family ipv6
[DeviceB-bgp-default-ipv6] peer 10::2 enable
(6) 配置通過IPv6 BGP發布的網段路由
# 配置Device A。
[DeviceA-bgp-default-ipv6] network 10:: 64
[DeviceA-bgp-default-ipv6] network 50:: 64
[DeviceA-bgp-default-ipv6] quit
[DeviceA-bgp-default] quit
# 配置Device B。
[DeviceB-bgp-default-ipv6] network 10:: 64
[DeviceB-bgp-default-ipv6] network 9:: 64
[DeviceB-bgp-default-ipv6] quit
[DeviceB-bgp-default] quit
# 配置Device C。
[DeviceC-bgp-default-ipv6] network 9:: 64
[DeviceC-bgp-default-ipv6] quit
[DeviceC-bgp-default] quit
# 在Device B上查看IPv6 BGP對等體的信息。可以看出,Device A和Device B之間建立了EBGP連接,Device B和Device C之間建立了IBGP連接。
[DeviceB] 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
# 在Device A上查看IPv6 BGP路由表信息。可以看出,Device A學習到了AS 65009內的路由信息。
[DeviceA] 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
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
# 在Device C上查看IPv6 BGP路由表信息。可以看出,Device C學習到了到達50::/64網段的路由。
[DeviceC] 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
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
# 使用Ping進行驗證,Device C能夠訪問Device A直連的50::/64網段。
[DeviceC]ping ipv6 50::1
Ping6(56 data bytes) 9::2 --> 50::1, press CTRL+C to break
56 bytes from 50::1, icmp_seq=0 hlim=63 time=1.000 ms
56 bytes from 50::1, icmp_seq=1 hlim=63 time=1.000 ms
56 bytes from 50::1, icmp_seq=2 hlim=63 time=2.000 ms
56 bytes from 50::1, icmp_seq=3 hlim=63 time=1.000 ms
56 bytes from 50::1, icmp_seq=4 hlim=63 time=1.000 ms
--- Ping6 statistics for 50::1 ---
5 packet(s) transmitted, 5 packet(s) received, 0.0% packet loss
round-trip min/avg/max/std-dev = 1.000/1.200/2.000/0.400 ms
使用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連接是否正常。
(9) 檢查是否配置了禁止TCP端口179的ACL。
大規模BGP網絡配置任務如下:
· 配置BGP團體
· 配置BGP聯盟
¡ (可選)配置聯盟兼容性
通過配置BGP路由衰減,可以抑製不穩定的路由信息,不允許這類路由參與路由選擇。
本配置隻對EBGP路由生效,對IBGP路由無效。
配置本功能後,EBGP鄰居down了之後,來自該鄰居的路由不會被刪除,而是進行路由衰減。
主備倒換後,BGP路由的衰減過程和衰減信息會被重置,設備需要重新計算BGP路由的衰減機製。
(1) 進入係統視圖。
system-view
(2) 進入BGP IPv4單播地址族視圖、BGP-VPN IPv4單播地址族視圖或BGP 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 IPv4組播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv4 multicast
(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 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 ]
¡ 請依次執行以下命令進入BGP IPv6組播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv6 multicast
(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) 創建路由策略,並進入該路由策略視圖。
route-policy route-policy-name { deny | permit } node node-number
有關本命令的詳細介紹,請參見“三層技術-IP路由命令參考”中的“路由策略”。
(3) (可選)配置if-match子句。BGP路由隻有能夠被允許模式的路由策略節點匹配,才能夠被添加或修改團體屬性。
有關if-match子句的詳細配置,請參見“三層技術-IP路由配置指導”中的“路由策略”。
(4) 配置BGP路由的團體屬性和擴展團體屬性。
¡ 配置BGP路由的團體屬性。
apply community { none | additive | { community-number&<1-32> | aa:nn&<1-32> | internet | no-advertise | no-export | no-export-subconfed } * [ additive ] }
¡ 刪除BGP路由的團體屬性。
apply comm-list { comm-list-number | comm-list-name } delete
¡ 配置BGP路由的Route Target擴展團體屬性。
apply extcommunity { rt route-target }&<1-32> [ additive ]
¡ 配置BGP路由的Color擴展團體屬性。
apply extcommunity color color [ additive ]
有關本步驟命令的詳細介紹,請參見“三層技術-IP路由命令參考”中的“路由策略”。
(5) 退回係統視圖。
quit
(6) 進入BGP IPv4單播地址族視圖、BGP-VPN IPv4單播地址族視圖或BGP 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 IPv4組播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv4 multicast
(7) 配置向對等體/對等體組發布團體屬性。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } advertise-community
缺省情況下,不向對等體/對等體組發布團體屬性。
僅BGP IPv4單播地址族支持IPv6參數。
(8) 配置向對等體/對等體組發布擴展團體屬性。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } advertise-ext-community
缺省情況下,不向對等體/對等體組發布擴展團體屬性。
僅BGP IPv4單播地址族支持IPv6參數。
(9) 對發布給對等體/對等體組的路由指定路由策略。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } route-policy route-policy-name export
缺省情況下,不指定對等體/對等體組的路由策略。
僅BGP IPv4單播地址族支持IPv6參數。
(1) 進入係統視圖。
system-view
(2) 創建路由策略,並進入該路由策略視圖。
route-policy route-policy-name { deny | permit } node node-number
有關本命令的詳細介紹,請參見“三層技術-IP路由命令參考”中的“路由策略”。
(3) (可選)配置if-match子句。BGP路由隻有能夠被允許模式的路由策略節點匹配,才能夠被添加或修改團體屬性。
有關if-match子句的詳細配置,請參見“三層技術-IP路由配置指導”中的“路由策略”。
(4) 配置BGP路由的團體屬性和擴展團體屬性。
¡ 配置BGP路由的團體屬性。
apply community { none | additive | { community-number&<1-32> | aa:nn&<1-32> | internet | no-advertise | no-export | no-export-subconfed } * [ additive ] }
¡ 刪除BGP路由的團體屬性。
apply comm-list { comm-list-number | comm-list-name } delete
¡ 配置BGP路由的Route Target擴展團體屬性。
apply extcommunity { rt route-target }&<1-32> [ additive ]
¡ 配置BGP路由的Color擴展團體屬性。
apply extcommunity color color [ additive ]
有關本步驟命令的詳細介紹,請參見“三層技術-IP路由命令參考”中的“路由策略”。
(5) 退回係統視圖。
quit
(6) 進入BGP IPv6單播地址族視圖、BGP-VPN IPv6單播地址族視圖或BGP 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 ]
¡ 請依次執行以下命令進入BGP IPv6組播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv6 multicast
(7) 配置向對等體/對等體組發布團體屬性。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } advertise-community
缺省情況下,不向IPv6 BGP對等體/對等體組發布團體屬性。
僅BGP IPv6單播地址族支持IPv4參數。
(8) 配置向對等體/對等體組發布擴展團體屬性。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } advertise-ext-community
缺省情況下,不向IPv6 BGP對等體/對等體組發布擴展團體屬性。
僅BGP IPv6單播地址族支持IPv4參數。
(9) 對發布給IPv6 BGP對等體/對等體組的路由指定路由策略。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } route-policy route-policy-name export
缺省情況下,不指定對等體/對等體組的路由策略。
僅BGP IPv6單播地址族支持IPv4參數。
如果同一個AS內有多個BGP路由器,為了減少在同一AS內建立的IBGP連接數,可以將一台BGP路由器配置為路由反射器,其他路由器作為前者的客戶機,使反射器和它的客戶機組成為一個集群。集群內部通過路由反射器在客戶機之間反射路由,各客戶機之間不需要建立BGP連接即可交換路由信息。
為了增加網絡的可靠性和防止單點故障,可以在一個集群中配置一個以上的路由反射器,這時,網絡管理員必須給位於相同集群中的每個路由反射器配置相同的集群ID,以避免路由環路。
當一台路由反射器可能連接網絡中的多個集群時,可以為不同對等體/對等體組指定集群ID,以便對路由反射進行更精細控製。
BGP路由反射功能僅需在作為反射器的設備上進行配置,其他設備不需要感知本機在反射功能中作為客戶機或是非客戶機。
設備被配置為路由反射器後,發布路由的規則如下:
· 將從IBGP對等體中非客戶機設備收到的路由,發布給本反射器的所有客戶機;
· 將從IBGP對等體中客戶機收到的路由,發布給本反射器所有的非客戶機和客戶機;
· 將從所有EBGP對等體收到的路由,發布給本反射器所有的非客戶機和客戶機。
為了防止路由循環,缺省情況下,路由反射器在反射路由時不允許修改任何BGP路由屬性。但在某些特殊場景下,網絡管理員需要對網絡流量進行重新規劃時,需要修改BGP路由的屬性,此時可以配置reflect change-path-attribute命令,允許路由反射器在反射BGP路由時修改路由的屬性。配置reflect change-path-attribute命令後,可以通過peer route-policy export命令修改發布路由的路由屬性,在peer route-policy export命令指定的路由策略中,可以通過apply命令生效的路由屬性修改包括:
· 通過apply origin命令修改路由的源屬性。
· 通過apply ip-address next-hop或apply ipv6 next-hop命令修改路由的下一跳屬性。
· 通過apply cost命令修改路由的MED屬性。
· 通過apply local-preference命令修改路由的本地優先級屬性。
· 通過apply community命令為路由添加、修改團體屬性。如需向BGP對等體發布攜帶團體屬性的路由,需要執行peer advertise-community命令開啟向對等體發布攜帶團體屬性路由的能力。
· 通過apply comm-list delete命令刪除路由攜帶的團體屬性。
· 通過apply extcommunity命令為路由添加、修改擴展團體屬性中的Route Target屬性。如需向BGP對等體發布攜帶擴展團體屬性的路由,需要執行peer advertise-ext-community命令開啟向對等體發布攜帶擴展團體屬性路由的能力。
· 通過apply extcommunity color命令為路由添加、修改Color擴展團體屬性。
有關上述apply命令的詳細介紹,請參見“三層技術-IP路由命令參考”中的“路由策略”。
(1) 進入係統視圖。
system-view
(2) 進入BGP IPv4單播地址族視圖、BGP-VPN IPv4單播地址族視圖或BGP 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 IPv4組播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv4 multicast
(3) 配置本機作為路由反射器,對等體/對等體組作為路由反射器的客戶機。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } reflect-client
缺省情況下,未配置路由反射器及其客戶機。
僅BGP IPv4單播地址族支持IPv6參數。
(4) (可選)允許路由反射器在客戶機之間反射路由。
reflect between-clients
缺省情況下,允許路由反射器在客戶機之間反射路由。
(5) (可選)配置路由反射器的集群ID。
reflector cluster-id { cluster-id | ipv4-address }
缺省情況下,每個路由反射器都使用自己的Router ID作為集群ID。
(6) (可選)允許路由反射器反射路由時修改路由屬性。
reflect change-path-attribute
缺省情況下,不允許路由反射器反射路由時修改路由屬性。
BGP IPv4組播地址族視圖下不支持本配置。
(1) 進入係統視圖。
system-view
(2) 進入BGP IPv6單播地址族視圖、BGP-VPN IPv6單播地址族視圖或BGP 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 ]
¡ 請依次執行以下命令進入BGP IPv6組播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv6 multicast
(3) 配置本機作為路由反射器,對等體/對等體組作為路由反射器的客戶機。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } reflect-client
缺省情況下,未配置路由反射器及其客戶機。
僅BGP IPv6單播地址族支持IPv4參數。
(4) (可選)允許路由反射器在客戶機之間反射路由。
reflect between-clients
缺省情況下,允許路由反射器在客戶機之間反射路由。
BGP-VPN IPv6單播地址族視圖不支持本命令。
(5) (可選)配置路由反射器的集群ID。
reflector cluster-id { cluster-id | ipv4-address }
缺省情況下,每個路由反射器都使用自己的Router ID作為集群ID。
BGP-VPN IPv6單播地址族視圖不支持本命令。
(6) (可選)允許路由反射器反射路由時修改路由屬性。
reflect change-path-attribute
缺省情況下,不允許路由反射器反射路由時修改路由屬性。
BGP IPv6組播地址族視圖下不支持本配置。
路由反射器從某個對等體接收到路由後,在反射該路由之前為其添加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實現聯盟的路由器互通。
在完成上述配置後,在任意視圖下執行display命令可以顯示配置後BGP的運行情況,通過查看顯示信息驗證配置的效果。
表3-1 大規模BGP網絡配置顯示(IPv4單播)
操作 |
命令 |
顯示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 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 ] |
表3-2 大規模BGP網絡配置顯示(IPv6單播)
操作 |
命令 |
顯示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 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 ] |
表3-3 大規模BGP網絡配置顯示(IPv4組播)
操作 |
命令 |
顯示BGP IPv4組播對等體組的信息 |
display bgp [ instance instance-name ] group ipv4 multicast [ group-name group-name ] |
顯示BGP IPv4組播對等體或對等體組的狀態和統計信息 |
display bgp [ instance instance-name ] peer ipv4 multicast [ ipv4-address mask-length | { ipv4-address | group-name group-name } log-info | [ ipv4-address ] verbose ] |
顯示衰減的BGP IPv4組播路由信息 |
display bgp [ instance instance-name ] routing-table dampened ipv4 multicast |
顯示BGP IPv4組播路由的震蕩統計信息 |
display bgp [ instance instance-name ] routing-table flap-info ipv4 multicast [ ipv4-address [ { mask-length | mask } [ longest-match ] ] | as-path-acl as-path-acl-number ] |
顯示BGP IPv4組播路由的路由衰減參數 |
display bgp [ instance instance-name ] dampening parameter ipv4 multicast |
表3-4 大規模BGP網絡配置顯示(IPv6組播)
操作 |
命令 |
顯示BGP IPv6組播對等體組的信息 |
display bgp [ instance instance-name ] group ipv6 multicast [ group-name group-name ] |
顯示BGP IPv6組播對等體或對等體組的狀態和統計信息 |
display bgp [ instance instance-name ] peer ipv6 multicast [ ipv6-address prefix-length | { ipv6-address | group-name group-name } log-info | [ ipv6-address ] verbose ] |
顯示衰減的BGP IPv6組播路由信息 |
display bgp [ instance instance-name ] routing-table dampened ipv6 multicast |
顯示BGP IPv6組播路由的震蕩統計信息 |
display bgp [ instance instance-name ] routing-table flap-info ipv6 multicast [ ipv6-address prefix-length | as-path-acl as-path-acl-number ] |
顯示BGP IPv6組播路由的路由衰減參數 |
display bgp [ instance instance-name ] dampening parameter ipv6 multicast |
BGP具有很多路由屬性,通過配置這些屬性可以控製BGP路徑的選擇。
控製BGP路徑選擇的配置任務如下:
(1) 配置BGP的路由優先級
(2) 配置NEXT_HOP屬性
(3) 為接收路由分配首選值
(4) 配置本地優先級的缺省值
(5) 配置AS_PATH屬性
¡ 配置發送BGP更新消息時AS_PATH屬性中不攜帶私有AS號
(6) 配置MED屬性
¡ 配置MED缺省值
¡ 配置允許比較來自同一聯盟不同子自治係統鄰居路由的MED屬性值
(7) 提高鄰居路由參與優選時的優先級
(8) 配置BGP在選擇最優路由時忽略IGP Metric的比較
路由器上可能同時運行多個動態路由協議,存在各個路由協議之間路由信息共享和選擇的問題。係統為每一種路由協議設置一個優先級,在不同協議發現同一條路由時,優先級高的路由將被優先選擇。路由的優先級數值越小表明路由的優先級越高。
用戶可以通過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 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 IPv4組播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv4 multicast
(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 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 ]
¡ 請依次執行以下命令進入BGP IPv6組播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv6 multicast
(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 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 IPv4組播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv4 multicast
(3) 配置向對等體/對等體組發布路由時,將下一跳屬性修改為自身的地址。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } next-hop-local
缺省情況下,設備向EBGP對等體發布路由時,如果建立的是直連EBGP會話,且路由的下一跳與建立EBGP會話使用的直連接口在同一網段,則不修改路由的下一跳屬性;其他情況下,都將下一跳屬性修改為自身的地址。設備向IBGP對等體/對等體組發布路由時,不修改下一跳屬性。設備向IBGP對等體發送形成了等價的BGP路由時,修改其中最優路由的下一跳地址為本地地址。
僅BGP IPv4單播地址族支持IPv6參數。
(1) 進入係統視圖。
system-view
(2) 進入BGP IPv6單播地址族視圖、BGP-VPN IPv6單播地址族視圖或BGP 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 ]
¡ 請依次執行以下命令進入BGP IPv6組播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv6 multicast
(3) 配置向對等體/對等體組發布路由時,將下一跳屬性修改為自身的地址。
peer { group-name | ipv6-address [ prefix-length ] } next-hop-local
缺省情況下,設備向EBGP對等體發布路由時,如果建立的是直連EBGP會話,且路由的下一跳與建立EBGP會話使用的直連接口在同一網段,則不修改路由的下一跳屬性;其他情況下,都將下一跳屬性修改為自身的地址。設備向IBGP對等體/對等體組發布路由時,不修改下一跳屬性。設備向IBGP對等體發送形成了等價的BGP路由時,修改其中最優路由的下一跳地址為本地地址。
BGP選擇路由時首先丟棄下一跳不可達的路由,其次優選Preferred-value值最大的路由。通過本配置,可以修改路由的Preferred-value,以便控製BGP路徑的選擇。
缺省情況下,從對等體/對等體組學到的路由的首選值為0,網絡管理員可以為從某個對等體/對等體組接收的路由配置首選值,從而提高從指定對等體/對等體組學到的路由的優先級。
(1) 進入係統視圖。
system-view
(2) 進入BGP IPv4單播地址族視圖、BGP-VPN IPv4單播地址族視圖或BGP 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 IPv4組播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv4 multicast
(3) 為從對等體/對等體組接收的路由分配首選值。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } preferred-value value
缺省情況下,從對等體/對等體組接收的路由的首選值為0。
僅BGP IPv4單播地址族支持IPv6參數。
(1) 進入係統視圖。
system-view
(2) 進入BGP IPv6單播地址族視圖、BGP-VPN IPv6單播地址族視圖或BGP 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 ]
¡ 請依次執行以下命令進入BGP IPv6組播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv6 multicast
(3) 為從IPv6 BGP對等體/對等體組接收的路由分配首選值。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } preferred-value value
缺省情況下,從IPv6 BGP對等體/對等體組接收的路由的首選值為0。
僅BGP IPv6單播地址族支持IPv4參數。
本地優先級用來判斷流量離開AS時的最佳路由。當BGP路由器通過不同的IBGP對等體得到目的地址相同但下一跳不同的多條路由時,將優先選擇本地優先級較高的路由。
用戶可以通過本配置改變BGP路由器向IBGP對等體發送的路由本地優先級的缺省值。
(1) 進入係統視圖。
system-view
(2) 進入BGP IPv4單播地址族視圖、BGP-VPN IPv4單播地址族視圖或BGP 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 IPv4組播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv4 multicast
(3) 配置本地優先級的缺省值。
default local-preference value
缺省情況下,本地優先級的缺省值為100。
(1) 進入係統視圖。
system-view
(2) 進入BGP IPv6單播地址族視圖、BGP-VPN IPv6單播地址族視圖或BGP 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 ]
¡ 請依次執行以下命令進入BGP IPv6組播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv6 multicast
(3) 配置本地優先級的缺省值。
default local-preference value
缺省情況下,本地優先級的缺省值為100。
通常情況下,BGP會檢查對等體發來的路由的AS_PATH屬性,如果其中已存在本地AS號,則BGP會忽略此路由,以免形成路由環路。
但是,在某些特殊的組網環境下,需要允許本地AS號在接收路由的AS_PATH屬性中出現,否則無法正確發布路由。通過本配置,可以允許本地AS號在所接收的路由的AS_PATH屬性中出現,並可同時配置允許出現的次數。
(1) 進入係統視圖。
system-view
(2) 進入BGP IPv4單播地址族視圖、BGP-VPN IPv4單播地址族視圖或BGP 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 IPv4組播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv4 multicast
(3) 配置允許本地AS號在對等體/對等體組接收路由的AS_PATH屬性中出現,並配置允許出現的次數。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } allow-as-loop [ number ]
缺省情況下,不允許本地AS號在接收路由的AS_PATH屬性中出現。
僅BGP IPv4單播地址族支持IPv6參數。
(1) 進入係統視圖。
system-view
(2) 進入BGP IPv6單播地址族視圖、BGP-VPN IPv6單播地址族視圖或BGP 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 ]
¡ 請依次執行以下命令進入BGP IPv6組播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv6 multicast
(3) 配置允許本地AS號在對等體/對等體組接收路由的AS_PATH屬性中出現,並配置允許出現的次數。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } allow-as-loop [ number ]
缺省情況下,不允許本地AS號在接收路由的AS_PATH屬性中出現。
僅BGP IPv6單播地址族支持IPv4參數。
路由器在選擇最優路由時會優選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 [ all-instance ]
缺省情況下,BGP將AS_PATH屬性作為選擇最優路由的一個條件。
僅BGP實例視圖支持all-instance參數。
進行係統移植時,例如,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 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 IPv4組播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv4 multicast
(3) 配置向指定EBGP對等體/對等體組發送BGP更新消息時隻攜帶公有AS號,不攜帶私有AS號。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } public-as-only
缺省情況下,向EBGP對等體/對等體組發送BGP更新消息時,既可以攜帶公有AS號,又可以攜帶私有AS號。
僅BGP IPv4單播地址族支持IPv6參數。
(1) 進入係統視圖。
system-view
(2) 進入BGP IPv6單播地址族視圖、BGP-VPN IPv6單播地址族視圖或BGP 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 ]
¡ 請依次執行以下命令進入BGP IPv6組播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv6 multicast
(3) 配置向指定EBGP對等體/對等體組發送BGP更新消息時隻攜帶公有AS號,不攜帶私有AS號。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } public-as-only
缺省情況下,向EBGP對等體/對等體組發送BGP更新消息時,既可以攜帶公有AS號,又可以攜帶私有AS號。
本命令隻適用於EBGP對等體和對等體組。
僅BGP IPv6單播地址族支持IPv4參數。
缺省情況下,從EBGP鄰居學到路由後,會檢測路由的第一個AS號。如果此AS號不是EBGP對等體的AS號,且不是私有AS號,則斷開與該對等體的BGP會話。
通過本配置,可以忽略對EBGP路由第一個AS號的檢測。
用戶可以全局配置不檢測從任意EBGP鄰居收到路由的第一個AS號,也可以配置不檢測從指定EBGP鄰居收到路由的第一個AS號。對於一個EBGP鄰居而言,隻要通過任意一種方式配置不檢測第一個AS號,則設備不會檢測從該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號。
MED用來判斷流量進入AS時的最佳路由。當一個BGP路由器通過不同的EBGP對等體得到目的地址相同但下一跳不同的多條路由時,在其它條件相同的情況下,將優先選擇MED屬性值較小者作為最佳路由。
(1) 進入係統視圖。
system-view
(2) 進入BGP IPv4單播地址族視圖、BGP-VPN IPv4單播地址族視圖或BGP 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 IPv4組播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv4 multicast
(3) 配置MED的缺省值。
default med med-value
缺省情況下,MED的缺省值為0。
(1) 進入係統視圖。
system-view
(2) 進入BGP IPv6單播地址族視圖、BGP-VPN IPv6單播地址族視圖或BGP 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 ]
¡ 請依次執行以下命令進入BGP IPv6組播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv6 multicast
(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 [ all-instance ]
缺省情況下,不會對來自同一AS的路由進行MED排序優選。
僅BGP實例視圖支持all-instance參數。
隻有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 [ all-instance ]
缺省情況下,不比較來自同一聯盟不同子自治係統鄰居路由的MED屬性值。
僅BGP實例視圖支持all-instance參數。
缺省情況下,BGP不為指定對等體/對等體組設置對等體高優先級,按照“1.6 BGP的選路規則”進行路由優選。執行本配置後,從配置中指定的對等體/對等體組、其他對等體/對等體組學習到相同前綴的路由時,優選從本配置指定的對等體/對等體組學習到路由。該選路規則應用於“依次選擇從EBGP、聯盟EBGP、聯盟IBGP、IBGP學來的路由”之後,“優選IGP Metric值最小的路由”之前。
(1) 進入係統視圖。
system-view
(2) 進入BGP IPv4單播地址族視圖、BGP-VPN IPv4單播地址族視圖或BGP 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 IPv4組播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv4 multicast
(3) 為指定對等體/對等體組設置高優先級,路由選路時優選從該對等體/對等體組學習到的路由。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } high-priority
缺省情況下,BGP不為指定對等體/對等體組設置高優先級,選路規則不發生變化。
僅BGP IPv4單播地址族支持IPv6參數。
(1) 進入係統視圖。
system-view
(2) 進入BGP IPv6單播地址族視圖、BGP-VPN IPv6單播地址族視圖或BGP 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 ]
¡ 請依次執行以下命令進入BGP IPv6組播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv6 multicast
(3) 為指定對等體/對等體組設置高優先級,路由選路時優選從該對等體/對等體組學習到的路由。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } high-priority
缺省情況下,BGP不為指定對等體/對等體組設置高優先級,選路規則不發生變化。
僅BGP IPv6單播地址族支持IPv4參數。
從多個鄰居收到多條相同前綴但不同路徑的路由時,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 [ all-instance ]
缺省情況下,BGP將IGP Metric作為選擇最優路由的一個條件。
僅BGP實例視圖支持all-instance參數。
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 [ all-instance ]
缺省情況下,BGP在選擇最優路由時會優選Router ID最小的路由器發布的路由。
僅BGP實例視圖支持all-instance參數。
在完成上述配置後,在任意視圖下執行display命令可以顯示配置後BGP的運行情況,通過查看顯示信息驗證配置的效果。
表4-1 控製BGP路徑的選擇配置顯示(IPv4單播)
操作 |
命令 |
顯示BGP的路由屬性信息 |
display bgp [ instance instance-name ] paths [ as-regular-expression ] |
表4-2 控製BGP路徑的選擇配置顯示(IPv6單播)
操作 |
命令 |
顯示BGP的路由屬性信息 |
display bgp [ instance instance-name ] paths [ as-regular-expression ] |
表4-3 控製BGP路徑的選擇配置顯示(IPv4組播)
操作 |
命令 |
顯示BGP的路由屬性信息 |
display bgp [ instance instance-name ] paths [ as-regular-expression ] |
表4-4 控製BGP路徑的選擇配置顯示(IPv6組播)
操作 |
命令 |
顯示BGP的路由屬性信息 |
display bgp [ instance instance-name ] paths [ as-regular-expression ] |
調整和優化BGP網絡配置任務如下:
· 調整和優化EBGP會話的建立與複位
· 調整BGP會話的建立、中斷與軟複位
¡ 配置BGP軟複位
· 配置標簽申請方式
當前路由器要與另外一個路由器建立EBGP會話,它們之間必須具有直連的物理鏈路,且必須使用直連接口建立會話。如果不滿足這一要求,則必須使用peer ebgp-max-hop命令允許它們經過多跳建立EBGP會話。
配置BGP GTSM功能後,隻要本地設備和指定的對等體通過了GTSM檢查,就允許在二者之間建立EBGP會話,不管二者之間的跳數是否超過peer ebgp-max-hop命令指定的跳數範圍。
建議不要指定直連EBGP對等體/對等體組配置peer ebgp-max-hop命令,否則可能導致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會話,同時指定允許的最大跳數。
peer { group-name | ipv4-address [ mask-length ] } ebgp-max-hop [ hop-count ]
缺省情況下,不允許同非直連網絡上的鄰居建立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) 配置允許本地路由器同非直連網絡上的鄰居建立EBGP會話,同時指定允許的最大跳數。
peer { group-name | ipv6-address [ prefix-length ] } ebgp-max-hop [ hop-count ]
缺省情況下,不允許同非直連網絡上的鄰居建立EBGP會話。
未使能直連EBGP會話快速複位功能時,連接直連EBGP對等體的鏈路down後,本地路由器不會立即斷開與EBGP對等體的會話,而是等待會話保持時間(Holdtime)超時後,才斷開該會話。此時鏈路震蕩不會影響EBGP會話的狀態。
使能直連EBGP會話快速複位功能後,連接直連EBGP對等體的鏈路down時,本地路由器會立即斷開與EBGP對等體的會話,並重新與該對等體建立EBGP會話,從而實現快速發現鏈路故障並重建會話。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
(3) 使能直連EBGP會話快速複位功能。
ebgp-interface-sensitive
缺省情況下,直連EBGP會話快速複位功能處於使能狀態。
設備支持4字節的AS號,即AS號取值占用4字節,取值範圍為1~4294967295。缺省情況下,設備在與對端設備建立BGP會話時,通過Open消息通告對端設備本端支持4字節的AS號。如果對端設備不支持4字節AS號(隻支持2字節AS號),則會導致會話協商失敗。此時,在本端與對端設備之間使能4字節AS號抑製功能,可以使得本端設備通過Open消息向對端設備謊稱自己不支持4字節的AS號,從而確保本端和對端設備之間可以成功建立BGP會話。
對端設備支持4字節AS號,且對端設備的AS號大於65535時,請不要使能4字節AS號抑製功能,否則會導致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) 使能4字節AS號抑製功能。
peer { group-name | ipv4-address [ mask-length ] } capability-advertise suppress-4-byte-as
缺省情況下, 4字節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) 使能4字節AS號抑製功能。
peer { group-name | ipv6-address [ prefix-length ] } capability-advertise suppress-4-byte-as
缺省情況下,4字節AS號抑製功能處於關閉狀態。
由於網絡升級維護等原因,需要暫時斷開與對等體/對等體組的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) 禁止與對等體/對等體組建立會話。
peer { group-name | ipv4-address [ mask-length ] } ignore
缺省情況下,允許與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) 禁止與IPv6 BGP對等體/對等體組建立會話。
peer { group-name | ipv6-address [ prefix-length ] } ignore
缺省情況下,允許與BGP對等體/對等體組建立會話。
如果本設備和對等體的會話已經建立,則執行本命令後,會停止該會話,並且清除所有相關路由信息;如果本設備和對等體組的會話已經建立,則執行本命令後,會終止與對等體組內所有對等體之間的會話,並且清除所有相關路由信息。
BGP的選路策略改變,即影響BGP路由選擇的配置(如路由首選值等)發生變化後,為了使新的策略生效,必須複位BGP會話,即刪除並重新建立BGP會話,以便重新發布路由信息,並應用新的策略對路由信息進行過濾。複位BGP會話時,會造成短暫的BGP會話中斷。
通過BGP軟複位,可以實現在不中斷BGP會話的情況下,對BGP路由表進行更新,並應用新的選路策略。
BGP軟複位的方法有以下三種:
· 通過Route-refresh功能實現BGP軟複位:如果BGP的選路策略發生了變化,則本地路由器會向BGP對等體發送Route-refresh消息,收到此消息的對等體將其路由信息重新發給本地路由器,本地路由器根據新的路由策略對接收到的路由信息進行過濾。采用這種方式時,要求當前路由器和對等體都支持Route-refresh功能。
· 通過將所有路由更新信息保存在本地的方式實現BGP軟複位:將從對等體接收的所有原始路由更新信息保存在本地,當選路策略發生改變後,對保存在本地的所有路由使用新的路由策略重新進行過濾。采用這種方式時,不要求當前路由器和對等體都支持Route-refresh功能,但是保存路由更新需要占用較多的內存資源。
· 手工軟複位BGP會話:執行refresh bgp命令手工觸發本地路由器將本地路由信息發送給BGP對等體或向BGP對等體發送Route-refresh消息,收到Route-refresh消息的對等體將其路由信息重新發給本地路由器,以便本地路由器根據新的路由策略對接收到的路由信息進行過濾。采用這種方式時,要求當前路由器和對等體都支持Route-refresh功能。
(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) 通過Route-refresh功能實現BGP軟複位。請選擇其中一項進行配置。
¡ 使能本地路由器與指定對等體/對等體組的BGP路由刷新功能。
peer { group-name | ipv4-address [ mask-length ] } capability-advertise route-refresh
¡ 使能本地路由器與指定BGP對等體/對等體組的BGP路由刷新、多協議擴展和4字節AS號功能。
undo peer { group-name | ipv4-address [ mask-length ] } capability-advertise conventional
缺省情況下,BGP路由刷新、多協議擴展和4字節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) 通過Route-refresh功能實現BGP軟複位。請選擇其中一項進行配置。
¡ 使能本地路由器與指定IPv6 BGP對等體/對等體組的BGP路由刷新功能。
peer { group-name | ipv6-address [ prefix-length ] } capability-advertise route-refresh
¡ 使能本地路由器與指定IPv6 BGP對等體/對等體組的BGP路由刷新、多協議擴展和4字節AS號功能。
undo peer { group-name | ipv6-address [ prefix-length ] } capability-advertise conventional
缺省情況下,BGP路由刷新、多協議擴展和4字節AS號功能處於使能狀態。
(1) 進入係統視圖。
system-view
(2) 進入BGP IPv4單播地址族視圖、BGP-VPN IPv4單播地址族視圖或BGP 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 IPv4組播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv4 multicast
(3) 保存所有來自指定對等體/對等體組的原始路由更新信息。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } keep-all-routes
缺省情況下,不保存來自對等體/對等體組的原始路由更新信息。
本命令隻對執行該命令後接收到的路由生效。僅BGP IPv4單播地址族支持IPv6參數。
(1) 進入係統視圖。
system-view
(2) 進入BGP IPv6單播地址族視圖、BGP-VPN IPv6單播地址族視圖或BGP 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 ]
¡ 請依次執行以下命令進入BGP IPv6組播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv6 multicast
(3) 保存所有來自指定IPv6 BGP對等體/對等體組的原始路由更新信息。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } keep-all-routes
缺省情況下,不保存來自對等體/對等體組的原始路由更新信息。
本命令隻對執行該命令後接收到的路由生效。僅BGP IPv6單播地址族支持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) 配置Route-refresh功能。請選擇其中一項進行配置。
¡ 使能本地路由器與指定對等體/對等體組的BGP路由刷新功能。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } capability-advertise route-refresh
¡ 使能本地路由器與指定BGP對等體/對等體組的BGP路由刷新、多協議擴展和4字節AS號功能。
undo peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } capability-advertise conventional
缺省情況下,BGP路由刷新、多協議擴展和4字節AS號功能處於使能狀態。
(4) 手工對BGP會話進行軟複位。
a. 退回係統視圖。
quit
b. 退回用戶視圖。
quit
c. 手工對BGP會話進行軟複位。
refresh bgp [ instance instance-name ] { ipv4-address [ mask-length ] | all | external | group group-name | internal } { export | import } ipv4 [ multicast | [ unicast ] [ vpn-instance vpn-instance-name ] ]
refresh bgp [ instance instance-name ] ipv6-address [ mask-length ] { export | import } ipv4 [ unicast ]
(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) 配置Route-refresh功能。請選擇其中一項進行配置。
¡ 使能本地路由器與IPv6 BGP指定對等體/對等體組的BGP路由刷新功能。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } capability-advertise route-refresh
¡ 使能本地路由器與指定IPv6 BGP對等體/對等體組的BGP路由刷新、多協議擴展和4字節AS號功能。
undo peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } capability-advertise conventional
缺省情況下,BGP路由刷新、多協議擴展和4字節AS號功能處於使能狀態。
(4) 退回用戶視圖。
return
(5) 手工對BGP會話進行軟複位。
a. 退回係統視圖。
quit
b. 退回用戶視圖。
quit
c. 手工對BGP會話進行軟複位。
refresh bgp [ instance instance-name ] { ipv6-address [ prefix-length ] | all | external | group group-name | internal } { export | import } ipv6 [ multicast | [ unicast ] [ vpn-instance vpn-instance-name ] ]
refresh bgp [ instance instance-name ] ipv4-address [ mask-length ] { export | import } ipv6 [ unicast ]
通過改變BGP選路規則實現負載分擔時,設備根據balance命令配置的進行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在選擇最優路由時忽略IGP Metric的比較。
bestroute igp-metric-ignore
缺省情況下,BGP在選擇最優路由時會比較這些路由下一跳的IGP路由的Metric值,並優選IGP Metric值最小的路由。
下一跳IGP Metric不相同的BGP路由之間無法形成負載分擔。配置本命令使得不同路由的下一跳IGP Metric不同時能夠形成BGP負載分擔。
(4) 退回係統視圖。
¡ 在BGP實例視圖下退回係統視圖。
quit
¡ 在BGP-VPN實例視圖下請依次執行以下命令退回係統視圖。
quit
quit
(5) 進入BGP IPv4單播地址族視圖、BGP-VPN IPv4單播地址族視圖或BGP 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 IPv4組播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv4 multicast
(6) 配置進行BGP負載分擔的路由條數。
balance [ ebgp | eibgp | ibgp ] number
缺省情況下,不會進行BGP負載分擔。
(7) (可選)配置不同AS_PATH屬性的路由能夠形成BGP負載分擔。
balance as-path-neglect
缺省情況下,不同AS_PATH屬性的路由之間不能形成BGP負載分擔。
(8) (可選)配置內容不同但長度相同的AS_PATH屬性的路由能夠形成BGP負載分擔。
balance as-path-relax
缺省情況下,內容不同但長度相同的AS_PATH屬性的路由不能形成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在選擇最優路由時忽略IGP Metric的比較。
bestroute igp-metric-ignore
缺省情況下,BGP在選擇最優路由時會比較這些路由下一跳的IGP路由的Metric值,並優選IGP Metric值最小的路由。
下一跳IGP Metric不相同的BGP路由之間無法形成負載分擔。配置本命令使得不同路由的下一跳IGP Metric不同時能夠形成BGP負載分擔。
(4) 退回係統視圖。
¡ 在BGP實例視圖下退回係統視圖。
quit
¡ 在BGP-VPN實例視圖下請依次執行以下命令退回係統視圖。
quit
quit
(5) 進入BGP IPv6單播地址族視圖、BGP-VPN IPv6單播地址族視圖或BGP 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 ]
¡ 請依次執行以下命令進入BGP IPv6組播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv6 multicast
(6) 配置進行BGP負載分擔的路由條數。
balance [ ebgp | eibgp | ibgp ] number
缺省情況下,不會進行BGP負載分擔。
(7) (可選)配置不同AS_PATH屬性的路由能夠形成BGP負載分擔。
balance as-path-neglect
缺省情況下,不同AS_PATH屬性的路由之間不能形成BGP負載分擔。
(8) (可選)配置內容不同但長度相同的AS_PATH屬性的路由能夠形成BGP負載分擔。
balance as-path-relax
缺省情況下,內容不同但長度相同的AS_PATH屬性的路由不能形成BGP負載分擔。
在大規模的網絡中,路由反射器通常可以接收到同一前綴的多條BGP路由,但是在缺省情況下,BGP隻發布一條最優路由。如果最優路由所在路徑出現網絡故障,數據流量將會被中斷,直到BGP根據新的網絡拓撲路由收斂後,被中斷的流量才能恢複正常的傳輸。
為了解決上述問題,可以在路由反射器上配置Add-Path(Additional Paths)功能。部署該功能後,設備可以同時發布多條相同前綴的路由給對等體。對等體接收到相同前綴的多條BGP路由後,即可為到達同一目的網絡形成多條鏈路,這些鏈路之間既可以通過balance命令形成負載分擔,也可以按照BGP路由的優選規則形成備份,在一條鏈路出現故障時將流量快速切換到其他鏈路上,從而提高了數據傳輸的可靠性。
Add-Path能力包括接收和發送兩種。為了讓對等體間的Add-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) 配置Add-Path功能。
peer { group-name | ipv4-address [ make-length ] } additional-paths { receive | send } *
缺省情況下,未配置Add-Path功能。
(4) 配置向指定對等體/對等體組發送的Add-Path優選路由的最大條數。
peer { group-name | ipv4-address [ make-length ] } advertise additional-paths best number
缺省情況下,向指定對等體/對等體組發送的Add-Path優選路由的最大條數為1。
(5) 配置Add-Path優選路由的最大條數。
additional-paths select-best best-number
缺省情況下,Add-Path優選路由的最大條數為1。
(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) 配置Add-Path功能。
¡ 在BGP IPv6單播地址族視圖下:
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } additional-paths { receive | send } *
¡ 在BGP-VPN IPv6單播地址族視圖下:
peer { group-name | ipv6-address [ prefix-length ] } additional-paths { receive | send } *
缺省情況下,未配置Add-Path功能。
(4) 配置向指定對等體/對等體組發送的Add-Path優選路由的最大條數。
¡ 在BGP IPv6單播地址族視圖下:
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } advertise additional-paths best number
¡ 在BGP-VPN IPv6單播地址族視圖下:
peer { group-name | ipv6-address [ prefix-length ] } advertise additional-paths best number
缺省情況下,向指定對等體/對等體組發送的Add-Path優選路由的最大條數為1。
(5) 配置Add-Path優選路由的最大條數。
additional-paths select-best best-number
缺省情況下,Add-Path優選路由的最大條數為1。
當係統進入二級內存門限告警狀態後,BGP會周期性地選擇一個EBGP對等體,斷開與該對等體之間的BGP會話,直到係統內存恢複為止。用戶可以通過本配置來避免在二級內存門限告警狀態下,斷開與指定EBGP對等體/對等體組之間的BGP會話,以達到對特定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) 配置係統進入二級內存門限告警狀態後,不斷開與指定EBGP對等體/對等體組之間的會話。
peer { group-name | ipv4-address [ mask-length ] } low-memory-exempt
缺省情況下,係統在二級內存門限告警狀態下,會周期性地選擇一個EBGP對等體,並斷開與該對等體之間的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對等體/對等體組之間的會話。
peer { group-name | ipv6-address [ prefix-length ] } low-memory-exempt
缺省情況下,係統在二級內存門限告警狀態下,會周期性地選擇一個EBGP對等體,並斷開與該對等體之間的BGP會話。
缺省情況下,從對等體接收到的BGP路由進行下一跳路由迭代時,優先在直連路由中查找依賴路由。僅未查找到匹配的直連路由時,才會在所有路由協議產生的路由中按照最長匹配方式進行查找。此機製可能會引發如下問題:設備的直連路由所在子網包含BGP路由的下一跳地址時,BGP路由會迭代下一跳至該直連路由,此時設備認為下一跳地址為本地直連,直接使用BGP路由表中的下一跳作為FIB表中的真實下一跳,導致匹配該BGP路由的報文轉發失敗,造成網絡流量中斷。
以圖5-1為例,Device B與Device A和Device C分別建立IBGP會話,並作為路由反射器將Device C在BGP中發布的8.0.0.0/24路由發布給Device A。三台設備在創建BGP會話時均使用LoopBack接口作為建立TCP連接使用的源接口。Device A與Device B直連接口的IPv4地址所在網段為3.3.0.0/16。
在路由的下一跳屬性未被改變的情況下,Device A上BGP路由8.0.0.0/24的下一跳為3.3.3.3。該BGP路由進行下一跳迭代時,由於查找到了包含下一跳3.3.3.3網段的直連路由3.3.0.0/16,Device A認為下一跳3.3.3.3為設備上的直連路由,將3.3.3.3直接作為FIB表中去往目的網段8.0.0.0/24的真實下一跳,導致去往8.0.0.0/24網段的三層流量轉發失敗。
圖5-1 直連路由包含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路由進行下一跳路由迭代查找時采用最長匹配方式。
nexthop recursive-lookup longest-match [ route-policy route-policy-name ]
缺省情況下,未配置下一跳路由迭代查找時采用最長匹配方式。
未指定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路由進行下一跳路由迭代查找時采用最長匹配方式。
nexthop recursive-lookup longest-match [ route-policy route-policy-name ]
缺省情況下,未配置下一跳路由迭代查找時采用最長匹配方式。
未指定route-policy route-policy-name參數或該參數指定的路由策略不存在時,所有從對等體接收到的BGP路由進行下一跳路由迭代查找時都采用最長匹配方式。
開啟BGP次優路由下刷RIB功能後,當BGP路由表中最優路由為通過network命令生成或import-route命令引入的路由,次優路由為從BGP對等體收到的路由時,次優路由會下刷到RIB表項中。在某些組網情況下,執行本命令下刷到達同一目的網絡次優路由到RIB後,當最優路由發生故障時,係統可以快速切換到次優路由。例如,設備有一條到達1.1.1.0/24網絡的靜態路由,其優先級高於BGP路由,BGP本地引入該靜態路由同時從對等體收到到達該網段的路由,執行本命令BGP將從對等體收到的路由作為次優路由下刷到RIB,這時如果開啟協議間的FRR功能,當靜態路由發生故障時,本地引入的靜態路由不可達,係統可以快速切換到BGP次優路由,從而大大縮短了流量中斷時間。
協議間FRR功能的詳細介紹,請參見“三層技術-IP路由配置指導”中的“IP路由基礎”。
(1) 進入係統視圖。
system-view
(2) 進入BGP視圖。
bgp as-number [ instance instance-name ]
(3) 開啟BGP次優路由下刷RIB功能。
flush suboptimal-route
缺省情況下,BGP次優路由下刷RIB功能處於關閉狀態,即隻有BGP最優路由可以下刷到RIB。
本功能可以應用在以下場景:
· 在MPLS L3VPN組網中,PE設備的BGP路由表中會存在大量的私網路由。缺省情況下,優選後的私網路由將全部被下發到IP路由表中,但部分路由對於PE設備轉發無意義,如不需要和其他Site互通的設備對應的路由。通過配置本命令,可以禁止不需要指導轉發的路由下發到IP路由表,以提高轉發性能。
· 在路由反射器上配置本功能,禁止路由反射器上的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) 配置BGP路由禁止下發到IP路由表中。
routing-table bgp-rib-only [ route-policy route-policy-name ]
缺省情況下,BGP將最優路由下發到IP路由表中。
(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路由禁止下發到IP路由表中。
routing-table bgp-rib-only [ route-policy route-policy-name ]
缺省情況下,BGP將最優路由下發到IP路由表中。
通過配置本功能,BGP可以通過以下三種方式為私網路由申請標簽:
· 為每條路由申請一個標簽:采用這種方式時,路由條目和標簽一一對應;
· 為每個下一跳申請一個標簽:當按照每條路由申請標簽方式需要申請的標簽數量大於設備支持的最大標簽數目時,通過采用此方式,可以減少申請的標簽數量;
· 為每個VPN實例申請一個標簽:當存在大量需要申請標簽的路由,並且采用下一跳申請標簽的方式申請的標簽數量仍然超過設備支持的最大標簽數目時,可以采用此方式。
為每條路由或者每個下一跳申請標簽方式可以與vpn popgo命令配合使用,以實現報文根據標簽查找出接口轉發報文;為每個VPN實例申請標簽方式與vpn popgo命令互斥,采用該方式時,隻能根據標簽查找FIB轉發報文
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
(3) 配置標簽申請方式。
label-allocation-mode { per-prefix | per-vrf }
缺省情況下,BGP按照每個下一跳分配一個標簽的方式申請標簽。
改變標簽分配方式將重新下刷所有BGP路由,會導致業務的短暫中斷,請慎重使用。
用戶訪問網絡時,如果報文在轉發路徑上均采用IP轉發,則運營商網絡中的設備需要學習大量的路由。通過本功能在用戶接入設備上配置允許非標簽公網BGP路由迭代到LSP隧道,或允許公網BGP路由迭代到SRv6 TE Policy隧道,使用戶報文通過標簽轉發方式在運營商網絡中轉發,運營商設備不再需要用戶網絡的路由,從而減輕設備的負擔,節約設備上的資源。
缺省情況下,非標簽公網BGP路由隻能根據IP轉發迭代到出接口和下一跳地址,不會迭代到LSP隧道;未配置segment-routing ipv6 traffic-engineering命令時,攜帶SRv6 SID的公網BGP路由也不會迭代到SRv6 TE Policy隧道。配置了unicast-route recursive-lookup tunnel命令後,非標簽公網BGP路由可以迭代到LSP隧道;同時配置了unicast-route recursive-lookup tunnel命令以及sr-policy steering policy-based命令後,公網BGP路由可以迭代到SRv6 TE Policy隧道,無論是否攜帶SRv6 SID。迭代隧道失敗後,才按照IP轉發迭代到出接口和下一跳。
IPv6非標簽公網BGP路由迭代IPv4隧道時,作為Egress節點的隧道對端設備需要為倒數第二跳分配非空標簽,否則會導致流量轉發不通。
隻要配置了以下兩種情況之一,攜帶SRv6 SID的公網BGP路由就可以迭代到SRv6 TE Policy隧道:
· 配置了unicast-route recursive-lookup tunnel和sr-policy steering policy-based命令
· 配置了segment-routing ipv6 traffic-engineering命令。
segment-routing ipv6 traffic-engineering命令的詳細介紹,請參見“Segment Routing命令參考”中的“SRv6 VPN”;sr-policy steering命令的詳細介紹,請參見“Segment Routing命令參考”中的“SRv6 TE Policy”。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
(3) 進入BGP IPv4單播地址族視圖。
address-family ipv4 [ unicast ]
(4) 配置允許非標簽公網BGP路由迭代到LSP隧道,或允許公網BGP路由迭代到SRv6 TE Policy隧道。
unicast-route recursive-lookup tunnel [ prefix-list ipv4-prefix-list-name ] [ tunnel-policy tunnel-policy-name ]
缺省情況下,非標簽公網BGP路由隻能迭代到出接口和下一跳,不會迭代到LSP隧道;攜帶SRv6 SID的公網BGP路由無法迭代到SRv6 TE Policy;不攜帶SRv6 SID但攜帶Color擴展團體屬性的公網BGP路由可以根據Color引流迭代到SRv6 TE Policy。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
(3) 進入BGP IPv6單播地址族視圖。
address-family ipv6 [ unicast ]
(4) 配置允許非標簽公網BGP路由迭代到LSP隧道,或允許公網BGP路由迭代到SRv6 TE Policy隧道。
unicast-route recursive-lookup tunnel [ prefix-list ipv6-prefix-list-name ] [ tunnel-policy tunnel-policy-name ]
缺省情況下,非標簽公網BGP路由隻能迭代到出接口和下一跳,不會迭代到LSP隧道;攜帶SRv6 SID的公網BGP路由無法迭代到SRv6 TE Policy;不攜帶SRv6 SID但攜帶Color擴展團體屬性的公網BGP路由可以根據Color引流迭代到SRv6 TE Policy。
當BGP路由策略或協議發生變化後,如果需要通過複位BGP會話使新的配置生效,請在用戶視圖下進行下列配置。
複位BGP會話時,會造成短暫的BGP會話中斷。
表5-1 複位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 [ instance instance-name ] ipv6-address [ prefix-length ] ipv4 [ unicast ] |
複位IPv4組播地址族下的BGP會話 |
reset bgp [ instance instance-name ] { as-number | ipv4-address [ mask-length ] | all | external | group group-name | internal } ipv4 multicast |
複位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 [ instance instance-name ] ipv4-address [ mask-length ] ipv6 [ unicast ] |
複位IPv6組播地址族下的BGP會話 |
reset bgp [ instance instance-name ] { as-number | ipv6-address [ prefix-length ] | all | external | group group-name | internal } ipv6 multicast |
複位所有BGP會話 |
reset bgp [ instance instance-name ] all |
BGP安全功能配置任務如下:
通過為BGP對等體配置BGP的MD5認證,可以在以下兩方麵提高BGP的安全性:
· 為BGP建立TCP連接時進行MD5認證,隻有兩台路由器配置的密鑰相同時,才能建立TCP連接,從而避免與非法的BGP路由器建立TCP連接。
· 傳遞BGP報文時,對封裝BGP報文的TCP報文段進行MD5運算,從而保證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的MD5認證。
peer { group-name | ipv4-address [ mask-length ] } password { cipher | simple } password
缺省情況下,不進行BGP的MD5認證。
(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的MD5認證。
peer { group-name | ipv6-address [ prefix-length ] } password { cipher | simple } password
缺省情況下,不進行BGP的MD5認證。
配置keychain認證可以提高TCP連接的安全性。為了保證正常建立TCP連接、正常交互BGP消息,BGP對等體兩端必須同時配置keychain認證,且兩端使用的keychain需要滿足如下條件:
· 同一時間內使用的key的標識符相同。
· 相同標識符的key的認證算法和認證密鑰必須一致。
關於keychain的介紹和配置,請參見“安全配置指導”中的“keychain”。
對於keychain認證算法和key的標識符的範圍,BGP的支持情況如下:
· BGP支持HMAC-MD5、HMAC-SHA-256、HMAC-SM3、SM3和MD5認證算法,通過authentication-algorithm命令進行配置。
· BGP僅支持標識符取值範圍為0~63的key,通過key命令進行配置。
(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的keychain認證。
peer { group-name | ip-address [ mask-length ] } keychain keychain-name
缺省情況下,不進行BGP的keychain認證。
(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的keychain認證。
peer { group-name | ipv6-address [ prefix-length ] } keychain keychain-name
缺省情況下,不進行BGP的keychain認證。
GTSM(Generalized TTL Security Mechanism,通用TTL安全保護機製)是一種簡單易行的、對基於IP協議的上層業務進行保護的安全機製。GTSM通過檢查接收到的IP報文頭中的TTL值是否在一個預先定義好的範圍內,來判斷IP報文是否合法,避免攻擊者向網絡設備發送大量有效的IP報文時對網絡設備造成的CPU利用(CPU-utilization)等類型的攻擊。
配置BGP GTSM功能時,用戶可以指定本地設備到達某個對等體的最大跳數為hop-count,則從該對等體接收到的BGP報文的合法TTL範圍為255-“hop-count”+1到255。隻有來自該對等體的報文TTL值在該合法範圍內時,才將報文上送CPU處理;否則,直接丟棄報文。另外,配置BGP GTSM功能後,設備會將發送報文的初始TTL設置為255。
對於直連EBGP對等體,GTSM可以提供最佳的保護效果;對於非直連EBGP或IBGP對等體,由於中間設備可能對TTL值進行篡改,GTSM的保護效果受到中間設備安全性的限製。
執行本配置後,隻要本地設備和指定的對等體通過了GTSM檢查,就允許在二者之間建立EBGP會話,不管二者之間的跳數是否超過peer ebgp-max-hop命令指定的跳數範圍。
使用BGP GTSM功能時,要求本設備和對等體設備上同時配置本特性,指定的hop-count值可以不同,隻要能夠滿足合法性檢查即可。
(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 GTSM功能。
peer { group-name | ipv4-address [ mask-length ] } ttl-security hops hop-count
缺省情況下,BGP GTSM功能處於關閉狀態。
(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 GTSM功能。
peer { group-name | ipv6-address [ prefix-length ] } ttl-security hops hop-count
缺省情況下,BGP GTSM功能處於關閉狀態。
為了避免路由信息外泄或者非法者對設備進行惡意攻擊,可以利用IPsec安全隧道對IPv6 BGP報文進行保護。通過IPsec提供的數據機密性、完整性、數據源認證等功能,確保IPv6 BGP報文不會被偵聽或惡意篡改,並避免非法者構造IPv6 BGP報文對設備進行攻擊。
在互為IPv6 BGP鄰居的兩台設備上都配置通過IPsec保護IPv6 BGP報文後,一端設備在發送IPv6 BGP報文時通過IPsec對報文進行加封裝,另一端設備接收到報文後,通過IPsec對報文進行解封裝。如果解封裝成功,則接收該報文,正常建立IPv6 BGP對等體關係或學習IPv6 BGP路由;如果設備接收到不受IPsec保護的IPv6 BGP報文,或IPv6 BGP報文解封裝失敗,則會丟棄該報文。
(1) 進入係統視圖。
system-view
(2) 配置IPsec安全提議和手工方式的IPsec安全框架。
配置方法請參見“VPN配置指導”中的“IPsec”。
(3) 進入BGP實例視圖或BGP-VPN實例視圖。
¡ 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
¡ 請依次執行以下命令進入BGP-VPN實例視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(4) 為IPv6 BGP對等體/對等體組應用IPsec安全框架。
peer { group-name | ipv6-address [ prefix-length ] } ipsec-profile profile-name
缺省情況下,IPv6 BGP對等體/對等體組沒有應用IPsec安全框架。
應用的安全框架必須是手工方式的IPsec安全框架。
提高BGP網絡的可靠性配置任務如下:
· 配置BGP GR
BGP GR(Graceful Restart,平滑重啟)是一種在主備倒換或BGP協議重啟時保證轉發業務不中斷的機製。GR有兩個角色:
· GR Restarter:發生主備倒換或協議重啟,且具有GR能力的設備。
· GR Helper:和GR Restarter具有鄰居關係,協助完成GR流程的設備。GR Helper也具有GR能力。
設備既可以作為GR Restarter,又可以作為GR Helper。設備的角色由該設備在BGP GR過程中的作用決定。
BGP GR的工作過程為:
(1) GR Restarter和GR Helper通過Open消息交互GR能力。隻有雙方都具有GR能力時,建立起的BGP會話才具備GR能力。GR Restarter還會通過Open消息,將本端通過graceful-restart timer restart命令配置的對端等待重建BGP會話時間通告給GR Helper。
(2) 建立具備GR能力的BGP會話後,GR Restarter進行主備倒換或BGP協議重啟時,GR Restarter不會刪除RIB(Routing Information Base,路由信息庫)和FIB(Forwarding Information Base,轉發信息庫)表項,仍然按照原有的轉發表項轉發報文,並啟動RIB路由老化定時器(定時器的值由graceful-restart timer purge-time命令配置)。GR Helper發現GR Restarter進行主備倒換或BGP協議重啟後,GR Helper不會刪除從該GR Restarter學習到的路由,而是將這些路由標記為失效路由,仍按照這些路由轉發報文,從而確保在GR Restarter進行主備倒換或BGP協議重啟的過程中,報文轉發不會中斷。
(3) GR Restarter主備倒換或BGP協議重啟完成後,它會重新與GR Helper建立BGP會話。如果在GR Restarter通告的BGP會話重建時間加上GR Helper上配置的等待重建額外時間(額外時間通過peer graceful-restart timer restart extra命令配置)內沒有成功建立BGP會話,則GR Helper會刪除標記為失效的路由。
(4) 如果在GR Restarter通告的BGP會話重建時間內成功建立BGP會話,則GR Restarter和GR Helper在建立的BGP會話上進行路由信息交互,以便GR Restarter恢複路由信息、GR Helper根據學習到的路由刪除路由的失效標記。
(5) BGP會話建立後,在GR Restarter和GR Helper上都會啟動End-Of-RIB(路由信息庫結束)標記等待定時器(定時器的值通過graceful-restart timer wait-for-rib命令配置),該定時器用來控製路由信息收斂的速度。如果定時器超時時沒有完成路由信息的交互,則GR Restarter不再接收新的路由,根據已經學習到的BGP路由信息更新RIB表項,刪除老化的RIB表項;GR Helper則刪除標記為失效的路由。
(6) 如果在RIB路由老化定時器超時時沒有完成路由信息的交互,則GR Restarter會強製退出GR過程,根據已經學習到的BGP路由信息更新RIB表項,刪除老化的RIB表項。
在TCP連接斷開、保持時間超時或BGP會話允許交換路由的地址族發生變化時,BGP會話需要斷開並重新建立,造成業務流量轉發中斷。開啟設備通過GR方式複位BGP會話功能後,在TCP連接斷開、保持時間超時和BGP會話允許交換路由的地址族發生變化時,設備采用BGP GR方式進行BGP會話重建,仍按照已有的路由信息轉發報文,從而避免對流量轉發造成影響。
End-Of-RIB標記用來標識路由更新發送的結束。
本端配置的等待End-Of-RIB標記的時間不會通告給對端,隻用來控製本端路由信息交互的時間,即GR Restarter上配置的時間隻用來控製GR Restarter從GR Helper接收路由更新的時間,GR Helper上配置的時間隻用來控製GR Helper從GR Restarter接收路由更新的時間。當路由信息的數量較多時,建議將本端等待End-Of-RIB標記的時間調大,以保證完成所有路由信息的交互。
由於設備在GR過程中的角色不可預知,建議在作為GR Restarter和GR Helper的設備上均進行本配置。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
(3) 使能BGP協議的GR能力。
graceful-restart
缺省情況下,BGP協議的GR能力處於關閉狀態。
(4) (可選)配置對端等待重建BGP會話的時間。
graceful-restart timer restart timer
缺省情況下,對端等待重建BGP會話的時間為150秒。
對端等待重建BGP會話的時間應小於Open消息中的Holdtime時間。
(5) (可選)配置BGP GR過程中本端作為GR Helper時等待對等體/對等體組重建BGP會話的額外時間。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } graceful-restart timer restart extra { time | no-limit }
缺省情況下,本端作為GR Helper時等待對等體/對等體組重建BGP會話的額外時間為0秒。
(6) (可選)配置本端等待End-Of-RIB標記的時間。
graceful-restart timer wait-for-rib timer
缺省情況下,本端等待End-Of-RIB標記的時間為180秒。
(7) (可選)配置BGP GR過程中等待通知RIB老化失效表項的時間。
graceful-restart timer purge-time timer
缺省情況下,BGP GR過程中等待通知RIB老化失效表項的時間為480秒。
(8) (可選)開啟設備通過GR方式複位BGP會話功能。
graceful-restart peer-reset [ all ]
缺省情況下,設備以GR方式複位BGP會話功能處於關閉狀態。
BGP NSR(Nonstop Routing,不間斷路由)是一種通過在BGP協議主備進程之間備份必要的協議狀態和數據(如BGP鄰居信息和路由信息),使得BGP協議的主進程中斷時,備份進程能夠無縫地接管主進程的工作,從而確保對等體感知不到BGP協議中斷,保持BGP路由,並保證轉發不會中斷的技術。
導致BGP主進程中斷的事件包括以下幾種:
· BGP主進程重啟
· BGP主進程所在的主控板發生故障
· BGP主進程所在的主控板進行ISSU(In-Service Software Upgrade,不中斷業務升級)
BGP NSR與BGP GR具有如下區別,請根據實際情況選擇合適的方式確保數據轉發不中斷:
· 對設備要求不同:BGP協議的主進程和備進程運行在不同的IRF成員設備上,因此要運行BGP NSR功能,必須進行IRF堆疊且IRF必須有兩個或兩個以上的成員設備。要運行BGP GR功能,可以不進行IRF堆疊或IRF可以隻有一個成員設備。
· 對BGP對等體的要求不同:使用BGP NSR功能時,BGP對等體不會感知本地設備發生了BGP進程的異常重啟或主備倒換等故障,不需要BGP對等體協助恢複BGP路由信息。BGP GR要求BGP對等體具有GR能力,並且在BGP會話中斷恢複時,BGP對等體能夠作為GR helper協助本地設備恢複BGP路由信息。
如果在設備上同時配置了BGP NSR和BGP GR功能,則二者的關係如下:
· BGP NSR優先級高於BGP GR,即BGP主進程中斷時通過BGP NSR確保轉發不中斷,設備不會作為GR Restarter啟動GR過程。
· GR Helper協助GR Restarter恢複重啟前狀態時,如果GR Helper發生了主備進程倒換,則即便GR Helper上配置了BGP NSR,也無法保證GR過程成功。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
(3) 使能BGP NSR功能。
non-stop-routing
缺省情況下,BGP NSR功能處於關閉狀態。
BGP協議通過存活時間(Keepalive)定時器和保持時間(Holdtime)定時器來維護鄰居關係。但這些定時器都是秒級的,而且根據協議規定,設置的保持時間應該至少為存活時間間隔的三倍。這樣使得BGP鄰居關係的檢測比較慢,對於報文收發速度快的接口會導致大量報文丟失。通過配置BGP與BFD聯動,可以使用BFD來檢測本地路由器和BGP對等體之間的鏈路。當本地路由器和BGP對等體之間的鏈路出現故障時,BFD可以快速檢測到該故障,從而加快BGP協議的收斂速度。有關BFD的介紹和詳細配置,請參見“網絡管理和監控配置指導”中的“BFD”。
配置通過BFD檢測本地路由器和指定BGP對等體/對等體組之間的鏈路之前,需要先在本地路由器和指定BGP對等體/對等體組之間建立BGP會話。
配置BGP GR功能後,請慎用BGP與BFD聯動功能。因為當鏈路故障時,係統可能還沒來得及啟用GR處理流程,BFD已經檢測到鏈路故障了,從而導致GR失敗。如果設備上同時配置了BGP GR和BGP BFD,則在BGP GR期間請勿去使能BGP BFD,否則可能導致GR失敗。
通過鏈路本地地址建立的BGP會話隻能通過單跳BFD會話檢測對等體之間的鏈路。
本地路由器和BGP對等體采用的BFD檢測方式(單跳或多跳)必須相同,否則無法建立BFD會話。
(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) 配置通過BFD檢測本地路由器和指定BGP對等體/對等體組之間的鏈路。
peer { group-name | ipv4-address [ mask-length ] } bfd [ multi-hop | single-hop ]
缺省情況下,不使用BFD檢測本地路由器和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) 配置通過BFD檢測本地路由器和指定IPv6 BGP對等體/對等體組之間的鏈路。
peer { group-name | ipv6-address [ prefix-length ] } bfd [ multi-hop | single-hop ]
缺省情況下,不使用BFD檢測本地路由器和IPv6 BGP對等體/對等體組之間的鏈路。
當BGP網絡中的鏈路或某台路由器發生故障時,需要通過故障鏈路或故障路由器傳輸才能到達目的地的報文將會丟失或產生路由環路,數據流量將會被中斷。直到BGP根據新的網絡拓撲路由收斂後,被中斷的流量才能恢複正常的傳輸。
為了盡可能縮短網絡故障導致的流量中斷時間,網絡管理員可以開啟BGP快速重路由功能。
圖7-1 BGP快速重路由功能示意圖
如圖7-1所示,在Router B上開啟快速重路由功能後,BGP將為主路由生成備份下一跳。IPv4組網中BGP通過ARP或Echo方式的BFD會話檢測主路由的下一跳是否可達,IPv6組網中BGP通過ND(Neighbor Discovery,鄰居發現)協議檢測主路由的下一跳是否可達。當Router B檢測到主路由的下一跳不可達後,BGP會使用備份下一跳替換失效下一跳,通過備份下一跳來指導報文的轉發,從而大大縮短了流量中斷時間。在使用備份下一跳指導報文轉發的同時,BGP會重新進行路由優選,優選完畢後,使用新的最優路由來指導報文轉發。
開啟BGP快速重路由功能的方法有如下兩種:
· 在BGP地址族視圖下執行pic命令開啟當前地址族的BGP快速重路由功能。采用這種方法時,BGP會為當前地址族的所有BGP路由自動計算備份下一跳,即隻要從不同BGP對等體學習到了到達同一目的網絡的路由,且這些路由不等價,就會生成主備兩條路由。
· 在BGP地址族視圖下執行fast-reroute route-policy命令指定快速重路由引用的路由策略,並在引用的路由策略中,通過apply [ ipv6 ] fast-reroute backup-nexthop命令指定備份下一跳的地址。采用這種方式時,隻有為主路由計算出的備份下一跳地址與指定的地址相同時,才會為其生成備份下一跳;否則,不會為主路由生成備份下一跳。在引用的路由策略中,還可以配置if-match子句,用來決定哪些路由可以進行快速重路由保護,BGP隻會為通過if-match子句過濾的路由生成備份下一跳。
引用路由策略方式的優先級高於通過pic命令開啟BGP快速重路由方式。
IPv4單播路由和IPv6單播路由支持BGP快速重路由功能;IPv4組播路由和IPv6組播路由不支持BGP快速重路由功能。
(1) 進入係統視圖。
system-view
(2) 配置echo報文的源IP地址。
bfd echo-source-ip ipv4-address
缺省情況下,未配置echo報文的源IP地址。
通過Echo方式的BFD會話檢測主路由的下一跳是否可達時,必須執行本配置。
echo報文的源IP地址用戶可以任意指定。建議配置echo報文的源IP地址不屬於該設備任何一個接口所在網段。
本命令的詳細介紹,請參見“網絡管理和監控命令參考”中的“BFD”。
(3) 創建路由策略,並進入路由策略視圖。
route-policy route-policy-name permit node node-number
本命令的詳細介紹,請參見“三層技術-IP路由命令參考”中的“路由策略”。
(4) 配置快速重路由的備份下一跳地址。
apply fast-reroute backup-nexthop ipv4-address
缺省情況下,未指定快速重路由的備份下一跳地址。
本命令的詳細介紹,請參見“三層技術-IP路由命令參考”中的“路由策略”。
(5) 退回係統視圖。
quit
(6) 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
(7) 進入BGP IPv4單播地址族視圖或BGP-VPN IPv4單播地址族視圖。
¡ 進入BGP IPv4單播地址族視圖
address-family ipv4 [ unicast ]
¡ 進入BGP-VPN IPv4單播地址族視圖
ip vpn-instance vpn-instance-name
address-family ipv4 [ unicast ]
(8) 在當前地址族視圖下指定BGP快速重路由引用的路由策略。
fast-reroute route-policy route-policy-name
缺省情況下,BGP快速重路由未引用任何路由策略。
引用的路由策略中,隻有apply fast-reroute backup-nexthop和apply ipv6 fast-reroute backup-nexthop命令生效,其他apply子句不會生效。
(1) 進入係統視圖。
system-view
(2) 創建路由策略,並進入路由策略視圖。
route-policy route-policy-name permit node node-number
本命令的詳細介紹,請參見“三層技術-IP路由命令參考”中的“路由策略”。
(3) 配置快速重路由的備份下一跳地址。
apply ipv6 fast-reroute backup-nexthop ipv6-address
缺省情況下,未指定快速重路由的備份下一跳地址。
本命令的詳細介紹,請參見“三層技術-IP路由命令參考”中的“路由策略”。
(4) 退回係統視圖。
quit
(5) 進入BGP實例視圖或BGP-VPN實例視圖。
¡ 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
¡ 請依次執行以下命令進入BGP-VPN實例視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(6) 進入BGP IPv6單播地址族視圖或BGP-VPN IPv6單播地址族視圖。
address-family ipv6 [ unicast ]
(7) 在當前地址族視圖下指定BGP快速重路由引用的路由策略。
fast-reroute route-policy route-policy-name
缺省情況下,BGP快速重路由未引用任何路由策略。
引用的路由策略中,隻有apply fast-reroute backup-nexthop和apply ipv6 fast-reroute backup-nexthop命令生效,其他apply子句不會生效。
在某些組網情況下,執行pic命令為所有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 IPv4單播地址族視圖或BGP-VPN IPv4單播地址族視圖。
address-family ipv4 [ unicast ]
(4) 開啟BGP快速重路由功能。
pic
缺省情況下,BGP快速重路由功能處於關閉狀態。
在某些組網情況下,執行pic命令為所有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 IPv6單播地址族視圖或BGP-VPN IPv6單播地址族視圖。
address-family ipv6 [ unicast ]
(4) 開啟BGP快速重路由功能。
pic
缺省情況下,BGP快速重路由功能處於關閉狀態.
在某些組網情況下,執行pic命令為所有BGP路由生成備份下一跳後,可能會導致路由環路,請謹慎使用本命令。
缺省情況下,BGP快速重路由通過ARP檢測主路由的下一跳是否可達,該方式對於快速重路由的主鏈路失效檢測較慢,業務流量可能無法及時切換到備用路徑上,導致流量丟失。配置本功能後,設備會自動創建一個協議類型為IPFRR的BFD會話,通過該BFD會話對主路由的下一跳檢測,以提高主路由下一跳失效時,流量切換到備路由下一跳上的收斂速度。
隻有存在已經生成了備份下一跳的主路由時,本功能才會生效並自動創建BFD會話。
由於BGP暫不支持為負載分擔路由計算備份下一跳,本功能無法為等價路由作為主路由的場景提供通過BFD會話檢測功能。
通過控製報文方式的BFD會話檢測主路由的下一跳是否可達時,由於控製報文方式的BFD會話需要兩端進行協商才能成功建立,如需設備成功使用控製報文方式的BFD會話來檢測主鏈路的下一跳,可以通過以下兩種方式進行配置:
· 在主鏈路的對端設備上也執行primary-path-detect bfd命令。此方式適用於主鏈路兩端設備均配置快速重路由功能的場景。
· 在主鏈路的對端設備上手工創建一個靜態BFD會話,該靜態BFD會話指定的會話源IP地址為本端自動創建的BFD會話的會話目的IP地址、會話目的IP地址為本端自動創建的BFD會話的源IP地址、遠端標識符為本端自動創建的BFD會話的本地標識符。
使用echo方式的BFD會話檢測主路由的下一跳是否可達時,僅需要在本地路由器上配置本功能。
其他業務模塊在通過BFD會話檢測主路由的下一跳是否可達時,也會自動創建BFD會話(如OSPF、IS-IS等)。如果其他協議創建的自動BFD會話檢測的鏈路與BGP主路由下一跳所在的鏈路相同,則BGP不會重複自動創建同類型的BFD會話,而是複用其他協議的BFD會話。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
(3) 配置BGP快速重路由通過BFD會話檢測主路由的下一跳是否可達。
primary-path-detect bfd { ctrl | echo }
缺省情況下,BGP快速重路由通過ARP檢測主路由的下一跳是否可達。
當用戶需要對某台設備上的BGP進程進行調試或升級等維護操作時,可以使用BGP isolate功能或BGP shutdown功能,將該設備上的BGP進程從當前網絡中移除。網絡中的其他設備重新計算路由,不會再通過該設備轉發流量,從而降低設備維護對網絡的影響,提高網絡的可靠性。
BGP isolate功能和BGP shutdown功能使得網絡管理員在進行網絡設備維護時,無需刪除並重新進行對等體/對等體組相關配置,減少了網絡維護的工作量。完成設備維護後,網絡管理員可以關閉BGP isolate功能和BGP shutdown功能,以使該設備重新投入使用。
本功能可以將BGP進程從網絡中隔離出來,具體工作機製如下:
(1) 開啟BGP isolate功能的設備撤銷發布給鄰居的BGP路由(本設備直連路由除外),同時保留所有從鄰居學習到的BGP路由。
(2) 遠端鄰居收到路由撤銷消息後,重新進行路由優選並更新FIB表。在此期間,遠端鄰居仍然可以通過BGP isolate設備發布的BGP路由轉發流量。
(3) 遠端鄰居刪除所有BGP isolate設備發布的BGP路由並完成FIB表項更新後,除目的地為BGP isolate設備的流量外,其他流量不再經過BGP isolate設備。此時,BGP isolate設備完全從當前組網中隔離出來,可以對該設備上的BGP協議進行升級等處理。
(4) 對BGP isolate設備的維護結束後,關閉BGP isolate功能可讓該設備重新加入網絡。設備重新加入網絡後,BGP路由的發布和學習機製如下:
¡ 設備重新向鄰居發布路由。
¡ 設備隔離前保留了從鄰居學習到的路由。如果設備隔離後沒有對BGP協議進行重啟等操作,則無需重新進行路由學習;否則,設備重新加入網絡後需要重新進行路由學習。
設備進行GR或NSR期間,建議用戶不要使用BGP isolate功能,否則無法保證執行操作後的結果與預期結果一致。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
(3) 配置BGP isolate功能,將設備的BGP協議從當前組網中隔離出來。
isolate enable
缺省情況下,未配置BGP協議隔離功能。
(4) 完成設備維護後,使設備的BGP重新加入網絡。
undo isolate enable
本功能通過暫時斷開與所有對等體/對等體組的BGP會話,來實現BGP進程的移除。完成設備維護後,通過取消本功能可以恢複與所有對等體/對等體組的BGP會話。
如果本設備和對等體/對等體組的會話已經建立,則配置本功能後,會斷開本設備和對等體/對等體組的會話,並清除所有路由信息。
同時配置本功能和禁止與對等體/對等體組建立會話功能時,若任一功能禁止了與對等體/對等體組建立會話,則設備不能與相應的對等體/對等體組建立BGP會話。禁止與對等體/對等體組建立會話功能的詳細介紹,請參見“5.5 禁止與對等體/對等體組建立會話”。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
(3) 配置BGP shutdown功能,禁止與所有對等體/對等體組建立會話。
shutdown process
缺省情況下,設備允許與所有BGP對等體/對等體組建立會話。
(4) 完成設備維護後,使設備的BGP重新加入網絡。
undo shutdown process
在完成上述配置後,在任意視圖下執行display命令可以顯示配置後BGP的運行情況,通過查看顯示信息驗證配置的效果。
表7-1 提高BGP網絡的可靠性配置顯示(IPv4單播)
操作 |
命令 |
顯示BGP NSR的運行狀態 |
display bgp [ instance instance-name ] non-stop-routing status |
表7-2 提高BGP網絡的可靠性配置顯示(IPv6單播)
操作 |
命令 |
顯示BGP NSR的運行狀態 |
display bgp [ instance instance-name ] non-stop-routing status |
表7-3 提高BGP網絡的可靠性配置顯示(IPv4組播)
操作 |
命令 |
顯示BGP NSR的運行狀態 |
display bgp [ instance instance-name ] non-stop-routing status |
表7-4 提高BGP網絡的可靠性配置顯示(IPv6組播)
操作 |
命令 |
顯示BGP NSR的運行狀態 |
display bgp [ instance instance-name ] non-stop-routing status |
非缺省vSystem支持本特性中的配置6PE功能。
非缺省vSystem對具體命令的支持情況,請見本特性的命令參考。有關vSystem的詳細介紹請參見“虛擬化技術配置指導”中的“vSystem”。
BGP擴展功能配置任務如下:
· 配置BGP LS
¡ (可選)配置BGP LS路由反射功能
¡ (可選)配置BGP LS信息的AS號和Router ID
¡ (可選)提高鄰居路由參與優選時的優先級
¡ (可選)手工軟複位LS地址族下的BGP會話
BGP LS(Link State,鏈路狀態)功能可以進行跨域和跨AS的LSDB(Link State DataBase,鏈路狀態數據庫)、TEDB(TE DataBase,流量工程數據庫)信息發布。設備把收集到的鏈路狀態信息發送給控製器,實現了業務與流量的端到端管理和調度,還可以滿足需要鏈路狀態信息的各種應用需求。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
(3) 指定LS對等體/對等體組的AS號。
peer { ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } as-number as-number
缺省情況下,未指定LS對等體/對等體組的AS號。
(4) 創建BGP LS地址族,並進入LS地址族視圖。
address-family link-state
(5) 使能本地路由器與對等體/對等體組交換LS信息的能力。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } enable
缺省情況下,本地路由器不能與對等體/對等體組交換LS信息。
通常在同一個AS內,為了減少IBGP連接數,可以把幾個BGP路由器劃分為一個集群,將其中的一台路由器配置為路由反射器,其它路由器作為客戶機,通過路由反射器在客戶機之間反射路由。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
(3) 進入BGP LS地址族視圖。
address-family link-state
(4) 配置BGP LS路由反射功能。
¡ 配置本機作為路由反射器,對等體/對等體組作為路由反射器的客戶機。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } reflect-client
缺省情況下,未配置路由反射器及其客戶機。
¡ (可選)允許路由反射器在客戶機之間反射路由。
reflect between-clients
缺省情況下,允許路由反射器在客戶機之間反射路由。
配置本命令後,可減少同一AS內IBGP的連接數。
¡ (可選)配置路由反射器的集群ID。
reflector cluster-id { cluster-id | ipv4-address }
缺省情況下,每個路由反射器都使用自己的Router ID作為集群ID。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
(3) 進入BGP LS地址族視圖。
address-family link-state
(4) 配置BGP LS信息的AS號和Router ID。
domain-distinguisher as-number:router-id
缺省情況下,使用本BGP進程的AS號和Router ID。
在一個AS內,當兩台設備把相同的LS信息發送到同一個EBGP鄰居時,由於Router ID標識的不同,會被認為是不同的LS信息。通過配置本功能,可以解決這個問題。
缺省情況下,BGP不為指定對等體/對等體組設置對等體高優先級,按照“1.6 BGP的選路規則”進行路由優選。執行本配置後,從配置中指定的對等體/對等體組、其他對等體/對等體組學習到相同前綴的路由時,優選從本配置指定的對等體/對等體組學習到路由。該選路規則應用於“依次選擇從EBGP、聯盟EBGP、聯盟IBGP、IBGP學來的路由”之後,“優選IGP Metric值最小的路由”之前。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
(3) 進入BGP LS地址族視圖。
address-family link-state
(4) 為指定對等體/對等體組設置高優先級,路由選路時優選從該對等體/對等體組學習到的路由。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } high-priority
缺省情況下,BGP不為指定對等體/對等體組設置高優先級,選路規則不發生變化。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖
bgp as-number [ instance instance-name ]
(3) 配置Route-refresh功能。請選擇其中一項進行配置。
¡ 使能本地路由器與指定對等體/對等體組的BGP路由刷新功能。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } capability-advertise route-refresh
¡ 使能本地路由器與指定BGP對等體/對等體組的BGP路由刷新、多協議擴展和4字節AS號功能。
undo peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } capability-advertise conventional
缺省情況下,BGP路由刷新、多協議擴展和4字節AS號功能處於使能狀態。
(4) 手工對LS地址族下的BGP會話進行軟複位。
a. 退回係統視圖。
quit
b. 退回用戶視圖。
quit
c. 手工對LS地址族下的BGP會話進行軟複位。
refresh bgp [ instance instance-name ] { ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] | all | external | group group-name | internal } { export | import } link-state
在完成上述配置後,在任意視圖下執行display命令可以顯示配置後BGP的運行情況,通過查看顯示信息驗證配置的效果。
表8-1 BGP擴展功能配置顯示(LS地址族)
操作 |
命令 |
顯示BGP LS對等體組的信息 |
display bgp [ instance instance-name ] group link-state [ group-name group-name ] |
顯示BGP LS地址族信息 |
display bgp [ instance instance-name ] link-state [ ls-prefix | peer { ipv4-address | ipv6-address } { advertised | received } [ statistics ] | statistics ] display bgp [ instance instance-name ] link-state [ color color-value end-point { ipv4 ipv4-address | ipv6 ipv6-address } ] |
顯示BGP LS對等體或對等體組的信息 |
display bgp [ instance instance-name ] peer link-state [ ipv4-address mask-length | ipv6-address prefix-length | { ipv4-address | ipv6-address | group-name group-name } log-info | [ ipv4-address | ipv6-address ] verbose ] |
顯示BGP LS地址族的打包組信息 |
display bgp [ instance instance-name ] update-group link-state [ ipv4-address | ipv6-address ] |
當BGP路由策略或協議發生變化後,如果需要通過複位BGP會話使新的配置生效,請在用戶視圖下進行下列配置。
複位BGP會話時,會造成短暫的BGP會話中斷。
表8-2 複位BGP會話
操作 |
命令 |
複位LS地址族下的BGP會話 |
reset bgp [ instance instance-name ] { as-number | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] | all | external | group group-name | internal } link-state |
不同款型規格的資料略有差異, 詳細信息請向具體銷售和400谘詢。H3C保留在沒有任何通知或提示的情況下對資料內容進行修改的權利!