07-BGP配置
本章節下載: 07-BGP配置 (2.75 MB)
目 錄
2.1 搭建基本BGP網絡配置任務簡介(IPv4單播/IPv4組播)
2.2 搭建基本BGP網絡配置任務簡介(IPv6單播/IPv6組播)
3.4.2 配置忽略BGP路由的ORIGINATOR_ID屬性
4.6.2 配置BGP在選擇最優路由時忽略AS_PATH屬性
4.6.5 配置發送BGP更新消息時AS_PATH屬性中不攜帶私有AS號
4.7.5 配置允許比較來自同一聯盟不同子自治係統鄰居路由的MED屬性值
4.10 配置BGP在選擇最優路由時忽略IGP Metric的比較
4.12.3 配置BGP路由的下一跳迭代到隧道或IP地址時影響路由優選
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路由進行下一跳路由迭代查找時采用最長匹配方式
5.11 配置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
8.3.5 配置BGP路由根據路由策略來過濾迭代到的下一跳路由
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路由屬性是跟隨路由一起發布出去的一組參數。它對特定的路由進行了進一步的描述,使得路由接收者能夠根據路由屬性值對路由進行過濾和選擇。下麵將介紹幾種常見的路由屬性。
ORIGIN屬性定義了路由信息的來源,標記一條BGP路由是怎麼生成的。它有以下三種類型:
· IGP:優先級最高,表示路由產生於本AS內。
· EGP:優先級次之,表示路由通過EGP學到。
· Incomplete:優先級最低,表示路由的來源無法確定。例如,從其它路由協議引入的路由信息。
AS_PATH屬性記錄了某條路由從本地到目的地址所要經過的所有AS號。當BGP路由器將一條路由通告到其他AS時,會把本地AS號添加在AS_PATH列表中。收到此路由的BGP路由器根據AS_PATH屬性就可以知道到達目的地址所要經過的AS。
AS_PATH屬性有以下兩種類型:
· AS_SEQUENCE:AS號按照一定的順序排列。如圖1-1所示,離本地AS最近的相鄰AS號排在前麵,其他AS號按順序依次排列。
· AS_SET:AS號隻是經過的AS的簡單羅列,沒有順序要求。
AS_PATH屬性具有如下用途:
· 避免路由環路的形成:缺省情況下,如果BGP路由器接收到的路由的AS_PATH屬性中已經包含了本地的AS號,則BGP路由器認為出現路由環路,不會接受該路由。
· 影響路由的選擇:在其他因素相同的情況下,BGP會優先選擇路徑較短的路由。比如在圖1-1中,AS 50中的BGP路由器會選擇經過AS 40的路徑作為到目的地址8.0.0.0的最優路由。用戶可以使用路由策略來人為地增加AS路徑的長度,以便更為靈活地控製BGP路徑的選擇。路由策略的詳細介紹,請參見“三層技術-IP路由配置指導”中的“路由策略”。
· 對路由進行過濾:通過配置AS路徑過濾列表,可以針對AS_PATH屬性中所包含的AS號來對路由進行過濾。AS路徑過濾列表的詳細介紹,請參見“三層技術-IP路由配置指導”中的“路由策略”。
BGP的NEXT_HOP屬性取值不一定是鄰居路由器的IP地址。如圖1-2所示,NEXT_HOP屬性取值情況分為幾種:
· BGP發言者把自己產生的路由發給所有鄰居時,將該路由信息的NEXT_HOP屬性設置為自己與對端連接的接口地址;
· BGP發言者把接收到的路由發送給EBGP對等體時,將該路由信息的NEXT_HOP屬性設置為自己與對端連接的接口地址;
· BGP發言者把從EBGP鄰居得到的路由發給IBGP鄰居時,並不改變該路由信息的NEXT_HOP屬性。如果配置了負載分擔,等價路由被發給IBGP鄰居時則會修改NEXT_HOP屬性。關於“負載分擔”的概念請參見“1.7 BGP負載分擔”。
MED屬性僅在相鄰兩個AS之間交換,收到此屬性的AS不會再將其通告給其它AS。
MED屬性相當於IGP使用的度量值(metrics),它用於判斷流量進入AS時的最佳路由。當一個BGP路由器通過不同的EBGP對等體得到目的地址相同但下一跳不同的多條路由時,在其它條件相同的情況下,將優先選擇MED值較小者作為最佳路由。如圖1-3所示,從AS 10到AS 20的流量將選擇Router B作為入口。
圖1-3 MED屬性
通常情況下,BGP隻比較來自同一個AS的路由的MED屬性值。在某些特殊的應用中,用戶也可以通過配置compare-different-as-med命令,強製BGP比較來自不同AS的路由的MED屬性值。
LOCAL_PREF屬性僅在IBGP對等體之間交換,不通告給其他AS。它表明BGP路由器的優先級。
LOCAL_PREF屬性用於判斷流量離開AS時的最佳路由。當BGP路由器通過不同的IBGP對等體得到目的地址相同但下一跳不同的多條路由時,將優先選擇LOCAL_PREF屬性值較高的路由。如圖1-4所示,從AS 20到AS 10的流量將選擇Router C作為出口。
BGP將具有相同特征的路由歸為一組,稱為一個團體,通過在路由中攜帶團體屬性標識路由所屬的團體。團體沒有物理上的邊界,不同AS的路由可以屬於同一個團體。
根據需要,一條路由可以攜帶一個或多個團體屬性值(每個團體屬性值用一個四字節的整數表示)。接收到該路由的路由器可以通過比較團體屬性值對路由作出適當的處理(比如決定是否發布該路由、在什麼範圍發布等),而不需要匹配複雜的過濾規則(如ACL),從而簡化路由策略的應用和降低維護管理的難度。
公認的團體屬性有:
· INTERNET:缺省情況下,所有的路由都屬於INTERNET團體。具有此屬性的路由可以被通告給所有的BGP對等體。
· NO_EXPORT:具有此屬性的路由在收到後,不能被發布到本地AS之外。如果使用了聯盟,則不能被發布到聯盟之外,但可以發布給聯盟中的其他子AS(關於聯盟的定義請參見“1.8 6. 聯盟”)。
· NO_ADVERTISE:具有此屬性的路由被接收後,不能被通告給任何其他的BGP對等體。
· NO_EXPORT_SUBCONFED:具有此屬性的路由被接收後,不能被發布到本地AS之外,也不能發布到聯盟中的其他子AS。
除了公認的團體屬性外,用戶還可以使用團體屬性列表自定義團體屬性,以便更為靈活地控製路由策略。
隨著團體屬性的應用日益廣泛,原有四字節的團體屬性無法滿足用戶的需求。因此,BGP定義了新的路由屬性——擴展團體屬性。擴展團體屬性與團體屬性有如下不同:
· 擴展團體屬性為八字節,提供了更多的屬性值。
· 擴展團體屬性可以劃分類型。在不同的組網應用中,可以使用不同類型的擴展團體屬性對路由進行過濾和控製。與不區分類型、統一使用同一個屬性值空間的團體屬性相比,擴展團體屬性的配置和管理更為簡單。
目前,設備支持的擴展團體屬性有VPN Target、SoO(Site of Origin,源站點)屬性、Color屬性和Priority-Color屬性。
VPN Target屬性的詳細介紹,請參見“MPLS配置指導”中的“MPLS L3VPN”;Color屬性的詳細介紹,請參見“三層技術-IP路由命令參考”中的“路由策略”;Priority-Color屬性的詳細介紹,請參見“SDWAN配置指導”中的“SDWAN”。
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)不可達的路由。如果配置了bestroute nexthop-resolved none命令,則跳過本規則。
(2) 丟棄路由的下一跳(NEXT_HOP)未迭代到IP地址的路由。如果配置了bestroute nexthop-resolved tunnel命令,則不丟棄下一跳未迭代到IP地址、但是迭代到了隧道的路由;仍然丟棄下一跳既未迭代到IP地址、也未迭代到隧道的路由。
(3) 優選首選值(Preferred-value)最大的路由。
(4) 根據peer high-priority preferred命令的配置,優選從指定對等體/對等體組學習到的路由。如果未配置peer high-priority preferred命令,則跳過本規則。
(5) 根據bestroute nexthop-priority preferred命令的配置,優選下一跳地址為IPv4地址或IPv6地址的路由。如果未配置bestroute nexthop-priority preferred命令,則跳過本規則。
(6) 根據bestroute nexthop-type preferred命令的配置,優選下一跳迭代到隧道或IP地址的路由。如果未配置bestroute nexthop-type preferred命令,則跳過本規則。
(7) 在BGP實例的VPN實例內,根據bestroute encap-type preferred命令的配置優選SRv6封裝或MPLS封裝的路由。在BGP實例的公網實例內,本規則不生效;如果未配置bestroute encap-type preferred命令,則跳過本規則。
(8) 優選本地優先級(LOCAL_PREF)最高的路由。
(9) 在BGP實例的VPN實例內,根據bestroute encap-type命令的配置優選SRv6封裝或MPLS封裝的路由。在BGP實例的公網實例內,本規則不生效;如果未配置bestroute encap-type命令,則跳過本規則。
(10) 依次選擇network命令生成的路由、import-route命令引入的路由、聚合路由。
(11) 優選AS路徑(AS_PATH)最短的路由。
(12) 依次選擇ORIGIN類型為IGP、EGP、Incomplete的路由。
(13) 優選MED值最低的路由。
(14) 依次選擇從EBGP、聯盟EBGP、聯盟IBGP、IBGP學來的路由。
(15) 根據peer high-priority命令的配置,優選從指定對等體/對等體組學習到的路由。如果未配置peer high-priority命令,則跳過本規則。
(16) 根據bestroute nexthop-priority命令的配置,優選下一跳地址為IPv4地址或IPv6地址的路由。如果未配置bestroute nexthop-priority命令,則跳過本規則。
(17) 優選到達下一跳的IGP路由的Metric值最小的路由。如果配置了bestroute igp-metric-ignore命令,則跳過本規則。
(18) 優選迭代深度值小的路由。
(19) 根據bestroute nexthop-type命令的配置,優選下一跳迭代到隧道或IP地址的路由。如果未配置bestroute nexthop-type命令,則跳過本規則。
(20) 如果當前的最優路由為EBGP路由,則BGP路由器收到來自不同的EBGP鄰居的路由後,不會改變最優路由。
(21) 優選Router ID最小的路由器發布的路由。如果路由包含RR屬性,那麼在路由選擇過程中,就用ORIGINATOR_ID來替代Router ID。如果配置了bestroute router-id-ignore命令,則跳過本規則。
(22) 優選CLUSTER_LIST長度最短的路由。
(23) 優選下一跳地址為IPv4地址的路由。
(24) 優選IP地址最小的對等體發布的路由。
· CLUSTER_ID為路由反射器的集群ID,CLUSTER_LIST由CLUSTER_ID序列組成,路由反射器將自己的CLUSTER_ID加入CLUSTER_LIST中。若路由反射器收到路由中的CLUSTER_LIST包含自己的CLUSTER_ID,則丟棄該路由,從而避免集群內發生環路。
· 如果配置了負載分擔,並且有多條到達同一目的地的路由,則根據配置的路由條數選擇多條路由進行負載分擔。
· 有關bestroute encap-type命令的詳細介紹,請參見“Segment Routing命令參考”中的“SRv6 TE Policy”。
BGP發布路由時采用如下策略:
· 存在多條有效路由時,BGP發言者隻將最優路由發布給對等體。如果配置了advertise-rib-active命令,則BGP發布IP路由表中的最優路由;否則,發布BGP路由表中的最優路由。
· BGP發言者隻把自己使用的路由發布給對等體。
· BGP發言者會將從EBGP獲得的路由發布給它的所有BGP對等體(包括EBGP對等體和IBGP對等體)。
· BGP發言者會將從IBGP獲得的路由發布給它的EBGP對等體,但不會發布給它的IBGP對等體。
· 會話一旦建立,BGP發言者將把滿足上述條件的所有BGP路由發布給新對等體。之後,BGP發言者隻在路由變化時,向對等體發布更新的路由。
BGP可以通過如下兩種方式實現負載分擔:
· 基於迭代路由實現負載分擔
· 通過改變BGP選路規則實現負載分擔
由於BGP協議本身的特殊性,它產生的路由的下一跳地址可能不是當前路由器直接相連的鄰居。常見的一個原因是:IBGP之間發布路由信息時不改變下一跳。這種情況下,為了能夠將報文正確轉發出去,路由器必須先找到一個直接可達的地址(查找IGP建立的路由表項),通過這個地址到達路由表中指示的下一跳。在上述過程中,去往直接可達地址的路由被稱為依賴路由,BGP路由依賴於這些路由指導報文轉發。根據下一跳地址找到依賴路由的過程就是路由迭代。
目前係統支持基於迭代的BGP負載分擔,即如果依賴路由本身是負載分擔的(假設有三個下一跳地址),則BGP也會生成與依賴路由數量相同的下一跳地址來指導報文轉發。需要說明的是,基於迭代的BGP負載分擔並不需要命令配置,這一特性在係統上始終啟用。
在實現方法上,BGP的負載分擔與IGP的負載分擔有所不同:
· IGP(如RIP、OSPF)是通過協議定義的路由算法,對到達同一目的地址的不同路由,根據計算結果,將度量值(metric)相等的路由進行負載分擔,選擇的標準很明確(按metric)。
· BGP本身並沒有路由計算的算法,它隻是一個選路的路由協議,因此,不能根據一個明確的度量值決定是否對路由進行負載分擔,但BGP有豐富的選路規則,可以在對路由進行一定的選擇後,有條件地進行負載分擔,也就是將負載分擔加入到BGP的選路規則中去。
采用本方式進行負載分擔時,BGP不再按照“1.5 BGP的選路規則”中的規則選擇路由,當路由同時滿足如下條件時,即在這些路由間進行負載分擔:
· ORIGIN屬性、LOCAL_PREF屬性、和MED屬性完全相同。
· AS_PATH屬性滿足如下要求:
¡ 隻要配置了balance as-path-neglect命令,則AS_PATH屬性可以不同。
¡ 如果配置了balance as-path-relax命令,但未配置balance as-path-neglect命令,則AS_PATH屬性內容不同但長度相同的路由之間能夠形成BGP負載分擔。
¡ 如果未配置balance as-path-neglect和balance as-path-relax命令,則要求AS_PATH屬性也必須相同。
· 路由下一跳的IGP路由的Metric值滿足如下要求:
¡ 若未配置bestroute igp-metric-ignore命令,則路由下一跳的IGP的Metric值必須相同。
¡ 配置了bestroute igp-metric-ignore命令後,不同路由下一跳的IGP Metric值不同也能形成BGP負載分擔。
· 同為標簽路由(具有對應MPLS標簽值的路由)或同為非標簽路由。
圖1-5 BGP負載分擔示意圖
在圖1-5中,Router A和Router B是Router C的IBGP對等體。當Router D和Router E同時向Router C通告到達同一目的地的路由時,如果用戶在Router C上配置了進行負載分擔的BGP路由條數為2,則當這兩條路由滿足負載分擔條件時,Router C就把這兩條路由同時加入到轉發表中,實現BGP路由的負載分擔。Router C隻向Router A和Router B轉發一次該路由,該路由的屬性按照如下方法確定:
· 如果未配置balance as-path-neglect和balance as-path-relax命令,形成負載分擔的路由的AS_PATH屬性相同,則發布路由的AS_PATH屬性就為該值;如果配置了balance as-path-neglect或balance as-path-relax命令,形成負載分擔的路由的AS_PATH屬性不同,則發布路由的AS_PATH屬性為最佳路由的AS_PATH屬性。
· NEXT_HOP屬性改變為Router C的地址,而不是原來的EBGP對等體地址。
· 其它的BGP路由屬性為最佳路由的屬性。
BGP負載分擔特性適用於EBGP、IBGP以及聯盟之間。
在大規模BGP網絡中,對等體的數目眾多,路由表龐大,配置和維護極為不便。通過如下方法,可以降低管理難度,提高路由發布效率。
在大規模的網絡中,BGP路由表十分龐大,使用路由聚合(Routes Aggregation)可以大大減小BGP路由表的規模。
路由聚合實際上是將多條路由合並的過程。這樣BGP在向對等體通告路由時,可以隻通告聚合後的路由,而不是將所有的具體路由都通告出去。
目前係統支持自動聚合和手動聚合方式。使用後者還可以控製聚合路由的屬性,以及決定是否發布具體路由。
路由發生變化時,路由協議會向鄰居發布路由更新,收到路由更新的路由器需要重新計算路由並修改路由表。如果發生路由震蕩,即路由不穩定,路由表中的某條路由反複消失和重現,則會消耗大量的帶寬資源和CPU資源,嚴重時會影響到網絡的正常工作。
在多數情況下,BGP協議都應用於複雜的網絡環境中,路由變化十分頻繁。為了防止持續的路由震蕩帶來的不利影響,BGP使用衰減來抑製不穩定的路由。
BGP衰減使用懲罰值來衡量一條路由的穩定性,懲罰值越高說明路由越不穩定。如圖1-6所示,路由每次從可達狀態變為不可達狀態,或者可達路由的屬性每次發生變化時,BGP給此路由增加一定的懲罰值(係統固定為1000,不可修改)。當懲罰值超過抑製閾值時,此路由被抑製,不參與路由選擇。懲罰值達到設置的上限後,不再繼續增加。
發生震蕩的路由如果沒有再次震蕩,則路由的懲罰值會逐漸減少。每經過一段時間,懲罰值便會減少一半,這個時間稱為半衰期(Half-life)。當懲罰值低於再使用閾值時,此路由變為可用路由,參與路由選擇。
圖1-6 BGP路由衰減示意圖
在大規模BGP網絡中,對等體的數量很多,其中很多對等體具有相同的策略,在配置時會重複使用一些命令。此時,將這些對等體加入一個對等體組,可以簡化配置。
對等體組是具有某些相同屬性的對等體的集合。當一個對等體加入對等體組時,此對等體將獲得與所在對等體組相同的配置。當對等體組的配置改變時,組內成員的配置也相應改變。
在大規模的網絡中,如果通過地址前綴列表、ACL、AS_PATH等實現對路由的控製,不僅配置複雜,而且不方便維護。利用團體屬性和擴展團體屬性,可以提高路由策略配置的靈活度,簡化路由策略的管理,從而降低維護管理的難度。團體屬性和擴展團體屬性的介紹請參見“1.4 BGP的路由屬性”。
為保證IBGP對等體之間的連通性,需要在IBGP對等體之間建立全連接關係。假設在一個AS內部有n台路由器,那麼應該建立的IBGP連接數就為n(n-1)/2。當IBGP對等體數目很多時,對網絡資源和CPU資源的消耗都很大。
利用路由反射可以解決這一問題。在一個AS內,其中一台路由器作為RR(Route Reflector,路由反射器),作為客戶機(Client)的路由器與路由反射器之間建立IBGP連接。路由反射器從客戶機接收到路由後,將其傳遞(反射)給所有其他的客戶機,從而保證客戶機之間不需要建立BGP連接,就可以學習到彼此的路由。
既不是路由反射器也不是客戶機的BGP路由器被稱為非客戶機(Non-client)。非客戶機與路由反射器之間,以及所有的非客戶機之間仍然必須建立全連接關係。其示意圖如圖1-7所示。
路由反射器及其客戶機形成了一個集群。通常情況下,一個集群中隻有一個路由反射器,該反射器的Router ID就作為集群ID,用於識別該群。如圖1-8所示,為了提高網絡的可靠性、避免單點故障,一個集群中可以設置多個路由反射器。此時,集群中所有路由反射器上都需要配置相同的集群ID,以便集群具有統一的標識,避免路由環路的產生。
如果配置了路由反射器後,由於組網需要在路由反射器的客戶機之間又建立了全連接,則客戶機之間可以直接交換路由信息,客戶機到客戶機之間的路由反射是沒有必要的。此時,不需要修改網絡配置或改變網絡拓撲,隻需在路由反射器上通過相關命令禁止其在客戶機之間反射路由,就可以避免路由反射,減少占用的帶寬資源。
禁止客戶機之間的路由反射後,客戶機到非客戶機之間的路由仍然可以被反射。
聯盟(Confederation)是處理自治係統內部的IBGP網絡連接激增的另一種方法,它將一個自治係統劃分為若幹個子自治係統,每個子自治係統內部的IBGP對等體建立全連接關係,子自治係統之間建立聯盟內部EBGP連接關係。其示意圖如圖1-9所示。
在不屬於聯盟的BGP發言者看來,屬於同一個聯盟的多個子自治係統是一個整體,外界不需要了解內部的子自治係統情況,聯盟ID就是標識聯盟這一整體的自治係統號,如上圖中的AS 200就是聯盟ID。
聯盟的缺陷是從非聯盟方案向聯盟方案轉變時,要求路由器重新進行配置,邏輯拓撲也要改變。
在大型BGP網絡中,路由反射器和聯盟可以被同時使用。
BGP-4隻能傳遞IPv4單播的路由信息,不能傳遞其它網絡層協議(如IPv6等)的路由信息。
為了提供對多種網絡層協議的支持,IETF對BGP-4進行了擴展,形成MP-BGP(Multiprotocol Border Gateway Protocol,多協議邊界網關協議)。MP-BGP可以為多種網絡層協議傳遞路由信息。
· IPv6單播
通過MP-BGP發布和維護IPv6單播路由前綴信息。
· 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路由前綴信息,詳細介紹請參見“MPLS配置指導”中的“MPLS L3VPN”和“IPv6 MPLS L3VPN”。
· 帶標簽的IPv4單播/IPv6單播
通過MP-BGP發布和維護IPv4單播/IPv6單播路由前綴的同時,還發布為該路由前綴分配的MPLS標簽。帶標簽的IPv4單播路由主要應用於MPLS L3VPN的跨域VPN-OptionC組網中;帶標簽的IPv6單播路由主要應用於6PE和MPLS L3VPN的跨域VPN-OptionC組網中。跨域VPN-OptionC組網的詳細介紹,請參見“MPLS配置指導”中的“MPLS L3VPN”。
· L2VPN
通過MP-BGP發布和維護標簽塊信息和遠端鄰居信息,詳細介紹請參見“MPLS配置指導”中的“MPLS L2VPN”和“VPLS”。
· IPv4 MDT
通過MP-BGP發布和維護包含PE地址及PE所在的Default-group等信息的MDT信息,以便組播VPN根據MDT信息在公網上建立以PE為根(即組播源)的Default-MDT。詳細介紹請參見“IP組播配置指導”中的“組播VPN”。
· MVPN
通過MP-BGP發布和維護MVPN路由信息。在組播VPN的RSVP-TE模式中,設備根據MVPN路由信息建立相容性隧道和選擇性隧道,詳細介紹請參見“IP組播配置指導”中的“組播VPN”。
· EVPN
通過MP-BGP發布和維護EVPN路由信息,以實現自動發現VTEP、自動建立和關聯VXLAN隧道、通告MAC地址和ARP信息。詳細介紹請參見“EVPN配置指導”中的“EVPN”。
· IPv4 Tnl-encap-ext
通過MP-BGP發布和維護IPv4 Tnl-encap-ext路由信息,IPv4 Tnl-encap-ext路由中攜帶的TTE信息,可以幫助建立CPE間的數據SDWAN隧道;IPv4 Tnl-encap-ext路由中攜帶的SaaS訪問路徑質量信息,可以在智能選路場景下為不同的應用選擇最佳訪問路徑。詳細介紹請參見“SDWAN配置指導”中的“SDWAN”。
路由信息中與網絡層協議相關的關鍵信息包括路由前綴和下一跳地址。BGP-4通過Update消息中的NLRI(Network Layer Reachability Information,網絡層可達性信息)字段攜帶可達路由的前綴信息,Withdrawn Routes字段攜帶不可達路由的前綴信息,NEXT_HOP屬性攜帶下一跳地址信息。NLRI字段、Withdrawn Routes字段和NEXT_HOP屬性不易於擴展,無法攜帶多種網絡層協議的信息。
為實現對多種網絡層協議的支持,MP-BGP定義了兩個新的路徑屬性:
· MP_REACH_NLRI(Multiprotocol Reachable NLRI,多協議可達NLRI):用於攜帶多種網絡層協議的可達路由前綴及下一跳地址信息,以便向鄰居發布該路由。
· MP_UNREACH_NLRI(Multiprotocol Unreachable NLRI,多協議不可達NLRI):用於攜帶多種網絡層協議的不可達路由前綴信息,以便撤銷該路由。
MP-BGP通過上述兩個路徑屬性傳遞不同網絡層協議的可達路由和不可達路由信息。不支持MP-BGP的BGP發言者接收到帶有這兩個屬性的Update消息後,忽略這兩個屬性,不把它們傳遞給其它鄰居。
MP-BGP采用地址族(Address Family)和子地址族(Subsequent Address Family)來區分MP_REACH_NLRI屬性、MP_UNREACH_NLRI屬性中攜帶路由信息所屬的網絡層協議。例如,如果MP_REACH_NLRI屬性中AFI(Address Family Identifier,地址族標識符)為2、SAFI(Subsequent Address Family Identifier,子地址族標識符)為1,則表示該屬性中攜帶的是IPv6單播路由信息。關於地址族的一些取值可以參考RFC 1700。
MP-BGP支持IPvX(X可以為4或6)對等體之間交互IPv4和IPv6路由,即IPv4對等體之間除了交互IPv4路由以外還可以交互IPv6路由,IPv6對等體之間除了交互IPv6路由以外還可以交互IPv4路由:
· IPv6路由的下一跳為IPv4地址時,MP-BGP將此IPv4地址映射為IPv6地址封裝在Update報文的Next-Hop屬性中。此時,需要配置路由策略,將IPv6路由的下一跳地址修改為對端設備的IPv6地址,否則無法正常進行路由迭代。
· IPv4路由的下一跳為IPv6地址時,需要BGP會話協商支持擴展IPv6下一跳能力,將IPv4 NLRI封裝在MP_REACH_NLRI屬性中。此時,需要配置路由策略,將IPv4路由的下一跳地址修改為對端設備的IPv4地址,否則無法正常進行路由迭代。
圖1-10 MP-BGP支持BGP IPvX會話承載IPv4和IPv6路由
以圖1-10為例,Device B和Device C之間僅建立BGP IPv6會話,Device A和DeviceB、Device C和Device D之間同時建立BGP IPv4和BGP IPv6會話,Device A和Device D可以學習到對方的IPv4和IPv6路由並且兩個地址族下的流量都能正常互通。當Device C收到Device B發布的IPv4路由時,下一跳為Device B的IPv6地址,需要在Device C上配置路由策略將這類路由的下一跳屬性修改為Device B上出接口Port A的IPv4地址10.1.1.1/24,反之同理。
一台BGP路由器上可以同時啟動多個BGP進程,每個BGP進程對應一個BGP實例。BGP為不同的BGP實例維護獨立的路由表。
BGP對BGP多實例具有如下要求:
· 一個BGP實例下可以創建多個公網地址族,但不同BGP實例下不能創建相同的公網地址族(IPv4單播地址族、IPv6單播地址族、VPNv4地址族、VPNv6地址族、VPNv4 Flowspec地址族、VPNv6 Flowspec地址族、IPv4 RT-Filter地址族、IPv4 SR Policy地址族以及IPv6 SR Policy地址族除外)。
· 一個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 VPNv4地址族視圖的配置請參見“MPLS配置指導”中的“MPLS L3VPN” |
|
BGP VPNv6地址族視圖 |
該視圖下的配置對指定BGP實例的VPNv6路由和對等體生效 BGP VPNv6地址族視圖的配置請參見“MPLS配置指導”中的“IPv6 MPLS L3VPN” |
|
BGP L2VPN地址族視圖 |
該視圖下的配置對指定BGP實例的L2VPN對等體和L2VPN信息生效 BGP L2VPN地址族視圖的配置請參見“MPLS配置指導”中的“MPLS L2VPN”和“VPLS” |
|
BGP EVPN地址族視圖 |
該視圖下的配置對指定BGP實例的EVPN路由和對等體生效 BGP EVPN地址族的配置請參見“EVPN配置指導”中的“EVPN” |
|
BGP-VPN實例視圖 |
該視圖下的配置對指定BGP實例的指定VPN實例內所有地址族的路由和對等體生效 VPN實例的詳細介紹,請參見“MPLS配置指導”中的“MPLS L3VPN” |
|
BGP-VPN IPv4單播地址族視圖 |
該視圖下的配置對指定BGP實例的指定VPN實例內的IPv4單播路由和對等體生效 VPN實例的詳細介紹,請參見“MPLS配置指導”中的“MPLS L3VPN” |
|
BGP-VPN IPv6單播地址族視圖 |
該視圖下的配置對指定BGP實例的指定VPN實例內的IPv6單播路由和對等體生效 VPN實例的詳細介紹,請參見“MPLS配置指導”中的“MPLS L3VPN” |
|
BGP-VPN VPNv4地址族視圖 |
該視圖下的配置對指定BGP實例的指定VPN實例內的VPNv4路由和對等體生效 BGP-VPN VPNv4地址族視圖的配置請參見“MPLS配置指導”中的“MPLS L3VPN” |
|
BGP MDT地址族視圖 |
該視圖下的配置對指定BGP實例的MDT路由和對等體生效 BGP MDT地址族的配置請參見“IP組播配置指導”中的“組播VPN” |
|
BGP IPv4 MVPN地址族視圖 |
該視圖下的配置對指定BGP實例的MVPN路由和對等體生效 BGP IPv4 MVPN地址族的配置請參見“IP組播配置指導”中的“組播VPN” |
|
BGP LS地址族視圖 |
該視圖下的配置對指定BGP實例的LS信息和對等體生效 |
|
BGP IPv4 RT-Filter地址族視圖 |
該視圖下的配置對指定BGP實例的IPv4 RT-Filter路由和對等體生效 BGP IPv4 RT-Filter地址族視圖的配置請參見“MPLS配置指導”中的“MPLS L3VPN” |
|
BGP IPv4 tnl-encap-ext地址族視圖 |
該視圖下的配置對指定BGP實例的IPv4 Tnl-Encap-Ext路由和對等體生效 BGP IPv4 Tnl-Encap-Ext地址族視圖的配置請參見“SDWAN配置指導”中的“SDWAN” |
|
BGP IPv6 SR Policy地址族視圖 |
該視圖下的配置對指定BGP實例的IPv6 SR Policy路由和對等體生效 BGP IPv6 SR Policy地址族視圖的配置請參見“Segment Routing配置指導”中的“SRv6 TE Policy” |
與BGP相關的協議規範有:
· RFC 1700:ASSIGNED NUMBERS
· RFC 1997:BGP Communities Attribute
· RFC 2439:BGP Route Flap Damping
· RFC 2545:Use of BGP-4 Multiprotocol Extensions for IPv6 Inter-Domain Routing
· RFC 2918:Route Refresh Capability for BGP-4
· RFC 3107:Carrying Label Information in BGP-4
· RFC 4271:A Border Gateway Protocol 4 (BGP-4)
· RFC 4275:BGP-4 MIB Implementation Survey
· RFC 4277:Experience with the BGP-4 Protocol
· RFC 4360:BGP Extended Communities Attribute
· RFC 4364:BGP/MPLS IP Virtual Private Networks (VPNs)
· RFC 4382:MPLS/BGP Layer 3 Virtual Private Network (VPN) Management
· RFC 4451:BGP MULTI_EXIT_DISC (MED) Consideration
· RFC 4456:BGP Route Reflection: An Alternative to Full Mesh Internal BGP
· RFC 4486:Subcodes for BGP Cease Notification Message
· RFC 4659:BGP-MPLS IP Virtual Private Network (VPN) Extension for IPv6 VPN
· RFC 4684:Constrained Route Distribution for Border Gateway Protocol/MultiProtocol Label Switching (BGP/MPLS) Internet Protocol (IP) Virtual Private Networks (VPNs)
· RFC 4724:Graceful Restart Mechanism for BGP
· RFC 4760:Multiprotocol Extensions for BGP-4
· RFC 4781:Graceful Restart Mechanism for BGP with MPLS
· RFC 5004:Avoid BGP Best Path Transitions from One External to Another
· RFC 5065:Autonomous System Confederations for BGP
· RFC 5082:The Generalized TTL Security Mechanism (GTSM)
· RFC 5668:4-Octet AS Specific BGP Extended Community
· RFC 6037:Cisco Systems' Solution for Multicast in BGP MPLS IP VPNs
· RFC 6368:Internal BGP as the Provider/Customer Edge Protocol for BGP/MPLS IP
· 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 7432:BGP MPLS-Based Ethernet VPN
· 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 ] * ]
¡ 引入直連、Guard或靜態路由。
import-route { direct | guard | static } [ med med-value | route-policy route-policy-name ] *
¡ 引入EIGRP協議的路由。
import-route eigrp [ eigrp-as | all-as ] [ allow-direct | 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 ] *
¡ 引入EIGRP協議的路由。
import-route-append eigrp [ eigrp-as | all-as ] [ allow-direct | 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 ] * ]
¡ 引入直連、Guard或靜態路由。
import-route { direct | guard | 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 | eigrp eigrp-as | { 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進程恢複後,設備不能立刻向鄰居發布更新消息,而是在一段延遲時間之後才能發送。這段延遲時間的作用是,設備重啟後可以等待路由接收完成並優選後再向其他設備發布,以避免設備重啟後路由信息不全,就發布給其他設備導致流量丟失的情況。
配置本功能後,如果需要部分路由前綴不受延遲發布控製,可以使用前綴列表進行控製,通過前綴列表過濾的路由不受延遲發布的影響。
對於BGP EVPN路由,路由更新消息延遲發布功能僅對IP前綴路由以及攜帶了IP路由信息的MAC/IP發布路由生效,無法對其他類型的BGP EVPN路由生效。
(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秒。
本地標簽是指本地設備通過VPNv4路由、VPNv6路由、帶標簽的IPv4單播路由或帶標簽的IPv6單播路由分配給其他BGP對等體的MPLS標簽。為路由分配的本地標簽發生變化時,如果立即刪除本地標簽,則BGP對等體可能尚未收到新的標簽,仍然采用舊的標簽轉發報文,從而導致流量中斷。為了避免上述情況發生,BGP需要延遲一段時間再刪除本地標簽。通過本配置可以調整本地標簽的延遲刪除時間。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
(3) 配置刪除本地標簽的延遲時間。
retain local-label retain-time
缺省情況下,刪除本地標簽的延遲時間為60秒。
全局使能BGP日誌記錄功能,並使能與指定對等體/對等體組之間BGP會話的日誌記錄功能後,與該對等體/對等體組之間的BGP會話建立以及斷開時會生成日誌信息,通過display bgp peer ipv4 unicast log-info命令或display bgp peer ipv6 unicast log-info命令可以查看記錄的日誌信息。生成的日誌信息還將被發送到設備的信息中心,通過設置信息中心的參數,決定日誌信息的輸出規則(即是否允許輸出以及輸出方向)。
有關信息中心參數的配置請參見“網絡管理和監控配置指導”中的“信息中心”。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
(3) 全局使能BGP日誌記錄功能。
log-peer-change
缺省情況下,全局BGP日誌記錄功能處於開啟狀態。
(4) (可選)進入BGP-VPN實例視圖。
ip vpn-instance vpn-instance-name
(5) 使能與指定對等體/對等體組之間BGP會話的日誌記錄功能。
peer { group-name | ipv4-address [ mask-length ] } log-change
缺省情況下,與所有對等體/對等體組之間BGP會話的日誌記錄功能均處於開啟狀態。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
(3) 全局使能BGP日誌記錄功能。
log-peer-change
缺省情況下,全局BGP日誌記錄功能處於開啟狀態。
(4) (可選)進入BGP-VPN實例視圖。
ip vpn-instance vpn-instance-name
(5) 使能與指定對等體/對等體組之間BGP會話的日誌記錄功能。
peer { group-name | ipv6-address [ prefix-length ] } log-change
缺省情況下,與所有對等體/對等體組之間BGP會話的日誌記錄功能均處於開啟狀態。
開啟BGP模塊的告警功能後,當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 ] ] |
如圖2-1所示,所有路由器均運行BGP協議。要求Router A和Router B之間建立EBGP連接,Router B和Router C之間建立IBGP連接,使得Router C能夠訪問Router A直連的8.1.1.0/24網段。
圖2-1 BGP基本配置組網圖
(1) 配置各接口的IP地址(略)
(2) 配置IBGP連接
¡ 為了防止端口狀態不穩定引起路由震蕩,本舉例使用Loopback接口來創建IBGP對等體。
¡ 使用Loopback接口創建IBGP對等體時,因為Loopback接口不是兩對等體實際連接的接口,所以,必須使用peer connect-interface命令將Loopback接口配置為BGP連接的源接口。
¡ 在AS 65009內部,使用OSPF協議,保證Router B到Router C的Loopback接口路由可達。
# 配置Router B。
<RouterB> system-view
[RouterB] bgp 65009
[RouterB-bgp-default] router-id 2.2.2.2
[RouterB-bgp-default] peer 3.3.3.3 as-number 65009
[RouterB-bgp-default] peer 3.3.3.3 connect-interface loopback 0
[RouterB-bgp-default] address-family ipv4 unicast
[RouterB-bgp-default-ipv4] peer 3.3.3.3 enable
[RouterB-bgp-default-ipv4] quit
[RouterB-bgp-default] quit
[RouterB] ospf 1
[RouterB-ospf-1] area 0
[RouterB-ospf-1-area-0.0.0.0] network 2.2.2.2 0.0.0.0
[RouterB-ospf-1-area-0.0.0.0] network 9.1.1.0 0.0.0.255
[RouterB-ospf-1-area-0.0.0.0] quit
[RouterB-ospf-1] quit
# 配置Router C。
<RouterC> system-view
[RouterC] bgp 65009
[RouterC-bgp-default] router-id 3.3.3.3
[RouterC-bgp-default] peer 2.2.2.2 as-number 65009
[RouterC-bgp-default] peer 2.2.2.2 connect-interface loopback 0
[RouterC-bgp-default] address-family ipv4 unicast
[RouterC-bgp-default-ipv4] peer 2.2.2.2 enable
[RouterC-bgp-default-ipv4] quit
[RouterC-bgp-default] quit
[RouterC] ospf 1
[RouterC-ospf-1] area 0
[RouterC-ospf-1-area-0.0.0.0] network 3.3.3.3 0.0.0.0
[RouterC-ospf-1-area-0.0.0.0] network 9.1.1.0 0.0.0.255
[RouterC-ospf-1-area-0.0.0.0] quit
[RouterC-ospf-1] quit
[RouterC] display bgp peer ipv4
BGP local router ID : 3.3.3.3
Local AS number : 65009
Total number of peers : 1 Peers in established state : 1
* - Dynamically created peer
Peer AS MsgRcvd MsgSent OutQ PrefRcv Up/Down State
2.2.2.2 65009 7 10 0 0 00:06:09 Established
以上顯示信息表明Router B和Router C之間的IBGP連接已經建立。
(3) 配置EBGP連接
¡ EBGP鄰居關係的兩台路由器(通常屬於兩個不同運營商),處於不同的AS域,對端的Loopback接口一般路由不可達,所以一般使用直連地址建立EBGP鄰居。
¡ 因為要求Router C能夠訪問Router A直連的8.1.1.0/24網段,所以,建立EBGP連接後,需要將8.1.1.0/24網段路由通告到BGP路由表中。
# 配置Router A。
<RouterA> system-view
[RouterA] bgp 65008
[RouterA-bgp-default] router-id 1.1.1.1
[RouterA-bgp-default] peer 3.1.1.1 as-number 65009
[RouterA-bgp-default] address-family ipv4 unicast
[RouterA-bgp-default-ipv4] peer 3.1.1.1 enable
[RouterA-bgp-default-ipv4] network 8.1.1.0 24
[RouterA-bgp-default-ipv4] quit
[RouterA-bgp-default] quit
# 配置Router B。
[RouterB] bgp 65009
[RouterB-bgp-default] peer 3.1.1.2 as-number 65008
[RouterB-bgp-default] address-family ipv4 unicast
[RouterB-bgp-default-ipv4] peer 3.1.1.2 enable
[RouterB-bgp-default-ipv4] quit
[RouterB-bgp-default] quit
# 查看Router B的BGP對等體的連接狀態。
[RouterB] display bgp peer ipv4
BGP local router ID : 2.2.2.2
Local AS number : 65009
Total number of peers : 2 Peers in established state : 2
* - Dynamically created peer
Peer AS MsgRcvd MsgSent OutQ PrefRcv Up/Down State
3.3.3.3 65009 12 10 0 3 00:09:16 Established
3.1.1.2 65008 3 3 0 1 00:00:08 Established
可以看出,Router B與Router C、Router B與Router A之間的BGP連接均已建立。
# 查看Router A的BGP路由表。
[RouterA] display bgp routing-table ipv4
Total number of routes: 1
BGP local router ID is 1.1.1.1
Status codes: * - valid, > - best, d - dampened, h - history,
s - suppressed, S - stale, i - internal, e - external
Origin: i - IGP, e - EGP, ? - incomplete
Network NextHop MED LocPrf PrefVal Path/Ogn
* > 8.1.1.0/24 8.1.1.1 0 32768 i
# 顯示Router B的BGP路由表。
[RouterB] display bgp routing-table ipv4
Total number of routes: 1
BGP local router ID is 2.2.2.2
Status codes: * - valid, > - best, d - dampened, h - history,
s - suppressed, S - stale, i - internal, e - external
Origin: i - IGP, e - EGP, ? - incomplete
Network NextHop MED LocPrf PrefVal Path/Ogn
* >e 8.1.1.0/24 3.1.1.2 0 0 65008i
# 顯示Router C的BGP路由表。
[RouterC] display bgp routing-table ipv4
Total number of routes: 1
BGP local router ID is 3.3.3.3
Status codes: * - valid, > - best, d - dampened, h - history,
s - suppressed, S - stale, i - internal, e - external
Origin: i - IGP, e - EGP, ? - incomplete
Network NextHop MED LocPrf PrefVal Path/Ogn
i 8.1.1.0/24 3.1.1.2 0 100 0 65008i
從路由表可以看出,Router A沒有學到AS 65009內部的任何路由,Router C雖然學到了AS 65008中的8.1.1.0的路由,但因為下一跳3.1.1.2不可達,所以也不是有效路由。
(4) 配置BGP引入直連路由
在Router B上配置BGP引入直連路由,以便Router A能夠獲取到網段9.1.1.0/24的路由,Router C能夠獲取到網段3.1.1.0/24的路由。
# 配置Router B。
[RouterB] bgp 65009
[RouterB-bgp-default] address-family ipv4 unicast
[RouterB-bgp-default-ipv4] import-route direct
[RouterB-bgp-default-ipv4] quit
[RouterB-bgp-default] quit
# 顯示Router A的BGP路由表。
[RouterA] display bgp routing-table ipv4
Total number of routes: 4
BGP local router ID is 1.1.1.1
Status codes: * - valid, > - best, d - dampened, h - history,
s - suppressed, S - stale, i - internal, e - external
Origin: i - IGP, e - EGP, ? - incomplete
Network NextHop MED LocPrf PrefVal Path/Ogn
* >e 2.2.2.2/32 3.1.1.1 0 0 65009?
* >e 3.1.1.0/24 3.1.1.1 0 0 65009?
* > 8.1.1.0/24 8.1.1.1 0 32768 i
* >e 9.1.1.0/24 3.1.1.1 0 0 65009?
以上顯示信息表明,在Router B上引入直連路由後,Router A新增了到達2.2.2.2/32和9.1.1.0/24的兩條路由。
# 顯示Router C的BGP路由表。
[RouterC] display bgp routing-table ipv4
Total number of routes: 4
BGP local router ID is 3.3.3.3
Status codes: * - valid, > - best, d - dampened, h - history,
s - suppressed, S - stale, i - internal, e - external
Origin: i - IGP, e - EGP, ? - incomplete
Network NextHop MED LocPrf PrefVal Path/Ogn
* >i 2.2.2.2/32 2.2.2.2 0 100 0 ?
* >i 3.1.1.0/24 2.2.2.2 0 100 0 ?
* >i 8.1.1.0/24 3.1.1.2 0 100 0 65008i
* >i 9.1.1.0/24 2.2.2.2 0 100 0 ?
以上顯示信息表明,到8.1.1.0的路由變為有效路由,下一跳為Router A的地址。
# 使用Ping進行驗證。
[RouterC] ping 8.1.1.1
Ping 8.1.1.1 (8.1.1.1): 56 data bytes, press CTRL+C to break
56 bytes from 8.1.1.1: icmp_seq=0 ttl=255 time=2.000 ms
56 bytes from 8.1.1.1: icmp_seq=1 ttl=255 time=0.000 ms
56 bytes from 8.1.1.1: icmp_seq=2 ttl=255 time=0.000 ms
56 bytes from 8.1.1.1: icmp_seq=3 ttl=255 time=0.000 ms
56 bytes from 8.1.1.1: icmp_seq=4 ttl=255 time=1.000 ms
--- Ping statistics for 8.1.1.1 ---
5 packet(s) transmitted, 5 packet(s) received, 0.0% packet loss
round-trip min/avg/max/std-dev = 0.000/0.600/2.000/0.800 ms
如圖2-2所示,公司A的所有設備在AS 65008內,公司B的所有設備在AS 65009內,AS 65008和AS 65009通過設備Router A和Router B相連。
現要求實現Router A能夠訪問AS 65009內的網段9.1.2.0/24,Router C能夠訪問AS 65008內的網段8.1.1.0/24。
圖2-2 BGP與IGP交互配置組網圖
(1) 配置各接口的IP地址(略)
(2) 配置OSPF
在AS 65009內配置OSPF,使得Router B能獲取到到9.1.2.0/24網段的路由。
# 配置Router B。
<RouterB> system-view
[RouterB] ospf 1
[RouterB-ospf-1] area 0
[RouterB-ospf-1-area-0.0.0.0] network 2.2.2.2 0.0.0.0
[RouterB-ospf-1-area-0.0.0.0] network 9.1.1.0 0.0.0.255
[RouterB-ospf-1-area-0.0.0.0] quit
[RouterB-ospf-1] quit
# 配置Router C。
<RouterC> system-view
[RouterC] ospf 1
[RouterC-ospf-1] import-route direct
[RouterC-ospf-1] area 0
[RouterC-ospf-1-area-0.0.0.0] network 9.1.1.0 0.0.0.255
[RouterC-ospf-1-area-0.0.0.0] quit
[RouterC-ospf-1] quit
(3) 配置EBGP連接
配置EBGP連接,並在Router A上將8.1.1.0/24網段通告到BGP路由表中,以便Router B獲取到網段8.1.1.0/24的路由。
# 配置Router A。
<RouterA> system-view
[RouterA] bgp 65008
[RouterA-bgp-default] router-id 1.1.1.1
[RouterA-bgp-default] peer 3.1.1.1 as-number 65009
[RouterA-bgp-default] address-family ipv4 unicast
[RouterA-bgp-default-ipv4] peer 3.1.1.1 enable
[RouterA-bgp-default-ipv4] network 8.1.1.0 24
[RouterA-bgp-default-ipv4] quit
[RouterA-bgp-default] quit
# 配置Router B。
[RouterB] bgp 65009
[RouterB-bgp-default] router-id 2.2.2.2
[RouterB-bgp-default] peer 3.1.1.2 as-number 65008
[RouterB-bgp-default] address-family ipv4 unicast
[RouterB-bgp-default-ipv4] peer 3.1.1.2 enable
(4) 配置BGP與IGP交互
¡ 在Router B上配置BGP引入OSPF路由,以便Router A能夠獲取到到9.1.2.0/24網段的路由。
¡ 在Router B上配置OSPF引入BGP路由,以便Router C能夠獲取到到8.1.1.0/24網段的路由。
# 在Router B上配置BGP和OSPF互相引入路由。
[RouterB-bgp-default-ipv4] import-route ospf 1
[RouterB-bgp-default-ipv4] quit
[RouterB-bgp-default] quit
[RouterB] ospf 1
[RouterB-ospf-1] import-route bgp
[RouterB-ospf-1] quit
# 查看Router A的BGP路由表。
[RouterA] display bgp routing-table ipv4
Total number of routes: 3
BGP local router ID is 1.1.1.1
Status codes: * - valid, > - best, d - dampened, h - history,
s - suppressed, S - stale, i - internal, e - external
Origin: i - IGP, e - EGP, ? - incomplete
Network NextHop MED LocPrf PrefVal Path/Ogn
* >e 3.3.3.3/32 3.1.1.1 1 0 65009?
* > 8.1.1.0/24 8.1.1.1 0 32768 i
* >e 9.1.2.0/24 3.1.1.1 1 0 65009?
# 查看Router C的OSPF路由表。
[RouterC] display ospf routing
OSPF Process 1 with Router ID 3.3.3.3
Routing Tables
Routing for Network
Destination Cost Type NextHop AdvRouter Area
9.1.1.0/24 1 Transit 9.1.1.2 3.3.3.3 0.0.0.0
2.2.2.2/32 1 Stub 9.1.1.1 2.2.2.2 0.0.0.0
Routing for ASEs
Destination Cost Type Tag NextHop AdvRouter
8.1.1.0/24 1 Type2 1 9.1.1.1 2.2.2.2
Total Nets: 3
Intra Area: 2 Inter Area: 0 ASE: 1 NSSA: 0
# 使用Ping進行驗證。
[RouterA] ping -a 8.1.1.1 9.1.2.1
Ping 9.1.2.1 (9.1.2.1) from 8.1.1.1: 56 data bytes, press CTRL+C to break
56 bytes from 9.1.2.1: icmp_seq=0 ttl=254 time=10.000 ms
56 bytes from 9.1.2.1: icmp_seq=1 ttl=254 time=12.000 ms
56 bytes from 9.1.2.1: icmp_seq=2 ttl=254 time=2.000 ms
56 bytes from 9.1.2.1: icmp_seq=3 ttl=254 time=7.000 ms
56 bytes from 9.1.2.1: icmp_seq=4 ttl=254 time=9.000 ms
--- Ping statistics for 9.1.2.1 ---
5 packet(s) transmitted, 5 packet(s) received, 0.0% packet loss
round-trip min/avg/max/std-dev = 2.000/8.000/12.000/3.406 ms
[RouterC] ping -a 9.1.2.1 8.1.1.1
Ping 8.1.1.1 (8.1.1.1) from 9.1.2.1: 56 data bytes, press CTRL+C to break
56 bytes from 8.1.1.1: icmp_seq=0 ttl=254 time=9.000 ms
56 bytes from 8.1.1.1: icmp_seq=1 ttl=254 time=4.000 ms
56 bytes from 8.1.1.1: icmp_seq=2 ttl=254 time=3.000 ms
56 bytes from 8.1.1.1: icmp_seq=3 ttl=254 time=3.000 ms
56 bytes from 8.1.1.1: icmp_seq=4 ttl=254 time=3.000 ms
--- Ping statistics for 8.1.1.1 ---
5 packet(s) transmitted, 5 packet(s) received, 0.0% packet loss
round-trip min/avg/max/std-dev = 3.000/4.400/9.000/2.332 ms
所有路由器均運行BGP協議。Router A需要分別與Router B、Router C和Router D建立IBGP連接。在Router A上配置BGP動態對等體,以簡化配置。
配置Router A作為路由反射器,在Router B、Router C和Router D之間反射路由。
圖2-3 BGP動態對等體配置組網圖
(1) 配置各接口的IP地址(略)
(2) 配置IBGP連接
# 在Router A上配置BGP動態對等體。
<RouterA> system-view
[RouterA] bgp 200
[RouterA-bgp-default] router-id 1.1.1.1
[RouterA-bgp-default] peer 10.1.0.0 16 as-number 200
[RouterA-bgp-default] address-family ipv4
[RouterA-bgp-default-ipv4] peer 10.1.0.0 16 enable
# 在Router B上配置與Router A建立IBGP連接。
<RouterB> system-view
[RouterB] bgp 200
[RouterB-bgp-default] router-id 2.2.2.2
[RouterB-bgp-default] peer 10.1.1.1 as-number 200
[RouterB-bgp-default] address-family ipv4
[RouterB-bgp-default-ipv4] peer 10.1.1.1 enable
# 在Router C上配置與Router A建立IBGP連接。
<RouterC> system-view
[RouterC] bgp 200
[RouterC-bgp-default] router-id 3.3.3.3
[RouterC-bgp-default] peer 10.1.2.1 as-number 200
[RouterC-bgp-default] address-family ipv4
[RouterC-bgp-default-ipv4] peer 10.1.2.1 enable
# 在Router D上配置與Router A建立IBGP連接。
<RouterD> system-view
[RouterD] bgp 200
[RouterD-bgp-default] router-id 4.4.4.4
[RouterD-bgp-default] peer 10.1.3.1 as-number 200
[RouterD-bgp-default] address-family ipv4
[RouterD-bgp-default-ipv4] peer 10.1.3.1 enable
# 查看Router A的BGP對等體的連接狀態。
[RouterA] display bgp peer ipv4
BGP local router ID : 1.1.1.1
Local AS number : 200
Total number of peers : 3 Peers in established state : 3
* - Dynamically created peer
Peer AS MsgRcvd MsgSent OutQ PrefRcv Up/Down State
*10.1.1.2 200 7 10 0 0 00:06:09 Established
*10.1.2.2 200 7 10 0 0 00:06:09 Established
*10.1.3.2 200 7 10 0 0 00:06:09 Established
以上顯示信息表明Router A與Router B、Router C和Router D之間的IBGP連接已經建立。
(3) 配置路由反射器
# 配置Router A作為路由反射器,將網段10.1.0.0/16中的對等體作為路由反射的客戶機。
[RouterA-bgp-default-ipv4] peer 10.1.0.0 16 reflect-client
(4) 配置發布網段路由
# 在Router C上配置發布網段路由9.1.1.0/24。
[RouterC-bgp-default-ipv4] network 9.1.1.0 24
# 在Router A、Router B和Router D上查看BGP路由表,可以看到均已學習到路由9.1.1.0/24。以Router A為例:
[RouterA-bgp-default] display bgp routing-table ipv4
Total Number of Routes: 1
BGP Local router ID is 1.1.1.1
Status codes: * - valid, > - best, d - dampened, h - history,
s - suppressed, S - stale, i - internal, e - external
Origin: i - IGP, e - EGP, ? - incomplete
Network NextHop MED LocPrf PrefVal Path/Ogn
* i 9.1.1.0/24 10.1.2.2 0 100 0 ?
通過在邊界設備Router C和外部網絡設備Router D之間建立EBGP連接,實現公司內部網絡與外部網絡的互通。
在公司內部,核心層設備Router B與彙聚層設備Router A之間配置靜態路由,Router B與Router C之間配置OSPF,並在OSPF路由中引入靜態路由,以實現公司內部網絡的互通。
公司內部網絡包括三個網段:192.168.64.0/24、192.168.74.0/24和192.168.99.0/24。在Router C上配置路由聚合,將這三個網段的路由聚合為一條路由,以減少通過BGP發布的路由數量。
圖2-4 BGP路由聚合組網圖
(1) 配置各接口的IP地址(略)
(2) 在Router A和Router B之間配置靜態路由
# 在Router A上配置缺省路由,下一跳為Router B。
<RouterA> system-view
[RouterA] ip route-static 0.0.0.0 0 192.168.212.1
# 在Router B上配置靜態路由,到達目的網絡192.168.64.0/24、192.168.74.0/24和192.168.99.0/24的路由下一跳均為Router A。
<RouterB> system-view
[RouterB] ip route-static 192.168.64.0 24 192.168.212.161
[RouterB] ip route-static 192.168.74.0 24 192.168.212.161
[RouterB] ip route-static 192.168.99.0 24 192.168.212.161
(3) 在Router B和Router C之間配置OSPF,並引入靜態路由
# 在Router B上配置OSPF發布本地網段路由,並引入靜態路由。
[RouterB] ospf
[RouterB-ospf-1] area 0
[RouterB-ospf-1-area-0.0.0.0] network 172.17.100.0 0.0.0.255
[RouterB-ospf-1-area-0.0.0.0] quit
[RouterB-ospf-1] import-route static
[RouterB-ospf-1] quit
# 在Router C上配置OSPF發布本地網段路由。
[RouterC] ospf
[RouterC-ospf-1] area 0
[RouterC-ospf-1-area-0.0.0.0] network 172.17.100.0 0.0.0.255
[RouterC-ospf-1-area-0.0.0.0] network 10.220.2.0 0.0.0.255
[RouterC-ospf-1-area-0.0.0.0] quit
[RouterC-ospf-1] quit
# 在Router C上查看路由表信息,可以看到Router C通過OSPF學習到了到達192.168.64.0/24、192.168.74.0/24和192.168.99.0/24網段的路由。
[RouterC] display ip routing-table protocol ospf
Summary count : 5
OSPF Routing table Status : <Active>
Summary count : 3
Destination/Mask Proto Pre Cost NextHop Interface
192.168.64.0/24 O_ASE2 150 1 172.17.100.1 GE1/0/1
192.168.74.0/24 O_ASE2 150 1 172.17.100.1 GE1/0/1
192.168.99.0/24 O_ASE2 150 1 172.17.100.1 GE1/0/1
OSPF Routing table Status : <Inactive>
Summary count : 2
Destination/Mask Proto Pre Cost NextHop Interface
10.220.2.0/24 O_INTRA 10 1 10.220.2.16 GE1/0/2
172.17.100.0/24 O_INTRA 10 1 172.17.100.2 GE1/0/1
(4) 在Router C和Router D之間配置BGP,並引入OSPF路由
# 在Router C上配置Router D為其EBGP對等體,並引入OSPF路由。
[RouterC] bgp 65106
[RouterC-bgp-default] router-id 3.3.3.3
[RouterC-bgp-default] peer 10.220.2.217 as-number 64631
[RouterC-bgp-default] address-family ipv4 unicast
[RouterC-bgp-default-ipv4] peer 10.220.2.217 enable
[RouterC-bgp-default-ipv4] import-route ospf
# 在Router D上配置Router C為其EBGP對等體。
[RouterD] bgp 64631
[RouterD-bgp-default] router-id 4.4.4.4
[RouterD-bgp-default] peer 10.220.2.16 as-number 65106
[RouterD-bgp-default] address-family ipv4 unicast
[RouterD-bgp-default-ipv4] peer 10.220.2.16 enable
[RouterD-bgp-default-ipv4] quit
[RouterD-bgp-default] quit
# 在Router D上查看路由表信息,可以看到Router D通過BGP學習到了到達192.168.64.0/24、192.168.74.0/24和192.168.99.0/24三個網段的路由。
[RouterD] display ip routing-table protocol bgp
Summary count : 3
BGP Routing table Status : <Active>
Summary count : 3
Destination/Mask Proto Pre Cost NextHop Interface
192.168.64.0/24 BGP 255 1 10.220.2.16 GE1/0/1
192.168.74.0/24 BGP 255 1 10.220.2.16 GE1/0/1
192.168.99.0/24 BGP 255 1 10.220.2.16 GE1/0/1
BGP Routing table Status : <Inactive>
Summary count : 0
完成上述配置後,在Router D上可以ping通192.168.64.0/24、192.168.74.0/24和192.168.99.0/24網段內的主機。
(5) 在Router C上配置路由聚合
# 在Router C上將路由192.168.64.0/24、192.168.74.0/24和192.168.99.0/24聚合為192.168.64.0/18,並抑製發布具體路由。
[RouterC-bgp-default-ipv4] aggregate 192.168.64.0 18 detail-suppressed
[RouterC-bgp-default-ipv4] quit
[RouterC-bgp-default] quit
# 在Router C上查看路由表信息,可以看到Router C上產生了一條聚合路由192.168.64.0/18,該聚合路由的出接口為Null0。
[RouterC] display ip routing-table | include 192.168
192.168.64.0/18 BGP 130 0 127.0.0.1 NULL0
192.168.64.0/24 O_ASE2 150 1 172.17.100.1 GE1/0/1
192.168.74.0/24 O_ASE2 150 1 172.17.100.1 GE1/0/1
192.168.99.0/24 O_ASE2 150 1 172.17.100.1 GE1/0/1
# 在Router D上查看路由表信息,可以看到Router D上到達公司內部三個網絡的路由聚合為一條路由192.168.64.0/18。
[RouterD] display ip routing-table protocol bgp
Summary count : 1
BGP Routing table Status : <Active>
Summary count : 1
Destination/Mask Proto Pre Cost NextHop Interface
192.168.64.0/18 BGP 255 0 10.220.2.16 GE1/0/1
BGP Routing table Status : <Inactive>
Summary count : 0
完成上述配置後,成功實現了路由聚合。並且,在Router D上可以ping通192.168.64.0/24、192.168.74.0/24和192.168.99.0/24網段內的主機。
· 網絡中存在兩個自治係統:PIM-SM 1屬於AS 100,PIM-SM 2屬於AS 200。各AS內部采用OSPF交換路由信息,AS之間采用MBGP交換用於RPF檢查的IPv4單播路由信息。
· 組播源屬於AS 100內的PIM-SM 1,接收者則屬於AS 200內的PIM-SM 2。
· 將Router A和Router B各自的Loopback0接口分別配置為各自PIM-SM域的C-BSR和C-RP。
· 在Router A與Router B之間通過MBGP建立MSDP(Multicast Source Discovery Protocol,組播源發現協議)對等體關係。
圖2-5 MBGP配置組網圖
設備 |
接口 |
IP地址 |
設備 |
接口 |
IP地址 |
Source |
- |
10.110.1.100/24 |
Router C |
GE1/0/1 |
10.110.2.1/24 |
Router A |
GE1/0/1 |
10.110.1.1/24 |
|
GE1/0/2 |
192.168.2.2/24 |
|
GE1/0/2 |
192.168.1.1/24 |
|
GE1/0/3 |
192.168.4.1/24 |
|
Loop0 |
1.1.1.1/32 |
|
Loop0 |
3.3.3.3/32 |
Router B |
GE1/0/1 |
192.168.1.2/24 |
Router D |
GE1/0/1 |
192.168.3.2/24 |
|
GE1/0/2 |
192.168.3.1/24 |
|
GE1/0/2 |
192.168.4.2/24 |
|
GE1/0/3 |
192.168.2.1/24 |
|
Loop0 |
4.4.4.4/32 |
|
Loop0 |
2.2.2.2/32 |
|
(1) 配置各路由器接口的IP地址和單播路由協議
¡ 請按照圖2-5配置各接口的IP地址和子網掩碼,具體配置過程略。
¡ 配置AS 200內的各路由器之間采用OSPF路由協議交換路由信息(AS內各路由器使用的OSPF進程號為1),確保各AS內部在網絡層互通,能學到彼此Loopback接口的路由,具體配置過程略。
(2) 使能IP組播路由,使能PIM-SM和IGMP,並配置BSR的服務邊界
# 在Router A上使能IP組播路由,在各接口上使能PIM-SM。
<RouterA> system-view
[RouterA] multicast routing
[RouterA-mrib] quit
[RouterA] interface gigabitethernet 1/0/1
[RouterA-GigabitEthernet1/0/1] pim sm
[RouterA-GigabitEthernet1/0/1] quit
[RouterA] interface gigabitethernet 1/0/2
[RouterA-GigabitEthernet1/0/2] pim sm
[RouterA-GigabitEthernet1/0/2] quit
Router B和Router D上的配置與Router A相似,配置過程略。
# 在Router C上使能IP組播路由,在各接口上使能PIM-SM,並在主機側接口GigabitEthernet1/0/1上使能IGMP。
<RouterC> system-view
[RouterC] multicast routing
[RouterC-mrib] quit
[RouterC] interface gigabitethernet 1/0/2
[RouterC-GigabitEthernet1/0/2] pim sm
[RouterC-GigabitEthernet1/0/2] quit
[RouterC] interface gigabitethernet 1/0/3
[RouterC-GigabitEthernet1/0/3] pim sm
[RouterC-GigabitEthernet1/0/3] quit
[RouterC] interface gigabitethernet 1/0/1
[RouterC-GigabitEthernet1/0/1] pim sm
[RouterC-GigabitEthernet1/0/1] igmp enable
[RouterC-GigabitEthernet1/0/1] quit
# 在Router A上配置BSR的服務邊界。
[RouterA] interface gigabitethernet 1/0/2
[RouterA-GigabitEthernet1/0/2] pim bsr-boundary
[RouterA-GigabitEthernet1/0/2] quit
# 在Router B上配置BSR的服務邊界。
[RouterB] interface gigabitethernet 1/0/1
[RouterB-GigabitEthernet1/0/1] pim bsr-boundary
[RouterB-GigabitEthernet1/0/1] quit
(3) 配置Loopback0接口和C-BSR、C-RP的位置
# 在Router A上配置Loopback0接口和C-BSR、C-RP的位置。
[RouterA] interface loopback 0
[RouterA-LoopBack0] ip address 1.1.1.1 32
[RouterA-LoopBack0] pim sm
[RouterA-LoopBack0] quit
[RouterA] pim
[RouterA-pim] c-bsr 1.1.1.1
[RouterA-pim] c-rp 1.1.1.1
[RouterA-pim] quit
# 在Router B上配置Loopback0接口和C-BSR、C-RP的位置。
[RouterB] interface loopback 0
[RouterB-LoopBack0] ip address 2.2.2.2 32
[RouterB-LoopBack0] pim sm
[RouterB-LoopBack0] quit
[RouterB] pim
[RouterB-pim] c-bsr 2.2.2.2
[RouterB-pim] c-rp 2.2.2.2
[RouterB-pim] quit
(4) 配置BGP協議,建立BGP IPv4組播對等體,並引入路由
# 在Router A上配置其與Router B建立EBGP會話,使能Router A與Router B交換用於RPF檢查的IPv4單播路由的能力,並引入直連路由。
[RouterA] bgp 100
[RouterA-bgp-default] router-id 1.1.1.1
[RouterA-bgp-default] peer 192.168.1.2 as-number 200
[RouterA-bgp-default] address-family ipv4 multicast
[RouterA-bgp-default-mul-ipv4] peer 192.168.1.2 enable
[RouterA-bgp-default-mul-ipv4] import-route direct
[RouterA-bgp-default-mul-ipv4] quit
[RouterA-bgp-default] quit
# 在Router B上配置其與Router A建立EBGP會話,使能Router A與Router B交換用於RPF檢查的IPv4單播路由的能力,並引入OSPF路由。
[RouterB] bgp 200
[RouterB-bgp-default] router-id 2.2.2.2
[RouterB-bgp-default] peer 192.168.1.1 as-number 100
[RouterB-bgp-default] address-family ipv4 multicast
[RouterB-bgp-default-mul-ipv4] peer 192.168.1.1 enable
[RouterB-bgp-default-mul-ipv4] import-route ospf 1
[RouterB-bgp-default-mul-ipv4] quit
[RouterB-bgp-default] quit
(5) 配置MSDP對等體
# 在Router A上配置MSDP對等體。
[RouterA] msdp
[RouterA-msdp] peer 192.168.1.2 connect-interface gigabitethernet 1/0/2
[RouterA-msdp] quit
# 在Router B上配置MSDP對等體。
[RouterB] msdp
[RouterB-msdp] peer 192.168.1.1 connect-interface gigabitethernet 1/0/1
[RouterB-msdp] quit
# 執行display bgp peer ipv4 multicast命令查看BGP IPv4組播對等體。以Router B為例:
[RouterB] display bgp peer ipv4 multicast
BGP local router ID : 2.2.2.2
Local AS number : 200
Total number of peers : 1 Peers in established state : 1
Peer AS MsgRcvd MsgSent OutQ PrefRcv Up/Down State
192.168.1.1 100 56 56 0 0 00:40:54 Established
# 執行display msdp brief命令查看路由器之間MSDP對等體的建立情況。以Router B為例:
[RouterB] display msdp brief
Configured Established Listen Connect Shutdown Disabled
1 1 0 0 0 0
Peer address State Up/Down time AS SA count Reset count
192.168.1.1 Established 00:07:17 100 1 0
如圖2-6所示,所有路由器均運行IPv6 BGP協議。Router A位於AS 65008;Router B和Router C位於AS 65009。要求Router A和Router B之間建立EBGP連接,Router B和Router C之間建立IBGP連接,使得Router C能夠訪問Router A直連的50::/64網段。
圖2-6 IPv6 BGP基本配置組網圖
(1) 配置各接口的IPv6地址及Loopback接口的IPv4地址(略)
(2) 配置IBGP連接
# 配置Router B。
<RouterB> system-view
[RouterB] bgp 65009
[RouterB-bgp-default] router-id 2.2.2.2
[RouterB-bgp-default] peer 9::2 as-number 65009
[RouterB-bgp-default] address-family ipv6
[RouterB-bgp-default-ipv6] peer 9::2 enable
[RouterB-bgp-default-ipv6] quit
# 配置Router C。
<RouterC> system-view
[RouterC] bgp 65009
[RouterC-bgp-default] router-id 3.3.3.3
[RouterC-bgp-default] peer 9::1 as-number 65009
[RouterC-bgp-default] address-family ipv6
[RouterC-bgp-default-ipv6] peer 9::1 enable
(3) 配置EBGP連接
# 配置Router A。
<RouterA> system-view
[RouterA] bgp 65008
[RouterA-bgp-default] router-id 1.1.1.1
[RouterA-bgp-default] peer 10::1 as-number 65009
[RouterA-bgp-default] address-family ipv6
[RouterA-bgp-default-ipv6] peer 10::1 enable
# 配置Router B。
[RouterB-bgp-default] peer 10::2 as-number 65008
[RouterB-bgp-default] address-family ipv6
[RouterB-bgp-default-ipv6] peer 10::2 enable
(4) 配置通過IPv6 BGP發布的網段路由
# 配置Router A。
[RouterA-bgp-default-ipv6] network 10:: 64
[RouterA-bgp-default-ipv6] network 50:: 64
[RouterA-bgp-default-ipv6] quit
[RouterA-bgp-default] quit
# 配置Router B。
[RouterB-bgp-default-ipv6] network 10:: 64
[RouterB-bgp-default-ipv6] network 9:: 64
[RouterB-bgp-default-ipv6] quit
[RouterB-bgp-default] quit
# 配置Router C。
[RouterC-bgp-default-ipv6] network 9:: 64
[RouterC-bgp-default-ipv6] quit
[RouterC-bgp-default] quit
# 在Router B上查看IPv6 BGP對等體的信息。可以看出,Router A和Router B之間建立了EBGP連接,Router B和Router C之間建立了IBGP連接。
[RouterB] display bgp peer ipv6
BGP local router ID: 2.2.2.2
Local AS number: 65009
Total number of peers: 2 Peers in established state: 2
* - Dynamically created peer
Peer AS MsgRcvd MsgSent OutQ PrefRcv Up/Down State
9::2 65009 41 43 0 1 00:29:00 Established
10::2 65008 38 38 0 2 00:27:20 Established
# 在Router A上查看IPv6 BGP路由表信息。可以看出,Router A學習到了AS 65009內的路由信息。
[RouterA] display bgp routing-table ipv6
Total number of routes: 4
BGP local router ID is 1.1.1.1
Status codes: * - valid, > - best, d - dampened, h - history,
s - suppressed, S - stale, i - internal, e - external
Origin: i - IGP, e - EGP, ? - incomplete
* >e Network : 9:: PrefixLen : 64
NextHop : 10::1 LocPrf :
PrefVal : 0 OutLabel : NULL
MED : 0
Path/Ogn: 65009i
* > Network : 10:: PrefixLen : 64
NextHop : :: LocPrf :
PrefVal : 32768 OutLabel : NULL
MED : 0
Path/Ogn: i
* e Network : 10:: PrefixLen : 64
NextHop : 10::1 LocPrf :
PrefVal : 0 OutLabel : NULL
MED : 0
Path/Ogn: 65009i
* > Network : 50:: PrefixLen : 64
NextHop : :: LocPrf :
PrefVal : 32768 OutLabel : NULL
MED : 0
Path/Ogn: i
# 在Router C上查看IPv6 BGP路由表信息。可以看出,Router C學習到了到達50::/64網段的路由。
[RouterC] display bgp routing-table ipv6
Total number of routes: 4
BGP local router ID is 3.3.3.3
Status codes: * - valid, > - best, d - dampened, h - history,
s - suppressed, S - stale, i - internal, e - external
Origin: i - IGP, e - EGP, ? - incomplete
* > Network : 9:: PrefixLen : 64
NextHop : :: LocPrf :
PrefVal : 32768 OutLabel : NULL
MED : 0
Path/Ogn: i
* i Network : 9:: PrefixLen : 64
NextHop : 9::1 LocPrf : 100
PrefVal : 0 OutLabel : NULL
MED : 0
Path/Ogn: i
* >i Network : 10:: PrefixLen : 64
NextHop : 9::1 LocPrf : 100
PrefVal : 0 OutLabel : NULL
MED : 0
Path/Ogn: i
* >i Network : 50:: PrefixLen : 64
NextHop : 10::2 LocPrf : 100
PrefVal : 0 OutLabel : NULL
MED : 0
Path/Ogn: 65008i
# 在Router C上可以ping通50::/64網段內的主機。(略)
· 網絡中存在兩個自治係統:IPv6 PIM-SM 1屬於AS 100,IPv6 PIM-SM 2屬於AS 200。各AS內部采用OSPFv3交換路由信息,AS之間采用IPv6 MBGP交換用於RPF檢查的IPv6單播路由信息。
· IPv6組播源屬於AS 100內的IPv6 PIM-SM 1,接收者則屬於AS 200內的IPv6 PIM-SM 2。
· 在Router A 和Router B上使能Anycast-RP功能。
圖2-7 IPv6 MBGP配置組網圖
設備 |
接口 |
IP地址 |
設備 |
接口 |
IP地址 |
Source |
- |
1002::100/64 |
Router B |
GE1/0/1 |
1001::2/64 |
Router A |
GE1/0/1 |
1002::1/64 |
|
GE1/0/2 |
2002::1/64 |
|
GE1/0/2 |
1001::1/64 |
|
GE1/0/3 |
2001::1/64 |
|
Loop0 |
1:1::1/128 |
|
Loop0 |
1:1::1/128 |
|
Loop1 |
1:1::2/128 |
|
Loop1 |
2:2::2/128 |
Router C |
GE1/0/1 |
3002::1/64 |
Router D |
GE1/0/1 |
2002::2/64 |
|
GE1/0/2 |
2001::2/64 |
|
GE1/0/2 |
3001::2/64 |
|
GE1/0/3 |
3001::1/64 |
|
|
|
(1) 配置IPv6地址和IPv6單播路由協議
· 按照圖2-7配置各接口的IPv6地址和前綴長度,具體配置過程略。
· 配置AS 200內的各路由器之間采用OSPFv3路由協議交換路由信息(AS內各路由器使用的OSPFv3進程號為1),確保各AS內部在網絡層互通,具體配置過程略。
(2) 使能IPv6組播路由,使能IPv6 PIM-SM和MLD,並配置BSR的服務邊界
# 在Router A上使能IPv6組播路由,在各接口上使能IPv6 PIM-SM。
<RouterA> system-view
[RouterA] ipv6 multicast routing
[RouterA-mrib6] quit
[RouterA] interface gigabitethernet 1/0/1
[RouterA-GigabitEthernet1/0/1] ipv6 pim sm
[RouterA-GigabitEthernet1/0/1] quit
[RouterA] interface gigabitethernet 1/0/2
[RouterA-GigabitEthernet1/0/2] ipv6 pim sm
[RouterA-GigabitEthernet1/0/2] quit
[RouterA] interface loopback 0
[RouterA-LoopBack0] ipv6 pim sm
[RouterA-LoopBack0] quit
Router B和Router D上的配置與Router A相似,配置過程略。
# 在Router C上使能IPv6組播路由,在各接口上使能IPv6 PIM-SM,並在主機側接口GigabitEthernet1/0/1上使能MLD。
<RouterC> system-view
[RouterC] ipv6 multicast routing
[RouterC-mrib6] quit
[RouterC] interface gigabitethernet 1/0/2
[RouterC-GigabitEthernet1/0/2] ipv6 pim sm
[RouterC-GigabitEthernet1/0/2] quit
[RouterC] interface gigabitethernet 1/0/3
[RouterC-GigabitEthernet1/0/3] ipv6 pim sm
[RouterC-GigabitEthernet1/0/3] quit
[RouterC] interface gigabitethernet 1/0/1
[RouterC-GigabitEthernet1/0/1] ipv6 pim sm
[RouterC-GigabitEthernet1/0/1] mld enable
[RouterC-GigabitEthernet1/0/1] quit
# 在Router A上配置BSR的服務邊界。
[RouterA] interface gigabitethernet 1/0/2
[RouterA-GigabitEthernet1/0/2] ipv6 pim bsr-boundary
[RouterA-GigabitEthernet1/0/2] quit
# 在Router B上配置BSR的服務邊界。
[RouterB] interface gigabitethernet 1/0/1
[RouterB-GigabitEthernet1/0/1] ipv6 pim bsr-boundary
[RouterB-GigabitEthernet1/0/1] quit
(3) 使能Anycast-RP功能,並指定C-BSR和C-RP
# 配置Router A。
[RouterA] ipv6 pim
[RouterA-pim6] anycast-rp 1:1::1 1:1::2
[RouterA-pim6] anycast-rp 1:1::1 2:2::2
[RouterA-pim6] c-bsr 1:1::1
[RouterA-pim6] c-rp 1:1::1
[RouterA-pim6] quit
# 配置Router B。
[RouterB] ipv6 pim
[RouterB-pim6] anycast-rp 1:1::1 1:1::2
[RouterB-pim6] anycast-rp 1:1::1 2:2::2
[RouterB-pim6] c-bsr 1:1::1
[RouterB-pim6] c-rp 1:1::1
[RouterB-pim6] quit
(4) 配置BGP協議,建立BGP IPv6組播對等體,並引入路由
# 在Router A上配置其與Router B建立EBGP會話,使能Router A與Router B交換用於RPF檢查的IPv6單播路由的能力,並引入直連路由。
[RouterA] bgp 100
[RouterA-bgp-default] router-id 1.1.1.1
[RouterA-bgp-default] peer 1001::2 as-number 200
[RouterA-bgp-default] address-family ipv6 multicast
[RouterA-bgp-default-mul-ipv6] peer 1001::2 enable
[RouterA-bgp-default-mul-ipv6] import-route direct
[RouterA-bgp-default-mul-ipv6] quit
# 在Router B上配置其與Router A建立EBGP會話,使能Router A與Router B交換用於RPF檢查的IPv6單播路由的能力,並引入OSPFv3路由。
[RouterB] bgp 200
[RouterB-bgp-default] router-id 2.2.2.2
[RouterB-bgp-default] peer 1001::1 as-number 100
[RouterB-bgp-default] address-family ipv6 multicast
[RouterB-bgp-default-mul-ipv6] peer 1001::1 enable
[RouterB-bgp-default-mul-ipv6] import-route ospfv3 1
[RouterB-bgp-default-mul-ipv6] quit
(5) 在Router A和Router B之間建立BGP IPv6單播對等體,並引入路由,以便在不同域的兩個RP之間轉發注冊報文
# 在Router A上使能與Router B交換IPv6單播路由的能力,並引入直連路由。
[RouterA-bgp-default] address-family ipv6 unicast
[RouterA-bgp-default-ipv6] peer 1001::2 enable
[RouterA-bgp-default-ipv6] import-route direct
[RouterA-bgp-default-ipv6] quit
[RouterA-bgp-default] quit
# 在Router B上使能與Router A交換IPv6單播路由的能力,並引入直連路由。
[RouterB-bgp-default] address-family ipv6 unicast
[RouterB-bgp-default-ipv6] peer 1001::1 enable
[RouterB-bgp-default-ipv6] import-route direct
[RouterB-bgp-default-ipv6] quit
[RouterB-bgp-default] quit
# 執行display bgp peer ipv6 multicast命令查看BGP IPv6組播對等體。以Router B為例:
[RouterB] display bgp peer ipv6 multicast
BGP local router ID : 2.2.2.2
Local AS number : 200
Total number of peers : 3 Peers in established state : 3
Peer AS MsgRcvd MsgSent OutQ PrefRcv Up/Down State
1001::1 100 56 56 0 0 00:40:54 Established
# 執行display ipv6 multicast rpf-info命令查看組播源的RPF信息。以Router B為例:
[RouterB] display ipv6 multicast rpf-info 1002::1
RPF information about source 1002::1:
RPF interface: GE1/0/1, RPF neighbor: 1001::1
Referenced prefix/prefix length: 1002::/64
Referenced route type: mbgp
Route selection rule: preference-preferred
Load splitting rule: disable
使用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 |
Router B分別與Router A、Router C之間建立EBGP連接。
通過在Router A上配置NO_EXPORT團體屬性,使得AS 10發布到AS 20中的路由,不會再被AS 20發布到其他AS。
圖3-1 BGP團體組網圖
(1) 配置各接口的IP地址(略)
(2) 配置EBGP
# 配置Router A。
<RouterA> system-view
[RouterA] bgp 10
[RouterA-bgp-default] router-id 1.1.1.1
[RouterA-bgp-default] peer 200.1.2.2 as-number 20
[RouterA-bgp-default] address-family ipv4 unicast
[RouterA-bgp-default-ipv4] peer 200.1.2.2 enable
[RouterA-bgp-default-ipv4] network 9.1.1.0 255.255.255.0
[RouterA-bgp-default-ipv4] quit
[RouterA-bgp-default] quit
# 配置Router B。
<RouterB> system-view
[RouterB] bgp 20
[RouterB-bgp-default] router-id 2.2.2.2
[RouterB-bgp-default] peer 200.1.2.1 as-number 10
[RouterB-bgp-default] peer 200.1.3.2 as-number 30
[RouterB-bgp-default] address-family ipv4 unicast
[RouterB-bgp-default-ipv4] peer 200.1.2.1 enable
[RouterB-bgp-default-ipv4] peer 200.1.3.2 enable
[RouterB-bgp-default-ipv4] quit
[RouterB-bgp-default] quit
# 配置Router C。
<RouterC> system-view
[RouterC] bgp 30
[RouterC-bgp-default] router-id 3.3.3.3
[RouterC-bgp-default] peer 200.1.3.1 as-number 20
[RouterC-bgp-default] address-family ipv4 unicast
[RouterC-bgp-default-ipv4] peer 200.1.3.1 enable
[RouterC-bgp-default-ipv4] quit
[RouterC-bgp-default] quit
# 查看Router B的路由表。
[RouterB] display bgp routing-table ipv4 9.1.1.0
BGP local router ID: 2.2.2.2
Local AS number: 20
Paths: 1 available, 1 best
BGP routing table information of 9.1.1.0/24:
From : 200.1.2.1 (1.1.1.1)
Rely nexthop : 200.1.2.1
Original nexthop: 200.1.2.1
OutLabel : NULL
AS-path : 10
Origin : igp
Attribute value : pref-val 0
State : valid, external, best
IP precedence : N/A
QoS local ID : N/A
Traffic index : N/A
VPN-Peer UserID : N/A
DSCP : N/A
EXP : N/A
# 查看Router B的路由發送信息。
[RouterB] display bgp routing-table ipv4 9.1.1.0 advertise-info
BGP local router ID: 2.2.2.2
Local AS number: 20
Paths: 1 best
BGP routing table information of 9.1.1.0/24(TxPathID:0):
Advertised to peers (1 in total):
200.1.3.2
可以看出,Router B能夠把到達目的地址9.1.1.0/24的路由通過BGP發布出去。
# 查看Router C的BGP路由表。
[RouterC] display bgp routing-table ipv4
Total number of routes: 1
BGP local router ID is 3.3.3.3
Status codes: * - valid, > - best, d - dampened, h - history,
s - suppressed, S - stale, i - internal, e - external
Origin: i - IGP, e - EGP, ? - incomplete
Network NextHop MED LocPrf PrefVal Path/Ogn
* >e 9.1.1.0/24 200.1.3.1 0 20 10i
可以看出,Router C從Router B那裏學到了目的地址為9.1.1.0/24的路由。
(3) 配置BGP團體屬性
# 配置路由策略。
[RouterA] route-policy comm_policy permit node 0
[RouterA-route-policy-comm_policy-0] apply community no-export
[RouterA-route-policy-comm_policy-0] quit
# 應用路由策略。
[RouterA] bgp 10
[RouterA-bgp-default] address-family ipv4 unicast
[RouterA-bgp-default-ipv4] peer 200.1.2.2 route-policy comm_policy export
[RouterA-bgp-default-ipv4] peer 200.1.2.2 advertise-community
# 查看Router B的路由表。
[RouterB] display bgp routing-table ipv4 9.1.1.0
BGP local router ID: 2.2.2.2
Local AS number: 20
Paths: 1 available, 1 best
BGP routing table information of 9.1.1.0/24:
From : 200.1.2.1 (1.1.1.1)
Rely nexthop : 200.1.2.1
Original nexthop: 200.1.2.1
OutLabel : NULL
Community : No-Export
AS-path : 10
Origin : igp
Attribute value : pref-val 0
State : valid, external, best
IP precedence : N/A
QoS local ID : N/A
Traffic index : N/A
VPN-Peer UserID : N/A
DSCP : N/A
EXP : N/A
# 查看Router B的路由發送信息。
[RouterB] display bgp routing-table ipv4 9.1.1.0 advertise-info
BGP local router ID: 2.2.2.2
Local AS number: 20
Paths: 1 best
BGP routing table information of 9.1.1.0/24(TxPathID:0):
Not advertised to any peers yet
# 查看Router C的BGP路由表。
[RouterC] display bgp routing-table ipv4
Total number of routes: 0
在Router B的BGP路由表中可以看到配置的團體屬性,Router B不會通過BGP將到達目的地址9.1.1.0/24的路由發布出去。
所有路由器運行BGP協議,Router A與Router B建立EBGP連接,Router C與Router B和Router D之間建立IBGP連接。
Router C作為路由反射器,Router B和Router D為Router C的客戶機。
Router D能夠通過Router C學到路由20.0.0.0/8。
圖3-2 配置BGP路由反射器的組網圖
(1) 配置各接口的IP地址,並在AS 200內配置OSPF(略)
(2) 配置BGP連接
# 配置Router A。
<RouterA> system-view
[RouterA] bgp 100
[RouterA-bgp-default] router-id 1.1.1.1
[RouterA-bgp-default] peer 192.1.1.2 as-number 200
[RouterA-bgp-default] address-family ipv4 unicast
[RouterA-bgp-default-ipv4] peer 192.1.1.2 enable
# 通告20.0.0.0/8網段路由到BGP路由表中。
[RouterA-bgp-default-ipv4] network 20.0.0.0
[RouterA-bgp-default-ipv4] quit
[RouterA-bgp-default] quit
# 配置Router B。
<RouterB> system-view
[RouterB] bgp 200
[RouterB-bgp-default] router-id 2.2.2.2
[RouterB-bgp-default] peer 192.1.1.1 as-number 100
[RouterB-bgp-default] peer 193.1.1.1 as-number 200
[RouterB-bgp-default] address-family ipv4 unicast
[RouterB-bgp-default-ipv4] peer 192.1.1.1 enable
[RouterB-bgp-default-ipv4] peer 193.1.1.1 enable
[RouterB-bgp-default-ipv4] peer 193.1.1.1 next-hop-local
[RouterB-bgp-default-ipv4] quit
[RouterB-bgp-default] quit
# 配置Router C。
<RouterC> system-view
[RouterC] bgp 200
[RouterC-bgp-default] router-id 3.3.3.3
[RouterC-bgp-default] peer 193.1.1.2 as-number 200
[RouterC-bgp-default] peer 194.1.1.2 as-number 200
[RouterC-bgp-default] address-family ipv4 unicast
[RouterC-bgp-default-ipv4] peer 193.1.1.2 enable
[RouterC-bgp-default-ipv4] peer 194.1.1.2 enable
[RouterC-bgp-default-ipv4] quit
[RouterC-bgp-default] quit
# 配置Router D。
<RouterD> system-view
[RouterD] bgp 200
[RouterD-bgp-default] router-id 4.4.4.4
[RouterD-bgp-default] peer 194.1.1.1 as-number 200
[RouterD-bgp-default] address-family ipv4 unicast
[RouterD-bgp-default-ipv4] peer 194.1.1.1 enable
[RouterD-bgp-default-ipv4] quit
[RouterD-bgp-default] quit
(3) 配置路由反射器
# 配置Router C。
[RouterC] bgp 200
[RouterC-bgp-default] address-family ipv4 unicast
[RouterC-bgp-default-ipv4] peer 193.1.1.2 reflect-client
[RouterC-bgp-default-ipv4] peer 194.1.1.2 reflect-client
[RouterC-bgp-default-ipv4] quit
[RouterC-bgp-default] quit
# 查看Router B的BGP路由表。
[RouterB] display bgp routing-table ipv4
Total number of routes: 1
BGP local router ID is 2.2.2.2
Status codes: * - valid, > - best, d - dampened, h - history,
s - suppressed, S - stale, i - internal, e - external
Origin: i - IGP, e - EGP, ? - incomplete
Network NextHop MED LocPrf PrefVal Path/Ogn
* >e 20.0.0.0 192.1.1.1 0 0 100i
# 查看Router D的BGP路由表。
[RouterD] display bgp routing-table ipv4
Total number of routes: 1
BGP local router ID is 4.4.4.4
Status codes: * - valid, > - best, d - dampened, h - history,
s - suppressed, S - stale, i - internal, e - external
Origin: i - IGP, e - EGP, ? - incomplete
Network NextHop MED LocPrf PrefVal Path/Ogn
* >i 20.0.0.0 193.1.1.2 0 100 0 100i
可以看出,Router D從Router C已經學到了20.0.0.0/8路由。
AS 200中有多台BGP路由器,為了減少IBGP的連接數,現將他們劃分為3個子自治係統:AS 65001、AS 65002和AS 65003。其中AS 65001內的三台路由器建立IBGP全連接。
圖3-3 配置聯盟組網圖
設備 |
接口 |
IP地址 |
設備 |
接口 |
IP地址 |
Router A |
GE1/0/1 |
10.1.2.1/24 |
Router D |
GE1/0/1 |
10.1.5.1/24 |
|
GE1/0/2 |
10.1.3.1/24 |
|
GE1/0/2 |
10.1.3.2/24 |
|
GE1/0/3 |
10.1.4.1/24 |
Router E |
GE1/0/1 |
10.1.5.2/24 |
|
GE1/0/4 |
200.1.1.1/24 |
|
GE1/0/2 |
10.1.4.2/24 |
|
GE1/0/5 |
10.1.1.1/24 |
Router F |
GE1/0/1 |
9.1.1.1/24 |
Router B |
GE1/0/1 |
10.1.1.2/24 |
|
GE1/0/2 |
200.1.1.2/24 |
Router C |
GE1/0/1 |
10.1.2.2/24 |
|
(1) 配置各接口的IP地址(略)
(2) 配置BGP聯盟
# 配置Router A。
<RouterA> system-view
[RouterA] bgp 65001
[RouterA-bgp-default] router-id 1.1.1.1
[RouterA-bgp-default] confederation id 200
[RouterA-bgp-default] confederation peer-as 65002 65003
[RouterA-bgp-default] peer 10.1.1.2 as-number 65002
[RouterA-bgp-default] peer 10.1.2.2 as-number 65003
[RouterA-bgp-default] address-family ipv4 unicast
[RouterA-bgp-default-ipv4] peer 10.1.1.2 enable
[RouterA-bgp-default-ipv4] peer 10.1.2.2 enable
[RouterA-bgp-default-ipv4] peer 10.1.1.2 next-hop-local
[RouterA-bgp-default-ipv4] peer 10.1.2.2 next-hop-local
[RouterA-bgp-default-ipv4] quit
[RouterA-bgp-default] quit
# 配置Router B。
<RouterB> system-view
[RouterB] bgp 65002
[RouterB-bgp-default] router-id 2.2.2.2
[RouterB-bgp-default] confederation id 200
[RouterB-bgp-default] confederation peer-as 65001 65003
[RouterB-bgp-default] peer 10.1.1.1 as-number 65001
[RouterB-bgp-default] address-family ipv4 unicast
[RouterB-bgp-default-ipv4] peer 10.1.1.1 enable
[RouterB-bgp-default-ipv4] quit
[RouterB-bgp-default] quit
# 配置Router C。
<RouterC> system-view
[RouterC] bgp 65003
[RouterC-bgp-default] router-id 3.3.3.3
[RouterC-bgp-default] confederation id 200
[RouterC-bgp-default] confederation peer-as 65001 65002
[RouterC-bgp-default] peer 10.1.2.1 as-number 65001
[RouterC-bgp-default] address-family ipv4 unicast
[RouterC-bgp-default-ipv4] peer 10.1.2.1 enable
[RouterC-bgp-default-ipv4] quit
[RouterC-bgp-default] quit
(3) 配置AS 65001內的IBGP連接
# 配置Router A。
[RouterA] bgp 65001
[RouterA-bgp-default] peer 10.1.3.2 as-number 65001
[RouterA-bgp-default] peer 10.1.4.2 as-number 65001
[RouterA-bgp-default] address-family ipv4 unicast
[RouterA-bgp-default-ipv4] peer 10.1.3.2 enable
[RouterA-bgp-default-ipv4] peer 10.1.4.2 enable
[RouterA-bgp-default-ipv4] peer 10.1.3.2 next-hop-local
[RouterA-bgp-default-ipv4] peer 10.1.4.2 next-hop-local
[RouterA-bgp-default-ipv4] quit
[RouterA-bgp-default] quit
# 配置Router D。
<RouterD> system-view
[RouterD] bgp 65001
[RouterD-bgp-default] router-id 4.4.4.4
[RouterD-bgp-default] confederation id 200
[RouterD-bgp-default] peer 10.1.3.1 as-number 65001
[RouterD-bgp-default] peer 10.1.5.2 as-number 65001
[RouterD-bgp-default] address-family ipv4 unicast
[RouterD-bgp-default-ipv4] peer 10.1.3.1 enable
[RouterD-bgp-default-ipv4] peer 10.1.5.2 enable
[RouterD-bgp-default-ipv4] quit
[RouterD-bgp-default] quit
# 配置Router E。
<RouterE> system-view
[RouterE] bgp 65001
[RouterE-bgp-default] router-id 5.5.5.5
[RouterE-bgp-default] confederation id 200
[RouterE-bgp-default] peer 10.1.4.1 as-number 65001
[RouterE-bgp-default] peer 10.1.5.1 as-number 65001
[RouterE-bgp-default] address-family ipv4 unicast
[RouterE-bgp-default-ipv4] peer 10.1.4.1 enable
[RouterE-bgp-default-ipv4] peer 10.1.5.1 enable
[RouterE-bgp-default-ipv4] quit
[RouterE-bgp-default] quit
(4) 配置AS 100和AS 200之間的EBGP連接
# 配置Router A。
[RouterA] bgp 65001
[RouterA-bgp-default] peer 200.1.1.2 as-number 100
[RouterA-bgp-default] address-family ipv4 unicast
[RouterA-bgp-default-ipv4] peer 200.1.1.2 enable
[RouterA-bgp-default-ipv4] quit
[RouterA-bgp-default] quit
# 配置Router F。
<RouterF> system-view
[RouterF] bgp 100
[RouterF-bgp-default] router-id 6.6.6.6
[RouterF-bgp-default] peer 200.1.1.1 as-number 200
[RouterF-bgp-default] address-family ipv4 unicast
[RouterF-bgp-default-ipv4] peer 200.1.1.1 enable
[RouterF-bgp-default-ipv4] network 9.1.1.0 255.255.255.0
[RouterF-bgp-default-ipv4] quit
[RouterF-bgp-default] quit
# 查看Router B的BGP路由表。Router C的BGP路由表與此類似。
[RouterB] display bgp routing-table ipv4
Total number of routes: 1
BGP local router ID is 2.2.2.2
Status codes: * - valid, > - best, d - dampened, h - history,
s - suppressed, S - stale, i - internal, e - external
Origin: i - IGP, e - EGP, ? - incomplete
Network NextHop MED LocPrf PrefVal Path/Ogn
* >i 9.1.1.0/24 10.1.1.1 0 100 0 (65001)
100i
[RouterB] display bgp routing-table ipv4 9.1.1.0
BGP local router ID: 2.2.2.2
Local AS number: 65002
Paths: 1 available, 1 best
BGP routing table information of 9.1.1.0/24:
From : 10.1.1.1 (1.1.1.1)
Rely nexthop : 10.1.1.1
Original nexthop: 10.1.1.1
OutLabel : NULL
AS-path : (65001) 100
Origin : igp
Attribute value : MED 0, localpref 100, pref-val 0, pre 255
State : valid, external-confed, best
IP precedence : N/A
QoS local ID : N/A
Traffic index : N/A
VPN-Peer UserID : N/A
DSCP : N/A
EXP : N/A
# 查看Router D的BGP路由表。
[RouterD] display bgp routing-table ipv4
Total number of routes: 1
BGP local router ID is 4.4.4.4
Status codes: * - valid, > - best, d - dampened, h - history,
s - suppressed, S - stale, i - internal, e - external
Origin: i - IGP, e - EGP, ? - incomplete
Network NextHop MED LocPrf PrefVal Path/Ogn
* >i 9.1.1.0/24 10.1.3.1 0 100 0 100i
[RouterD] display bgp routing-table ipv4 9.1.1.0
BGP local router ID: 4.4.4.4
Local AS number: 65001
Paths: 1 available, 1 best
BGP routing table information of 9.1.1.0/24:
From : 10.1.3.1 (1.1.1.1)
Rely nexthop : 10.1.3.1
Original nexthop: 10.1.3.1
OutLabel : NULL
AS-path : 100
Origin : igp
Attribute value : MED 0, localpref 100, pref-val 0, pre 255
State : valid, internal-confed, best
IP precedence : N/A
QoS local ID : N/A
Traffic index : N/A
VPN-Peer UserID : N/A
DSCP : N/A
EXP : N/A
通過以上顯示信息可以看出:
· Router F隻需要和Router A建立EBGP連接,而不需要和Router B、Router C建立連接,同樣可以通過聯盟將路由信息傳遞給Router B和Router C。
· Router B和Router D在同一個聯盟裏,但是屬於不同的子自治係統,它們都是通過Router A來獲取外部路由信息,生成的BGP路由表項也是一致的,等效於在同一個自治係統內,但是又不需要物理上全連接。
BGP具有很多路由屬性,通過配置這些屬性可以控製BGP路徑的選擇。
控製BGP路徑選擇的配置任務如下:
(1) 配置BGP的路由優先級
(2) 配置本地優先級的缺省值
(3) 配置AS_PATH屬性
¡ 配置發送BGP更新消息時AS_PATH屬性中不攜帶私有AS號
(4) 配置MED屬性
¡ 配置MED缺省值
¡ 配置允許比較來自同一聯盟不同子自治係統鄰居路由的MED屬性值
(5) 修改BGP的選路規則
本配置步驟對BGP選路規則的具體影響,請參見“1.5 BGP的選路規則”。
¡ 配置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路由時,修改其中最優路由的下一跳地址為本地地址。
在多AS域組網場景下,需要設備跨AS域傳遞路由的時候不修改路由的下一跳屬性。以圖4-3為例,分屬兩個不同AS的接入網PE設備PE 1和PE 2之間有端對端的公網IP業務,且通過IPv4/IPv6地址族傳遞BGP路由,此時需要兩台PE上的BGP路由的下一跳均為對端PE,以實現端對端的業務調度。
接入網的PE設備均與骨幹網的PE設備建立EBGP鄰居,並通過骨幹網設備傳遞路由。這種情況下,骨幹網PE設備將BGP路由通過EBGP發送給PE 1或PE 2設備時會修改路由下一跳,導致接入網PE收到BGP路由的下一跳不為對端PE。要避免這種情況,需要在骨幹網PE設備上配置peer next-hop-invariable命令,使其將路由傳遞出骨幹網AS域時候不修改路由的下一跳屬性。
對於同一個對等體/對等體組,不能同時配置將下一跳屬性修改為自身的地址功能和不修改下一跳屬性功能。
(1) 進入係統視圖。
system-view
(2) 進入BGP IPv4單播地址族視圖、BGP IPv4單播標簽地址族視圖或BGP-VPN IPv4單播標簽地址族視圖。
¡ 請依次執行以下命令進入BGP IPv4單播地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv4 [ unicast ]
¡ 請依次執行以下命令進入BGP IPv4單播標簽地址族視圖。
bgp as-number [ instance instance-name ]
address-family ipv4 labeled-unicast
¡ 請依次執行以下命令進入BGP-VPN IPv4單播標簽地址族視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
address-family ipv4 labeled-unicast
(3) 配置向EBGP對等體/對等體組發布路由時,不修改路由的下一跳屬性。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } next-hop-invariable
缺省情況下,向EBGP對等體/對等體組發布路由時,將下一跳屬性修改為自身的地址;向IBGP對等體/對等體組發布路由時,不修改下一跳屬性。
BGP IPv4單播標簽地址族視圖和BGP-VPN IPv4單播標簽地址族視圖下不支持IPv6參數。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
(3) 進入BGP IPv6單播地址族視圖。
address-family ipv6 [ unicast ]
(4) 配置向EBGP對等體/對等體組發布路由時,不修改路由的下一跳屬性。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } next-hop-invariable
缺省情況下,向EBGP對等體/對等體組發布路由時,將下一跳屬性修改為自身的地址;向IBGP對等體/對等體組發布路由時,不修改下一跳屬性。
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會忽略此路由,以免形成路由環路。
但是,在某些特殊的組網環境下(如MPLS L3VPN的Hub&Spoke組網),需要允許本地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-4 BGP AS號替換應用示意圖(以IPv4為例)
如圖4-4所示,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-5 MED排序優選示意圖(以IPv4為例)
如圖4-5所示,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不為指定對等體/對等體組設置對等體高優先級。執行本配置後,本端設備從多個BGP對等體學習到相同前綴的路由時,優選來自本配置指定的對等體/對等體組的路由。
本功能在BGP選路規則中的具體優先級順序,請參見“1.5 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 ] } high-priority [ preferred ]
缺省情況下,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 [ preferred ]
缺省情況下,BGP不為指定對等體/對等體組設置高優先級,選路規則不發生變化。
僅BGP IPv6單播地址族支持IPv4參數。
在多種網絡共存的場景中,設備可能同時學習到同一目的網絡地址、下一跳分別為IPv4地址和IPv6地址的BGP路由。例如,設備通過SRv6網絡和公網IPv4網絡均可以到達同一個目的地址時,設備從SRv6網絡學習到下一跳地址為IPv6地址的路由,從公網IPv4網絡學習到下一跳地址為IPv4地址的路由。缺省情況下,來自公網IPv4網絡的路由將作為優選路由。用戶需要優選來自SRv6網絡的路由時,需要額外配置其他路由屬性來影響優選結果。配置本命令後,BGP可以選擇優選下一跳地址為IPv4或IPv6地址的路由,以幫助用戶更靈活便捷地規劃BGP選路。
本功能在BGP選路規則中的具體優先級順序,請參見“1.5 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路由的下一跳地址類型影響路由優選。
bestroute nexthop-priority { ipv4 | ipv6 } [ preferred ]
缺省情況下,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) 配置BGP路由的下一跳地址類型影響路由優選。
bestroute nexthop-priority { ipv4 | ipv6 } [ preferred ]
缺省情況下,BGP優選下一跳地址為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參數。
BGP路由的下一跳可以迭代到如下類型的隧道:
· 標簽轉發路徑LSP或MPLS TE隧道
· 通過GRE、VXLAN等方式建立的Tunnel接口
· SRv6 TE Policy
BGP路由的下一跳迭代到的隧道通過隧道ID唯一標識,用戶可以通過display bgp routing-table命令詳細顯示信息中的Rely tunnel IDs字段查看。
BGP路由的下一跳可以同時迭代到IP地址以及隧道。缺省情況下,隻有下一跳迭代到IP地址的BGP路由可以參與路由優選。在下列場景下,需要配置本功能:
· 如果設備是路由反射器,僅用於反射路由,不需要指導轉發,則可以通過bestroute nexthop-resolved none命令配置BGP在優選路由時不檢查路由的下一跳是否可達,以防止路由反射器無法反射接收到的BGP路由。
· 在某些特殊組網中,中間設備對下一跳屬性的修改可能使得接收到BGP路由的設備無法將其的下一跳迭代到IP地址,但是能夠迭代到隧道。此時,該路由的下一跳可達,但是無法參與優選,導致流量轉發失敗。可以通過bestroute nexthop-resolved tunnel命令配置BGP路由的下一跳僅迭代到隧道、未迭代到IP地址時也可以參與選路,以保障流量的正常轉發。
配置了bestroute nexthop-resolved none命令後,雖然下一跳不可達的BGP路由可以參與選路,但是下一跳不可達的路由無法添加到IP路由表及FIB中,亦不能指導流量的轉發。
(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路由的下一跳僅迭代到隧道時仍能參與選路。
bestroute nexthop-resolved { none | tunnel }
缺省情況下,隻有迭代出下一跳IP地址的BGP路由可以參與路由優選。
多次執行本命令時,以最後一次執行的命令為準。
缺省情況下,BGP路由的下一跳迭代到IP地址或迭代到隧道時,對於BGP選路的優先級相同。配置本功能後,BGP會根據路由的下一跳迭代結果的類型,優選下一跳迭代到隧道或IP地址的路由。
本功能在BGP選路規則中的具體優先級順序,請參見“1.5 BGP的選路規則”。
BGP路由的下一跳無法迭代到IP地址時,不能參與選路。如果BGP路由的下一跳僅迭代到隧道,則即使配置了本功能,該路由仍然無法參與路由優選。如需該路由參與優選,則需要配置bestroute nexthop-resolved tunnel命令。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖或BGP-VPN實例視圖。
¡ 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
¡ 請依次執行以下命令進入BGP-VPN實例視圖。
bgp as-number [ instance instance-name ]
ip vpn-instance vpn-instance-name
(3) 配置BGP路由的下一跳迭代到隧道或IP地址時影響路由優選。
bestroute nexthop-type { ip | tunnel } [ preferred ]
缺省情況下,BGP路由的下一跳迭代到IP地址或迭代到隧道時,對於BGP選路的優先級相同。
多次執行本命令時,以最後一次執行的命令為準。
在完成上述配置後,在任意視圖下執行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協議。Router A與Router B和Router C之間運行EBGP;Router D與Router B和Router C之間運行IBGP。
AS 200中運行OSPF協議。
配置路由策略,使得Router D優選從Router C學到的1.0.0.0/8路由。
圖4-6 配置BGP路徑選擇的組網圖
設備 |
接口 |
IP地址 |
設備 |
接口 |
IP地址 |
Router A |
GE1/0/1 |
1.0.0.1/8 |
Router D |
GE1/0/1 |
195.1.1.1/24 |
|
GE1/0/2 |
192.1.1.1/24 |
|
GE1/0/2 |
194.1.1.1/24 |
|
GE1/0/3 |
193.1.1.1/24 |
Router C |
GE1/0/1 |
193.1.1.2/24 |
Router B |
GE1/0/1 |
192.1.1.2/24 |
|
GE1/0/2 |
195.1.1.2/24 |
|
GE1/0/2 |
194.1.1.2/24 |
|
(1) 配置各接口的IP地址(略)
(2) 配置Router B、Router C和Router D之間運行OSPF協議
# 配置Router B。
<RouterB> system-view
[RouterB] ospf
[RouterB-ospf] area 0
[RouterB-ospf-1-area-0.0.0.0] network 192.1.1.0 0.0.0.255
[RouterB-ospf-1-area-0.0.0.0] network 194.1.1.0 0.0.0.255
[RouterB-ospf-1-area-0.0.0.0] quit
[RouterB-ospf-1] quit
# 配置Router C。
<RouterC> system-view
[RouterC] ospf
[RouterC-ospf] area 0
[RouterC-ospf-1-area-0.0.0.0] network 193.1.1.0 0.0.0.255
[RouterC-ospf-1-area-0.0.0.0] network 195.1.1.0 0.0.0.255
[RouterC-ospf-1-area-0.0.0.0] quit
[RouterC-ospf-1] quit
# 配置Router D。
<RouterD> system-view
[RouterD] ospf
[RouterD-ospf] area 0
[RouterD-ospf-1-area-0.0.0.0] network 194.1.1.0 0.0.0.255
[RouterD-ospf-1-area-0.0.0.0] network 195.1.1.0 0.0.0.255
[RouterD-ospf-1-area-0.0.0.0] quit
[RouterD-ospf-1] quit
(3) 配置BGP連接
# 配置Router A。
<RouterA> system-view
[RouterA] bgp 100
[RouterA-bgp-default] peer 192.1.1.2 as-number 200
[RouterA-bgp-default] peer 193.1.1.2 as-number 200
[RouterA-bgp-default] address-family ipv4 unicast
[RouterA-bgp-default-ipv4] peer 192.1.1.2 enable
[RouterA-bgp-default-ipv4] peer 193.1.1.2 enable
# 將1.0.0.0/8網段通告到Router A的BGP路由表中。
[RouterA-bgp-default-ipv4] network 1.0.0.0 8
[RouterA-bgp-default-ipv4] quit
[RouterA-bgp-default] quit
# 配置Router B。
[RouterB] bgp 200
[RouterB-bgp-default] peer 192.1.1.1 as-number 100
[RouterB-bgp-default] peer 194.1.1.1 as-number 200
[RouterB-bgp-default] address-family ipv4 unicast
[RouterB-bgp-default-ipv4] peer 192.1.1.1 enable
[RouterB-bgp-default-ipv4] peer 194.1.1.1 enable
[RouterB-bgp-default-ipv4] quit
[RouterB-bgp-default] quit
# 配置Router C。
[RouterC] bgp 200
[RouterC-bgp-default] peer 193.1.1.1 as-number 100
[RouterC-bgp-default] peer 195.1.1.1 as-number 200
[RouterC-bgp-default] address-family ipv4 unicast
[RouterC-bgp-default-ipv4] peer 193.1.1.1 enable
[RouterC-bgp-default-ipv4] peer 195.1.1.1 enable
[RouterC-bgp-default-ipv4] quit
[RouterC-bgp-default] quit
# 配置Router D。
[RouterD] bgp 200
[RouterD-bgp-default] peer 194.1.1.2 as-number 200
[RouterD-bgp-default] peer 195.1.1.2 as-number 200
[RouterD-bgp-default] address-family ipv4 unicast
[RouterD-bgp-default-ipv4] peer 194.1.1.2 enable
[RouterD-bgp-default-ipv4] peer 195.1.1.2 enable
[RouterD-bgp-default-ipv4] quit
[RouterD-bgp-default] quit
(4) 通過配置本地優先級,使得Router D優選從Router C學到的路由。
# 在Router C上定義編號為2000的IPv4基本ACL,允許1.0.0.0/8路由通過。
[RouterC] acl basic 2000
[RouterC-acl-ipv4-basic-2000] rule permit source 1.0.0.0 0.255.255.255
[RouterC-acl-ipv4-basic-2000] quit
# 在Router C上定義名為localpref的Route-policy,設置路由1.0.0.0/8的本地優先級為200(缺省的本地優先級為100)。
[RouterC] route-policy localpref permit node 10
[RouterC-route-policy-localpref-10] if-match ip address acl 2000
[RouterC-route-policy-localpref-10] apply local-preference 200
[RouterC-route-policy-localpref-10] quit
# 為從BGP對等體193.1.1.1的路由應用名為localpref的Route-policy。
[RouterC] bgp 200
[RouterC-bgp-default] address-family ipv4 unicast
[RouterC-bgp-default-ipv4] peer 193.1.1.1 route-policy localpref import
[RouterC-bgp-default-ipv4] quit
[RouterC-bgp-default] quit
# 查看Router D的BGP路由表。
[RouterD] display bgp routing-table ipv4
Total number of routes: 2
BGP local router ID is 195.1.1.1
Status codes: * - valid, > - best, d - dampened, h - history,
s - suppressed, S - stale, i - internal, e - external
Origin: i - IGP, e - EGP, ? - incomplete
Network NextHop MED LocPrf PrefVal Path/Ogn
* >i 1.0.0.0 193.1.1.1 200 0 100i
* i 192.1.1.1 100 0 100i
可以看到,Router D從Router C學到1.0.0.0/8的路由是最優的。
調整和優化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如果在路由迭代的過程中不對迭代的結果路由進行任何限製,則可能會將路由迭代到一個錯誤的轉發路徑上。可以通過配置本功能,使得用戶可以通過路由策略靈活的匹配條件,有選擇性地影響BGP路由的迭代結果,從而保證BGP路由的下一跳能夠迭代到用戶期望的路徑上。
配置本功能後,BGP路由的下一跳隻能迭代到能通過路由策略過濾的路由上,如果BGP路由迭代到的下一跳路由均無法通過路由策略的過濾,則該路由將被標識為不可達,無法生效。路由通過路由策略過濾的判斷條件是:路由能夠通過本命令指定的路由策略中允許模式節點的過濾。
如果在某個BGP地址族視圖下配置了nexthop recursive-lookup route-policy命令,並同時在RIB IPv4地址族視圖(或RIB IPv6地址族視圖)下配置了protocol nexthop recursive-lookup命令,則對於該BGP地址族中的BGP路由,采用該地址族視圖下配置的nexthop recursive-lookup route-policy命令。如果某個BGP地址族視圖下未配置nexthop recursive-lookup route-policy命令,僅在RIB IPv4地址族視圖(或RIB IPv6地址族視圖)下配置了protocol nexthop recursive-lookup命令,則該地址族中的BGP路由根據下一跳的地址類型,使用RIB IPv4地址族視圖(或RIB IPv6地址族視圖)下protocol nexthop recursive-lookup命令的配置來進行下一跳迭代查找。
protocol nexthop recursive-lookup命令的詳細介紹,請參見“三層技術-IP路由命令參考”中的“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) 配置BGP路由根據路由策略來過濾迭代到的下一跳路由。
nexthop recursive-lookup route-policy route-policy-name
缺省情況下,BGP不根據路由策略來過濾迭代到的下一跳路由。
配置本命令後,如果地址族中的所有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) 配置BGP路由根據路由策略來過濾迭代到的下一跳路由。
nexthop recursive-lookup route-policy route-policy-name
缺省情況下,BGP不根據路由策略來過濾迭代到的下一跳路由。
為了防止指定地址族中的所有BGP路由迭代到的下一跳路由均無法通過路由策略的過濾,導致該地址族下的所有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節點的隧道對端設備需要為倒數第二跳分配非空標簽,否則會導致流量轉發不通。有關倒數第二跳彈出功能的詳細介紹,請參見“MPLS配置指導”中的“MPLS基礎”。
隻要配置了以下兩種情況之一,攜帶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,Router A在AS 65008中,Router B和Router C在AS 65009中。
Router A與Router B、Router C之間運行EBGP,Router B和Router C之間運行IBGP。
在Router A上配置負載分擔的路由條數為2,以提高鏈路利用率。
圖5-2 BGP負載分擔配置組網圖
(1) 配置各接口的IP地址(略)
(2) 配置BGP連接
¡ 在Router A上與Router B、Router C分別建立EBGP連接,並將8.1.1.0/24網段的路由通告給Router B和Router C,以便Router B和Router C能夠訪問Router A的內部網絡。
¡ 在Router B上與Router A建立EBGP連接,與Router C建立IBGP連接,並將9.1.1.0/24網段的路由通告給Router A,以便Router A能夠通過Router B訪問內部網絡。同時,在Router B上配置一條到Router C Loopback0接口的靜態路由(也可以用OSPF等協議來實現),以便使用Loopback接口建立IBGP連接。
¡ 在Router C上與Router A建立EBGP連接,與Router B建立IBGP連接,並將9.1.1.0/24網段的路由通告給Router A,以便Router A能夠通過Router C訪問內部網絡。同時,在Router C上配置一條到Router B Loopback0接口的靜態路由(也可以用OSPF等協議來實現),以便使用Loopback接口建立IBGP連接。
# 配置Router A。
<RouterA> system-view
[RouterA] bgp 65008
[RouterA-bgp-default] router-id 1.1.1.1
[RouterA-bgp-default] peer 3.1.1.1 as-number 65009
[RouterA-bgp-default] peer 3.1.2.1 as-number 65009
[RouterA-bgp-default] address-family ipv4 unicast
[RouterA-bgp-default-ipv4] peer 3.1.1.1 enable
[RouterA-bgp-default-ipv4] peer 3.1.2.1 enable
[RouterA-bgp-default-ipv4] network 8.1.1.0 24
[RouterA-bgp-default-ipv4] quit
[RouterA-bgp-default] quit
# 配置Router B。
<RouterB> system-view
[RouterB] bgp 65009
[RouterB-bgp-default] router-id 2.2.2.2
[RouterB-bgp-default] peer 3.1.1.2 as-number 65008
[RouterB-bgp-default] peer 3.3.3.3 as-number 65009
[RouterB-bgp-default] peer 3.3.3.3 connect-interface loopback 0
[RouterB-bgp-default] address-family ipv4 unicast
[RouterB-bgp-default-ipv4] peer 3.1.1.2 enable
[RouterB-bgp-default-ipv4] peer 3.3.3.3 enable
[RouterB-bgp-default-ipv4] network 9.1.1.0 24
[RouterB-bgp-default-ipv4] quit
[RouterB-bgp-default] quit
[RouterB] ip route-static 3.3.3.3 32 9.1.1.2
# 配置Router C。
<RouterC> system-view
[RouterC] bgp 65009
[RouterC-bgp-default] router-id 3.3.3.3
[RouterC-bgp-default] peer 3.1.2.2 as-number 65008
[RouterC-bgp-default] peer 2.2.2.2 as-number 65009
[RouterC-bgp-default] peer 2.2.2.2 connect-interface loopback 0
[RouterC-bgp-default] address-family ipv4 unicast
[RouterC-bgp-default-ipv4] peer 3.1.2.2 enable
[RouterC-bgp-default-ipv4] peer 2.2.2.2 enable
[RouterC-bgp-default-ipv4] network 9.1.1.0 24
[RouterC-bgp-default-ipv4] quit
[RouterC-bgp-default] quit
[RouterC] ip route-static 2.2.2.2 32 9.1.1.1
# 查看Router A的路由表。
[RouterA] display bgp routing-table ipv4
Total number of routes: 3
BGP local router ID is 1.1.1.1
Status codes: * - valid, > - best, d - dampened, h - history,
s - suppressed, S - stale, i - internal, e - external
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
* >e 9.1.1.0/24 3.1.1.1 0 0 65009i
* e 3.1.2.1 0 0 65009i
¡ 從BGP路由表中可以看出,到目的地址9.1.1.0/24有兩條有效路由,其中下一跳為3.1.1.1的路由前有標誌“>”,表示它是當前有效的最優路由(因為Router B的路由器ID要小一些);而下一跳為3.1.2.1的路由前有標誌“*”,表示它是當前有效的路由,但不是最優的。
¡ 使用display ip routing-table命令查看IP路由表項,可以看出到達目的地址9.1.1.0/24的路由隻有一條,下一跳地址為3.1.1.1,出接口為GigabitEthernet1/0/2。
(3) 配置負載分擔
因為Router A有兩條路徑到達AS 65009的內部網絡,所以,可以在Router A配置負載分擔的路由條數為2,以提高鏈路利用率。
# 配置Router A。
[RouterA] bgp 65008
[RouterA-bgp-default] address-family ipv4 unicast
[RouterA-bgp-default-ipv4] balance 2
[RouterA-bgp-default-ipv4] quit
[RouterA-bgp-default] quit
# 查看Router A的BGP路由表。
[RouterA] display bgp routing-table ipv4
Total number of routes: 3
BGP local router ID is 1.1.1.1
Status codes: * - valid, > - best, d - dampened, h - history,
s - suppressed, S - stale, i - internal, e - external
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
* >e 9.1.1.0/24 3.1.1.1 0 0 65009i
* >e 3.1.2.1 0 0 65009i
· 從BGP路由表中可以看到,BGP路由9.1.1.0/24存在兩個下一跳,分別是3.1.1.1和3.1.2.1,兩條路由前都有標誌“>”,表明它們都是當前有效的最優路由。
· 使用display ip routing-table命令查看IP路由表項,可以看出到達目的地址9.1.1.0/24的路由有兩條,其中一條的下一跳地址為3.1.1.1,出接口為GigabitEthernet1/0/2;另一條的下一跳地址為3.1.2.1,出接口為GigabitEthernet1/0/3。
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安全框架。
配置方法請參見“安全配置指導”中的“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安全框架。
· Router A、Router B和Router C三台路由器之間運行IPv6 BGP交互路由信息。Router A和Router B之間建立IBGP連接,Router B和Router C之間建立EBGP連接。
· 為了提高安全性,配置通過IPsec對IPv6 BGP報文進行保護。
圖6-1 通過IPsec保護IPv6 BGP報文組網圖
(1) 配置各接口的IPv6地址(略)
(2) 配置IBGP連接
# 配置Router A。
<RouterA> system-view
[RouterA] bgp 65008
[RouterA-bgp-default] router-id 1.1.1.1
[RouterA-bgp-default] group ibgp internal
[RouterA-bgp-default] peer 1::2 group ibgp
[RouterA-bgp-default] address-family ipv6 unicast
[RouterA-bgp-default-ipv6] peer ibgp enable
[RouterA-bgp-default-ipv6] quit
[RouterA-bgp-default] quit
# 配置Router B。
<RouterB> system-view
[RouterB] bgp 65008
[RouterB-bgp-default] router-id 2.2.2.2
[RouterB-bgp-default] group ibgp internal
[RouterB-bgp-default] peer 1::1 group ibgp
[RouterB-bgp-default] address-family ipv6 unicast
[RouterB-bgp-default-ipv6] peer ibgp enable
[RouterB-bgp-default-ipv6] quit
(3) 配置EBGP連接
# 配置Router C。
<RouterC> system-view
[RouterC] bgp 65009
[RouterC-bgp-default] router-id 3.3.3.3
[RouterC-bgp-default] group ebgp external
[RouterC-bgp-default] peer 3::1 as-number 65008
[RouterC-bgp-default] peer 3::1 group ebgp
[RouterC-bgp-default] address-family ipv6 unicast
[RouterC-bgp-default-ipv6] peer ebgp enable
[RouterC-bgp-default-ipv6] quit
[RouterC-bgp-default] quit
# 配置Router B。
[RouterB-bgp-default] group ebgp external
[RouterB-bgp-default] peer 3::2 as-number 65009
[RouterB-bgp-default] peer 3::2 group ebgp
[RouterB-bgp-default] address-family ipv6 unicast
[RouterB-bgp-default-ipv6] peer ebgp enable
[RouterB-bgp-default-ipv6] quit
[RouterB-bgp-default] quit
(4) 配置IPsec安全提議和安全框架
# 配置Router A。創建名為tran1的安全提議,報文封裝形式采用傳輸模式,安全協議采用ESP協議。創建手工方式的安全框架policy001,配置SPI和密鑰。
[RouterA] ipsec transform-set tran1
[RouterA-ipsec-transform-set-tran1] encapsulation-mode transport
[RouterA-ipsec-transform-set-tran1] esp encryption-algorithm des
[RouterA-ipsec-transform-set-tran1] esp authentication-algorithm sha1
[RouterA-ipsec-transform-set-tran1] quit
[RouterA] ipsec profile policy001 manual
[RouterA-ipsec-profile-policy001-manual] transform-set tran1
[RouterA-ipsec-profile-policy001-manual] sa spi outbound esp 12345
[RouterA-ipsec-profile-policy001-manual] sa spi inbound esp 12345
[RouterA-ipsec-profile-policy001-manual] sa string-key outbound esp simple abcdefg
[RouterA-ipsec-profile-policy001-manual] sa string-key inbound esp simple abcdefg
[RouterA-ipsec-profile-policy001-manual] quit
# 配置Router B。創建名為tran1的安全提議,報文封裝形式采用傳輸模式,安全協議采用ESP協議;創建手工方式的安全框架policy001,配置SPI和密鑰。創建名為tran2的安全提議,報文封裝形式采用傳輸模式,安全協議采用ESP協議;創建手工方式的安全框架policy002,配置SPI和密鑰。
[RouterB] ipsec transform-set tran1
[RouterB-ipsec-transform-set-tran1] encapsulation-mode transport
[RouterB-ipsec-transform-set-tran1] esp encryption-algorithm des
[RouterB-ipsec-transform-set-tran1] esp authentication-algorithm sha1
[RouterB-ipsec-transform-set-tran1] quit
[RouterB] ipsec profile policy001 manual
[RouterB-ipsec-profile-policy001-manual] transform-set tran1
[RouterB-ipsec-profile-policy001-manual] sa spi outbound esp 12345
[RouterB-ipsec-profile-policy001-manual] sa spi inbound esp 12345
[RouterB-ipsec-profile-policy001-manual] sa string-key outbound esp simple abcdefg
[RouterB-ipsec-profile-policy001-manual] sa string-key inbound esp simple abcdefg
[RouterB-ipsec-profile-policy001-manual] quit
[RouterB] ipsec transform-set tran2
[RouterB-ipsec-transform-set-tran2] encapsulation-mode transport
[RouterB-ipsec-transform-set-tran2] esp encryption-algorithm des
[RouterB-ipsec-transform-set-tran2] esp authentication-algorithm sha1
[RouterB-ipsec-transform-set-tran2] quit
[RouterB] ipsec profile policy002 manual
[RouterB-ipsec-profile-policy002-manual] transform-set tran2
[RouterB-ipsec-profile-policy002-manual] sa spi outbound esp 54321
[RouterB-ipsec-profile-policy002-manual] sa spi inbound esp 54321
[RouterB-ipsec-profile-policy002-manual] sa string-key outbound esp simple gfedcba
[RouterB-ipsec-profile-policy002-manual] sa string-key inbound esp simple gfedcba
[RouterB-ipsec-profile-policy002-manual] quit
# 配置Router C。創建名為tran2的安全提議,報文封裝形式采用傳輸模式,安全協議采用ESP協議。創建手工方式的安全框架policy002,配置SPI和密鑰。
[RouterC] ipsec transform-set tran2
[RouterC-ipsec-transform-set-tran2] encapsulation-mode transport
[RouterC-ipsec-transform-set-tran2] esp encryption-algorithm des
[RouterC-ipsec-transform-set-tran2] esp authentication-algorithm sha1
[RouterC-ipsec-transform-set-tran2] quit
[RouterC] ipsec profile policy002 manual
[RouterC-ipsec-profile-policy002-manual] transform-set tran2
[RouterC-ipsec-profile-policy002-manual] sa spi outbound esp 54321
[RouterC-ipsec-profile-policy002-manual] sa spi inbound esp 54321
[RouterC-ipsec-profile-policy002-manual] sa string-key outbound esp simple gfedcba
[RouterC-ipsec-profile-policy002-manual] sa string-key inbound esp simple gfedcba
[RouterC-ipsec-profile-policy002-manual] quit
(5) 配置通過IPsec保護Router A和Router B之間的IPv6 BGP報文
# 配置Router A。
[RouterA] bgp 65008
[RouterA-bgp-default] peer 1::2 ipsec-profile policy001
[RouterA-bgp-default] quit
# 配置Router B。
[RouterB] bgp 65008
[RouterB-bgp-default] peer 1::1 ipsec-profile policy001
[RouterB-bgp-default] quit
(6) 配置通過IPsec保護Router B和Router C之間的IPv6 BGP報文
# 配置Router C。
[RouterC] bgp 65009
[RouterC-bgp-default] peer ebgp ipsec-profile policy002
[RouterC-bgp-default] quit
# 配置Router B。
[RouterB] bgp 65008
[RouterB-bgp-default] peer ebgp ipsec-profile policy002
[RouterB-bgp-default] quit
# 在Router B上顯示IPv6 BGP對等體的詳細信息。可以看出完成上述配置後IBGP、EBGP對等體能夠正常建立,且發送和接收的IPv6 BGP報文都經過加密。
[RouterB] display bgp peer ipv6 verbose
Peer: 1::1 Local: 2.2.2.2
Type: IBGP link
BGP version 4, remote router ID 1.1.1.1
BGP current state: Established, Up for 00h05m54s
BGP current event: KATimerExpired
BGP last state: OpenConfirm
Port: Local - 24896 Remote - 179
Configured: Active Hold Time: 180 sec Keepalive Time: 60 sec
Received : Active Hold Time: 180 sec
Negotiated: Active Hold Time: 180 sec Keepalive Time: 60 sec
Peer optional capabilities:
Peer supports BGP multi-protocol extension
Peer supports BGP route refresh capability
Peer supports BGP route AS4 capability
Address family IPv6 Unicast: advertised and received
InQ updates: 0, OutQ updates: 0
NLRI statistics:
Rcvd: UnReach NLRI 0, Reach NLRI 0
Sent: UnReach NLRI 0, Reach NLRI 3
Message statistics:
Msg type Last rcvd time/ Current rcvd count/ History rcvd count/
Last sent time Current sent count History sent count
Open 18:59:15-2013.4.24 1 1
18:59:15-2013.4.24 1 2
Update - 0 0
18:59:16-2013.4.24 1 1
Notification - 0 0
18:59:15-2013.4.24 0 1
Keepalive 18:59:15-2013.4.24 1 1
18:59:15-2013.4.24 1 1
RouteRefresh - 0 0
- 0 0
Total - 2 2
- 3 5
Maximum allowed prefix number: 4294967295
Threshold: 75%
Minimum time between advertisements is 15 seconds
Optional capabilities:
Multi-protocol extended capability has been enabled
Route refresh capability has been enabled
Peer preferred value: 0
IPsec profile name: policy001
Routing policy configured:
No routing policy is configured
Peer: 3::2 Local: 2.2.2.2
Type: EBGP link
BGP version 4, remote router ID 3.3.3.3
BGP current state: Established, Up for 00h05m00s
BGP current event: KATimerExpired
BGP last state: OpenConfirm
Port: Local - 24897 Remote - 179
Configured: Active Hold Time: 180 sec Keepalive Time: 60 sec
Received : Active Hold Time: 180 sec
Negotiated: Active Hold Time: 180 sec Keepalive Time: 60 sec
Peer optional capabilities:
Peer supports BGP multi-protocol extension
Peer supports BGP route refresh capability
Peer supports BGP route AS4 capability
Address family IPv6 Unicast: advertised and received
Maximum allowed prefix number: 4294967295
Threshold: 75%
Minimum time between advertisements is 30 seconds
Optional capabilities:
Multi-protocol extended capability has been enabled
Route refresh capability has been enabled
Peer preferred value: 0
IPsec profile name: policy002
Routing policy configured:
No routing policy is configured
提高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 NSR與BGP GR具有如下區別,請根據實際情況選擇合適的方式確保數據轉發不中斷:
· 對設備要求不同:BGP協議的主進程和備進程運行在不同的主控板或IRF成員設備上,因此要運行BGP NSR功能,必須有兩個或兩個以上的主控板;要運行BGP GR功能,可以隻有一個主控板。
· 對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過程成功。
在MPLS L3VPN組網中,使能BGP NSR功能的同時,需要使能RIB NSR功能,以確保流量轉發不會中斷。關於RIB NSR功能的詳細介紹,請參見“三層技術-IP路由配置指導”中的“IP路由基礎”。
(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會話。
通過本功能配置echo報文方式的BFD檢測時,需要注意:
· echo報文方式的BFD會話隻能用於檢測與直連對等體之間的鏈路狀態。
· 通過LoopBack接口建立的BGP會話無法通過echo報文方式檢測對等體之間的鏈路。
· 需要配置bfd echo-source-ip或bfd echo-source-ipv6命令為echo報文指定源地址,否則本端無法建立BFD會話。
通過鏈路本地地址建立的BGP會話隻能通過控製報文方式的單跳BFD會話檢測對等體之間的鏈路。
采用控製報文方式的BFD會話檢測鏈路時,本地路由器和BGP對等體采用的BFD檢測方式(單跳或多跳)必須相同,否則無法建立BFD會話。
配置BGP GR功能後,請慎用BGP與BFD聯動功能。因為當鏈路故障時,係統可能還沒來得及啟用GR處理流程,BFD已經檢測到鏈路故障了,從而導致GR失敗。如果設備上同時配置了BGP GR和BGP BFD,則在BGP GR期間請勿去使能BGP BFD,否則可能導致GR失敗。
為指定對等體/對等體組配置BFD檢測參數(BFD檢測時間倍數、接收/發送BFD控製報文的時間間隔)時,需要注意:
· 對等體在加入對等體組時將同步所加入對等體組的BFD檢測參數配置。
· 配置對等體組的BFD檢測參數時,相應配置將同步給組內所有的對等體。
· 如果對同一個對等體/對等體組的某項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 [ echo | multi-hop | single-hop ]
缺省情況下,不使用BFD檢測本地路由器和BGP對等體/對等體組之間的鏈路。
(4) (可選)配置指定對等體/對等體組的BFD檢測參數。
peer { group-name | ipv4-address [ mask-length ] } bfd parameters { detect-multiplier detect-multiplier | min-receive-interval min-receive-interval | min-transmit-interval min-transmit-interval } *
本命令的缺省情況與設備的型號有關,請以設備的實際情況為準。
(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 [ echo | multi-hop | single-hop ]
缺省情況下,不使用BFD檢測本地路由器和IPv6 BGP對等體/對等體組之間的鏈路。
(4) (可選)配置指定對等體/對等體組的BFD檢測參數。
peer { group-name | ipv6-address [ prefix-length ] } bfd parameters { detect-multiplier detect-multiplier | min-receive-interval min-receive-interval | min-transmit-interval min-transmit-interval } *
本命令的缺省情況與設備的型號有關,請以設備的實際情況為準。
當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 |
如圖7-2所示,所有路由器均運行BGP協議,Router A和Router B之間建立EBGP連接,Router B和Router C之間建立IBGP連接。現要求實現即便Router B發生主備倒換,也不會影響Router A和Router C之間正在進行的數據傳輸。
圖7-2 BGP GR配置組網圖
(1) Router A的配置
# 配置各接口的IP地址(略)。
# 配置Router A與Router B的EBGP連接。
<RouterA> system-view
[RouterA] bgp 65008
[RouterA-bgp-default] router-id 1.1.1.1
[RouterA-bgp-default] peer 200.1.1.1 as-number 65009
# 使能BGP GR功能。
[RouterA-bgp-default] graceful-restart
# 將8.0.0.0/8網段路由通告到IPv4 BGP路由表中。
[RouterA-bgp-default] address-family ipv4
[RouterA-bgp-default-ipv4] network 8.0.0.0
# 使能與Router B交換BGP IPv4單播路由的能力。
[RouterA-bgp-default-ipv4] peer 200.1.1.1 enable
(2) Router B的配置
# 配置各接口的IP地址(略)。
# 配置Router B與Router A的EBGP連接。
<RouterB> system-view
[RouterB] bgp 65009
[RouterB-bgp-default] router-id 2.2.2.2
[RouterB-bgp-default] peer 200.1.1.2 as-number 65008
# 配置Router B與Router C的IBGP連接。
[RouterB-bgp-default] peer 9.1.1.2 as-number 65009
# 使能BGP GR功能。
[RouterB-bgp-default] graceful-restart
# 將200.1.1.0/24和9.1.1.0/24網段路由通告到IPv4 BGP路由表中。
[RouterB-bgp-default] address-family ipv4
[RouterB-bgp-default-ipv4] network 200.1.1.0 24
[RouterB-bgp-default-ipv4] network 9.1.1.0 24
# 使能與Router A、Router C交換BGP IPv4單播路由的能力。
[RouterB-bgp-default-ipv4] peer 200.1.1.2 enable
[RouterB-bgp-default-ipv4] peer 9.1.1.2 enable
(3) Router C的配置
# 配置各接口的IP地址(略)。
# 配置Router C與Router B的IBGP連接。
<RouterC> system-view
[RouterC] bgp 65009
[RouterC-bgp-default] router-id 3.3.3.3
[RouterC-bgp-default] peer 9.1.1.1 as-number 65009
# 使能BGP GR功能。
[RouterC-bgp-default] graceful-restart
# 使能與Router B交換BGP IPv4單播路由的能力。
[RouterC-bgp-default] address-family ipv4
[RouterC-bgp-default-ipv4] peer 9.1.1.1 enable
在Router A上ping Router C,同時在Router B上觸發主備倒換,可以發現在整個倒換過程中Router A都可以ping通Router C。
· 在AS 200內使用OSPF作為IGP協議,實現AS內的互通。
· Router A與Router C之間建立兩條IBGP連接。當Router A與Router C之間的兩條路徑均連通時,Router C與1.1.1.0/24之間的報文使用Router A<->Router B<->Router C這條路徑轉發;當Router A<->Router B<->Router C這條路徑發生故障時,BFD能夠快速檢測並通告BGP協議,使得Router A<->Router D<->Router C這條路徑能夠迅速生效。
圖7-3 配置BGP與BFD聯動組網圖
(1) 配置各接口的IP地址(略)
(2) 配置OSPF,保證Router A和Router C之間路由可達(略)
(3) Router A上的BGP配置
# 配置Router A和Router C建立兩條IBGP連接。
<RouterA> system-view
[RouterA] bgp 200
[RouterA-bgp-default] peer 3.0.2.2 as-number 200
[RouterA-bgp-default] peer 2.0.2.2 as-number 200
[RouterA-bgp-default] address-family ipv4 unicast
[RouterA-bgp-default-ipv4] peer 3.0.2.2 enable
[RouterA-bgp-default-ipv4] peer 2.0.2.2 enable
[RouterA-bgp-default-ipv4] quit
# 配置當Router A與Router C之間的兩條路徑均連通時,Router C與1.1.1.0/24之間的報文使用Router A<->Router B<->Router C這條路徑轉發。(在Router A上對發布給對等體2.0.2.2的1.1.1.0/24路由配置較高的MED屬性值)
¡ 定義編號為2000的IPv4基本ACL,允許路由1.1.1.0/24通過。
[RouterA] acl basic 2000
[RouterA-acl-ipv4-basic-2000] rule permit source 1.1.1.0 0.0.0.255
[RouterA-acl-ipv4-basic-2000] quit
¡ 定義兩個Route-policy,一個名為apply_med_50,為路由1.1.1.0/24設置MED屬性值為50;另一個名為apply_med_100,為路由1.1.1.0/24設置MED屬性值為100。
[RouterA] route-policy apply_med_50 permit node 10
[RouterA-route-policy-apply_med_50-10] if-match ip address acl 2000
[RouterA-route-policy-apply_med_50-10] apply cost 50
[RouterA-route-policy-apply_med_50-10] quit
[RouterA] route-policy apply_med_100 permit node 10
[RouterA-route-policy-apply_med_100-10] if-match ip address acl 2000
[RouterA-route-policy-apply_med_100-10] apply cost 100
[RouterA-route-policy-apply_med_100-10] quit
¡ 對發布給對等體3.0.2.2的路由應用名為apply_med_50的Route-policy,對發布給對等體2.0.2.2的路由應用名為apply_med_100的Route-policy。
[RouterA] bgp 200
[RouterA-bgp-default] address-family ipv4 unicast
[RouterA-bgp-default-ipv4] peer 3.0.2.2 route-policy apply_med_50 export
[RouterA-bgp-default-ipv4] peer 2.0.2.2 route-policy apply_med_100 export
[RouterA-bgp-default-ipv4] quit
# 配置當Router A<->Router B<->Router C這條路徑發生故障時,BFD能夠快速檢測並通告BGP協議,使得Router A<->Router D<->Router C這條路徑能夠迅速生效。
[RouterA-bgp-default] peer 3.0.2.2 bfd
[RouterA-bgp-default] quit
(4) Router C上的BGP配置。
# 配置Router A和Router C建立兩條IBGP連接。
<RouterC> system-view
[RouterC] bgp 200
[RouterC-bgp-default] peer 3.0.1.1 as-number 200
[RouterC-bgp-default] peer 2.0.1.1 as-number 200
[RouterC-bgp-default] address-family ipv4 unicast
[RouterC-bgp-default-ipv4] peer 3.0.1.1 enable
[RouterC-bgp-default-ipv4] peer 2.0.1.1 enable
[RouterC-bgp-default-ipv4] quit
# 配置當Router A<->Router B<->Router C這條路徑發生故障時,BFD能夠快速檢測並通告BGP協議,使得Router A<->Router D<->Router C這條路徑能夠迅速生效。
[RouterC-bgp-default] peer 3.0.1.1 bfd
[RouterC-bgp-default] quit
[RouterC] quit
下麵以Router C為例,Router A和Router C類似,不再贅述。
# 顯示Router C的BFD信息。
<RouterC> display bfd session verbose
Total sessions: 1 Up sessions: 1 Init mode: Active
IPv4 session working in control packet mode:
Local discr: 513 Remote discr: 513
Source IP: 3.0.2.2 Destination IP: 3.0.1.1
Session State: Up
Interface: N/A
Min Tx interval: 500ms Actual Tx interval: 500ms
Min Rx interval: 500ms Detection time: 2500ms
Rx count: 135 Tx count: 135
Connection type: Indirect Up duration: 00:00:58
Hold time: 2457ms Auth mode: None
Detection Mode: Async Slot: 0
Protocol: BGP
Version:1
Diag Info: No Diagnostic
以上顯示信息表明:Router A和Router C之間已經建立了BFD連接,而且BFD協議運行正常。
# 在Router C上查看BGP鄰居信息,可以看出Router A和Router C之間建立兩條BGP連接,且均處於Established狀態。
<RouterC> display bgp peer ipv4
BGP local router ID: 3.3.3.3
Local AS number: 200
Total number of peers: 2 Peers in established state: 2
* - Dynamically created peer
Peer AS MsgRcvd MsgSent OutQ PrefRcv Up/Down State
2.0.1.1 200 4 5 0 0 00:01:55 Established
3.0.1.1 200 4 5 0 0 00:01:52 Established
# 在Router C上查看1.1.1.0/24的路由信息,可以看出Router C通過Router A<->Router B<->Router C這條路徑與1.1.1.0/24網段通信。
<RouterC> display ip routing-table 1.1.1.0 24 verbose
Summary count : 1
Destination: 1.1.1.0/24
Protocol: BGP Process ID: 0
SubProtID: 0x1 Age: 00h00m09s
Cost: 50 Preference: 255
IpPre: N/A QosLocalID: N/A
Tag: 0 State: Active Adv
OrigTblID: 0x1 OrigVrf: default-vrf
TableID: 0x2 OrigAs: 0
NibID: 0x15000001 LastAs: 0
AttrID: 0x1 Neighbor: 3.0.1.1
Flags: 0x10060 OrigNextHop: 3.0.1.1
Label: NULL RealNextHop: 3.0.2.1
BkLabel: NULL BkNextHop: N/A
SRLabel: NULL Interface: GigabitEthernet1/0/1
BkSRLabel: NULL BkInterface: N/A
SIDIndex: NULL InLabel: NULL
Tunnel ID: Invalid IPInterface: GigabitEthernet1/0/1
BkTunnel ID: Invalid BkIPInterface: N/A
FtnIndex: 0x0 ColorInterface: N/A
TrafficIndex: N/A BkColorInterface: N/A
Connector: N/A VpnPeerId: N/A
Dscp: N/A Exp: N/A
SRTunnelID: Invalid StatFlags: 0x0
SID Type: N/A SID: N/A
BkSID: N/A NID: Invalid
FlushNID: Invalid BkNID: Invalid
BkFlushNID: Invalid PathID: 0x0
CommBlockLen: 0
OrigLinkID: 0x0 RealLinkID: 0x0
# Router A和Router B之間的鏈路發生故障後,在Router C上查看1.1.1.0/24的路由信息,可以看出Router C通過Router A<->Router D<->Router C這條路徑與1.1.1.0/24網段通信。
<RouterC> display ip routing-table 1.1.1.0 24 verbose
Summary count : 1
Destination: 1.1.1.0/24
Protocol: BGP Process ID: 0
SubProtID: 0x1 Age: 00h03m08s
Cost: 100 Preference: 255
IpPre: N/A QosLocalID: N/A
Tag: 0 State: Active Adv
OrigTblID: 0x1 OrigVrf: default-vrf
TableID: 0x2 OrigAs: 0
NibID: 0x15000000 LastAs: 0
AttrID: 0x0 Neighbor: 2.0.1.1
Flags: 0x10060 OrigNextHop: 2.0.1.1
Label: NULL RealNextHop: 2.0.2.1
BkLabel: NULL BkNextHop: N/A
SRLabel: NULL Interface: GigabitEthernet1/0/2
BkSRLabel: NULL BkInterface: N/A
SIDIndex: NULL InLabel: NULL
Tunnel ID: Invalid IPInterface: GigabitEthernet1/0/2
BkTunnel ID: Invalid BkIPInterface: N/A
FtnIndex: 0x0 ColorInterface: N/A
TrafficIndex: N/A BkColorInterface: N/A
Connector: N/A VpnPeerId: N/A
Dscp: N/A Exp: N/A
SRTunnelID: Invalid StatFlags: 0x0
SID Type: N/A SID: N/A
BkSID: N/A NID: Invalid
FlushNID: Invalid BkNID: Invalid
BkFlushNID: Invalid PathID: 0x0
CommBlockLen: 0
OrigLinkID: 0x0 RealLinkID: 0x0
如圖7-4所示,Router A、Router B、Router C和Router D通過BGP協議實現網絡互連。要求鏈路B正常時,Router A和Router D之間的流量通過鏈路B轉發;鏈路B出現故障時,流量可以快速切換到鏈路A上。
圖7-4 配置BGP快速重路由組網圖
(1) 配置各接口的IP地址(略)
(2) 在AS 200內配置OSPF,發布接口地址所在網段的路由(包括Loopback接口),確保Router B、Router C和Router D之間路由可達(略)
(3) 配置BGP連接
# 配置Router A分別與Router B和Router C建立EBGP會話,並配置通過BGP發布路由1.1.1.1/32。
<RouterA> system-view
[RouterA] bgp 100
[RouterA-bgp-default] router-id 1.1.1.1
[RouterA-bgp-default] peer 10.1.1.2 as-number 200
[RouterA-bgp-default] peer 30.1.1.3 as-number 200
[RouterA-bgp-default] address-family ipv4 unicast
[RouterA-bgp-default-ipv4] peer 10.1.1.2 enable
[RouterA-bgp-default-ipv4] peer 30.1.1.3 enable
[RouterA-bgp-default-ipv4] network 1.1.1.1 32
# 配置Router B與Router A建立EBGP會話,與Router D建立IBGP會話。
<RouterB> system-view
[RouterB] bgp 200
[RouterB-bgp-default] router-id 2.2.2.2
[RouterB-bgp-default] peer 10.1.1.1 as-number 100
[RouterB-bgp-default] peer 4.4.4.4 as-number 200
[RouterB-bgp-default] peer 4.4.4.4 connect-interface loopback 0
[RouterB-bgp-default] address-family ipv4 unicast
[RouterB-bgp-default-ipv4] peer 10.1.1.1 enable
[RouterB-bgp-default-ipv4] peer 4.4.4.4 enable
[RouterB-bgp-default-ipv4] peer 4.4.4.4 next-hop-local
[RouterB-bgp-default-ipv4] quit
[RouterB-bgp-default] quit
# 配置Router C與Router A建立EBGP會話,與Router D建立IBGP會話。
<RouterC> system-view
[RouterC] bgp 200
[RouterC-bgp-default] router-id 3.3.3.3
[RouterC-bgp-default] peer 30.1.1.1 as-number 100
[RouterC-bgp-default] peer 4.4.4.4 as-number 200
[RouterC-bgp-default] peer 4.4.4.4 connect-interface loopback 0
[RouterC-bgp-default] address-family ipv4 unicast
[RouterC-bgp-default-ipv4] peer 30.1.1.1 enable
[RouterC-bgp-default-ipv4] peer 4.4.4.4 enable
[RouterC-bgp-default-ipv4] peer 4.4.4.4 next-hop-local
[RouterC-bgp-default-ipv4] quit
[RouterC-bgp-default] quit
# 配置Router D分別與Router B和Router C建立IBGP會話,並配置BGP發布路由4.4.4.4/32。
<RouterD> system-view
[RouterD] bgp 200
[RouterD-bgp-default] router-id 4.4.4.4
[RouterD-bgp-default] peer 2.2.2.2 as-number 200
[RouterD-bgp-default] peer 2.2.2.2 connect-interface loopback 0
[RouterD-bgp-default] peer 3.3.3.3 as-number 200
[RouterD-bgp-default] peer 3.3.3.3 connect-interface loopback 0
[RouterD-bgp-default] address-family ipv4 unicast
[RouterD-bgp-default-ipv4] peer 2.2.2.2 enable
[RouterD-bgp-default-ipv4] peer 3.3.3.3 enable
[RouterD-bgp-default-ipv4] network 4.4.4.4 32
(4) 修改路由的首選值,使得Router A和Router D之間的流量優先通過鏈路B轉發
# 在Router A上配置從Router B接收到的路由的首選值為100。
[RouterA-bgp-default-ipv4] peer 10.1.1.2 preferred-value 100
[RouterA-bgp-default-ipv4] quit
[RouterA-bgp-default] quit
# 在Router D上配置從Router B接收到的路由的首選值為100。
[RouterD-bgp-default-ipv4] peer 2.2.2.2 preferred-value 100
[RouterD-bgp-default-ipv4] quit
[RouterD-bgp-default] quit
(5) 配置BGP快速重路由
# 配置Router A:配置通過Echo方式的BFD會話檢測主路由的下一跳是否可達,並配置BFD echo報文的源IP地址為11.1.1.1;創建路由策略frr,為路由4.4.4.4/32指定備份下一跳的地址為30.1.1.3(對等體Router C的地址);在BGP IPv4單播地址族下應用該路由策略。
[RouterA] bfd echo-source-ip 11.1.1.1
[RouterA] ip prefix-list abc index 10 permit 4.4.4.4 32
[RouterA] route-policy frr permit node 10
[RouterA-route-policy] if-match ip address prefix-list abc
[RouterA-route-policy] apply fast-reroute backup-nexthop 30.1.1.3
[RouterA-route-policy] quit
[RouterA] bgp 100
[RouterA-bgp-default] primary-path-detect bfd echo
[RouterA-bgp-default] address-family ipv4 unicast
[RouterA-bgp-default-ipv4] fast-reroute route-policy frr
[RouterA-bgp-default-ipv4] quit
[RouterA-bgp-default] quit
# 配置Router D:配置通過Echo方式的BFD會話檢測主路由的下一跳是否可達,並配置BFD echo報文的源IP地址為44.1.1.1;創建路由策略frr,為路由1.1.1.1/32指定備份下一跳的地址為3.3.3.3(對等體Router C的地址);在BGP IPv4單播地址族下應用該路由策略。
[RouterD] bfd echo-source-ip 44.1.1.1
[RouterD] ip prefix-list abc index 10 permit 1.1.1.1 32
[RouterD] route-policy frr permit node 10
[RouterD-route-policy] if-match ip address prefix-list abc
[RouterD-route-policy] apply fast-reroute backup-nexthop 3.3.3.3
[RouterD-route-policy] quit
[RouterD] bgp 200
[RouterD-bgp-default] primary-path-detect bfd echo
[RouterD-bgp-default] address-family ipv4 unicast
[RouterD-bgp-default-ipv4] fast-reroute route-policy frr
[RouterD-bgp-default-ipv4] quit
[RouterD-bgp-default] quit
# 在Router A上查看4.4.4.4/32路由,可以看到備份下一跳信息。
[RouterA] display ip routing-table 4.4.4.4 32 verbose
Summary count : 1
Destination: 4.4.4.4/32
Protocol: BGP Process ID: 0
SubProtID: 0x2 Age: 00h01m52s
Cost: 0 Preference: 255
IpPre: N/A QosLocalID: N/A
Tag: 0 State: Active Adv
OrigTblID: 0x0 OrigVrf: default-vrf
TableID: 0x2 OrigAs: 200
NibID: 0x15000003 LastAs: 200
AttrID: 0x5 Neighbor: 10.1.1.2
Flags: 0x10060 OrigNextHop: 10.1.1.2
Label: NULL RealNextHop: 10.1.1.2
BkLabel: NULL BkNextHop: 30.1.1.3
SRLabel: NULL Interface: GigabitEthernet1/0/1
BkSRLabel: NULL BkInterface: GigabitEthernet1/0/2
SIDIndex: NULL InLabel: NULL
Tunnel ID: Invalid IPInterface: GigabitEthernet1/0/1
BkTunnel ID: Invalid BkIPInterface: N/A
FtnIndex: 0x0 ColorInterface: N/A
TrafficIndex: N/A BkColorInterface: N/A
Connector: N/A VpnPeerId: N/A
Dscp: N/A Exp: N/A
SRTunnelID: Invalid StatFlags: 0x0
SID Type: N/A SID: N/A
BkSID: N/A NID: Invalid
FlushNID: Invalid BkNID: Invalid
BkFlushNID: Invalid PathID: 0x0
CommBlockLen: 0
OrigLinkID: 0x0 RealLinkID: 0x0
# 在Router D上查看1.1.1.1/32路由,可以看到備份下一跳信息。
[RouterD] display ip routing-table 1.1.1.1 32 verbose
Summary count : 1
Destination: 1.1.1.1/32
Protocol: BGP Process ID: 0
SubProtID: 0x1 Age: 00h00m36s
Cost: 0 Preference: 255
IpPre: N/A QosLocalID: N/A
Tag: 0 State: Active Adv
OrigTblID: 0x0 OrigVrf: default-vrf
TableID: 0x2 OrigAs: 100
NibID: 0x15000003 LastAs: 100
AttrID: 0x1 Neighbor: 2.2.2.2
Flags: 0x10060 OrigNextHop: 2.2.2.2
Label: NULL RealNextHop: 20.1.1.2
BkLabel: NULL BkNextHop: 40.1.1.3
SRLabel: NULL Interface: GigabitEthernet1/0/1
BkSRLabel: NULL BkInterface: GigabitEthernet1/0/2
SIDIndex: NULL InLabel: NULL
Tunnel ID: Invalid IPInterface: GigabitEthernet1/0/1
BkTunnel ID: Invalid BkIPInterface: N/A
FtnIndex: 0x0 ColorInterface: N/A
TrafficIndex: N/A BkColorInterface: N/A
Connector: N/A VpnPeerId: N/A
Dscp: N/A Exp: N/A
SRTunnelID: Invalid StatFlags: 0x0
SID Type: N/A SID: N/A
BkSID: N/A NID: Invalid
FlushNID: Invalid BkNID: Invalid
BkFlushNID: Invalid PathID: 0x0
CommBlockLen: 0
OrigLinkID: 0x0 RealLinkID: 0x0
· 在AS 200內使用OSPFv3作為IGP協議,實現AS內的互通。
· Router A與Router C之間建立兩條IBGP連接。當Router A與Router C之間的兩條路徑均連通時,Router C與1200::0/64之間的報文使用Router A<->Router B<->Router C這條路徑轉發;當Router A<->Router B<->Router C這條路徑發生故障時,BFD能夠快速檢測並通告IPv6 BGP協議,使得Router A<->Router D<->Router C這條路徑能夠迅速生效。
圖7-5 IPv6 BGP與BFD聯動配置組網圖
(1) 配置各接口的IPv6地址(略)
(2) 配置OSPFv3,保證Router A和Router C之間路由可達(略)
(3) Router A上的IPv6 BGP配置
# 配置Router A和Router C建立兩條IBGP連接。
<RouterA> system-view
[RouterA] bgp 200
[RouterA-bgp-default] router-id 1.1.1.1
[RouterA-bgp-default] peer 2002::2 as-number 200
[RouterA-bgp-default] peer 3002::2 as-number 200
[RouterA-bgp-default] address-family ipv6
[RouterA-bgp-default-ipv6] peer 2002::2 enable
[RouterA-bgp-default-ipv6] peer 3002::2 enable
[RouterA-bgp-default-ipv6] quit
# 配置當Router A與Router C之間的兩條路徑均連通時,Router C與1200::0/64之間的報文使用Router A<->Router B<->Router C這條路徑轉發。(在Router A上對發布給對等體2002::2的1200::0/64路由配置較高的MED屬性值)
¡ 定義編號為2000的IPv6基本ACL,允許路由1200::0/64通過。
[RouterA] acl ipv6 basic 2000
[RouterA-acl-ipv6-basic-2000] rule permit source 1200:: 64
[RouterA-acl-ipv6-basic-2000] quit
¡ 定義兩個Route-policy,一個名為apply_med_50,為路由1200::0/64設置MED屬性值為50;另一個名為apply_med_100,為路由1200::0/64設置MED屬性值為100。
[RouterA] route-policy apply_med_50 permit node 10
[RouterA-route-policy-apply_med_50-10] if-match ipv6 address acl 2000
[RouterA-route-policy-apply_med_50-10] apply cost 50
[RouterA-route-policy-apply_med_50-10] quit
[RouterA] route-policy apply_med_100 permit node 10
[RouterA-route-policy-apply_med_100-10] if-match ipv6 address acl 2000
[RouterA-route-policy-apply_med_100-10] apply cost 100
[RouterA-route-policy-apply_med_100-10] quit
¡ 對發布給對等體3002::2的路由應用名為apply_med_50的Route-policy,對發布給對等體2002::2的路由應用名為apply_med_100的Route-policy。
[RouterA] bgp 200
[RouterA-bgp-default] address-family ipv6 unicast
[RouterA-bgp-default-ipv6] peer 3002::2 route-policy apply_med_50 export
[RouterA-bgp-default-ipv6] peer 2002::2 route-policy apply_med_100 export
[RouterA-bgp-default-ipv6] quit
# 配置通過BFD檢測Router A<->Router B<->Router C這條路徑,當該路徑出現故障時,BFD能夠快速檢測到並通告IPv6 BGP協議,使得Router A<->Router D<->Router C這條路徑能夠迅速生效。
[RouterA-bgp-default] peer 3002::2 bfd
[RouterA-bgp-default] quit
(4) Router C上的IPv6 BGP配置。
# 配置Router A和Router C建立兩條IBGP連接。
<RouterC> system-view
[RouterC] bgp 200
[RouterC-bgp-default] router-id 3.3.3.3
[RouterC-bgp-default] peer 3001::1 as-number 200
[RouterC-bgp-default] peer 2001::1 as-number 200
[RouterC-bgp-default] address-family ipv6
[RouterC-bgp-default-ipv6] peer 3001::1 enable
[RouterC-bgp-default-ipv6] peer 2001::1 enable
[RouterC-bgp-default-ipv6] quit
# 配置通過BFD檢測Router A<->Router B<->Router C這條路徑,當該路徑出現故障時,BFD能夠快速檢測到,並通告IPv6 BGP協議,使得Router A<->Router D<->Router C這條路徑能夠迅速生效。
[RouterC-bgp-default] peer 3001::1 bfd
[RouterC-bgp-default] quit
[RouterC] quit
下麵以Router C為例,Router A與此類似,不再贅述。
# 顯示Router C的BFD信息。可以看出,Router A和Router C之間已經建立了BFD會話,而且BFD協議運行正常。
<RouterC> display bfd session verbose
Total sessions: 1 Up sessions: 1 Init mode: Active
IPv6 session working in control packet mode:
Local discr: 513 Remote discr: 513
Source IP: 3002::2
Destination IP: 3001::1
Session state: Up
Interface: N/A
Min Tx interval: 500ms Actual Tx interval: 500ms
Min Rx interval: 500ms Detection time: 2500ms
Rx count: 13 Tx count: 14
Connection type: Indirect Up duration: 00:00:05
Hold time: 2243ms Auth mode: None
Detection mode: Async Slot: 0
Protocol: BGP4+
Version:1
Diag info: No Diagnostic
# 在Router C上查看BGP鄰居信息。可以看出,Router A和Router C之間建立兩條BGP連接,且均處於Established狀態。
<RouterC> display bgp peer ipv6
BGP local router ID: 3.3.3.3
Local AS number: 200
Total number of peers: 2 Peers in established state: 2
* - Dynamically created peer
Peer AS MsgRcvd MsgSent OutQ PrefRcv Up/Down State
2001::1 200 8 8 0 0 00:04:45 Established
3001::1 200 5 4 0 0 00:01:53 Established
# 在Router C上查看1200::0/64的路由信息,可以看出Router C通過Router A<->Router B<->Router C這條路徑與1200::0/64網段通信。
<RouterC> display ipv6 routing-table 1200::0 64 verbose
Summary count : 1
Destination: 1200::/64
Protocol: BGP4+ Process ID: 0
SubProtID: 0x1 Age: 00h01m07s
Cost: 50 Preference: 255
IpPre: N/A QosLocalID: N/A
Tag: 0 State: Active Adv
OrigTblID: 0x1 OrigVrf: default-vrf
TableID: 0xa OrigAs: 0
NibID: 0x25000001 LastAs: 0
AttrID: 0x1 Neighbor: 3001::1
Flags: 0x10060 OrigNextHop: 3001::1
Label: NULL RealNextHop: FE80::20C:29FF:FE4A:3873
BkLabel: NULL BkNextHop: N/A
SRLabel: NULL Interface: GigabitEthernet1/0/1
BkSRLabel: NULL BkInterface: N/A
SIDIndex: NULL InLabel: NULL
Tunnel ID: Invalid IPInterface: GigabitEthernet1/0/1
BkTunnel ID: Invalid BkIPInterface: N/A
FtnIndex: 0x0 ColorInterface: N/A
TrafficIndex: N/A BkColorInterface: N/A
Connector: N/A VpnPeerId: N/A
Dscp: N/A Exp: N/A
SRTunnelID: Invalid StatFlags: 0x0
SID Type: N/A SID: N/A
BkSID: N/A NID: Invalid
FlushNID: Invalid BkNID: Invalid
BkFlushNID: Invalid PathID: 0x0
CommBlockLen: 0
OrigLinkID: 0x0 RealLinkID: 0x0
# Router A<->Router B<->Router C這條路徑發生故障後,在Router C上查看1200::0/64的路由信息,可以看出Router C通過Router A<->Router D<->Router C這條路徑轉發報文。
<RouterC> display ipv6 routing-table 1200::0 64 verbose
Summary count : 1
Destination: 1200::/64
Protocol: BGP4+ Process ID: 0
SubProtID: 0x1 Age: 00h00m57s
Cost: 100 Preference: 255
IpPre: N/A QosLocalID: N/A
Tag: 0 State: Active Adv
OrigTblID: 0x1 OrigVrf: default-vrf
TableID: 0xa OrigAs: 0
NibID: 0x25000000 LastAs: 0
AttrID: 0x0 Neighbor: 2001::1
Flags: 0x10060 OrigNextHop: 2001::1
Label: NULL RealNextHop: FE80::20C:29FF:FE40:715
BkLabel: NULL BkNextHop: N/A
SRLabel: NULL Interface: GigabitEthernet1/0/2
BkSRLabel: NULL BkInterface: N/A
SIDIndex: NULL InLabel: NULL
Tunnel ID: Invalid IPInterface: GigabitEthernet1/0/2
BkTunnel ID: Invalid BkIPInterface: N/A
FtnIndex: 0x0 ColorInterface: N/A
TrafficIndex: N/A BkColorInterface: N/A
Connector: N/A VpnPeerId: N/A
Dscp: N/A Exp: N/A
SRTunnelID: Invalid StatFlags: 0x0
SID Type: N/A SID: N/A
BkSID: N/A NID: Invalid
FlushNID: Invalid BkNID: Invalid
BkFlushNID: Invalid PathID: 0x0
CommBlockLen: 0
OrigLinkID: 0x0 RealLinkID: 0x0
如圖7-6所示,Router A、Router B、Router C和Router D通過BGP協議實現網絡互連。要求鏈路B正常時,Router A和Router D之間的流量通過鏈路B轉發;鏈路B出現故障時,流量可以快速切換到鏈路A上。
圖7-6 配置BGP快速重路由
(1) 配置各接口的IP地址(略)
(2) 在AS 200內配置OSPFv3,發布接口地址所在網段的路由,確保Router B、Router C和Router D之間IPv6路由可達(略)
(3) 配置BGP連接
# 配置Router A分別與Router B和Router C建立EBGP會話,並配置通過BGP發布路由1::/64。
<RouterA> system-view
[RouterA] bgp 100
[RouterA] router-id 1.1.1.1
[RouterA-bgp-default] peer 3001::2 as-number 200
[RouterA-bgp-default] peer 2001::2 as-number 200
[RouterA-bgp-default] address-family ipv6 unicast
[RouterA-bgp-default-ipv6] peer 3001::2 enable
[RouterA-bgp-default-ipv6] peer 2001::2 enable
[RouterA-bgp-default-ipv6] network 1:: 64
[RouterA-bgp-default-ipv6] quit
[RouterA-bgp-default] quit
# 配置Router B與Router A建立EBGP會話,與Router D建立IBGP會話。
<RouterB> system-view
[RouterB] bgp 200
[RouterB] router-id 2.2.2.2
[RouterB-bgp-default] peer 3001::1 as-number 100
[RouterB-bgp-default] peer 3002::2 as-number 200
[RouterB-bgp-default] address-family ipv6 unicast
[RouterB-bgp-default-ipv6] peer 3001::1 enable
[RouterB-bgp-default-ipv6] peer 3002::2 enable
[RouterB-bgp-default-ipv6] peer 3002::2 next-hop-local
[RouterB-bgp-default-ipv6] quit
[RouterB-bgp-default] quit
# 配置Router C與Router A建立EBGP會話,與Router D建立IBGP會話。
<RouterC> system-view
[RouterC] bgp 200
[RouterC] router-id 3.3.3.3
[RouterC-bgp-default] peer 2001::1 as-number 100
[RouterC-bgp-default] peer 2002::2 as-number 200
[RouterC-bgp-default] address-family ipv6 unicast
[RouterC-bgp-default-ipv6] peer 2001::1 enable
[RouterC-bgp-default-ipv6] peer 2002::2 enable
[RouterC-bgp-default-ipv6] peer 2002::2 next-hop-local
[RouterC-bgp-default-ipv6] quit
[RouterC-bgp-default] quit
# 配置Router D分別與Router B和Router C建立IBGP會話,並配置BGP發布路由4::/64。
<RouterD> system-view
[RouterD] bgp 200
[RouterD-bgp-default] peer 3002::1 as-number 200
[RouterD-bgp-default] peer 2002::1 as-number 200
[RouterD-bgp-default] address-family ipv6 unicast
[RouterD-bgp-default-ipv6] peer 3002::1 enable
[RouterD-bgp-default-ipv6] peer 2002::1 enable
[RouterD-bgp-default-ipv6] network 4:: 64
[RouterD-bgp-default-ipv6] quit
[RouterD-bgp-default] quit
(4) 修改路由的首選值,使得Router A和Router D之間的流量優先通過鏈路B轉發
# 在Router A上配置從Router B接收到的路由的首選值為100。
[RouterA-bgp-default-ipv6] peer 3001::2 preferred-value 100
[RouterA-bgp-default-ipv6] quit
[RouterA-bgp-default] quit
# 在Router D上配置從Router B接收到的路由的首選值為100。
[RouterD-bgp-default-ipv6] peer 3002::1 preferred-value 100
[RouterD-bgp-default-ipv6] quit
[RouterD-bgp-default] quit
(5) 配置BGP快速重路由
# 配置Router A:創建路由策略frr,為路由4::/64指定備份下一跳的地址為2001::2(對等體Router C的地址);在BGP IPv6單播地址族下應用該路由策略。
<RouterA> system-view
[RouterA] ipv6 prefix-list abc index 10 permit 4:: 64
[RouterA] route-policy frr permit node 10
[RouterA-route-policy] if-match ipv6 address prefix-list abc
[RouterA-route-policy] apply ipv6 fast-reroute backup-nexthop 2001::2
[RouterA-route-policy] quit
[RouterA] bgp 100
[RouterA-bgp-default] address-family ipv6 unicast
[RouterA-bgp-default-ipv6] fast-reroute route-policy frr
[RouterA-bgp-default-ipv6] quit
[RouterA-bgp-default] quit
# 配置Router D:創建路由策略frr,為路由1::/64指定備份下一跳的地址為2002::1(對等體Router C的地址);在BGP IPv6單播地址族下應用該路由策略。
<RouterD> system-view
[RouterD] ipv6 prefix-list abc index 10 permit 1:: 64
[RouterD] route-policy frr permit node 10
[RouterD-route-policy] if-match ipv6 address prefix-list abc
[RouterD-route-policy] apply ipv6 fast-reroute backup-nexthop 2002::1
[RouterD-route-policy] quit
[RouterD] bgp 200
[RouterD-bgp-default] address-family ipv6 unicast
[RouterD-bgp-default-ipv6] fast-reroute route-policy frr
[RouterD-bgp-default-ipv6] quit
[RouterD-bgp-default] quit
# 在Router A上查看4::/64路由,可以看到備份下一跳信息。
[RouterA] display ipv6 routing-table 4:: 64 verbose
Summary count : 1
Destination: 4::/64
Protocol: BGP4+ Process ID: 0
SubProtID: 0x2 Age: 00h00m58s
Cost: 0 Preference: 255
IpPre: N/A QosLocalID: N/A
Tag: 0 State: Active Adv
OrigTblID: 0x0 OrigVrf: default-vrf
TableID: 0xa OrigAs: 200
NibID: 0x25000003 LastAs: 200
AttrID: 0x3 Neighbor: 3001::2
Flags: 0x10060 OrigNextHop: 3001::2
Label: NULL RealNextHop: 3001::2
BkLabel: NULL BkNextHop: 2001::2
SRLabel: NULL Interface: GigabitEthernet1/0/1
BkSRLabel: NULL BkInterface: GigabitEthernet1/0/2
SIDIndex: NULL InLabel: NULL
Tunnel ID: Invalid IPInterface: GigabitEthernet1/0/1
BkTunnel ID: Invalid BkIPInterface: N/A
FtnIndex: 0x0 ColorInterface: N/A
TrafficIndex: N/A BkColorInterface: N/A
Connector: N/A VpnPeerId: N/A
Dscp: N/A Exp: N/A
SRTunnelID: Invalid StatFlags: 0x0
SID Type: N/A SID: N/A
BkSID: N/A NID: Invalid
FlushNID: Invalid BkNID: Invalid
BkFlushNID: Invalid PathID: 0x0
CommBlockLen: 0
OrigLinkID: 0x0 RealLinkID: 0x0
# 在Router D上查看1::/64路由,可以看到備份下一跳信息。
[RouterD] display ipv6 routing-table 1:: 64 verbose
Summary count : 1
Destination: 1::/64
Protocol: BGP4+ Process ID: 0
SubProtID: 0x1 Age: 00h03m24s
Cost: 0 Preference: 255
IpPre: N/A QosLocalID: N/A
Tag: 0 State: Active Adv
OrigTblID: 0x0 OrigVrf: default-vrf
TableID: 0xa OrigAs: 100
NibID: 0x25000003 LastAs: 100
AttrID: 0x4 Neighbor: 3002::1
Flags: 0x10060 OrigNextHop: 3002::1
Label: NULL RealNextHop: 3002::1
BkLabel: NULL BkNextHop: 2002::1
SRLabel: NULL Interface: GigabitEthernet1/0/1
BkSRLabel: NULL BkInterface: GigabitEthernet1/0/2
SIDIndex: NULL InLabel: NULL
Tunnel ID: Invalid IPInterface: GigabitEthernet1/0/1
BkTunnel ID: Invalid BkIPInterface: N/A
FtnIndex: 0x0 ColorInterface: N/A
TrafficIndex: N/A BkColorInterface: N/A
Connector: N/A VpnPeerId: N/A
Dscp: N/A Exp: N/A
SRTunnelID: Invalid StatFlags: 0x0
SID Type: N/A SID: N/A
BkSID: N/A NID: Invalid
FlushNID: Invalid BkNID: Invalid
BkFlushNID: Invalid PathID: 0x0
CommBlockLen: 0
OrigLinkID: 0x0 RealLinkID: 0x0
BGP擴展功能配置任務如下:
· 配置BGP LS
¡ (可選)配置BGP LS路由反射功能
¡ (可選)配置BGP LS信息的AS號和Router ID
¡ (可選)修改BGP LS路由的優選規則
¡ (可選)手工軟複位LS地址族下的BGP會話
· 配置6PE
¡ (可選)控製6PE的路徑選擇
¡ (可選)控製6PE路由的發布與接收
¡ (可選)配置6PE路由反射功能
¡ (可選)複位BGP 6PE連接
BGP策略計費功能利用BGP豐富的路由屬性(如下一跳、團體屬性、AS_PATH等),對IP流量進行分類,為同一類的流量分配相同的流量索引值,進而基於流量索引值對該類流量進行統計。
BGP策略計費對IP流量的分類統計方式有如下兩種:
· 基於源IP地址:采用該方式時,設備根據報文的源IP地址查找源IP地址對應的路由,獲取路由的流量索引值,根據該流量索引值判斷報文所屬的流量,並進行統計。該方式用來對特定源發送的流量進行統計。
· 基於目的IP地址:采用該方式時,設備根據報文的目的IP地址查找對應的路由,獲取路由的流量索引值,根據該流量索引值判斷報文所屬的流量,並進行統計。該方式用來對發往特定目的的流量進行統計。
本功能與快速轉發功能互斥:
· 采用基於源IP地址的方式時,所有流量都不能進行快速轉發。
· 采用基於目的IP地址的方式時,如果為路由設置了流量索引值,則匹配該路由的流量不能進行快速轉發。
(1) 進入係統視圖。
system-view
(2) 設置流量索引值。
a. 配置路由策略,在路由策略中通過apply traffic-index命令為滿足過濾條件的路由設置流量索引值。apply traffic-index命令的詳細介紹請參見“三層技術-IP路由命令參考”中的“路由策略”。
b. 配置BGP路由引用路由策略,使得BGP路由的流量索引值為路由策略中設置的值。執行network、import-route、aggregate、peer route-policy、peer default-route-advertise命令時,可以指定BGP路由引用的路由策略。
(3) 進入接口視圖。
interface interface-type interface-number
(4) 在接口上開啟BGP策略計費功能。
bgp-policy accounting { input | output } * [ source ]
缺省情況下,接口上的BGP策略計費功能處於關閉狀態。
指定source參數時,表示基於源IP地址對IP流量進行分類統計。如果未指定本參數,則表示基於目的IP地址對IP流量進行分類統計。
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信息。通過配置本功能,可以解決這個問題。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
(3) 進入BGP LS地址族視圖。
address-family link-state
(4) 配置BGP路由根據路由策略來過濾迭代到的下一跳路由。
nexthop recursive-lookup route-policy route-policy-name
缺省情況下,BGP不根據路由策略來過濾迭代到的下一跳路由。
為了防止當前地址族中的所有BGP路由迭代到的下一跳路由均無法通過路由策略的過濾,導致該地址族下的所有BGP路由均成為不可達路由,請在配置本命令前,確保指定的路由策略中創建的匹配條件能夠匹配到用戶期望迭代到的下一跳路由。
(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 [ preferred ]
缺省情況下,BGP不為指定對等體/對等體組設置高優先級,選路規則不發生變化。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
(3) 進入BGP LS地址族視圖。
address-family link-state
(4) 配置BGP路由的下一跳地址類型影響路由優選。
bestroute nexthop-priority { ipv4 | ipv6 } [ preferred ]
缺省情況下,BGP優選下一跳地址為IPv4地址的路由。
(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
如圖8-1所示,6PE(IPv6 Provider Edge,IPv6供應商邊緣)是一種過渡技術,它采用MPLS(Multiprotocol Label Switching,多協議標簽交換)技術實現通過IPv4骨幹網連接隔離的IPv6用戶網絡。當ISP希望在自己原有的IPv4/MPLS骨幹網的基礎上,為用戶網絡提供IPv6流量轉發能力時,可以采用6PE技術方便地達到該目的。
圖8-1 6PE組網圖
6PE的主要思想是:
· 6PE設備從CE(Customer Edge,用戶網絡邊緣)設備接收到用戶網絡的IPv6路由信息後,為該路由信息分配標簽,通過MP-BGP會話將帶有標簽的IPv6路由信息發布給對端的6PE設備。對端6PE設備將接收到的IPv6路由信息擴散到本地連接的用戶網絡。從而,實現IPv6用戶網絡之間的路由信息發布。
· 為了隱藏IPv6報文、使得IPv4骨幹網中的設備能夠轉發IPv6用戶網絡的報文,在IPv4骨幹網絡中需要建立公網隧道。公網隧道可以是GRE隧道、MPLS LSP、MPLS TE隧道等。
· 6PE設備轉發IPv6報文時,先為IPv6報文封裝IPv6路由信息對應的標簽(內層標簽),再為其封裝公網隧道對應的標簽(外層標簽)。骨幹網中的設備根據外層標簽轉發報文,意識不到該報文為IPv6報文。對端6PE設備接收到報文後,刪除內層和外層標簽,將原始的IPv6報文轉發到本地連接的用戶網絡。
MPLS、MPLS TE、CE設備、P(Provider,服務提供商網絡)設備的詳細介紹,請參見“MPLS配置指導”。GRE的詳細介紹,請參見“三層技術-IP業務配置指導”中的“GRE”。
為了實現IPv6路由信息的交互,CE和6PE之間可以配置IPv6靜態路由、運行IPv6 IGP協議或IPv6 BGP協議。
6PE組網環境中,需要進行如下配置:
· 在IPv4骨幹網上建立公網隧道。具體配置請參見“三層技術-IP業務配置指導”中的“GRE”或“MPLS配置指導”。
· 在6PE設備上配置MPLS基本能力。具體配置請參見“MPLS配置指導”中的“MPLS基礎”。
· 在6PE設備上配置BGP相關功能,以便通過BGP會話發布帶有標簽的IPv6路由信息。本文隻介紹6PE設備上的BGP相關配置。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
(3) 指定6PE對等體/對等體組的AS號。
peer { group-name | ipv4-address [ mask-length ] } as-number as-number
缺省情況下,未指定6PE對等體/對等體組的AS號。
(4) 進入BGP IPv6單播地址族視圖。
address-family ipv6 [ unicast ]
(5) 使能本地路由器與6PE對等體/對等體組交換IPv6單播路由信息的能力。
peer { group-name | ipv4-address [ mask-length ] } enable
缺省情況下,本地路由器不能與6PE對等體/對等體組交換IPv6單播路由信息。
(6) 使能與6PE對等體/對等體組交換帶標簽IPv6路由的能力。
peer { group-name | ipv4-address [ mask-length ] } label-route-capability
缺省情況下,不具有與6PE對等體/對等體組交換帶標簽IPv6路由的能力。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
(3) 進入BGP IPv6單播地址族視圖。
address-family ipv6 [ unicast ]
(4) 配置向6PE對等體/對等體組發布團體屬性。
peer { group-name | ipv4-address [ mask-length ] } advertise-community
缺省情況下,不向6PE對等體/對等體組發布團體屬性。
(5) 配置向6PE對等體/對等體組發布擴展團體屬性。
peer { group-name | ipv4-address [ mask-length ] } advertise-ext-community
缺省情況下,不向6PE對等體/對等體組發布擴展團體屬性。
(6) 配置向指定6PE對等體/對等體組發送BGP更新消息時隻攜帶公有AS號,不攜帶私有AS號。
peer { group-name | ipv4-address [ mask-length ] } public-as-only
缺省情況下,向4PE對等體/對等體組發送BGP更新消息時,既可以攜帶公有AS號,又可以攜帶私有AS號。
(7) 為從指定6PE對等體/對等體組接收的路由分配首選值。
peer { group-name | ipv4-address [ mask-length ] } preferred-value value
缺省情況下,從6PE對等體/對等體組接收的路由的首選值為0。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
(3) 進入BGP IPv6單播地址族視圖。
address-family ipv6 [ unicast ]
(4) 配置向6PE對等體/對等體組發送缺省路由。
peer { group-name | ipv4-address [ mask-length ] } default-route-advertise [ route-policy route-policy-name ]
缺省情況下,不向6PE對等體/對等體組發送缺省路由。
(5) 配置路由過濾策略。
¡ 為6PE對等體/對等體組配置基於AS路徑過濾列表的路由過濾策略。
peer { group-name | ipv4-address [ mask-length ] } as-path-acl as-path-acl-number { export | import }
缺省情況下,沒有為6PE對等體/對等體組配置基於AS路徑過濾列表的路由接收過濾策略。
¡ 為6PE對等體/對等體組配置基於IPv6 ACL的過濾策略。
peer { group-name | ipv4-address [ mask-length ] } filter-policy ipv6-acl-number { export | import }
缺省情況下,沒有為6PE對等體/對等體組配置基於IPv6 ACL的過濾策略。
¡ 為6PE對等體/對等體組配置基於IPv6地址前綴列表的路由過濾策略。
peer { group-name | ipv4-address [ mask-length ] } prefix-list ipv6-prefix-list-name { export | import }
缺省情況下,沒有為6PE對等體/對等體組配置基於IPv6前綴列表的路由過濾策略。
¡ 為6PE對等體/對等體組設置基於路由策略的路由過濾策略。
peer { group-name | ipv4-address [ mask-length ] } route-policy route-policy-name { export | import }
缺省情況下,沒有為6PE對等體/對等體組配置基於路由策略的路由過濾策略。
(6) 保存所有來自指定6PE對等體/對等體組的原始路由更新信息。
peer { group-name | ipv4-address [ mask-length ] } keep-all-routes
缺省情況下,不保存來自6PE對等體/對等體組的原始路由更新信息。
(7) 配置允許從6PE對等體/對等體組接收的路由的最大數量。
peer { group-name | ipv4-address [ mask-length ] } route-limit prefix-number [ { alert-only | discard | reconnect reconnect-time } | percentage-value ] *
缺省情況下,不限製從6PE對等體/對等體組接收的路由數量。
(8) 為BGP對等體/對等體組配置SoO屬性。
peer { group-name | ipv4-address [ mask-length ] } soo site-of-origin
缺省情況下,沒有為BGP對等體/對等體組配置SoO屬性。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
(3) 進入BGP IPv6單播地址族視圖。
address-family ipv6 [ unicast ]
(4) 配置對於從6PE對等體/對等體組接收的路由,允許本地AS號在接收路由的AS_PATH屬性中出現,並配置允許出現的次數。
peer { group-name | ipv4-address [ mask-length ] } allow-as-loop [ number ]
缺省情況下,不允許本地AS號在接收路由的AS_PATH屬性中出現。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
(3) 進入BGP IPv6單播地址族視圖。
address-family ipv6 [ unicast ]
(4) 配置本機作為路由反射器,對等體/對等體組作為路由反射器的客戶機
peer { group-name | ipv4-address [ mask-length ] } reflect-client
缺省情況下,未配置路由反射器及其客戶機。
在用戶視圖下執行以下命令複位BGP 6PE連接。請選擇其中一項進行配置。
· 軟複位指定的BGP 6PE連接。
refresh bgp [ instance instance-name ] ipv4-address [ mask-length ] { export | import } ipv6 [ unicast ]
· 複位指定的BGP 6PE連接。
reset bgp [ instance instance-name ] ipv4-address [ mask-length ] ipv6 [ unicast ]
複位BGP會話時,會造成短暫的BGP會話中斷。
在完成上述配置後,在任意視圖下執行display命令可以顯示配置後BGP的運行情況,通過查看顯示信息驗證配置的效果。
表8-1 BGP擴展功能配置顯示(IPv4單播)
操作 |
命令 |
顯示IPv4流量的BGP策略計費信息 |
display bgp-policy ip statistics { input | output } [ interface interface-type interface-number ] |
表8-2 BGP擴展功能配置顯示(IPv6單播)
操作 |
命令 |
顯示IPv6流量的BGP策略計費信息 |
display bgp-policy ipv6 statistics { input | output } [ interface interface-type interface-number ] |
表8-3 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-4 複位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 |
· 所有路由器運行BGP協議,Router A與Router B建立IBGP連接,Router B分別與Router C和Router D建立IBGP連接。
· Router B作為路由反射器,Router A為Router B的客戶機。
· Router A能夠通過Router B學到Router C和Router D發布的LS信息。
圖8-2 BGP LS配置組網圖
(1) 配置各接口的IP地址,在Router C和Router D上配置OSPF
(2) 配置BGP連接
# 配置Router A。
<RouterA> system-view
[RouterA] bgp 100
[RouterA-bgp-default] peer 192.1.1.2 as-number 100
[RouterA-bgp-default] address-family link-state
[RouterA-bgp-default-ls] peer 192.1.1.2 enable
[RouterA-bgp-default-ls] quit
[RouterA-bgp-default] quit
# 配置Router B。
<RouterB> system-view
[RouterB] bgp 100
[RouterB-bgp-default] peer 192.1.1.1 as-number 100
[RouterB-bgp-default] peer 193.1.1.1 as-number 100
[RouterB-bgp-default] peer 194.1.1.1 as-number 100
[RouterB-bgp-default] address-family link-state
[RouterB-bgp-default-ls] peer 192.1.1.1 enable
[RouterB-bgp-default-ls] peer 193.1.1.1 enable
[RouterB-bgp-default-ls] peer 194.1.1.1 enable
[RouterB-bgp-default-ls] quit
[RouterB-bgp-default] quit
# 配置Router C。
<RouterC> system-view
[RouterC] bgp 100
[RouterC-bgp-default] peer 193.1.1.2 as-number 100
[RouterC-bgp-default] address-family link-state
[RouterC-bgp-default-ls] peer 193.1.1.2 enable
[RouterC-bgp-default-ls] quit
[RouterC-bgp-default] quit
[RouterC] ospf
[RouterC-ospf-1] distribute bgp-ls
[RouterC-ospf-1] area 0
[RouterC-ospf-1-area-0.0.0.0] network 0.0.0.0 0.0.0.0
[RouterC-ospf-1-area-0.0.0.0] quit
[RouterC-ospf-1] quit
# 配置Router D。
<RouterD> system-view
[RouterD] bgp 100
[RouterD-bgp-default] peer 194.1.1.2 as-number 100
[RouterD-bgp-default] address-family link-state
[RouterD-bgp-default-ls] peer 194.1.1.2 enable
[RouterD-bgp-default-ls] quit
[RouterD-bgp-default] quit
[RouterD] ospf
[RouterD-ospf-1] distribute bgp-ls
[RouterD-ospf-1] area 0
[RouterD-ospf-1-area-0.0.0.0] network 0.0.0.0 0.0.0.0
[RouterD-ospf-1-area-0.0.0.0] quit
[RouterD-ospf-1] quit
(3) 配置路由反射器
# 配置Router B。
[RouterB] bgp 100
[RouterB-bgp-default] address-family link-state
[RouterB-bgp-default-ls] peer 192.1.1.1 reflect-client
[RouterB-bgp-default-ls] quit
[RouterB-bgp-default] quit
# 查看Router A的LS信息。
[RouterA] display bgp link-state
Total number of routes: 4
BGP local router ID is 192.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
Prefix codes: E link, V node, T4 IPv4, T6 IPv6 route, u/U unknown,
I Identifier, N local node, R remote node, L link, P prefix,
L1/L2 ISIS level-1/level-2, O OSPF, O3 OSPFv3
D direct, S static,
a area-ID, , l link-ID, t topology-ID, s ISO-ID,
c confed-ID/ASN, b bgp-identifier, r router-ID,
i if-address, n peer-address, o OSPF Route-type, p IP-prefix
d designated router address/interface, ID Link Descriptor Identifer
i Network : [V][O][I0x0][N[c100][b193.1.1.1][a0.0.0.0][r193.1.1.1]]/376
NextHop : 193.1.1.1 LocPrf : 100
PrefVal : 0 OutLabel : NULL
MED :
Path/Ogn: i
i Network : [V][O][I0x0][N[c100][b194.1.1.1][a0.0.0.0][r194.1.1.1]]/376
NextHop : 194.1.1.1 LocPrf : 100
PrefVal : 0 OutLabel : NULL
MED :
Path/Ogn: i
i Network : [T4][O][I0x0][N[c100][b193.1.1.1][a0.0.0.0][r193.1.1.1]][P[o0x1][p193.1.1.0/24]]/480
NextHop : 193.1.1.1 LocPrf : 100
PrefVal : 0 OutLabel : NULL
MED :
Path/Ogn: i
i Network : [T4][O][I0x0][N[c100][b194.1.1.1][a0.0.0.0][r194.1.1.1]][P[o0x1][p194.1.1.0/24]]/480
NextHop : 194.1.1.1 LocPrf : 100
PrefVal : 0 OutLabel : NULL
MED :
Path/Ogn: i
可以看出,Router A從Router C和Router D 學到了LS信息。
通過配置6PE實現利用MPLS技術跨越運營商的IPv4網絡連接隔離的兩個IPv6用戶網絡。其中:
· 運營商網絡內部采用OSPF作為IGP路由協議。
· PE 1和PE 2為運營商網絡的邊緣設備,PE 1和PE 2之間建立IPv4 IBGP連接。
· CE 1和CE 2為IPv6用戶網絡的邊緣設備,用戶網絡通過該設備接入運營商網絡。
· CE與PE之間配置IPv6靜態路由,以指導IPv6報文的轉發。
圖8-3 6PE配置組網圖
(1) 配置各接口的IPv6地址及IPv4地址(略)
(2) 配置PE 1
# 全局使能LDP能力,並配置LSP觸發策略。
<PE1> system-view
[PE1] mpls lsr-id 2.2.2.2
[PE1] mpls ldp
[PE1-ldp] lsp-trigger all
[PE1-ldp] quit
# 在接口GigabitEthernet1/0/2上使能MPLS和LDP能力。
[PE1] interface gigabitethernet 1/0/2
[PE1-GigabitEthernet1/0/2] mpls enable
[PE1-GigabitEthernet1/0/2] mpls ldp enable
[PE1-GigabitEthernet1/0/2] quit
# 配置IBGP,使能對等體的6PE能力,並引入IPv6的直連和靜態路由。
[PE1] bgp 65100
[PE1-bgp-default] router-id 2.2.2.2
[PE1-bgp-default] peer 3.3.3.3 as-number 65100
[PE1-bgp-default] peer 3.3.3.3 connect-interface loopback 0
[PE1-bgp-default] address-family ipv6
[PE1-bgp-default-ipv6] import-route direct
[PE1-bgp-default-ipv6] import-route static
[PE1-bgp-default-ipv6] peer 3.3.3.3 enable
[PE1-bgp-default-ipv6] peer 3.3.3.3 label-route-capability
[PE1-bgp-default-ipv6] quit
[PE1-bgp-default] quit
# 配置到CE 1的靜態路由。
[PE1] ipv6 route-static 1::1 128 10::1
# 配置OSPF,實現運營商網絡內部互通。
[PE1] ospf
[PE1-ospf-1] area 0
[PE1-ospf-1-area-0.0.0.0] network 2.2.2.2 0.0.0.0
[PE1-ospf-1-area-0.0.0.0] network 1.1.0.0 0.0.255.255
[PE1-ospf-1-area-0.0.0.0] quit
[PE1-ospf-1] quit
(3) 配置PE 2
# 全局使能LDP能力,並配置LSP觸發策略。
<PE2> system-view
[PE2] mpls lsr-id 3.3.3.3
[PE2] mpls ldp
[PE2-mpls-ldp] lsp-trigger all
[PE2-mpls-ldp] quit
# 在接口GigabitEthernet1/0/2上使能MPLS和LDP能力。
[PE2] interface gigabitethernet 1/0/2
[PE2-GigabitEthernet1/0/2] mpls enable
[PE2-GigabitEthernet1/0/2] mpls ldp enable
[PE2-GigabitEthernet1/0/2] quit
# 配置IBGP,使能對等體的6PE能力,並引入IPv6的直連和靜態路由。
[PE2] bgp 65100
[PE2-bgp-default] router-id 3.3.3.3
[PE2-bgp-default] peer 2.2.2.2 as-number 65100
[PE2-bgp-default] peer 2.2.2.2 connect-interface loopback 0
[PE2-bgp-default] address-family ipv6
[PE2-bgp-default-ipv6] import-route direct
[PE2-bgp-default-ipv6] import-route static
[PE2-bgp-default-ipv6] peer 2.2.2.2 enable
[PE2-bgp-default-ipv6] peer 2.2.2.2 label-route-capability
[PE2-bgp-default-ipv6] quit
[PE2-bgp-default] quit
# 配置到CE 2的靜態路由。
[PE2] ipv6 route-static 4::4 128 20::1
# 配置OSPF,實現運營商內部互通。
[PE2] ospf
[PE2-ospf-1] area 0
[PE2-ospf-1-area-0.0.0.0] network 3.3.3.3 0.0.0.0
[PE2-ospf-1-area-0.0.0.0] network 1.1.0.0 0.0.255.255
[PE2-ospf-1-area-0.0.0.0] quit
[PE2-ospf-1] quit
(4) 配置CE 1
# 配置靜態路由,缺省下一跳為PE 1。
<CE1> system-view
[CE1] ipv6 route-static :: 0 10::2
(5) 配置CE 2
# 配置靜態路由,缺省下一跳為PE 2。
<CE2> system-view
[CE2] ipv6 route-static :: 0 20::2
# 顯示PE 1上的IPv6 BGP路由信息。可以看到PE 1上存在到達兩個IPv6用戶網絡的路由。
[PE1] display bgp routing-table ipv6
Total number of routes: 5
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 : 1::1 PrefixLen : 128
NextHop : 10::1 LocPrf :
PrefVal : 32768 OutLabel : NULL
MED : 0
Path/Ogn: ?
* >i Network : 4::4 PrefixLen : 128
NextHop : ::FFFF:3.3.3.3 LocPrf : 100
PrefVal : 0 OutLabel : 1279
MED : 0
Path/Ogn: ?
* > Network : 10:: PrefixLen : 64
NextHop : :: LocPrf :
PrefVal : 32768 OutLabel : NULL
MED : 0
Path/Ogn: ?
* > Network : 10::2 PrefixLen : 128
NextHop : ::1 LocPrf :
PrefVal : 32768 OutLabel : NULL
MED : 0
Path/Ogn: ?
* >i Network : 20:: PrefixLen : 64
NextHop : ::FFFF:3.3.3.3 LocPrf : 100
PrefVal : 0 OutLabel : 1278
MED : 0
Path/Ogn: ?
# CE 1可以ping通CE 2的IPv6地址(Loopback接口地址4::4)。
不同款型規格的資料略有差異, 詳細信息請向具體銷售和400谘詢。H3C保留在沒有任何通知或提示的情況下對資料內容進行修改的權利!