# F) j2 }. ^8 t% d7 ~$ B3 l! m+ s6 A乾颐堂运营商CCIEv4.0-XR.设备拉轰的路由策略语言RPL解决EBGP问题
- \/ N8 W4 V& u& o本文由乾颐堂HCIE讲师安德提供5 D5 L* x* t* W2 G0 i1 k1 W
CCIE运营商拓扑图
乾颐堂运营商CCIEv4.0-XR.设备拉轰的路由策略语言RPL解决EBGP问题
0 ]! D0 b y; `9 x构建基本的IOS XR设备的EBGP邻居
/ j, j: \: P$ C' p# S6 z- n9 rEBGP,即external BGP,BGP邻居之间具备不同的AS号码称之为EBGP的邻居关系。BGP的最主要的功能就是在不同的AS之间来更新和控制路由。如图5.1所示我们在XR1和XR2之间构建基本的EBGP邻居关系。当然需要注意的是BGP是构建的TCP之上,所以构建BGP邻居的源目IP地址的路由必须可达,所以该测试是非常有必要的3 S8 Y9 h) w7 K8 y q8 ]; U
我们在图5-1中完成IOS XR的配置,涉及到的设备为XR1和XR2,我们采用直连路由来构建邻居关系7 m7 j0 G+ b: | y, l) I
RP/0/0/CPU0:XR1(config)#do ping 12.1.1.2 //测试作为BGP目的IP的设备是否可达,读者可看到一切顺利,否则您将不能构建BGP邻居,BGP会处于IDLE或者Active状态
7 u& t" P; f' |( y& oTue May 24 07:42:08.669 UTC
8 Y; `; A5 Z' {; r0 R' SType escape sequence to abort.
i9 x. i. {$ {8 K8 `" I; XSending 5, 100-byte ICMP Echos to 12.1.1.2, timeout is 2 seconds:! C5 n7 y# k/ t& O
!!!!!) F! i9 L+ u4 Z; a6 r& x# L1 z
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/65/309 ms& \8 f6 S$ U4 ^1 y1 x; D! u
RP/0/0/CPU0:XR1(config)#router bgp 100 //启动BGP进程,一台设备只能启动一个BGP进程
6 v" q8 y3 v9 U' `RP/0/0/CPU0:XR1(config-bgp)#bgp router-id 11.1.1.1 //虽然BGP也和OSPF一样可以在该设备具备IP地址的情况下,自动选举一个代表BGP设备的ID,但是强烈建议手工实施BGP的路由器ID,而且BGP的RID不能类似OSPF那样可以使用0.0.0.4之类的RID,而必须是一个正常的IPv4地址
% Z, c G, t9 J) V7 W* k0 LRP/0/0/CPU0:XR1(config-bgp)#address-family ipv4 unicast //初始化BGP地址族,也可以在其中通告BGP的路由,我们在后续做该行为
6 G6 ]$ Q8 r: J, o) ERP/0/0/CPU0:XR1(config-bgp-af)#network 11.1.1.1 255.255.255.255 //通告R1上的环回口,请注意掩码必须匹配,否则无法产生路由
4 [5 ~- l2 ?1 w7 |! nRP/0/0/CPU0:XR1(config-bgp-af)#exit //退出当前地址族
" p) j$ W1 t% I+ m4 \0 N6 s: ?4 YRP/0/0/CPU0:XR1(config-bgp)#neighbor 12.1.1.2 //指定EBGP邻居
* J: j4 B2 a' z1 K) V. Y& }( |1 [- XRP/0/0/CPU0:XR1(config-bgp-nbr)#remote-as 200 //指定对端的AS号码,此处为EBGP,因为两端的AS号码不同
4 h7 Y4 e. V- ` c7 c# m0 c* m! F% @RP/0/0/CPU0:XR1(config-bgp-nbr)#address-family ipv4 unicast //针对该邻居激活IPv4地址族,即和对端构建IPv4单播的邻居,BGP本身为一个多协议的地址族,多数情况下需要特定的指定某些地址族的邻居
5 a( P( s8 N3 Y {5 oRP/0/0/CPU0:XR1(config-bgp-nbr-af)#commit: m/ ?( m0 a5 I
!7 s% H) }" k! i3 M8 u- F
RP/0/0/CPU0:XR2(config)#router bgp 200
* t0 r8 x6 \& S% Y- X0 |RP/0/0/CPU0:XR2(config-bgp)#4 J8 [# @7 Y3 o' |# H( S8 I
RP/0/0/CPU0:XR2(config-bgp)#address-family ipv4 unicast
$ w+ B7 ]& x4 A+ g5 P5 S* }RP/0/0/CPU0:XR2(config-bgp-af)#exit
6 b& e4 s. w* f! f$ R+ M. F& u; YRP/0/0/CPU0:XR2(config-bgp)#bgp router-id 22.1.1.1
8 o1 o4 Q# F4 w& [6 K% Q' `RP/0/0/CPU0:XR2(config-bgp)#neighbor 12.1.1.14 i, `: P$ k3 k! @+ }
RP/0/0/CPU0:XR2(config-bgp-nbr)#remote-as 100
% M% f4 v0 c' HRP/0/0/CPU0:XR2(config-bgp-nbr)#address-family ipv4
/ N) w. `3 N2 S. G% Incomplete command.
7 j. p+ p1 p/ f( eRP/0/0/CPU0:XR2(config-bgp-nbr)#address-family ipv4 unicast
0 R/ F& u4 D- ~5 p+ G, \. SRP/0/0/CPU0:XR2(config-bgp-nbr-af)#exit
+ F/ J0 S& b# `9 Z* z/ `RP/0/0/CPU0:XR2(config-bgp-nbr)#exit
9 k7 C- G, X1 HRP/0/0/CPU0:XR2(config-bgp)#address-family ipv4 unicast
' A' M+ p% E. P+ Z5 r% uRP/0/0/CPU0:XR2(config-bgp-af)#network 22.1.1.1 255.255.255.255 //进入地址族通告路由,从而可以产生路由9 X$ n: c- d: E+ u: l$ v; ?& r& f
RP/0/0/CPU0:XR2(config-bgp-af)# commit
" \" ?" V, a9 S" @2 t如上我们已经构建了一个基本的EBGP邻居,但是在IOS XR设备上具有一个特殊的功能,即在EBGP之间更新路由时需要经过RPL(route policy language)的过滤,而默认情况下不允许任何路由的更新和接收。验证如下:3 v* ^0 D' V5 s: b% p' k
RP/0/0/CPU0:XR2#show bgp ipv4 unicast summary //验证BGP的IPv4单播地址族的简要信息
; S, t1 B& I% [& y" ZTue May 24 08:02:31.406 UTC/ J5 a9 [+ [( y/ r/ l3 n4 [
BGP router identifier 22.1.1.1, local AS number 200" `. Z; T5 E! \1 l& _
BGP generic scan interval 60 secs: u8 T# m% r: r [+ C- B8 i
Non-stop routing is enabled( | @/ R4 G5 k' {+ |' D
BGP table state: Active/ U% \9 D7 d* G1 b; R, K
Table ID: 0xe0000000 RD version: 31 i2 h" A1 M" S+ p# A; [
BGP main routing table version 3
1 @ K2 B+ R7 A* J$ ^% ~BGP NSR Initial initsync version 2 (Reached)
+ J" m0 I' s# w0 x1 {# `# MBGP NSR/ISSU Sync-Group versions 0/0
2 H+ a# q# n& f: `* \- s# GBGP scan interval 60 secs
$ O. J% g6 H$ z, m8 W ) E. ~7 e, m. F! r9 T9 y% ]
BGP is operating in STANDALONE mode.0 m! V" D' |. s3 d9 N: h# [2 E- ]" B
" _0 F! i+ M1 C$ V' @7 O! W
; f& K$ Q; S* `9 x1 sProcess RcvTblVer bRIB/RIB LabelVer ImportVer SendTblVer StandbyVer3 D* N* b* m: l% |8 W9 P2 D9 n& j6 @
Speaker 3 3 3 3 3 0! p: i8 w# N" B! x% Y
2 Q) d% ]% X" W
Some configured eBGP neighbors (under default or non-default vrfs)0 K7 {2 j: J- O: @" N
do not have both inbound and outbound policies configured for IPv4 Unicast, {% p$ v6 X0 x: j9 z2 V2 _2 `* ~
address family. These neighbors will default to sending and/or
3 F( C. s0 j, B1 y& Y% Ereceiving no routes and are marked with '!' in the output below.
4 L, S( g6 R. h& T/ xUse the 'show bgp neighbor' command for details.
+ @9 D5 f9 }" n ) _# a' z. `$ ?" `; M
Neighbor Spk AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down St/PfxRcd0 I+ n# _ ~& }0 A B+ K
12.1.1.1 0 100 4 4 3 0 0 00:01:39 0!
) @3 T3 w& A) \ Q读者请注意此处虽然已经构建了邻居,但是0!代表了接收和发送的路由为空!6 Z5 D+ m4 L/ o2 ]- A" o
1 i: W! D1 I! I" y% Z0 u; a
5.2 使用RPL解决EBGP之间的路由更新和接收问题) B( Q& C) Q( x$ [3 ?0 }: C; k! y7 |
在IOS XR设备上默认在EBGP之间的路由更新需要经过路由策略的过滤,该现象读者已经在上一小节看到了,我们来解决该问题% j/ W0 ^6 Q( g. u
XR1:
3 _* X; ]* }, J$ `9 hroute-policy EBGP //创建路由策略,自定义名称为EBGP. S$ w1 _. H' R; b" X2 R- i
pass //没有任何匹配条件,即所有路由都允许通过
# _/ ~. f- c3 v8 N* h. wend-policy" t0 B+ j6 D; I( h
!
1 I+ g* a% o/ c4 m l$ ARouter bgp 100
( F: u+ F# S% O4 M) O9 E neighbor 12.1.1.22 ~3 J6 i0 o1 n9 K6 Z6 C4 U
remote-as 200
$ @0 w3 U# H9 t address-family ipv4 unicast5 t' n$ Y0 b% T; f# z* |$ K/ r
route-policy EBGP in //针对邻居在地址族下载入方向(出方向做相同操作)调用,即收取路由的策略4 q' }0 k/ Q/ o
route-policy EBGP out1 O9 P, i5 o3 w# T2 n9 Z
XR2完成类似的操作:4 ^4 B' N" d8 f2 m- G
route-policy EBGP
9 x0 ?, |) v/ A3 }& A- T& @" m pass
) r8 }7 ~+ x: O) T' |- b5 iend-policy! E5 G$ m: S+ S# v
!
2 |( h& `9 A( e: m5 x4 uRouter bgp 200) E8 K* s: T, b+ K! j
neighbor 12.1.1.1! p; w: B" k& W/ w" C, c6 J
remote-as 100; U/ p2 r+ p# n4 l4 N
address-family ipv4 unicast
) f/ S/ i$ ^# x o& U; t6 A route-policy EBGP in
/ ]! U0 ?8 C. m2 M" j% q route-policy EBGP out
" j' ~6 ?2 r* o/ w4 f! `验证RPL策略: k* S( p6 x4 Z4 p% U; `4 U
RP/0/0/CPU0:XR2#show rpl* b: {) x) O7 e( E1 k
Tue May 24 08:19:10.237 UTC8 U4 `, K. F7 H- i& E
route-policy EBGP
1 Z+ c( P! d! S% D3 ? pass ?3 H9 b1 y- q$ R' ?6 ^
end-policy& H; p' F0 F* o5 f$ I3 e# H
验证邻居和路由情况:
0 c2 z9 }3 r6 ?, r. H; B9 s) q 9 n# @. o f- R5 L) A
RP/0/0/CPU0:XR2#show bgp ipv4 unicast summary- [# ]3 e1 G6 T) i2 _3 {
Tue May 24 08:18:35.910 UTC
+ p% A2 ^0 M4 IBGP router identifier 22.1.1.1, local AS number 200
b6 X3 S2 ]- b, }9 ]BGP generic scan interval 60 secs
, M% R1 Z+ @% ~Non-stop routing is enabled
4 U- F# q5 b% r6 a6 WBGP table state: Active# h6 }4 n: e: E Q
Table ID: 0xe0000000 RD version: 4
. I6 S; R; a; vBGP main routing table version 4% X& [; m8 }4 ~
BGP NSR Initial initsync version 2 (Reached)
1 s' y( Q! F9 Z1 g2 UBGP NSR/ISSU Sync-Group versions 0/09 i% @0 z: I- _9 T
BGP scan interval 60 secs
: _! c7 q, ^; ~( K 1 {3 F2 F6 Q! O) s9 D
BGP is operating in STANDALONE mode.2 v$ z: D& G R; }5 w
! Q# w, M! N7 y8 s- ^8 M6 n
4 f1 ?3 l# R6 K! t7 W8 R1 u V3 `Process RcvTblVer bRIB/RIB LabelVer ImportVer SendTblVer StandbyVer
" x/ |2 O" R9 d" D0 o3 @Speaker 4 4 4 4 4 0
5 V5 H% b1 D! ]) _' @ 7 Z# g0 f, ? `" d s2 Q9 C9 ]/ Y
Neighbor Spk AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down St/PfxRcd! r6 W' Z& e9 u, x& p9 D
12.1.1.1 0 100 23 23 4 0 0 00:17:44 1
8 q' c6 g% [% w " e0 Q7 P- v8 `. C' s8 o
RP/0/0/CPU0:XR2#show bgp ipv4 unicast
% {; w; [7 e6 yTue May 24 08:18:40.130 UTC
[; f: V6 F: jBGP router identifier 22.1.1.1, local AS number 200
2 k2 b0 d ]; F% F1 c4 ABGP generic scan interval 60 secs
; J( H. h& g& `( v9 WNon-stop routing is enabled
2 J9 I* t6 t7 Q1 pBGP table state: Active
9 G1 b6 j/ Z3 I* `9 M% b. u9 DTable ID: 0xe0000000 RD version: 4
2 _# k5 s: q7 N! \1 H5 P: RBGP main routing table version 4
: N$ M; I5 g( `8 D! Z$ A8 oBGP NSR Initial initsync version 2 (Reached)
1 E0 X% O" \% `6 P1 W! ABGP NSR/ISSU Sync-Group versions 0/0
6 `( G9 v! }; g, l' |BGP scan interval 60 secs
" g0 v7 {% a7 b* t9 L6 R / X& H' X+ b) s( S' q9 d7 m9 m& i
Status codes: s suppressed, d damped, h history, * valid, > best c1 H5 o' e7 E
i - internal, r RIB-failure, S stale, N Nexthop-discard4 W! T B- Z u& j M! w
Origin codes: i - IGP, e - EGP, ? - incomplete
/ A/ k9 ~$ _/ M+ I Network Next Hop Metric LocPrf Weight Path* q4 R8 K/ v/ K! R
*> 11.1.1.1/32 12.1.1.1 0 0 100 i //已经收取了来自R1的路由9 W- ]2 L9 r8 G' V8 K
*> 22.1.1.1/32 0.0.0.0 0 32768 i
; T: b/ A9 _4 v1 f 0 C T: q, O- K2 x
Processed 2 prefixes, 2 paths% g* H8 w3 J' V/ ]3 }" u& n( q' ?6 H
i3 U; C" }6 T8 }2 U
RP/0/0/CPU0:XR2#show route bgp- T [8 k* n3 U0 U1 B6 D
Tue May 24 08:27:30.303 UTC; }3 ?/ _/ K, Z4 U% j
, r2 K5 V& g- m r8 f4 Y! U* `B 11.1.1.1/32 [20/0] via 12.1.1.1, 00:15:36
, i; }! b( f$ m( z9 w测试数据包的发送情况,也一切正常,即不同的AS之间可以传送用户的数据了:! Z2 o9 n$ i0 h
RP/0/0/CPU0:XR2#ping 11.1.1.1 source 22.1.1.1
/ O/ I6 N# i+ vTue May 24 08:20:48.411 UTC
, }' O% U( t6 XType escape sequence to abort.
# X9 [2 ^& A3 W" R! PSending 5, 100-byte ICMP Echos to 11.1.1.1, timeout is 2 seconds:
" K5 `7 Q7 u8 i8 W; H) N!!!!!& x0 Z1 j7 B9 @
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/13/39 ms
8 V p9 r$ w; K/ X( a5 t+ p3 v$ L9 k( U" D
运营商CCIE咨询可联系乾颐堂客服
6 ^- K1 P+ I3 g3 r- l) V乾颐堂客服热线:400-618-8070
- K+ t" p1 b; K8 T" \' H乾颐堂官网:www.qytang.com8 m5 j3 o- S/ X
乾颐堂网络实验室 我们为您想的更多/ l- c8 x- r- ^1 P* i- P
|