* T- O, G V/ W% s- t乾颐堂运营商CCIEv4.0-XR.设备拉轰的路由策略语言RPL解决EBGP问题2 u2 S* e2 t" Y1 }# A) ~/ m
本文由乾颐堂HCIE讲师安德提供
- r+ y! p U6 q# [( GCCIE运营商拓扑图
乾颐堂运营商CCIEv4.0-XR.设备拉轰的路由策略语言RPL解决EBGP问题
; v5 e; e) h2 P+ F
构建基本的IOS XR设备的EBGP邻居* f# U! K2 s( D" O) g
EBGP,即external BGP,BGP邻居之间具备不同的AS号码称之为EBGP的邻居关系。BGP的最主要的功能就是在不同的AS之间来更新和控制路由。如图5.1所示我们在XR1和XR2之间构建基本的EBGP邻居关系。当然需要注意的是BGP是构建的TCP之上,所以构建BGP邻居的源目IP地址的路由必须可达,所以该测试是非常有必要的
, [ g0 t7 [. ?2 R' Q我们在图5-1中完成IOS XR的配置,涉及到的设备为XR1和XR2,我们采用直连路由来构建邻居关系6 F1 Y: }) x8 l" ?. C
RP/0/0/CPU0:XR1(config)#do ping 12.1.1.2 //测试作为BGP目的IP的设备是否可达,读者可看到一切顺利,否则您将不能构建BGP邻居,BGP会处于IDLE或者Active状态
! q) Q* a! k% B3 m. rTue May 24 07:42:08.669 UTC
- |9 g `& |' Y& t. w$ [0 oType escape sequence to abort.% H0 r# v N2 T% u+ V9 _
Sending 5, 100-byte ICMP Echos to 12.1.1.2, timeout is 2 seconds:- g/ c; Q( B/ e$ m" }
!!!!!
6 X8 n# \, c' K. PSuccess rate is 100 percent (5/5), round-trip min/avg/max = 1/65/309 ms- V" K( q9 `+ I2 y
RP/0/0/CPU0:XR1(config)#router bgp 100 //启动BGP进程,一台设备只能启动一个BGP进程1 n7 H9 O2 o5 W; S( { n o
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地址
. @3 M; H3 }, g- |4 Y9 S. aRP/0/0/CPU0:XR1(config-bgp)#address-family ipv4 unicast //初始化BGP地址族,也可以在其中通告BGP的路由,我们在后续做该行为
- I$ R/ ]/ f! B4 LRP/0/0/CPU0:XR1(config-bgp-af)#network 11.1.1.1 255.255.255.255 //通告R1上的环回口,请注意掩码必须匹配,否则无法产生路由! ^( Z( A. y; ?$ M7 S( [- {
RP/0/0/CPU0:XR1(config-bgp-af)#exit //退出当前地址族
0 f2 {5 P1 S' U4 B; F& k$ \RP/0/0/CPU0:XR1(config-bgp)#neighbor 12.1.1.2 //指定EBGP邻居3 j- k" w5 c) D' s7 B! V' S6 d( y
RP/0/0/CPU0:XR1(config-bgp-nbr)#remote-as 200 //指定对端的AS号码,此处为EBGP,因为两端的AS号码不同- H, O1 }# w+ c% }. Q, x4 W
RP/0/0/CPU0:XR1(config-bgp-nbr)#address-family ipv4 unicast //针对该邻居激活IPv4地址族,即和对端构建IPv4单播的邻居,BGP本身为一个多协议的地址族,多数情况下需要特定的指定某些地址族的邻居5 c, Q t1 |# U9 ~/ t' z
RP/0/0/CPU0:XR1(config-bgp-nbr-af)#commit1 l1 |" }3 x" H+ p$ o
!- ^; k" o* c/ E5 k
RP/0/0/CPU0:XR2(config)#router bgp 200
2 S" e3 Y! u& DRP/0/0/CPU0:XR2(config-bgp)#
& l2 R5 r S3 ] \$ B4 mRP/0/0/CPU0:XR2(config-bgp)#address-family ipv4 unicast
+ }6 Z3 a6 A5 aRP/0/0/CPU0:XR2(config-bgp-af)#exit1 w1 q' p4 {8 C5 L, _% P0 @
RP/0/0/CPU0:XR2(config-bgp)#bgp router-id 22.1.1.1
9 b2 N0 I% E1 n9 g" k; G) tRP/0/0/CPU0:XR2(config-bgp)#neighbor 12.1.1.1& J8 A1 b9 r- i" t* J8 n
RP/0/0/CPU0:XR2(config-bgp-nbr)#remote-as 100
. ]- l8 C" M) |3 rRP/0/0/CPU0:XR2(config-bgp-nbr)#address-family ipv4% C+ }- p6 [! D: B
% Incomplete command.
! w- ^, R1 Y% X$ I, A2 XRP/0/0/CPU0:XR2(config-bgp-nbr)#address-family ipv4 unicast5 b; D3 s m4 ~9 d) ]1 E+ h
RP/0/0/CPU0:XR2(config-bgp-nbr-af)#exit0 J! a% F8 l! k
RP/0/0/CPU0:XR2(config-bgp-nbr)#exit. `2 N7 P+ k3 @! l
RP/0/0/CPU0:XR2(config-bgp)#address-family ipv4 unicast2 f% R1 f) E% m' W4 Z0 L
RP/0/0/CPU0:XR2(config-bgp-af)#network 22.1.1.1 255.255.255.255 //进入地址族通告路由,从而可以产生路由
! F' t& x3 z8 ]9 u7 V, c& t, Z- `RP/0/0/CPU0:XR2(config-bgp-af)# commit
9 m/ Y# E1 P8 s6 J如上我们已经构建了一个基本的EBGP邻居,但是在IOS XR设备上具有一个特殊的功能,即在EBGP之间更新路由时需要经过RPL(route policy language)的过滤,而默认情况下不允许任何路由的更新和接收。验证如下:
: L% S$ f2 V+ x6 GRP/0/0/CPU0:XR2#show bgp ipv4 unicast summary //验证BGP的IPv4单播地址族的简要信息- n$ b0 W: F F# `2 k1 p* w
Tue May 24 08:02:31.406 UTC
4 r5 O, L* A/ M1 X) n) iBGP router identifier 22.1.1.1, local AS number 200+ q5 _& m* G( u3 l
BGP generic scan interval 60 secs
5 e9 M5 P1 j4 BNon-stop routing is enabled8 X) x# ?8 v/ y5 ?: D. E
BGP table state: Active `8 t" f8 d! T n3 W
Table ID: 0xe0000000 RD version: 3
$ A* `# k7 |8 B* K* b/ IBGP main routing table version 3# @7 S* t3 N- F5 y. t4 J
BGP NSR Initial initsync version 2 (Reached): r& H' G6 a- g+ P* {* v! ?. w
BGP NSR/ISSU Sync-Group versions 0/0
" U; ^' m( n+ r. e5 V% ^/ U; ~BGP scan interval 60 secs7 w' ]' ^$ m% M# V
) z) B8 s: l7 F8 O& D# }& @BGP is operating in STANDALONE mode.4 p& o/ a3 |% T9 q* c8 M M8 y
4 X. }+ f. N# B) X3 s4 e) o
. I/ B {" W* ^. H5 c
Process RcvTblVer bRIB/RIB LabelVer ImportVer SendTblVer StandbyVer6 h- T/ G8 e. f; W! {+ ?; @1 `8 \
Speaker 3 3 3 3 3 0! \) S. j8 g5 w+ [/ Q1 f6 o0 D
) Q( J) q, W+ [4 XSome configured eBGP neighbors (under default or non-default vrfs) A" |4 n, j G
do not have both inbound and outbound policies configured for IPv4 Unicast( N4 X- I* M5 ]& d) J" A" J
address family. These neighbors will default to sending and/or
; K( W5 t% m* d" qreceiving no routes and are marked with '!' in the output below./ C/ L+ [1 u! R; ~
Use the 'show bgp neighbor' command for details.+ [7 v5 h/ K0 {5 ]
7 Q, q7 P% U7 o! y- C ?
Neighbor Spk AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down St/PfxRcd
, L. L6 O9 t/ u9 c f1 Z X12.1.1.1 0 100 4 4 3 0 0 00:01:39 0!
$ ^# b8 m% G7 a1 S7 |+ u读者请注意此处虽然已经构建了邻居,但是0!代表了接收和发送的路由为空!! O J, e+ W9 M( Y8 n
' I" ?' E8 w* r, b( d# |
5.2 使用RPL解决EBGP之间的路由更新和接收问题# f2 ^+ D8 V) b9 Z8 j
在IOS XR设备上默认在EBGP之间的路由更新需要经过路由策略的过滤,该现象读者已经在上一小节看到了,我们来解决该问题2 W* A9 W9 C& j: A7 x
XR1:$ X( ~. P. t5 y/ a5 l- n
route-policy EBGP //创建路由策略,自定义名称为EBGP
8 w7 h( Y( y2 P* T8 C7 v5 Y pass //没有任何匹配条件,即所有路由都允许通过
8 b+ \) }/ j$ g7 }7 V9 w5 ]end-policy
* o( K( q; w4 }( S% C5 u2 ^!
6 D/ n u7 F* ?! tRouter bgp 100
4 \3 U9 P( J1 a; c1 d2 u8 z neighbor 12.1.1.2
9 k# `# T* E) @4 g% i remote-as 2001 I! V5 D& X1 A) x
address-family ipv4 unicast9 ]7 s4 S! }. z! F! y6 K1 h
route-policy EBGP in //针对邻居在地址族下载入方向(出方向做相同操作)调用,即收取路由的策略: T* o% m/ F/ T5 e, d
route-policy EBGP out
+ `1 L2 Y, L5 H& }4 r. {0 y+ f* cXR2完成类似的操作:9 Y. j% m: ]' ?& K
route-policy EBGP' K# z7 Z8 @. i
pass% M1 X& I6 M. K0 d' G
end-policy
& E, s) V, I/ D9 m- l- V: C!
9 C! V8 s" f+ t* I* XRouter bgp 200
7 {1 i! U" |& n( O1 R; i' C2 e% x neighbor 12.1.1.1! x$ ~ U# a4 b% Q, @; R
remote-as 100/ C. e7 d4 i9 B B$ I% d* \
address-family ipv4 unicast$ E: B9 ?" L9 p
route-policy EBGP in$ p: V% @6 g7 P! ^ V$ y
route-policy EBGP out6 `9 y# y2 ?0 \
验证RPL策略% ~. B3 M5 e) A, y; K( b, n [/ D; k
RP/0/0/CPU0:XR2#show rpl
+ I7 n$ U1 R H8 U. pTue May 24 08:19:10.237 UTC |- a9 G5 V/ A1 \, c
route-policy EBGP
- g- _. j# ^8 E ] pass' G4 a( N! Y3 C
end-policy' D6 |" l' A3 ?6 ~$ E8 u
验证邻居和路由情况:
5 {1 Z. c, \ B
# C0 y# I6 x% Z* X, m3 J. u/ }6 MRP/0/0/CPU0:XR2#show bgp ipv4 unicast summary A6 E8 ]1 S i; m. E) E( L
Tue May 24 08:18:35.910 UTC
2 d* ^ N( V3 W1 S+ S- |BGP router identifier 22.1.1.1, local AS number 200
+ `- Q9 {! |, v8 i+ h/ L' {BGP generic scan interval 60 secs; {' w: p% r2 V/ Q
Non-stop routing is enabled' ~( a. k) l" a5 e% J" ]# ^2 N
BGP table state: Active
" g4 n8 w+ b7 NTable ID: 0xe0000000 RD version: 4) i% ?; ?% T' {
BGP main routing table version 4
5 Y3 J- A S, z5 I" E# j/ HBGP NSR Initial initsync version 2 (Reached)
; C; _" d* M2 }3 }7 VBGP NSR/ISSU Sync-Group versions 0/0
7 @/ C/ k6 i8 vBGP scan interval 60 secs8 Z0 r- B/ M2 g1 Q; `& C
' D7 r7 K8 U# B4 ZBGP is operating in STANDALONE mode.
% O! I, B' q5 {
; M! S; C9 R0 h ; }: e! q `2 d, Z" s$ N) Y
Process RcvTblVer bRIB/RIB LabelVer ImportVer SendTblVer StandbyVer
5 k* U4 [6 p4 @. x9 A5 GSpeaker 4 4 4 4 4 0& J& D; |- G/ G; ~, H' b- X
1 V/ H: z; @; aNeighbor Spk AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down St/PfxRcd+ w3 T% |0 M: G+ o0 u
12.1.1.1 0 100 23 23 4 0 0 00:17:44 13 Y5 T7 r/ q' Y8 S* o
. F, n" }2 H3 ~3 [, z9 r( N7 E
RP/0/0/CPU0:XR2#show bgp ipv4 unicast
& G, d: v; ?& r0 `+ `1 T8 TTue May 24 08:18:40.130 UTC
( v/ B y* A3 ~7 j) vBGP router identifier 22.1.1.1, local AS number 200
+ M- X0 ~2 E1 F! |& GBGP generic scan interval 60 secs$ j7 [2 Z" e% s2 e
Non-stop routing is enabled
% e5 I. B( h2 v: p& Z3 sBGP table state: Active
6 B' p7 ]7 y% b* l; F: w0 e: iTable ID: 0xe0000000 RD version: 4; o4 m( q6 V! N6 h
BGP main routing table version 44 Q5 t+ V/ E3 v" F
BGP NSR Initial initsync version 2 (Reached)' }1 t T& L6 V; y0 z
BGP NSR/ISSU Sync-Group versions 0/0
# g6 C% v+ a" T& ]3 zBGP scan interval 60 secs
, o b2 z& X; O$ ?, J
5 z7 P6 k$ u& d% g- PStatus codes: s suppressed, d damped, h history, * valid, > best
7 R, x" M! H- a! p& @; O. B i - internal, r RIB-failure, S stale, N Nexthop-discard
. g$ T0 H4 S- JOrigin codes: i - IGP, e - EGP, ? - incomplete
& Q9 `) r( O" ~& C. | Network Next Hop Metric LocPrf Weight Path9 w* S: k! f- ^- v" p; p
*> 11.1.1.1/32 12.1.1.1 0 0 100 i //已经收取了来自R1的路由9 m W: R" ]& ~! C4 E, g* m
*> 22.1.1.1/32 0.0.0.0 0 32768 i
3 H+ o, Q! W" ^" y2 d6 p4 C M $ @. p4 C% P/ ?. Q
Processed 2 prefixes, 2 paths
& L5 N8 d5 W6 v# a3 P8 F 1 B8 I7 r6 T; p ^6 [) S
RP/0/0/CPU0:XR2#show route bgp5 R0 E* C6 K: j. l& X7 F: o
Tue May 24 08:27:30.303 UTC/ I0 M! X/ ^1 p4 n2 l3 S
2 m7 m6 r+ p3 b) E1 g1 w& f
B 11.1.1.1/32 [20/0] via 12.1.1.1, 00:15:36. ^2 @' {( v9 V5 g
测试数据包的发送情况,也一切正常,即不同的AS之间可以传送用户的数据了:
1 v( o2 z: @. a* lRP/0/0/CPU0:XR2#ping 11.1.1.1 source 22.1.1.1
6 n: X5 b9 @$ b) t( M. [9 V4 D6 oTue May 24 08:20:48.411 UTC
5 V" {; K: Y$ b0 i4 HType escape sequence to abort.& U i( J9 i7 I0 a2 `+ e
Sending 5, 100-byte ICMP Echos to 11.1.1.1, timeout is 2 seconds:+ r4 Q/ z* U6 S1 [4 X, O
!!!!!
$ B: N& Z& k4 q/ `' R; l7 dSuccess rate is 100 percent (5/5), round-trip min/avg/max = 1/13/39 ms
$ [1 i$ t: g1 o4 e z: c; y
0 a6 O) N5 |, {5 n1 U运营商CCIE咨询可联系乾颐堂客服
+ w3 [6 C& b4 Y1 Y乾颐堂客服热线:400-618-8070* Y0 j, C4 H, a9 Q) D6 k
乾颐堂官网:www.qytang.com
L# p& D8 y2 D4 w8 A, B3 j' [* w乾颐堂网络实验室 我们为您想的更多 c* a5 u: ?/ i$ J
|