BGP用户培训材料

来源:百度文库 编辑:神马文学网 时间:2024/06/07 21:30:27
BGP用户培训材料:k K-B#|}$v%W
Y e/D w p6y9dr BE+S^DBeb
AS        --  Autonomous System                使用相同路由管理策略的区域        6p6ya(sTfgf
BGP        --  Border Gateway Protocol                Defined in RFC 1771
h Vlge9nC g,u‘|2u CIDR        --  Classless Interdomain Routing        无类型的域间选路OdT+]8N)O
EGP        --  Exterior Gateway Protocol                Defined in RFC 904^;D\?:U*Y2n
IGP        --  Internal Gateway Protocol                AS内部的路由协议
)OH7~ b4?5b|#Z EGP        --  External Gateway Protocol                AS外部的路由协议,对应于IGP*UX#?f}_{ N3z#v
一、概述+[.rS#^A4y4l.J
BGP是一种自治系统间的动态路由发现协议,它的基本功能是在自治系统间自动交换无环路的路由信息。与OSPF和RIP等在自治区域内部运行的协议对应,BGP是一类EGP(Edge Gateway Protocol)协议,而OSPF和RIP等为IGP(Interior Gateway Protocol)协议。9XT2k"JYKM%wk6D
BGP是在EGP应用的基础上发展起来的。EGP在此以前已经作为自治区域间的路由发现协议,广泛应用于NFSNET等主干网络上。但是,EGP被路由环路问题所困扰。BGP通过在路由信息中增加自治区域(AS)路径的属性,来构造自治区域的拓扑图,从而消除路由环路并实施用户配置的策略。同时,随着INTERNET的飞速发展,路由表的体积也迅速增加,自治区域间路由信息的交换量越来越大,都影响了网络的性能。BGP支持无类型的区域间路由CIDR(Classless Interdomain Routing),可以有效的减少日益增大的路由表。&X.z(j0TA9W)M$O
BGP运行时刻分别与本自治区域外和区域内的BGP伙伴建立连接(使用Socket)。与区域内伙伴的连接称为IBGP(Internal BGP)连接,与自治区域外的BGP伙伴的连接称为EBGP(External BGP)连接。本地的BGP协议对IBGP和EBGP伙伴使用不同的机制处理。
n[2cXS[(m/T X 二、BGP协议分析
rXl(a8Qh 1、BGP协议的层次位置B$EU.aN"DN
)Zr G"m X Na*@ c BGP,OSPF,RIP,TELNET,SNMP$z)d#iDG5av+D@
SOCKET
Z+{v8c v*F TCP,UDP^1a0r gb/~jk
IP,IPXx8C/~-n1d*?
PPP,X.25等
V"t#xul0tF *作系统
|.z.R&Oh-i y6[2Odk 硬件接口及驱动 ]wJvf[.G\8]
7rGQ%g9K/Le(|3p BGP使用Socket服务建立连接,端口号为179。
U\!\quu 2、BGP的消息结构%Z-r3f;[S%M
BGP有4种类型的消息。分别为OPEN,UPDATE,KEEPALIVE和NOTIFY。它们有相同的消息头。
Mv-LPr ~ ⑵OPEN消息结构:HN1{(w\(`rz
消息头加如下结构 :3es({W%Gi |5pS [6u
Version :(1字节) 发送端BGP版本号E L6T?z*L1^
My Autonomous System :(2字节无符号整数) 本地AS号:g(_7M~6kC(Q)H[&s
Hold Time :(2字节无符号整数) 发端建议的保持时间-t9D,L}Bfb]Yb
BGP Identifier :(4字节) 发端的路由器标识符(w7Q `)Vtq T
OptParmLen :(1字节) 可选的参数的长度
#s q:z}K*I*Ht3\ Optional Parameters :(变长) 可选的参数)^%[jl,o.O9e%@`
⑶KEEPALIVE消息结构
Wt;G;Ul0G| KEEPALIVE消息只有一个消息头。
`pP$~t!yl+MY
kB,C5@I)kyC y^ ⑷NOTIFY消息结构
0E4\S/`F[Vu*^@ 消息头加如下结构:
1t1Fe;U t@p];@ 0                       1                      2                      3                   4$fw~0_tFi‘P8@4q
0 1 2 3 4 5 6 7  0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7d o1foLj/i[U:N
Errorcode        Errsubcode        0Dm?iT3YVs
Data
`BZ‘hL!YF![
Wg yr^R Errorcode :(1字节) 错误代码
Ex^`$hN 错误代码        错误类型
f8H/Kr0t1b 1        消息头错
]&C2lk2Z%P 2        OPEN消息错5n\ S teN-~ o(|_Z:V(C
3        UPDATE消息错
1yiPCO,o 4        保持时间超时
$pxEl:y Q!@:t 5        状态机错 O d-P_hoN$x,K
6        退出
$U,Bw0Y5K ?*Ul4Xt
H?V~H8s Errsubcode :(1字节) 辅助错误代码,略。
+D1G-zV f,tp Data :(变长) 依赖于不同的错误代码和辅助错误代码。用于诊断错误原因。Gz!S![m!L(i
"yD0_K:~EW6m
⑸UPDATE消息结构
^5Z6X-mr_2t9Tw3P Unfeasible Routes Len :(2字节无符号整数) 不可达路由长度
6A+_"s$^E%_ G3S$ew Withdrawn Routes :(变长) 退出路由!J djNRH u~
Path Attribute Len :(2字节无符号整数) 路径属性长n.Or2T:_‘P*j
Path Attributes :(变长) 路径属性(以下详细说明)
h-@(m3BX0u5h7l Network Layer Reachability Information :(变长) 网络可达信息(信宿) s+e#Z%?.aP
fdC9S@Y @5yB
其中退出路由和信宿地址的表示方法为一 的二元组。length一个字节,指示地址前缀的长度。prefix为地址前缀,长度1至4字节。
1z Z5U;MI._7XZ8?\0^
*~N x f"|‘]3UA ;T0i h6n+b[
3、BGP协议路由属性的应用
7U‘W.r6A6~/pe2L 路由是用信宿地址来标识的。路由的属性即UPDATE消息中的路由属性部分,是用来帮助BGP进行路由选择的。它们在本地BGP选择路由时有不同的作用。当BGP通过不同的路由源收到了相同信宿地址的路由时,需要进行路由选择。}*ls(Qt*{
(1)ORIGIN起点属性8sA1_`0[+@)t;N_
起点属性表示路由相对于发出它的自治系统的路由更新起点。5QF C"u8r}A
-IGP                BGP把聚合路由和用network定义的路由看成是AS内部的,起点类型设置为IGP。
`K/_0P.V k~(Q -EGP                BGP把通过EGP得到的路由的起点设置为EGP。N)at @}*R`h?W j vu
-INCOMPLETE        BGP把通过其它IGP协议引入的路由的起点设置为INCOMPLETE。这是因为引入的路由可能从任何地方来,如OSPF的ASE路由。Juq$| _)g9K2^
m3NTT1q~7yl Cw BGP在其它因素相同的情况下,按IGP,EGP,INCOMPLETE的顺序选择路由,因为IGP路由的位置更确定,EGP次之,而INCOMPLETE则很不确定。@"r P(N6g$V/V
|1N3jgy` (2)AS路径属性
O0v a KH,{ 路由的AS路径属性记录了此路由所穿过的所有AS区域,它可以避免路由环路的出现,即当BGP把一条路由通告给一个此路由曾穿越过的AS自治区域时,此AS又把这条路由当作新路由来处理了,这也正是困扰EGP问题。 r"W1I3f~p
在加入了AS路径属性后,BGP可以根据AS路径属性中的信息来消除路由环路。BGP不会接受AS路径属性中包含了本AS自治区域号的路由,因为此路由已经被本自治区域处理过了,从而避免了生成路由环路的可能。为此,BGP在向EBGP对端,即向本AS外部通告一条路由时,要把本AS自治区域的AS号加入的AS路径属性中,以记录此路由通过的AS区域信息。
L!o]8oY!F)i;{ 同时,AS路径属性也在影响路由选择。显然,在其它因素相同的情况下,应该选择AS路径较短的路由,因为它穿过了较少的自治区域。这一点并不一定精确,因为穿过了的3个由高速网络构成的AS区域的路由,有可能比穿过了2个低速网络的AS区域的路由更好。这种情况要求恰当的配置,以在其它的因素中影响路由的选择。9`Pr3~m1](Zy
协议不可能自动完成一切,有经验的工程师的合理的配置对优化网络更重要。L(fy;\+E?,D
在AS路径属性中,AS_SEQUENCE属性的AS路径值表示此AS路径是有顺序关系的。通过它可以在本生成AS自治区域的拓扑结构图。当路由被发送到AS自治区域外时,一般要把本区域AS号加入到AS_SEQUENCE序列后。AS_SET属性是用于路由聚合的,它的AS路径信息无顺序关系,无法生成拓扑结构图,但用于检测AS路由环路是足够用的。/CdT&K*QP]i
(3)NEXTHOP下一跳属性Lm*w)I~};Fx5QR+jV-W
W1r0},bO 对于EBGP,下一跳属性是本地BGP与对端连接的端口地址。如上图,RTC向RTA通过EBGP通告路由170.10.0.0时,下一跳属性为170.10.20.2;RTA向RTC通告150.10.0.0的路由时,下一跳为170.10.20.1。
3jn-N6` R4~ My 对于IBGP,本地BGP将从EBGP得到的路由的下一跳属性,直接注入IBGP的UPDATE路由更新消息。上图中,RTA通过IBGP向RTB通告路由170.10.0.0时,下一跳仍然为EBGP中的170.10.20.2,而不是150.10.30.1。对于RTB,此下一跳信息最终应该通过IGP得到。
X7Z+E MG.l0w 对于可以多路访问的网络,下一跳情况有所不同。!bOJ2[.i{p8I
:RJM{&~K"mV
在上图中,RTA和RTC运行BGP,AS300中IGP为OSPF。OSPF通告RTC通过下一跳170.10.20.3可以到达网络180.20.0.0。RTC在通过EBGP通告RTA路由180.20.0.0时,发现本地端口170.10.20.2和此路由的下一跳170.10.20.3为同一共享子网,因此使用170.10.20.3作为EBGP通告路由的下一跳,而非170.10.20.2。4I#P\%v#L-pm4F
这种情况,对于NBMA非广播多点可达网络不适用。yU*x&|cYRU
:csU0`.Q E)`D5_
将以太网替换为FrameRelay桢中继网和其它NBMA网络,箭头指示方向有PVC永久虚电路。此时,RTC也发送下一跳为170.10.20.3的180.20.0.0路由给RTA,就会出现问题:RTA到RTD无可达链路!
PY8D*M cXXD2F 为了避免此问题,请使用Next-hop-self命令,强制RTA将路由180.20.0.0的下一跳设置为本地BGP端口地址170.10.20.2。(V@/l^:ED
(4)MED属性{;Ft2N8ok:K
MULTI_EXIT_DISCRIMINATOR就是一条路由的Metric。当某AS自治区域有多个人口点时,此属性用来帮助选择一个较好的人口点。即,选择MED较小的人口点。7Ku*y:ka,BuT
,fM4^C&hU Q$I2l
如上图,网络路由180.10.0.0从RTC、RTD和RTB出发,通过EBGP通告给RTA。其中RTC的MED为120,RTD的MED为200,RTB的MED为50。缺省情况下,BGP只比较同一AS区域发送的MED,这是因为不同AS自治区域的度量Metric的方法可能不同,只有相同AS区域的Metric才有可比性。因此RTA选择MED较小的RTC发送的路由,将2.2.2.1作为路由180.10.0.0的下一跳(RTB的MED更小,但AS路径较长)。MED属性不会通过AS区域传播,因此,RTA发送路由180.10.0.0时的MED设置为其缺省的0。5x_ SET+a Fw
也可以使用always-compare-med命令来强制比较同一路由的所有的MED。上例中,最终会选择RTB作为路由180.10.0.0的下一跳,因为它具有最小的MED。t h m9L1P!Q iY
总之,MED可以帮助本地BGP选择到达某一个AS区域的人口点。7X$SH&d8e3A,M
(5)LOCALPREFERENCE本地优先级属性K9wEA#w4R-Y:s1p6U*D
本地优先级属性用来帮助AS区域内部的路由器,选择到AS区域外部使用的较好的出口。
m;H#{!e6]#yO ?;p &J0H$Ir!uo r
如上图例,当路由170.10.0.0通过RTC和RTD发送到AS256内部时,RTC将本地优先级设置为150;RTD将本地优先级设置为200。这可能是因为RTC连接的AS区域具有较高的速度或收费较低。因此,AS256内部的路由器选择本地优先级较高的RTC作为得到网络170.10.0.0的下一跳。
`/[J.R;e+I+NC1l 和MED相反,较高的本地优先级的路由被选择。
#gr1P5Eb 和MED对应,本地优先级用来帮助本地BGP在不同的相邻AS区域中选择较好的退出路由。v$|QU A‘q
在一个自治区域中的所有BGP路由器必须使用IBGP连通起来,已相互通过比较某条路由的本地优先级来就到达此信宿的AS出口点达成一致。\\w hQDI-|
(6)ATOMIC_AGGREGATE元聚合属性
UJ+nE(I‘w.Oe 此属性用来表示一条路由是在某处被聚合形成的,丢失了部分信息。!P_ b] g(G-v
(7)AGGREGATOR聚合者属性
!eA‘~w"j 此属性记录了一条路由被聚合的路由器的AS号和IP地址。"W;Ua\wqlp0`uY
` t.nhz
综合起来,本地BGP路由选择的过程为:
‘c&N aCv‘qrPGv (1)如果此路由的下一跳不可达,忽略此路由;k7bK:ORr
(2)选择本地优先级较大的路由;
T2u s9e-X2B tN (3)选择本地路由器始发的路由(本地优先级相同);$}z@.IV4c7o
(4)选择AS路径较短的路由;|t:OI IwdgKs`
(5)依次选择起点类型为IGP,EGP,INCOMPLETE类型的路由;
z xg/xs (6)选择MED较低的路由;r&dnR$OfM
(7)选择RouterID较低的路由。
FA(smOHn#h:Z 4、BGP协议的特点
9{(d$e7J y BGP是一种AS(自治区域)外部路由协议,主要负责本自治区域和外部的自治区域间的路由可达信息的交换。因此,它所关心的拓扑结构是AS(自治区域)的拓扑结构,BGP通过UPDATE消息中路由的AS属性来构造AS的拓扑结构图,进一步通过此结构图来选择路由。
5tZ*oo‘{o/N;hgo 与OSPF,RIP等IGP协议相比,BGP的拓扑图要更抽象和粗略一些。因为IGP协议构造的是AS内部的路由器的拓扑结构图。IGP把路由器抽象成若干端点,把路由器之间的链路抽象成边,根据链路的状态等参数和一定的度量标准,每条边配以一定的权值,生成拓扑图。根据此拓扑图选择代价(两点间经过的边的权值和)最小的路由。这里有一个假设,即路由器(端点)转发数据包是没有的代价的。而在BGP中,拓扑图的端点是一个AS区域,边是AS之间的链路。此时,数据包经过一个端点(AS自治区域)时的代价就不能假设为0了,此代价要由IGP来负责计算。这体现了EGP和IGP是分层的关系。即IGP负责在AS内部选择花费最小的路由,EGP负责选择AS间花费最小的路由。
lm\)F|Y j;Z BGP作为EGP的一种,选择路由时考虑的是AS间的链路花费,AS区域内的花费(由BGP路由器配置)等因素。
1UR,R$K8t9h 如上所述,内部网关协议IGP需引入AS自治区域内部网络拓扑图其它各点的路由,同时向其它端点发送本端点(路由器)所知的路由,如直接路由、静态路由等。作为外部网关协议,BGP发送和引入路由的单位是整个AS自治区域,即BGP要发送本地路由器所在的AS内部的所有路由,引入其它AS自治区域的所有路由(假设不使用路由策略控制发送和引入)。其路由数量显然要远远大于IGP发送和引入的路由数量。因此,类似于IGP那样定时对外广播路由信息是不可取的。BGP采用发送路由增量(Incremental)的方法,完成全部路由信息的通告和维护:初始化时发送所有的路由给BGP对端(BGP Peer),同时在本地保存了已经发送给BGP对端的路由信息。当本地的BGP收到了一条新路由时(如通过IGP注入了新路由或加入了新的静态路由),与保存的已发送信息进行比较,如未发送过,则发送,如已发送过则与已经发送的路由进行比较,如新路由花费更小,则发送此新路由,同时更新已发送信息,反之则不发送。当本地BGP发现一条路由失效时(如对应端口失效),如此路由已发送过,则向BGP对端发送一个退出路由消息。O-VdV%g/HZ0Ao
总之,BGP不是每次都广播所有的路由信息,而是在初始化全部路由信息后只发送路由的变化量(增量)。这样保证了BGP和对端的最小通信量,但同时增加了BGP的复杂程度。因为对于IGP,本地路由协议只需发送发送时刻所知的全部路由,而不保存任何已发送信息,路由选择的工作由对端来完成;而BGP必须为每个BGP对端保存已经发送的路由信息,以便发送一条新路由前确认其是否真的应该发送。3LH"Y!xH7K JcC
为了减小路由表的体积和发送路由的通信量,BGP还支持CIDR(Classless InterDomain Routing)。它使用带有较短的掩码(相对于自然掩码)的路由来在一条路由中表达更多的路由信息。如从202.112.1.0/24-202.112.254.0/24可以使用202.112.0.0/16表示,从而减小了路由表的体积和发送路由信息时的网络流量。
Z1@/pc[,V‘YX(LD 同时,作为AS自治区域间的路由协议,由于政治的、经济的等原因,BGP需要按照不同的路由的属性控制路由的发送和引入。因此,BGP有丰富的路由策略控制手断。@NZy*\ Z‘P&N
在本地BGP路由变化时,也使用UPDATE消息修正对端BGP的路由表。
-xTR|] I }? ql 经过一段时间的路由信息交换后,本地BGP和对端BGP都无新路由通告,趋于稳定了。此时要定时发送KEEPALIVE消息以保持BGP连接的有效性。对于本地BGP,如果在超过保持时间的时间内,还未收到任何对端BGP消息,就认为此BGP连接已经无效,将此BGP连接断开。
FMx#X9LzT 当本地BGP在运行中发现错误时,要发送NOTIFY消息通告BGP对端。如对端BGP版本本地不支持,本地BGP收到了结构非法的UPDATE消息等。本地BGP退出BGP连接时也要发送NOTIFY消息。BGP收到NOTIFY消息后,要作相应处理。
y%p,IQ9S1_9n/b9Rz/w 三、BGP配置任务列表C;g-J*VPlN3r
BGP配置任务主要包括:
ef7x4p6S*zHHS$q*i Ÿ        启动和关闭BGP
\![U.Y S%WC[-}1?] Ÿ        配置BGP本地参数
,MP&du5Q*I Ÿ        复位BGP连接
L9j(G8s7T Ÿ        定义访问列表、AS路径列表和路由映射
*V#Xa#^XD?!v Ÿ        配置neighbor
D {C7wP,w vr.@Plk Ÿ        配置BGP同伴组
2r P*c*K H u!Q Ÿ        BGP与IGP交互
PhS ^I%Qfo\ | 以下各节中引用的参数范围如下表所示:
Q{1t Dsz kR z)_~8n;|*F
表7-59  BGP配置参数范围J*Vb"a7R:b
参数名称        参数范围
G#I5jCk kldh2x as-number        0~65535
#E9KI my metirc        0 ~4294967295!Fg1t/k*L8WD%[xFy
perference        –2147483648 ~21474836471z$N$t_z1tJA|
holdtime        60~65535j `2~P+h0a-Z(|Yq
asp-list-number        1~200 |/sn^6k
list-number        1~200
\0FWK6FJ|*nB version-number        2~44A2I9C+{x1ZbT9M#u
seq-number        0~65535
+r;|uG? as-regular-expression        参见RFC1164 section 4.2‘ZFl|E[|
names        字符串(有效长度32位)0BX/N:J2Z\&~P2d9]
u@5i)lG!mYY
3.  启动和关闭BGP
)| f9S)s}C,u 启动BGP协议时应指定本地的自治区域号(AS号)。启动BGP后,本地路由器不接收相邻路由器的BGP连接请求。要使本地路由器主动向相邻路由器发出BGP连接请求,请参照Neighbor的配置。F4X6[8`ys5Y9M1P
关闭BGP协议时,BGP协议将切断所有已经建立的BGP连接。~_*qv VX
zGl/NF!_1\YOQ
J"g~)B.~E+O A
O!`!poi"b9sc 表7-60  启动和关闭BGP,?.\ lq2[3J
*作        命令#A+e%m$E;b!J{7{
启动BGP,并进入BGP协议配置模式        router bgp as-numberW%E7JgD QO3@D&Y
退出BGP协议配置模式        exit-I9| a:yp$u/I
关闭BGP        no router bgp@!HK_‘_H B3?
Sb#lU YG 4.  配置BGP本地参数
A-^H4XPxY0x4BD-rm BGP协议完成的主要任务之一是向其它的自治区域(AS)广播本自治区域中的网络可达信息。为了完成此任务,BGP需要和内部网关协议(IGP,如RIP和OSPF等)协同工作。一个简单的方法是将特定的IGP协议发现的网络路由全部注入到BGP的路由表中,再由BGP发送出去(请参见“BGP与IGP交互”)。
4B _1o]A~nk \ A!M (1)定义和取消本地网络#owo.B/Z M0YL
但有时只需要发送部分网络路由。此时,用network命令指定要发送的网络,同时也可以指定此网络路由的掩码和路由映射。
‘T6H*Em‘O p:Qi(J 6B/k_SLQ"w.wh z
表7-61   定义和取消本地网络
pL]xyv+Y *作        命令X kC d*t6`(N‘\q
定义本地网络        network  ip-address  [mask mask]  [routemap map-name] m|d P2U s9A
取消本地网络的定义        no network ip-address
];P~2Y[0H
?|j-Lawbp (2)配置本地优先级 _2y1`mOWH
当一个运行BGP的路由器通过不同的内部伙伴(Internal Peer)得到目的地相同、下一跳不同的路由时,将根据不同路由的本地优先级进行选择,选取本地优先级最高的路由为到达此目的地的路由。用户可以使用以下命令配置BGP路由的本地优先级:
"~2Eyu Qio4z.\ 表7-62   配置本地优先级
|gz{:` @ W *作        命令
8@V_FG)gb+VbY 配置本地优先级        bgp default local-preference  preference
IP7qcK#t.}u 使用缺省的本地优先级        no bgp default local-preference
|/FC`qC!W1q y (3)指定是否允许BGP生成默认路由
"on4[)h0~ 表7-63  允许或禁止BGP生成默认路由
/R5JKX-cD%E *作        命令-os%r-T7g.G ZL7Y ?_
允许BGP生成默认路由        default-information  originate
MI"u `bCr8G5W2` 禁止BGP生成默认路由        no default-information  originatee)Z$p(aMe
2p~8bR:{XrH Ql
(4)配置MEDR3H$MJ7KV
当一个运行BGP的路由器通过不同的外部部伙伴(External Peer)得到目的地址相同、下一跳不同的路由时,将根据不同路由的MED(Multi-Exit Discriminator)进行选择,选取MED最低的路由为到达此目的地的路由。
6K!Xe$_1[ 表7-64   配置MED
3IW1\ \v+I4QhQ *作        命令9opJr:I
配置MED        default-metric metricZ0R[FT5Q.B7kCD
使用缺省的MED        no default-metricp-uD1}-\4L2J
}(q ~$k.EP
(5)配置BGP定时器
cyat%T7C2yDRj 当一台路由器与对端路由器建立了BGP连接后,定时向对端发送Keepalive消息,以指示连接通路正常,可以保持连接。路由器在一定的时间内没有收到对端的Keepalive消息(或其它类型的消息)即认为此BGP连接已经被中断,从而退出此BGP连接,并对从此BGP连接收到的路由进行相应的处理。因此,RFC中规定的Keepalive消息的间隔时间和BGP连接保持时间是BGP协议机制中比较重要的参数。用户可通过以下命令配置这些参数。k"bp]JA-x w;F9@
表7-65  配置BGP定时器S%U ec:jX.Cm
*作        命令8Lz"a;o!Sa/IiPI:qi2Lr
配置BGP定时器        timers bgp keepalive-interval  holdtime
(H0m:{q-g_ 使用缺省的定时器值        no timers bgp
+Lwt X7S/v6f9u km0G-T9A/Ta~Y;x
5.  复位BGP连接sM(K+au%h Jr6S
当BGP有关的参数被用户改变时,由于相关信息已经发送或是在BGP建立连接时由BGP连接的双方协商的,因此须切断当前的BGP连接,待重新建立起连接后才能生效。用户可以使用以下命令了达到此目的:
(a;f)q!?;B 表7-66  复位BGP连接:vY8N0drI*jU
*作        命令z-C:lh*yc8b
复位一个neighbor        clear ip bgp ip-addressa x#M9q O~T%L-s
复位全部neighbor        clear ip bgp *.gqifr
,V KrV(Q |
6.  定义访问列表、AS路径列表和路由映射
L T$PV.ZI 本节描述的访问列表(Access List)、AS路径列表和路由映射(Routemap)是为以下的Neighbor配置做准备。
\q\[#M3g9TZ#K (1) 定义访问列表
i2Ik_IC0Y3U1{ 请参见防火墙的配置。T:HLaX1Xvu
(2)定义AS路径列表Lze.?B2h|?
每个AS路径列表是用数字来标识的。 T0q3b-Z{,X3y
表7-67  定义AS路径列表
je9^q%T^*_ *作        命令
F"RM!aF%S*m 定义AS路径列表        ip as-path access-list list-number {permit | deny} as-regular-expression0{N G|D Jh$p8|:j j
删除指定的AS列表        no ip as-path access-list list-number RL1Z_0R
y`3o‘\\ j,r3l
(3)定义路由映射(Routemap)
&h Ir:O5N 路由映射是BGP实施路由策略的重要部分。它根据路由属性的匹配结果,决定对路由属性的*作。即完成用户指定的将特定条件的路由集合的属性修改的任务。每个路由映射中可以有若干映射规则,用序列号标识。在进行路由映射时,按序列号从小到大的顺序进行匹配,遇到第一个匹配的映射规则,就完成此次的路由映射过程。如未匹配任何一条映射规则,则此路由的发送和接收等*作被取消。8M)N8^#|I+v
7@;AH#Pvm Y k,o8U7H+S{M
,s:Bt:_g
表7-68  定义路由映射(Routemap)X8T&@ Fk
*作        命令
o)d p;lU0vW)` 进入路由映射配置模式        route-map map-name { permit | deny } seq-number
]*\\Z e;e&? y2k 退出路由映射配置模式        exit
U)]*Js1z9X8dS8? 删除指定的路由映射        no route-map map-name
A u6QJ u2H#nDO
‘Hz?:g$B5n;o1~%f 定义匹配规则。o ACjU-z$x
表7-69  定义匹配规则
"`d5X}3EU$Y@ *作        命令
}Pd3]‘sz]~!S+H 匹配AS路径正则表达式        match  as-path  [asp-list-num]
ge A L-n*F;f0IQ 取消AS路径表达式匹配        no match as-path-O:Gk0@ t,x5D
匹配端口        match  interface { Ethernet | Serial | Null } [interface-number] .M‘~A~0\6z
取消端口匹配        no match interface
S:`pI(`#n*Z#[4f 匹配地址        match ip address [ access-list-num  ]
+~ b0ShM6K h#E7g 取消地址匹配        no match ip address
$h)K3oCt,i‘pG 匹配metric        match  metric  [metric]
‘` J‘c5@*I(EJt J 取消metric匹配        no match metric?D Mb]
4P1KMP!D4^ `M 定义赋值规则。
KoQQD8o 表7-70  定义赋值规则 Y^K:~Sz5m
*作        命令s&sG!VG(C8oQ~*l
设置AS号        set as-path prepend as-numberJXXe3`M!j;j+GF
取消AS号的设置        no set as-path
G |Q&} N R3kY 设置下一跳        set  ip  next-hop  ip-address
uT‘U8`Q H-w[ 取消下一跳的设置        no set ip next-hopb+^bm‘U0m!p4{E)S"E
设置本地优先级        set  local-preference [preference] (}e fM(R{
取消本地优先级的设置        no set local-preference)T%o!Of6\
设置metric        set  metric  [metric] h;fx4y n}.Q;Y
取消metric的设置        no set metric
Jh+rK](I? l 设置路由源        set  origin  { igp | egp | incomplete }utn3?3E~-Z [
取消路由源的设置        no set origin6Q)C5\ fWx b
!~ JJ/\u\
7.  配置neighborYt#[_za"Q zOF;PL
(1)启动和关闭neighborF"K m‘Z$j"t-ml R$~
在启动BGP协议后,本地路由器就不再接收BGP连接请求。neighbor命令是用来向指定的对端路由器连接的。
R W8Nra {,w$cE 表7-71  启动和关闭neighbor
Zi g,Ao[#Y UK *作        命令
2j6}$U8fP| 定义neighbor        neighbor neighbor-address remote-as  as-numberD,bHv xJ:Ja"Y
取消neighbor的定义        no neighbor neighbor-address remote-as  as-number*^7[fN!L8K&`9U
N o fI F|~[
(2)neighbor的策略K‘K!X!Uq
在本地BGP的neighbor上,可以施加若干策略,来控制BGP路由的输入输出。策略可以过滤掉指定目的地址且含有指定AS路径属性的路由,同时也可以对指定的路由进行路由映射。 {@)Cj V~ k[u i:V
使用以下命令,可以使用存取列表(Access List)来指定BGP对目的地址的要求。其中,in或out指明是输入还是输出时使用此策略。
k;w3G`6U ~uAS 表7-72   配置neighbor的前缀过滤器
n(q;eQ}l+t[? *作        命令GEG1q-sgc
配置neighbor的前缀过滤器        [no] neighbor neighbor-address distribute-list lny0z"[o
list-num { in | out })F3p\ }ew
Nz,O6g*c?2Y
使用以下命令,可以指定BGP过滤掉(或过滤出)含有指定AS路径属性的路由。        O0Bxb4k2_1Gu E9B
.^IG [5K3hn+Vfc|
IQ,NU*aZ0y
表7-73   配置neighbor的AS路径过滤器
SFwA?)dq? *作        命令;{u‘lO|#q v
配置neighbor的AS路径过滤器        [no] neighbor neighbor-address filter-list asp-list-num { in | out }l)yu6X1\0w#{9z^
i v m u V.qJ
以下命令,指定某Neighbor(Peer伙伴),在输入或输出时所使用的路由映射。
anvTZSvl 表7-74   配置neighbor的路由映射
&V!O H-HR *作        命令
]l4Ql)_E/t%W@A$d 配置neighbor的路由映射        [no] neighbor neighbor-address route-map map-name { in | out } eO"NWV7Uj_o
sG _An&R9M 使用以下命令,可以设置此neighbor是否可以引入缺省路由。.n*U0h!G0P6u"\)b
表7-75  允许或禁止引入默认路由
9LEd(b"o+C3Z G f5h *作        命令`C*V F r*a M
允许或禁止引入默认路由        [no] neighbor neighbor-address default-originate )@w-YTx1SW M
[ route-map map-name ] @1]v[Q:X&]w
)z&yj,_4pU4u:~e| D (3)neighbor其它属性的配置S xel4b0k
表7-76  neighbor其它属性的配置-F Xw&u1p4qb5E9D"ZO.^
*作        命令
4?W!c-[L&\ 定义广告时间间隔        neighbor neighbor-address advertisement-interval  adv-interval
e![F3OTmx v 定义keepalive时间间隔        neighbor neighbor-address timers  interval
1QR-m"rYp!\ 指定版本号        neighbor neighbor-address version version-number
r3G9p%W,[:aAye 0{-E @O4EL
8.  配置BGP同伴组"LpL Y,X
在配置BGP时,可能有很多neighbor的配置是相同的。对每一个neighbor都配置一次工作量较大。此时,可以使用BGP同伴组,BGP同伴组是一个有相同配置的所有同伴的集合。在配置好同伴组后,将一个同伴加入到此同伴组中,就赋予了此同伴所有同伴组拥有的属性。
I,q3p)WN&Z"o (1)创建同伴组wyy8HkWX5R"Y
表7-78  创建同伴组 L ^ d6T7Wk5DJ8|C
*作        命令y*N6T3vJV/t"Dl
创建或取消同伴组        [no] neighbor group-name  peer-group
#ys$zv8oy:fu F
kn%dJ9D[W (2)配置同伴组的策略B)~To2o!l4}&j
表7-79   配置同伴组的策略*x`Cr*xF
*作        命令Y.v;@T%`N W Ui
配置同伴组的前缀过滤器        [no] neighbor group-name distribute-list
foLx+gb/Z%@ { list-num | list-name } { in | out } L[R2dy
配置同伴组的AS路径过滤器        [no] neighbor group-name filter-list
_y!u%X3v.q]%p6R as-list-num { in | out }
\0_k.Vbe 配置同伴组的路由映射        [no] neighbor group-name route-map
*Cw ZK0BOF map-name { in | out } %Es.\w"|4C
引入默认路由        [no] neighbor group-name default-originate g)`R `el‘v;ku
[ route-map map-name ] ~!P8n9n B Kx
&Su-r‘h%U Q(Y I (3) 配置同伴组的其它选项;A%CO a*i9j9}+e
(_.B2J5N j#S!I
表7-80   配置同伴组的其它选项L[yeL1E3Xz$Pp O.S
*作        命令 rI-L a_
定义广告时间间隔        neighbor group-name advertisement-interval  adv-interval2[,~k#kJ ]
定义keepalive时间间隔        neighbor group-name timers  intervalH&o(\4k$|‘P
指定版本号        neighbor group-name version  version-number
%f*P(x(ZD
s"ZW:^q2k2fX-} (4)定义同伴组的成员$A7~H&`#i7]
将一个同伴加入到另一个同伴组中,等价于配置了一个有此同伴组所有属性的同伴,并启动它。?KLs+b-S [
7x/y PS xM[ 表7-81   配置同伴组的其它选项 eQ#md^ AaF‘Q\
*作        命令p2R-y/F$Et
定义同伴组的成员        [no] neighbor ip-address  peer-group  group-nameaQ!ZCh,uNrFo
4Fp.~zKkC 9 BGP与IGP交互
[.Yk!U.[Lq (1)引入其它IGP协议的路由
2I~ BU MC BGP协议还可以向其它的自治区域发送本区域的内部网络的信息。为了达到此目的,可以将本地路由器通过IGP路由协议得到的关于本区域内部的网络信息通过BGP发送出去。使用下列命令可以将指定的IGP协议的路由通过BGP发送。用network命令也可以达到类似的目的。-tTvC9z QEd.}S%S
表7-82  引入静态路由
Jv#Ko W#Vu2p *作        命令
P ^oz5a@,u0o!S*wX 引入静态路由        [no] redistribute  static
twq?E(v?gt 引入静态路由并设置metric        redistribute  static  metric  metric
,Y9PhcQh ^|I5F5h 引入静态路由并设置路由映射        redistribute  static  route-map map-nameVG:k;hGho0l9H&c
?Kp7I:wt
)q8p[x)E!N4PTw d *m}vSwE
表7-83  引入RIP路由7~1{BFu x2_} ^ld
*作        命令$F QR*k,N&DK#Kh!`
引入RIP路由        [no] redistribute  rip
u o g8_ P g Kf 引入RIP路由并设置metric        redistribute  rip  metric  metric#v ~IHM%Rqf
引入RIP路由并设置路由映射        redistribute  rip  route-map map-name}!i|"@ I
8{.C@D2] J;z 表7-84  引入OSPF路由1|r[6~3a O}
*作        命令
$]u#y%GXhM2{C*p 引入OSPF路由        redistribute  ospf
|8p"m I?|FV 取消引入OSPF路由        no redistribute ospf_;@VV-q `;y
引入OSPF的external路由        redistribute  ospf  match  external
"MQk.Jc W$iy7x 引入OSPF的external1路由        redistribute  ospf  match  external 1
!?9STF}W{i C 引入OSPF的external2路由        redistribute  ospf  match  external 2Z M‘jPLs
引入OSPF的internal路由        redistribute  ospf  match  internal1f4U*Tb1f? K
引入OSPF路由并设置metric        redistribute  ospf  metric metric
b,V0QlOP _%w 引入OSPF路由并设置路由映射        redistribute  ospf  route-map map-name
m}sGo`m,kd6u%~ #x‘T hB:p
(2)BGP与IBGP的同步
x)c F*`A/alGN 关于BGP同步的描述较繁琐,此处略,请参考RFC文档及相关资料。
B%m1O6yS9v\j 表7-85   配置与IBGP的同步
3B!dr$Z%X7rS *作        命令
3?1{2[Fv+i.`!j 配置同步        [no] synchronizationv;@#zzt0Uf;~/h$u
pEc8n| 10.  BGP监控和维护i ENAX~#X
通过执行show命令可以显示BGP的当前运行状态。1j E,o:t;Z qR
c$~?G/a ^M5l`.Q
表7-86  显示BGP运行状态.B p WVH8YQ‘|
*作        命令&TP2OM2I0]f S
显示BGP路由表中指定ip地址的路由信息。        show ip bgp A.B.C.D
vM oAdN-{ 显示cidr路由信息        show ip bgp CIDR
fvQU;{m%h 显示与指定Access-list 号相匹配的BGP路由信息        show ip bgp filter-list
L:g,_‘u0w 显示BGP同伴连接的详细信息        show ip bgp neighbors
C&pym/e‘RHIG;t 显示AS路径信息        show ip bgp paths Sbb9t1[5F
显示AS伙伴组信息        show ip bgp peer-group5i(O z noB X
显示匹配AS正则表达式的AS路径信息        show ip bgp regexpOY#l)L8r.fGi`I:w
显示BGP同伴状态的综合信息        show ip bgp summaryq#An_&Y ae3w){ E\,V
显示BGP路由信息        show ip bgp
.| T*A Y T2j w5U
2Jd1a G,o3K@&GE!J 四、BGP的应用
%t#ymr O[A qg 1、基本配置
.UP‘@+Y1q f5q9R Ul
-~}%YHtP9w8p 以下给出一简单的配置:/ug]X+yA
配置以上拓扑结构的BGP协议的命令为:9F)V6z9Bh-Z6e(Q8@a
RTA的配置:#Ww }.z]3i]/E
!RTAr tGl3j O%R+O e9Q
router bgp 100%Q b8tpL$y
neighbor 10.0.0.2 remote-as 200:Z4PN;C[.gN
neighbor 10.0.0.3 remote-as 200^j:EtM1BH‘Y,M)k
redistribute rip+Y_4tp_oSH9_
neighbor 129.102.1.2 remote-as 100sW?5YK!nI‘G
!
pw"aI/\+{Y)z RTB的配置:V9ucM/a9F7k q
!RTBl#x5Hn9p‘Fc
router bgp 100dYmg6_2O!w
neighbor 129.102.1.1 remote-as 100
*Rxd._0{"^R9M !4sO b{L:Z2JA
RTC的配置:
(cbZt+h4jJ !RTC
3tM hsaR router bgp 200
:H5yu1V*C? neighbor 10.0.0.1 remote-as 100
5r x#pqF A4y neighbor 139.102.1.2 remote-as 200
p2hfX(WA H no redistribute rip
0u4]j+y5|:q !iOh;otB!u8Y
RTD的配置:N^qj:N+PB9C
!RTD
+S)p3B;JG:i1p0Z router bgp 200H%l7nqDCMV2A
neighbor 10.0.0.1 remote-as 100k| r2o{8c
neighbor 139.102.1.1 remote-as 200aq8Q SP&aw c
no redistribute ripQE2u2o4UhE
!? M$P"Eh
._ Mw!~2Mh/w:yI
2、BGP同步uE‘c M4d4r ~
本地BGP在收到一条路由时,要检查此路由的下一跳是否可达。在同步状态下,此BGP路由直到IGP也通告了此路由,BGP路由才被加入到路由表中。在非同步状态下,BGP路由被直接加入到路由表。R;XY‘V6ZEjdZ
BGP在通过EBGP收到其它AS自治区域BGP对端的UPDATE消息后,将此消息中的路由不加修改(<信宿地址,下一跳>不变)地通过IBGP发送给IBGP同伴。对于IBGP对端,在此路由的下一跳不可达的情况下,路由是应该是无效的;同时,在IGP通告此路由前,此路由也应该是无效的,因为此时此路由还未在AS区域内由IGP收敛,此信宿的IP包会因为只运行IGP的路由器无此路由而被丢弃。aU0WF%r G T
如何判断下一跳是否可达呢?BGP在路由表中递归查找,直到找到一个直接相连的接口,从而确认此下一跳可达,否则不可达;同时,到达此下一跳的路径上的所有路由器必须也被通告了此路由,即AS区域内此路由已经由IGP扩散。由于IBGP是通过TCP连接的,其间可能经过若干路由器,IBGP消息中路由的下一跳的可达信息不能通过BGP来通告给途径的路由器,而必须通过IGP在IBGP的发端通过引入BGP路由来完成。AS自治区域内部的路由可达信息的传播应该由IGP完成,AS自治区域间的路由可达信息的传播则由BGP完成。"同步"在这里指的是IGP和BGP的同步。
LX,_‘R*?T 以下举例说明同步。
+b;\-T&N~ t M;z,sx-A5x
RTC通过EBGP通告RTA路由170.10.0.0,下一跳为2.2.2.1。RTA将此路由通过IBGP通告给RTB,下一跳不变,也是2.2.2.1。RTB知道为了到达2.2.2.1,应该将IP包发送到RTE,而RTE如果并不知到网络路由170.10.0.0,则会把丢弃此IP包。同时,RTB通过EBGP将路由170.10.0.0通告给RTD,结果,AS400到网络170.10.0.0的流量在RTE出全被丢弃了。
:n!X!`6nW)h 为了避免此情况,RTA处的IGP应该引入BGP的路由170.10.0.0并通告给RTE。RTB在收到IGP通告的网络路由170.10.0.0时,说明RTA和RTB之间至少有一条通路上的路由器全部被通告了170.10.0.0的路由,因此可以安全地把路由加入到路由表中,并可以通告RTD。*aL$F ~0l6_
如果把AS自治区域视为一个大的AS路由器,AS路由器组成了Internet网络。则BGP就成为了这个由AS路由器组成的更高一级的自治区域的IGP了,只不过这个更高一级的自治区域只有一个,即因特网本身。在AS路由器内部,BGP运行于各个端口上(AS边界的与其它AS连通的路由器)。当AS从一个端口上得到了一条其它AS的路由时,它通告给所有其它的端口(收到EBGP消息后通过IBGP通告AS内部的所有BGP同伴)。而此AS路由器是分布式的,端口之间的可达信息是由AS内部的IGP(RIP,OSPF)保证的,只有这条IBGP通告的路由的下一跳的可达信息通过IGP到达本地后,此IBGP通告的路由才加入本地路由表。之所以有"同步"问题,是因为IGP的收敛需要一定时间,而IBGP通过TCP连接直接发送无收敛时间,如果未等IGP收敛,就将IBGP通告的路由加入路由表,会造成"黑洞"。:^‘kt‘NqA
在路由器中,BGP缺省处于同步状态。通过上例可以看出,在IBGP同步直接相连的情况下,不需要同步。
1UQ _o|4y`F 3、路由的过滤
p7|Y.o\ (1) 定义访问列表
vT!]j)m_1TSb9X:H 请参见防火墙的配置I,r fCz ii [
(2) 定义AS路径列表e@tC f
每个AS路径列表是用数字来标识的。在配置模式下使用命令:‘Z.Y${.|8{~ i
ip  as-path  access-list  list-num  permit|deny  AS正则表达式
9]qJ nWB*I 可以配置一条AS路径访问列表。
iw-jj)p 其中,AS正则表达式规定了路由AS属性的模式,用于指定符合此模式的路由集合。 可以参考RFC1164 Section4.2。
~3z|Pu5u)w R)S CISCO正则表达式的符号意义:
} S?q]+g(^9Z\
j%BHF‘ZH(E.q 字符        符号        特殊意义
Xc4HV0t K.N^ 句号        .        匹配任意单字符rP{ yi D4[3x&dD
星号        *        匹配模式中0或更多的序列
0`4E)yjPsx 加号        +        匹配模式中1或更多的序列
r%gX]Z4Q6~6_1w(g[ 问号        ?        匹配模式0或1次出现
bCuC7J~ LV&XA 加字符        ^        匹配输入字符串的开始
yr(g&]o#CZ8oB 美元符        $        匹配输入字符串的结束
2G+MMfjV 下划线        _        匹配逗号,括号,字符串的开始和结束,空格
w\;Z‘[]-cn 方括号        [范围]        表示一个单字符模式的范围 EU;r~H:g?7i:Wat
连字符        -        把一个范围的结束点分开+jp9ZJ.|
7? fK2q@ b&B 例如:
?5f-P6|,ac3t/D "100 200 300"                匹配 _300$                "AS300始发的路径"‘X#E|MgC y{0W U
"300 400 100"                匹配 ^300_                "AS300为相邻的AS自治区域"YJu^O:e/LQ
所有AS路径                匹配 .*                "所有AS路径"
A9Bnv L1v I?-w "300 100 200 400"        匹配 _100_                "经过AS100的路径"
2kOQM\KO/K (3)指定对路由的过滤
A"_)xe^"v]2Q f0B 根据配置的地址访问列表和AS路径列表可以指定对特定的路由集合进行过滤。此过滤可以施加于所有的同伴或特定的同伴。在BGP中,使用distribute-list指定地址访问列表,使用filter-list指定AS路由列表。4I"ha%@,]#C:U
以下分别举例说明地址过滤和路径过滤:
\1x t+cSB
"A@h%a;R~_J[ 如图,由于各种原因,网络路由160.10.0.0不能经过RTC通告给AS100中的RTA,但要通告本AS区域的网络路由170.10.0.0,此时应使用基于地址访问列表的路由过滤。
2\i8U.Z%o6I&] 路由器RTC的匹配为:u9]‘nh*ga
!RTC}1},V!]u5x0p/u
router bgp 300 :RD |7v0K\D#_-V
network 170.10.0.0
-dm X4t|i neighbor 3.3.3.3 remote-as 200 0z7~J D)cpqwH
neighbor 2.2.2.2 remote-as 100 ‘I9yi6W4V;e
neighbor 2.2.2.2 distribute-list 1 out
zebp5J$a E:Ka _ !(j B‘X2L/w"z
access-list 1 deny 160.10.0.0 0.0.255.255
.g@+C r,y:WVj access-list 1 permit 0.0.0.0 255.255.255.255 r"@I-X(a+zG PZ

&dk"HI!n#@,tx 路由器RTC在向RTA通告路由时,要通过地址访问列表1,如果一条路由的信宿地址被地址访问列表拒绝,则不发送此路由。从而完成过滤路由160.10.0.0的目的。)B R6{v7Uc*?
+N7|$d iBd2chf
用上图说明基于AS路径属性的过滤。
7QTp:r@D 此时也要RTC过滤掉所有发自AS200的路由。RTC使用的配置:T\5D r;c+d Iy6e
!RTC9z`3E:j)nV
router bgp 300 I_cMgw:y0z3T
neighbor 3.3.3.3 remote-as 200 4ACS7F9rs B
neighbor 2.2.2.2 remote-as 100 I5r f5{%A*{zx0D{
neighbor 2.2.2.2 filter-list 1 out /T![%ed/|IL

v#l7N4p G ip as-path access-list 1 deny ^200$ p x%cY~"v‘F.|6J
ip as-path access-list 1 permit .*9[ vAj#kXb:j8mi2u

"w(c+q k&r 路径访问列表1定义了只有AS号200的路径属性的路由集合,属于此集合的路由将在RTC发送给RTA的UPDATE消息中过滤掉。从AS400始发的路由被RTC正常的通告。
)V O6fC~i#Z!Ik/dm 4、路由属性控制和策略ZxmE;UECtP
路由的过滤也属于路由策略。但路由策略的灵活性主要体现于BGP对于路由属性的控制。BGP通过Route-map完成路由属性的控制,从而施加BGP的路由策略。
‘e&](NLVNR*s3T Route-map定义了若干序列,每个序列中定义了一种匹配路由和的路由属性赋值的集合。 路由通过一个Route-map时,按序列号从小到大依次匹配各序列。当路由属性匹配某序列的匹配条件时,根据此序列的赋值属性对此路由的指定的路由属性进行*作,同时中断匹配*作,路由通过此Route-map。 若路由未匹配任何一序列,则路由未通过此Route-map,之后的*作被终止。
1CDOFt0w)G‘xa_ 在一个序列中,可以根据一条路由的信宿地址、AS路径、Metric花费、BGP路由的源类型等对路由进行匹配;同时,可以设置路由的下一跳、AS路径、Metric花费、源类型、本地优先级等路由属性。
x$^1p‘xA;z)Va)\ 可以看出,Route-map也可以用作路由过滤,但更灵活一些。同时Route-map通过修改路由属性来影响对端BGP的路由选择。
5`3^$_|‘l-pf 以下举例说明Route-map的应用:zp;f a4y
g8J|`,s C!Z.p 例一:使用Route-map令RTC从RTB引入AS200区域中的路由,并将其Metric设置为20,而丢弃其它AS区域的路由。配置如下:
"FIB0_lF1ojS !RTC,u‘@,h4k \/f]
router bgp 300 MrAi }]
network 170.10.0.0 pTy NVV:N8w#g2p
neighbor 3.3.3.3 remote-as 200
DT ]bZk Kd neighbor 3.3.3.3 route-map stamp in
Bzr5L#xJO&`#x7J !
]N!g~3ap,j route-map stamp permit 109d;E+wRs[p L
match as-path 1 wc0?5? EEN_P^Yi
set metric 20
~h(O`5kF ~d3^/d !s@4S&D5T J(Sn
ip as-path access-list 1 permit ^200$$X\4d s l4D iOK
!r)qkI?3S
其中使用的AS路径列表1匹配AS200发出的路由。Route-map的序列10,使用AS路径列表1作为匹配规则,如匹配,将匹配路由的Metric设置为20。对于其它AS属性的路由,由于未匹配任何一条Route-map序列,即未匹配此Route-map,则拒绝引入此路由。IWQ?]m
例二:要求引入AS200发送的路由,并设置此路由的Metric属性为20,丢弃AS400发送的路由,引入其它AS区域发送的路由,并匹配此路由的Metirc为10。9k zHR_6Q3{+L*m
路由器的配置为:
I6m[I:Xe,_T} !RTC$dI `;NCP?G|
router bgp 300
7[fo,aid;d network 170.10.0.05y4GKEw I*p
neighbor 3.3.3.3 remote-as 2003r&l xQfC
neighbor 3.3.3.3 route-map stamp in
‘dr;K/@W !
xS(M1@~o"]#@ route-map stamp permit 109IA%aXNG
match as-path 18J/} o!sq9nA?
set metric 20$O+vw5nSND
!5\1~`)RF6U2v
route-map stamp deny 20&W];d8C5a
match as-path 2
m6n7G)nyd }*E-C !"n T-e‘hj+cb
route-map stamp permit 30H/~)GW,@*Z h;x%D?
set metric 10
rG \[)U#c !h6BQ9}?!V3M7{:D
ip as-path access-list 1 permit ^200$5}1IOwR$U$ky
ip as-path access-list 2 permit ^400 .*aH6ZEKT!@
!%Rw:`g$j-ZD7M~L
匹配AS路径列表1的路由metric被设置为20,匹配AS路径列表2的路由被拒绝引入,其余的路由metric被设置为10。
0D4X sc/_ZXz 使用上图说明Route-map中set as-path prepend的作用:
[,A F l)Y,zl*k AS600中的路由器通过2条路径收到了网络路由170.10.0.0,AS路径属性分别为(100,300)和(400,200,300)。在其它因素相同的情况下,AS600会选择AS100发送的路由,因为它具有较短的AS路径。为了影响这种选择,可以使用set as-path prepend功能。:M|VPz5tXS}r
!RTC
9{ OFkn&na Qy router bgp 300
J/oZl m"E5as"L] network 170.10.0.0
0N1Ou s1^2s)H$x"y neighbor 2.2.2.2 remote-as 100 C4X*X X5petl
neighbor 2.2.2.2 route-map SETPATH out
)S`._9n~ !b]E&B$K0O%v3WK
route-map SETPATH
1[jH @d \!HJp set as-path prepend 300 300                ;一般使用本AS区域的AS号2Z dE SK s?*xf
!4YFz`j9D7jo
此配置将向AS100发送的路由的AS路径属性设置为(300,300,300),因此,通过AS100到达AS600的路由的AS路径属性为(100,300,300,300),从而影响AS600路由选择,使其选择从AS400发送来的路由,而不是AS100发送来的。