bgP后期教案分解.docx
《bgP后期教案分解.docx》由会员分享,可在线阅读,更多相关《bgP后期教案分解.docx(34页珍藏版)》请在冰豆网上搜索。
bgP后期教案分解
r2(config)#access-list1per192.168.1.00.0.0.255
r2(config)#route-mapaaaper10
r2(config-route-map)#matchipadd1
r2(config)#routerbgp100
r2(config-router)#nei1.1.1.1route-mapaaain
只从1.1.1.1接受192.168.1.0的路由
access-list1deny192.168.1.00.0.0.255
access-list1permitany
route-mapaaapermit10
matchipaddress1
routerbgp200
aggregate-address192.168.0.0255.255.248.0suppress-mapaaasummary-onlyas-set
聚合过程中过滤,ACL的permit做聚合,deny不做聚合放行明细,即使加上summary-only也会放行192.168.1.0
ipprefix-listaaaseq1deny192.168.1.0/24
ipprefix-listaaaseq2permit0.0.0.0/0
routerbgp200
aggregate-address192.168.0.0255.255.248.0as-setsummary-onlysuppress-mapaaa
上面配置不能实现抑制192.168.1.0,针对192.168.2.0和192.168.3.0的聚合行为。
但是,如果前缀列表如果向下面这么去写:
是可以实现的!
!
!
!
ipprefix-listaaaseq1deny192.168.1.0/24
ipprefix-listaaaseq2permit192.168.2.0/24
ipprefix-listaaaseq3permit192.168.3.0/24
routerbgp200
aggregate-address192.168.0.0255.255.248.0as-setsummary-onlysuppress-mapaaa
access-list1permit192.168.1.00.0.0.255
route-mapaaapermit10
matchipaddress1
routerbgp200
aggregate-address192.168.0.0255.255.248.0summary-only
neighbor4.4.4.4unsuppress-mapaaa
把我本地抑制的路由传给4.4.4.4邻居,且是active
!
route-mapaaapermit10
setlocal-preference120
routerbgp200
aggregate-address192.168.0.0255.255.248.0summary-onlyattribute-mapaaa
聚合中修改汇总路由属性,注意尽量不和ACL连用
注意:
聚合时候route-map和att…map是同一个意思
access-list1deny192.168.1.00.0.0.255
access-list1permitany
!
!
route-mapaaapermit10
matchipaddress1
setmetric66
routerbgp200
neighbor4.4.4.4route-mapaaaout
不向4.4.4.4通告192.168.1.0,但通告其他的且同时修改metric为66
access-list1permit192.168.1.00.0.0.255
routerbgp200
distribute-list1in
只允许192.168.1.0的路由进来
access-list1permit192.168.1.00.0.0.255
routerbgp200
nei4.4.4.4distribute-list1in
只允许从4.4.4.4收满足ACL的permit流量路由
Prefix-list过滤:
Ipprefix-listaaase5per192.168.1.0/24ge小于等于le大于等于
Routerbgp100
Nei1.1.1.1prefix-listaaain/out
过滤优先级
出方向:
route-map过滤-----filter-list----------prefix-list
进方向:
prefix-list-------filte-list-------route-map
BGP过滤表达式
1、字和元字符特殊字符
一个典型的AS_PATH过滤器如下所示:
ipas-pathaccess-list83permit^1_701_(_5646_|_1240).*
在关键字permit后面的字符串是一个正则表达式。
2、
表1关于AS_PATH访问列表的正则表达式元字符特殊字符
元字符特殊字符
匹配内容
.
任何单一字符,包括空格
[]
在方括弧中罗列的任何字符
[^]
除了在方括弧中罗列的字符外任何字符(^必须放置在字符列表之前)
-
(连字符)在由连字符所分隔的两个字符之间的任意字符
?
字符或模式出现0次或1次
*
字符或模式出现0次或多次
+
字符或模式出现1次或多次
^
一行的开始
$
一行的结束
|
或者
_
(下划线)相当于逗号
2、描述:
匹配行的起始和结束
考虑下面的AP_PATH过滤器:
ipas-pathaccess-list20permit850
凡是AS号码里面有8和5和0的都能匹配出来
该匹配任何包含字符串850的AS_PATH。
匹配的AS_PATH例如:
(850),(235,850,155)和(3568,5850,310)等。
无论是是属性中唯一的串或者属性中多个AS号中的一个甚至是属性中一个很大的AS号中的一部分,该匹配都成功。
假设你只想匹配包含唯一AS号850的AS_PATH,你必须描述行的开始和结束。
使用补字号(^)匹配行的开始,美元符($)匹配行的结束:
ipas-pathaccess-list20permit^850$---只匹配850AS
这样表示表达式的开始紧接一个字符串850,然后紧接行的结束符。
你还可以使用两个描述来匹配一个空的AS_PATH:
ipas-pathaccess-list21permit^$(本地始发的)
在上述情况,正则表达式匹配行的开始紧接行的结束;如果行的开始与行的结束间存在任何字符则匹配不成功。
3、括弧:
匹配字符集和
括弧是你能指定单字符的范围。
例如:
ipas-pathaccess-list22permit^85[0123459]$
上述过滤器匹配包含单一AS号850,851,852,853,854,855或859的AS_PATH。
如果字符的范围连续,你可以只指定序列中开始和结束的字符:
ipas-pathaccess-list22permit^85[0-5]$
4、否定:
匹配除字符集和外的其他字符
当在括弧中使用加字符时,将否定括弧中指定的范围。
如果是正则表达式将匹配范围外的任何内容。
例如:
ipas-pathaccess-list24permit^85[^0-5]$----排除850—855,其他的都可以匹配
该过滤器除了多一个加字符以外与上一个过滤器类似,指定了“不是0~5”。
该正则表达式将匹配856~859范围内的单个AS号。
5、通配符:
匹配任何单一字符
点(.)匹配任何单一字符。
单一字符可能是一个空的。
考虑下面过滤器:
ipas-pathaccess-list24permit^85.
该过滤器匹配一个由AS号850-859开始的AS-PATH。
由于“.”可以匹配一个空格,AS号85也能匹配成功。
6、替代:
匹配字符串集合中的一个
(|)用作表示一个“或”操作。
即(|)任何一边的字都可以匹配。
例如:
ipas-pathaccess-list25permit^(851|852)$
该过滤器匹配单个AS号:
851或852的AS_PATH。
你可以扩展“或”功能来作多于两个可能性的选择:
ipas-pathaccess-list26permit^(851|852|6341|53)$
7、选择字符:
匹配一个可能存在也可能不存在的字符
问号(?
)匹配字的0个或一个实例。
例如
ipas-pathaccess-list27permit^(850)?
$
该过滤器匹配一个单一AS号850的AS_PATH或者匹配一个空的列表。
注意这里的圆括弧,表示元字符“?
”应用在整个AS号上。
如果表达式使用850?
,元字符特殊字符只应用在最后一个字符上。
该表达式匹配85或者850。
8、重复:
匹配许多字符的重复
你可以使用两个元字符特殊字符来匹配重复的词:
星号(*)匹配0次或多次重复,加号(+)匹配1次或多次重复。
例如
ipas-pathaccess-list28permit^(850)*$
该过滤器匹配空的AS列表或包含0个或多个的AS号为850的。
即AS路径可以是(850,850),(850,850,850)等。
下面的过滤器功能类似,只是要求列表中至少包含1个AS号850。
ipas-pathaccess-list29permit^(850)+$
9、分界线:
描述多个字
分界线(_)用作描述分隔分别指定的一串字。
例如假设你想匹配指定的AS_PATH(5610,148,284,13)。
过滤器可以如下所示:
ipas-pathaccess-list30permit^5610_148_284_13$-----必须第一个是5610—148—284—13,严格按照顺序匹配,因为有^行的开始与结束符号
过滤器指定了行的开始与结束,只有AS_PATH(5610,148,284,13)才能匹配。
下划线匹配行的开始、行的结束、逗号或空格。
注意下面过滤器与上述过滤器的区别:
ipas-pathaccess-list31permit-5610_148_284_13_------一个AS列表只要包含这几个即可,顺序没有关系
在第二个过滤器中,只要求指定的序列包含在AS_PATH中,并不要求是唯一的属性。
所以AS_PATH(5610,148,284,13),AS_PATH(23,15,5610,148,284,13)和AS_PATH(5610,148,284,13,3005)等都能匹配。
10、放到一起:
一个复杂的例子
将多个元字符特殊字符混合是用来匹配一些复杂的字符串才能显示正则表达的真正威力。
考虑下面的过滤器:
ipas-pathaccess-list10permit^(550)+[880|2304]?
_1805_.*
路由含义:
^$ 从本地as起源的路由
^2_ 所有从直接相连的位于as2的邻居来的路由,始发于2,没有经过其他AS的
_3_ 经过as3
.*所有
^2$ 源于as2中的邻居路由
_300$300始发的
^12.匹配12120---129的
Ipas-pathaccess-list1deny_300_
Ipas-pathaccess-list1per.*
Routerbgp200
Nei3.3.3.3filter-list1out(给3.3.3.3通告路由时候过滤掉经过AS300的路由
Ipas-pathaccess-lsit1per^65530$
Route-mapaaaper10
Matchas-path1
Setmetric100
Routebgp100
Aggregate-add172.16.0.0255.255.0.0as-setadvertise-mapaaa
聚合时只允许65530存在
条件路由
写两个ACL,当满足其中一个ACL,通告另外一个ACL的路由,其他都抑制,
即当exist-map路由在BGP路由表中时才会通告advertis-map的路由
access-list1per1.1.1.00.0.0.255
access-list2per2.2.2.00.0.0.255
roué-mapaaaper10
matchipadd1
route-mapbbbper10
matchipadd2
routerbgp200
nei6.6.6.6advertise-mapaaaexist-mapbbb
BGPcommunity
公共:
No-export--------收到这个标记的路由不会将它传给下一个EBGP邻居(联邦假性质EBGP邻居不包含在内)
No-advertise-------收到这个标记的路由不传给任何BGP邻居包含EBGP和IBGP
Internet---------可以发给任何BGP邻居
Local-AS-------同NO-export,但是他比no-export厉害之处是联邦内的EBGP邻居都不会传过去
私有的:
自定义的标签,32比特,有两种形式:
1---123
2-----XX.XX,如采用第二种标记方式,
“R1(config)#ipbgp-communitynew-format
案例:
1,no-export
access-list1per5.5.5.00.0.0.255
route-mapaaaper10
matchipadd1
setcomm.No-export
route-mapaaaper9999
凡是没有匹配ROUTE-MAP的路由默认丢弃,所以使用9999放行其他的默认流量
routerbgp200
nei4.4.4.4send-comm
nei4.4.4.4route-mapaaaout
r4通过showipbgpcomm查看从R5收到的带有community的路由
r4使用showipbgp44.44.44.0查看其携带的具体community具体数值
2,也可以在network宣告时候用route-map带有这些属性
3,私有属性应用(也属于标准属性范围)
Access-list1per100.1.1.00.0.0.2555
Route-mapaaaper10
Matchipadd1
Setcomm.123
Route-mapaaaper9999
Routerbgp200
Nei4.4.4.4send-comm
Nei4.4.4.4route-mapaaaout
R4查看收到的community-----------showipbgpcomm.
R4查看具体的comm数值---------showipbgp100.1.1.0
R4匹配收到路由为123的改变这条路有的MED为123
Ipcommunity-list5per123
Route-mapaaaper10
Matchcomm.5
Setmetric123
Route-mapaaaper9999
Routerbgp200
Nei5.5.5.5route-mapaaain
4,AN:
NN使用
Access-list1per100.1.1.00.0.0.255
Route-mapaaaper10
Matchipadd1
Setcomm.4:
123
Route-mapaaaper9999
Rouerbgp200
nei5.5.5.5send-commadditive-----如设置多个comm数值,第二个会把第一个冲掉,第三个会把第二个冲掉,在设置第二个数值时候,打上这个不会冲掉第一个数值
nei5.5.5.5route-mapaaaout
Nei4.4.4.4send-comm
全局:
ipbgp-commnew-format(双方都尽量打开支持这种格式的属性,一放开启也可以,但是显示格式不一样)
对方用ipcommunity-list5peran:
nn-------route-map调用且修改MED数值----bgp中out方向或in方向应用
双AS配置
解决邻居指错问题+客户可以有两个AS+客户迁移不用重写配置只需重写邻居即可
R4--------------------------------r5------------------------------------r6
As4as5as6
neir5remote5neir4remote100neir5remote5
neir6remote6
这样R5指R4邻居时候指错了,怎么办?
R4做配置
nei5.5.5.5local-as100no-perpend-----R4发路由给R5时候虚假的AS和真正的AS一块更新1004,且R4不会再把虚假的AS100给R4身后的AS
R1(…)nei18.1.1.8local-as210no-perpendreplace-asdual-as
no-perpend---R1给身后AS300的R9通告路由时候不携带LOCALAS号
replace-as----使用loaclas覆盖的原来的那个正规AS号,让R8只发现210,且邻居正常建立
no-perpendreplace-asdual-as--------全部使用,R8即可与200建立也可以和210建立邻居,即R1同时使用两个AS号码
*注意,R9始终认为R1是AS200
联邦
解决IBGP水平分割问题
解决共有AS不够用问题,但现在用32比特解决了。
在一个大的共有AS里建立多个私有的AS,类似于NAT思路
上图中如不用联邦产生的问题:
1,R3从自己的IBGP学到的路由不给R4
2,R2从R5学到R1的路由AS-PATH里面有自己的AS号码,出于环路保护的原因丢弃
解决方案:
全互联RR反射器联邦
注意:
联邦内部不会比较EBGP优于IBGP的
联邦内部也不会比较AS-PATH的
联邦内部路由器之间算然是EBGP关系,但不会修改下一条属性为自己的,需手动
联邦内部私有AS号码不会传出共有AS外的,只在联邦内传递
联邦内部如有水平分割可用RR或全互联
R1(…)#routerbgp64512
Bgpconfederationidmtifier1------公共AS号码是谁
Bgpconfederationpeers64513---于64513同处于一个联邦,在同一个AS1中
nei15.1.1.5remote5
nei2.2.2.2remote64513
nei2.2.2.2ebpg-m
nei2.2.2..2next-hop-seif
nei3.3.3.3remote64512
nei3.3.3.3next-hop-seif
路由进入联邦所有属性只有AS-PAHT会变,其他的都不会变化
Bgp后门链路
AS1与AS2存在多种业务流量,R1和R3有一些特殊流量直线传输,于是R1于R3采用OSPF,R3将33.1.1.0宣告进ospf,同时确保冗余还把33.1.1.0宣告进BGP里面,可是这是R1从EBGP学到33.1.1.0的AD为20,从OSPF学到的是110,走R2的bgp网络了,怎么办?
R1(…)#routerbgp1
Net33.1.1.0mask255.255.255.0backdoor----R1上把33.1.1.0变成本地产生的,于是AD为200了
重分发注意点:
BGP路由数量巨大,重分发进IGP危险,就算是执行重分发也是重分发EBGP路由和本地路由,但IBGP路由是不会重分发进去的
如需重分发IBGP路由,需开启
Routerbgp200
Bgpredistribute-internal-----默认从IBGP邻居学到的路由不会充分发进自己IGP路由表中,除非使用这个命令
不能将默认静态重分发进BGP中,除非使用:
default-informationoriginate
任何协议重分发进BGP的metric不变,当做MED使用
任何协议重分发进OSPF,metre默认是20
任何协议重分发进RIP,默认跳数无穷大
重分发过滤:
Access-list1per192.168.1.00.0.0.255
Route-mapaaa
Matchipadd1
SetMED99
Routerbgp200
Redistributeospf100route-mapaaa
汇总造成次优选路问题
R1去192.168.1.0一般走R3,可通过MED修改。
可是R3一旦做汇总后给R1,掩码变小,范围变大,这样R1收到去往192.168.1.0有两个相关的路由,一个是汇总,一个是从R2收到的明细,这样R1下次去192.168.1.0走R2了
解决办法:
R3不做汇总
Ibgp非等价负载均衡
R4:
Routerbgp200
Maximum-pathibgp5
Bgpdmzlink-bw
R1;
Rouerbgp200
Bgpdmzlink-bw
Nei17.1.1.7dmzlink-bw
Nei18.1.1.8dmzlink-bw
Nei4.4.4.4send-communityextend---这个带