8 G% s$ V' y- B% y
乾颐堂运营商CCIEv4.0-XR.设备拉轰的路由策略语言RPL解决EBGP问题5 ?6 ?7 j! ?7 }
本文由乾颐堂HCIE讲师安德提供2 n) s5 T( C5 |( T
CCIE运营商拓扑图
乾颐堂运营商CCIEv4.0-XR.设备拉轰的路由策略语言RPL解决EBGP问题
* h! E9 K1 z3 Q构建基本的IOS XR设备的EBGP邻居
3 _( i @3 S5 c/ u1 d* pEBGP,即external BGP,BGP邻居之间具备不同的AS号码称之为EBGP的邻居关系。BGP的最主要的功能就是在不同的AS之间来更新和控制路由。如图5.1所示我们在XR1和XR2之间构建基本的EBGP邻居关系。当然需要注意的是BGP是构建的TCP之上,所以构建BGP邻居的源目IP地址的路由必须可达,所以该测试是非常有必要的$ L3 S: @5 a/ t# y1 v
我们在图5-1中完成IOS XR的配置,涉及到的设备为XR1和XR2,我们采用直连路由来构建邻居关系/ C4 x* m3 }. |5 b7 B
RP/0/0/CPU0:XR1(config)#do ping 12.1.1.2 //测试作为BGP目的IP的设备是否可达,读者可看到一切顺利,否则您将不能构建BGP邻居,BGP会处于IDLE或者Active状态8 k" P. u7 A9 a w8 X
Tue May 24 07:42:08.669 UTC
6 \9 T. S# @% k. z6 t6 |3 ~1 N* lType escape sequence to abort.' U5 ~- m3 O, A. f( K
Sending 5, 100-byte ICMP Echos to 12.1.1.2, timeout is 2 seconds:
! W5 M1 u- ]* H @1 d!!!!!
4 `) |& e8 w3 |6 l3 _Success rate is 100 percent (5/5), round-trip min/avg/max = 1/65/309 ms
# h" {$ E+ \ H0 A1 @0 m& _0 QRP/0/0/CPU0:XR1(config)#router bgp 100 //启动BGP进程,一台设备只能启动一个BGP进程
& p @. A) L8 u d+ p/ aRP/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地址
& D5 s3 j: x6 M9 ~/ wRP/0/0/CPU0:XR1(config-bgp)#address-family ipv4 unicast //初始化BGP地址族,也可以在其中通告BGP的路由,我们在后续做该行为+ ^8 A- B) [( q/ a
RP/0/0/CPU0:XR1(config-bgp-af)#network 11.1.1.1 255.255.255.255 //通告R1上的环回口,请注意掩码必须匹配,否则无法产生路由2 S" H! Y# B x" E/ n
RP/0/0/CPU0:XR1(config-bgp-af)#exit //退出当前地址族
- F [" o" v& R' mRP/0/0/CPU0:XR1(config-bgp)#neighbor 12.1.1.2 //指定EBGP邻居
, v& ?0 N* _( }- e! @7 k6 C5 s( N \RP/0/0/CPU0:XR1(config-bgp-nbr)#remote-as 200 //指定对端的AS号码,此处为EBGP,因为两端的AS号码不同
( U4 b3 P) E1 r0 u5 @% D, n" tRP/0/0/CPU0:XR1(config-bgp-nbr)#address-family ipv4 unicast //针对该邻居激活IPv4地址族,即和对端构建IPv4单播的邻居,BGP本身为一个多协议的地址族,多数情况下需要特定的指定某些地址族的邻居( h3 N- @ m/ i
RP/0/0/CPU0:XR1(config-bgp-nbr-af)#commit6 Z/ O: n5 ^* _2 o+ e7 y8 \
!: e' y8 `" b' w# M
RP/0/0/CPU0:XR2(config)#router bgp 200
4 R6 B5 ]! c" xRP/0/0/CPU0:XR2(config-bgp)#2 A. q1 j5 p1 t9 u- e6 \7 q
RP/0/0/CPU0:XR2(config-bgp)#address-family ipv4 unicast
$ _) q# h1 r" |. S" x0 WRP/0/0/CPU0:XR2(config-bgp-af)#exit9 x7 R7 j# v" Y- `+ r2 D j3 O
RP/0/0/CPU0:XR2(config-bgp)#bgp router-id 22.1.1.1
# {! Q) S/ G4 @4 _RP/0/0/CPU0:XR2(config-bgp)#neighbor 12.1.1.1. k& z7 n7 r/ Q5 n1 w, f
RP/0/0/CPU0:XR2(config-bgp-nbr)#remote-as 1002 h' V+ P; @' P9 h. M
RP/0/0/CPU0:XR2(config-bgp-nbr)#address-family ipv48 w) o% K1 P7 E+ J! j( D5 f0 v' O
% Incomplete command.
6 {2 v/ `& _+ j" A6 A/ nRP/0/0/CPU0:XR2(config-bgp-nbr)#address-family ipv4 unicast
, q# C6 T' V) j5 N6 B3 ARP/0/0/CPU0:XR2(config-bgp-nbr-af)#exit0 u; s7 v& L% q7 \6 v; }$ f
RP/0/0/CPU0:XR2(config-bgp-nbr)#exit
5 ~; t0 I+ [: i, {. ~4 DRP/0/0/CPU0:XR2(config-bgp)#address-family ipv4 unicast0 K, a) u- F2 m( q8 _
RP/0/0/CPU0:XR2(config-bgp-af)#network 22.1.1.1 255.255.255.255 //进入地址族通告路由,从而可以产生路由! _/ s/ }7 j& l! ~% F
RP/0/0/CPU0:XR2(config-bgp-af)# commit
) b H D# M" y4 }7 [5 l如上我们已经构建了一个基本的EBGP邻居,但是在IOS XR设备上具有一个特殊的功能,即在EBGP之间更新路由时需要经过RPL(route policy language)的过滤,而默认情况下不允许任何路由的更新和接收。验证如下:
; W- V% v- p- M( W+ ZRP/0/0/CPU0:XR2#show bgp ipv4 unicast summary //验证BGP的IPv4单播地址族的简要信息0 [% k! N& u# g) h9 g1 p+ t2 ^5 Q! ^
Tue May 24 08:02:31.406 UTC8 q& k+ F8 Y4 u0 ^
BGP router identifier 22.1.1.1, local AS number 200
" ]7 D' w a' Y% N- t7 zBGP generic scan interval 60 secs0 O6 G' Y( p1 I# q
Non-stop routing is enabled
+ b% U3 B5 f9 ^$ R' |BGP table state: Active
2 W2 V5 |0 P6 }Table ID: 0xe0000000 RD version: 3
6 c+ h2 \2 \, l% g5 ]" o3 K. JBGP main routing table version 3
5 G8 c' n* i( |& qBGP NSR Initial initsync version 2 (Reached)
, g& e N. `9 uBGP NSR/ISSU Sync-Group versions 0/07 n2 x! z- w' h7 _
BGP scan interval 60 secs
3 L9 H' R8 [. @
4 z9 g5 R& ] [2 ABGP is operating in STANDALONE mode.
9 i. W% ?# n/ p& ` - |, V' b( ?' `# L7 \
& Z% q; E. m# ]
Process RcvTblVer bRIB/RIB LabelVer ImportVer SendTblVer StandbyVer8 m* w8 R" x; {4 R
Speaker 3 3 3 3 3 0
& E7 k: b8 R3 [, {5 r0 X ; f9 V0 {: w6 P# [
Some configured eBGP neighbors (under default or non-default vrfs)
; Z3 @/ N3 N6 U$ o8 Pdo not have both inbound and outbound policies configured for IPv4 Unicast4 S$ k, e: e; E% i& r
address family. These neighbors will default to sending and/or
' R; c8 u0 _: [; ]3 N( nreceiving no routes and are marked with '!' in the output below.- a* O, R# z! N' o5 X1 a
Use the 'show bgp neighbor' command for details.
2 K6 |8 @, R7 d; p1 A2 ~ 6 h' V+ E! a4 V o
Neighbor Spk AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down St/PfxRcd0 S, h. b9 Q( T8 d8 E
12.1.1.1 0 100 4 4 3 0 0 00:01:39 0!
$ Q8 ] I1 |" U7 K, O: v" u( W' ~# T读者请注意此处虽然已经构建了邻居,但是0!代表了接收和发送的路由为空!
$ K/ G1 C9 O) f( t% M
c* `9 E1 |$ I& x% @5.2 使用RPL解决EBGP之间的路由更新和接收问题
) P- P, r G& B+ S, C在IOS XR设备上默认在EBGP之间的路由更新需要经过路由策略的过滤,该现象读者已经在上一小节看到了,我们来解决该问题
% G9 Z- h( b/ R, Z! `$ VXR1:5 F0 u% i! o. t; v( v4 B" U' ?5 G
route-policy EBGP //创建路由策略,自定义名称为EBGP
: B9 {" U) o6 u; n pass //没有任何匹配条件,即所有路由都允许通过
q: f9 y2 P. I% ]9 W9 \1 A) l, G. bend-policy
& M; a6 U5 `, h# k6 U5 p0 R!
: L+ @( Y: _- m7 m) bRouter bgp 100) c# Y S. ~! x- j# O
neighbor 12.1.1.2
& h+ n- G3 o7 A# X- k* t remote-as 2009 F* h4 x2 g0 ^; _
address-family ipv4 unicast
8 I7 S, N ?9 ]$ J5 \4 m route-policy EBGP in //针对邻居在地址族下载入方向(出方向做相同操作)调用,即收取路由的策略
# t1 W. @' {( Y+ |9 A) y' p route-policy EBGP out
9 Y- ~) _/ {0 ~: Q- Z! V5 }XR2完成类似的操作:* K; M3 I* n3 y( }" S8 R8 y
route-policy EBGP0 u( @! R# q/ R1 E1 Z' B
pass5 Q5 r& i$ ^- A. v: @" y
end-policy& h- F4 I- w+ g
!
0 A; w8 S8 ~, x! h) C5 ]8 }7 uRouter bgp 200& N, i( x. Q! E$ S" w
neighbor 12.1.1.1
5 R9 U! T7 I i7 I% v7 j remote-as 100
- N7 f% g- ?, v1 U address-family ipv4 unicast
" M- J4 f% [* [+ G6 o route-policy EBGP in
) ?/ E" Z1 {- M route-policy EBGP out6 N* K+ v: G: L
验证RPL策略) ^. J' M- |' R' c) i" t
RP/0/0/CPU0:XR2#show rpl4 Q* ?2 h( o7 p8 S0 M1 V
Tue May 24 08:19:10.237 UTC& E( y" ]# r) {& X9 c0 e
route-policy EBGP
0 r3 t! O0 [4 H/ t% T& @ pass% V, Y% ?- _ K: T* p+ W
end-policy
/ C8 c+ J: M6 n# L' B验证邻居和路由情况:9 {, k; N1 v/ c% \5 G, q& s, f+ j
1 G- S! y( b$ p$ o2 Z$ e
RP/0/0/CPU0:XR2#show bgp ipv4 unicast summary R" ~2 ~+ h0 N4 W. P
Tue May 24 08:18:35.910 UTC# P5 a* t I( H% M/ x# R# C
BGP router identifier 22.1.1.1, local AS number 200
3 q+ H2 U2 L( L3 y5 e' QBGP generic scan interval 60 secs
' ?5 Q- v( p4 L/ j; ?' nNon-stop routing is enabled
2 `" H* H0 o) V9 H6 m/ uBGP table state: Active
' Q ~1 U) x) A0 C0 _; v+ ]Table ID: 0xe0000000 RD version: 4
+ |% n" U$ B! fBGP main routing table version 4
8 t4 o; ^# g: d" rBGP NSR Initial initsync version 2 (Reached)$ ^4 ?6 j P3 J4 _
BGP NSR/ISSU Sync-Group versions 0/0
) \* O3 Z6 B' t# V: FBGP scan interval 60 secs
( r$ K; {0 |$ _( V' N( o7 J
5 f: L7 O v6 k N# ~$ iBGP is operating in STANDALONE mode.
) |6 [, N3 e4 s0 @9 Y" L4 S3 K
0 Z# v D2 x2 g$ |9 W " |8 d: E2 R3 C+ F. F
Process RcvTblVer bRIB/RIB LabelVer ImportVer SendTblVer StandbyVer' O+ L* R ~ Z- A
Speaker 4 4 4 4 4 0
( q3 n% ~0 y0 O% d/ P 7 |- K$ P7 b- K! ~
Neighbor Spk AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down St/PfxRcd
4 a4 u2 G6 V; u# t I( g12.1.1.1 0 100 23 23 4 0 0 00:17:44 1
) P5 ~- H9 H9 S
# K" A. X8 \5 Q/ i6 T' b! tRP/0/0/CPU0:XR2#show bgp ipv4 unicast
' ?' B; I, Y0 ?/ a/ NTue May 24 08:18:40.130 UTC: m6 `/ }- J! E2 U% q
BGP router identifier 22.1.1.1, local AS number 200
9 N; M1 o: l! { S! e* b7 hBGP generic scan interval 60 secs" w! V/ M, y# I+ @! f5 s
Non-stop routing is enabled+ J: n% D5 K1 _9 c! m
BGP table state: Active. o* p% g. M! O+ d$ } h
Table ID: 0xe0000000 RD version: 4( F5 |6 u I& `6 p0 W
BGP main routing table version 48 t4 A" F% H" {6 S5 y5 g
BGP NSR Initial initsync version 2 (Reached)
" q8 n H+ j! O# p7 WBGP NSR/ISSU Sync-Group versions 0/0# B: `9 l. D8 o" q( o
BGP scan interval 60 secs
- P& A" F3 p; S% ]0 m / b4 i" _8 t; S" y( C0 r
Status codes: s suppressed, d damped, h history, * valid, > best
- U- ~4 ~. u) F; ]9 w ~/ g i - internal, r RIB-failure, S stale, N Nexthop-discard- [! {* x( S* j# B {: i- l4 L
Origin codes: i - IGP, e - EGP, ? - incomplete
3 q1 b, _' x1 L2 j5 Y2 L$ Y Network Next Hop Metric LocPrf Weight Path- x3 ^4 l4 K# w& j; L$ v; ^
*> 11.1.1.1/32 12.1.1.1 0 0 100 i //已经收取了来自R1的路由3 V# C; N# j$ ^# M x/ Z
*> 22.1.1.1/32 0.0.0.0 0 32768 i, t4 J$ R+ [, [$ E `
) @$ f( e! l: {. _ C+ d
Processed 2 prefixes, 2 paths; B; a3 M1 v8 w& W0 i
* H, S0 x* {# {% l! _RP/0/0/CPU0:XR2#show route bgp1 V# e5 f! I% S7 k( N S4 z! }
Tue May 24 08:27:30.303 UTC, q* e! n2 w2 I/ t8 p6 k& x
* L( b/ m/ C; W# ~, N+ s" t
B 11.1.1.1/32 [20/0] via 12.1.1.1, 00:15:36
) p, h w9 [8 n+ C测试数据包的发送情况,也一切正常,即不同的AS之间可以传送用户的数据了:
! E' r: {4 z6 P6 ?" z6 p% \4 I! T2 eRP/0/0/CPU0:XR2#ping 11.1.1.1 source 22.1.1.1: U3 P2 K( T6 x$ Z+ k3 \5 G) @
Tue May 24 08:20:48.411 UTC
% n" q3 U" x0 _' t6 ~% z) YType escape sequence to abort.# ^* N8 l' |% R# Q
Sending 5, 100-byte ICMP Echos to 11.1.1.1, timeout is 2 seconds:& `. m- H" U3 q- I. I2 v/ O
!!!!!
' ^) {9 U1 K' \* l MSuccess rate is 100 percent (5/5), round-trip min/avg/max = 1/13/39 ms
/ C' b$ I" b+ b* Z5 Q5 H! N! v+ L% @2 c1 s
运营商CCIE咨询可联系乾颐堂客服
5 P3 i3 S; f8 [! f6 Z, A5 \+ ^乾颐堂客服热线:400-618-8070* D8 a6 E# `, w- d
乾颐堂官网:www.qytang.com7 S( K( e! e0 f& g
乾颐堂网络实验室 我们为您想的更多
' S# L$ u& }/ N: K3 J- c/ g9 | |