BGP正则表达式以及基于AS路径的过滤(filter-list)
BGP特殊字符匹配内容

仅匹配一个空的AS_PATH ip as-path access-list 20 permit ^$
2. 匹配字符集和
Ip as-path access-list 22 permit ^85[0123459]$
* 字符或模式出现0 次或多次
+ 字符或模式出现1 次或多次
^ 一行的开始
$ 一行的结束
| 由元字符特殊字符分隔的字之一
_ (下划线)一个逗号,行的开始,行的结束或空格
1. 匹配行开始和结束:
Ip as-path access-list 20 permit 850
将匹配 (850) (850,23,33) (33,27,7850,33)这样的路经
Ip as-path access-list 24 permit ^(850)*$
将匹配至少包含一个AS 号为850
8. 分界线,描述多个字
Ip as-path access-list 24 permit ^5610_148_3_2$
只有as_path(5610_148_3_2)才能被匹配
有1805
AS-PATH 过滤采用正则表达式,正则表达式解释如下:
元字符特殊字符匹配内容
. 任何单一字符,包括空格
[] 在方括号中罗列的任何字符
[^] 除了在方括号中所罗列字符外的任何字符(^必须放在字符列表之前)
- (连字符)在由连字符所分 次
Ip as-path access-list 24 permit -5610_148_3_2$
包含as_path(5610_148_3_2)都能被匹配
BGP正则表达式以及基于AS路径的过滤(filter-list)

BGP正则表达式以及基于AS路径的过滤(filter-list)BGP正则表达式以及基于AS路径的过滤(filter-list)配置一个过滤列表相结合的正则表达式,以阻止通过BGP发送来的AS300的路由。
当一个特定AS的所有路由都需要过滤时,基于AS路径信息的过滤是很有用的。
如果不使用基于AS路径的过滤,我们将不得不一个接一个地列出一个前缀上的每个路由。
我们需要区分基于已定义的正则表达式的AS路径并将此信息通过一个过滤器列表应用到一个BGP邻居上。
1、定义与此同时表达式以否定通过AS300的任意路由///// router c /////ip as-path access-list 1 deny _300_ //拒绝任何通过AS300的路由ip as-path access-list 1 permit .*使用命令show ip bgp regexp 命令来看正则表达式匹配了哪些路由。
注意2.0.0.0是需要匹配正则表达式(_300_)的唯一路由。
此命令在确定正则表达式覆盖到了你想覆盖的路由时是很有用的。
show ip bgp regexp _300_*>2.0.0.0 193.1.1.1 .... 100 300 400 i* I 192.1.1.1 .... 100 300 400 i对BGP邻居195.1.1.1应用此过滤列表。
//// router c ///////router bgp 200neighbor 195.1.1.1 filter-list 1 outclear ip bgp *show ip as-path-access-listas path access list 1deny _300_permit .*在路由器C上用命令show ip bgp filter-list 1显示被配置的BGP过滤器。
//// router c ////show ip bgp filter-list 1*> 2.0.0.0 193.1.1.1 0* i 192.1.1.1 0在路由器D上用命令show ip bgp显示BGP表。
BGP协议原理及配置中文详解

BGP协议原理及配置中文详解BGP(Border Gateway Protocol)是一种用于在互联网中进行路由选择的协议。
它通过交换路由信息,使得不同的自治系统(AS)能够相互通信和寻找最优的路由。
本文将详细介绍BGP协议的原理,以及如何进行BGP的配置。
一、BGP协议原理1. BGP的基本概念BGP是一种路径矢量协议,使用AS路径作为路由选择的依据。
它与内部网关协议(IGP)如OSPF和EIGRP相比,具有更强大和灵活的路由选择功能。
2. BGP的路由选择原则BGP通过评估路径的属性来选择最佳的路径,其路由选择的原则包括:- AS路径长度:短的AS路径被认为是更优的路径。
- 接入点:具有多个接入点的AS被认为具有更好的可达性。
- 路径属性:权重、本地优先级、本地地址优先和原点等属性。
3. BGP的路由传播过程BGP路由传播过程包括以下步骤:- 邻居建立:通过建立BGP邻居关系,交换自己的路由信息。
- 路由更新:将本地的路由信息发送给邻居,并接收邻居的路由信息。
- 路由策略:基于策略进行路由选择和过滤,决定最佳路径。
- 路由保存:将最佳的路由信息保存在BGP路由表中,用于转发数据包。
4. BGP的自治系统边界路由器(ASBR)自治系统边界路由器是连接不同自治系统的路由器,其核心任务是将本地自治系统的路由信息传递给其他自治系统,并将其他自治系统的路由信息传递到本地自治系统。
ASBR是BGP协议的核心设备。
二、BGP的配置流程BGP的配置涉及到几个重要的步骤,包括配置BGP邻居关系、配置路由策略、配置BGP属性等。
1. 配置BGP邻居关系首先需要配置BGP路由器之间的邻居关系,包括远程路由器的IP 地址、AS号码等相关信息。
举例来说,假设我们要配置与邻居路由器A建立BGP邻居关系,需要在本地路由器上执行如下命令:```router bgp <本地AS号>neighbor <邻居路由器A的IP地址> remote-as <邻居路由器A的AS 号>```2. 配置路由策略在BGP配置过程中,我们可以根据需要配置策略,来控制路由的选择和传播。
bgp正则表达式

bgp正则表达式BGP(边界网关协议)正则表达式是一种通用的规则语言,主要用于定义BGP(边界网关协议)报文中包含内容与其格式的规则解释。
它定义了BGP报文的特定字节范围,其解析通过使用正则表达式之间的匹配关系来完成。
它可以用来描述BGP报文头部,以及有关BGP报文的任何其他信息的格式。
此外,它还可以用来定义BGP报文内容和它们相互之间的关系。
BGP正则表达式的一个重要特征是它具有独特的符号系统,这允许它描述BGP报文中不同字段之间的严格规则和架构。
它还可以使用延伸性符号,大小写字母,数字,空格和特殊字符来描述BGP报文中包含的内容。
此外,它也可以使用不同类型的运算符来定义数据依赖关系,例如“连接”,“分组”和“聚合”等。
此外,BGP正则表达式还为BGP报文的发送和接收提供了框架,允许网络设备和应用程序之间的BGP报文进行快速传输。
它确保BGP 报文的发送和接收都遵守正确格式,以便提供正确的结果。
例如,一台计算机可以使用BGP正则表达式来确保BGP报文发送和接收都遵循相同的格式,以便正确传输数据。
此外,BGP正则表达式还可以用来定义BGP报文头部的特定字节范围,例如地址长度、报文类型、报文大小和报文序列号等。
这样,设备和应用程序就可以使用这些特定字节范围来识别和处理BGP报文。
此外,它还可以使用正则表达式来定义不同的BGP报文类型,例如限制路由,限制公告,属性更改,通知报文,及时刷新报文等,以进一步识别和处理BGP报文。
最后,BGP正则表达式也可以用于Router发现和配置管理。
例如,它可以用来定义路由器的网络,识别路由器的新邻居,以及定义路由器邻居之间的关系等。
它可以进一步用于确定可用路由器和它们之间的相互连接,以及对路由器之间通信使用的路由等。
综上所述,BGP正则表达式是一种通用的规则语言,在BGP报文中应用十分广泛,它可以用来描述BGP报文头部,以及有关BGP报文的任何其他信息的格式。
此外,它也可以用于定义BGP报文内容和它们之间的关系,以及提供BGP报文的传输框架,以及Router发现和配置管理。
BGP一些常用的过滤策略列表.

BGP一些常用的过滤策略列表1.分发列表2.前缀列表3.路径列表/过滤列表4.路由映射5.团体列表6.ORF7.策略列表1.分发列表是BGP过滤中最为简单的一种,可以应用到所有对等体上,也可以应用到特定对等体上,如在BGP进程下,ditribute-list 1 in/out(对所有对等体均有效)nei 1.1.1.1 ditribute-list 1 in/out (只对某个对等体有效)在R2上,过滤前缀2.2.2.0,操作如下:r2(config)#access-list 1 deny 2.2.2.0r2(config)#access-list 1 permit anr2(config-router)#nei 10.1.1.1 distribute-list 1 outdistribute-list,灵活性较差,可分为标准和扩展两种。
要注意的是扩张访问列表用于接口分组过滤时,它有源地址和目的地址,但当与BGP分发列表一起使用时,源地址变成了网络号,目的地址变成网络掩码。
而标准没有此功能例如:access-list 101 permit ip 10.10.0.0 0.0.255.255 255.255.0.0 0.0.0.0网络部分:10.10.0.0 0.0.255.255,表示允许10.10.x.x,x为0-255任意值掩码部分:255.255.0.0 0.0.0.0,表示在通配符中全使用了O,只能匹配16位掩码。
分发列表,前缀列表,过滤列表后面都有一个隐藏命令deny any.2.前缀列表是一种更简单的过滤方法r2(config)#ip prefix-list 1 deny 2.2.2.0/24r2(config)#ip prefix-list 1 permit 0.0.0.0/0 le 32r2(config-router)#nei 10.1.1.1 prefix-list 1 out在前缀列表中,通常用前缀长度进行过滤,当同时使用ge/le属性时,过滤范围就在ge值和le值之间,前缀的掩码必须和所有过滤的路由前缀精确匹配,如ip prefix-list one permit 156.1.1.0/24 ge 25 le 31156.1.1.0/24不在此范围内,/32也不在,此前缀包括2个/25-----156.1.1.0/25,156.1.1.128/254个/26-----156.1.1.0/26,156.1.1.64/26,...,156.1.1.192/268个/27------156.1.1.0/27,156.1.1.32/27,...,156.1.1.224/27....128个/31-----156.1.1.0/31,156.1.1.2/31,...,156.1.1.254/31前缀号---seq,默认从5,10,15,20...,当增加或减少某个前缀列表时,直接增减该前缀号.序列号的检查是从最小的开始。
BGP个人学习笔记

4、Local-Pref(公认自选属性):
只会在同一个AS传递(本地有效),默认为100.
本地优先级用于区分到达同一个目的地的多条路由的优先程度,本地优先级越高的
路由条目,路由优先级越高。当下一跳有多个iBGP路由器时,使用本地优先级来影
响选路
5、MED(可选不可传递属性)
禁用同步后,能减少路由器通过IGP传输的路由,并提高BGP的汇聚速度。
Established:从peer收到keepalive,并重置hold timer。中途如果收到notific
ation,就回到idle状态
BGP更新源:BGP无法自动发现邻居,需要手工指定邻居。只有收到从指定更新源发
出的消息时,邻居才会被建立。如果设置直连接口为更新源时,若接口断掉后,邻
痛AS-Path的路由汇总产生的)
3、Next Hop:
址。默认情况下,一条路由被传递给eBGP邻居时,会将Next-Hop属性改为自己的地
址,也就是建立邻居时使用自己的地址。而在路由传递给iBGP邻居时,不会改变Nex
若为不同AS,则不会比较MED。若要在不同AS时也会比较MED,需要在bgp进程下输
入:bgp always-compare-med
6、Weight
Weight为Cisco私有属性,并只在路由器本地起作用。Weight的范围为0-655365,默
认为0,如果是BGP本地路由,Weight为32768。Weight值越大,路由优先级越大。
^12[0-3]$ ===> 表示匹配120 121 122 123
^12. ===> 表示匹配12 ,即120-129
操纵BGP路由过滤(基于AS-PATH)实例

BGP实验操纵BGP路由过滤(基于AS-PATH)实际案例(配图+详细验证过程)作者:JACKSON 参考:CISCO中文社区感谢JACKSON 支持原创这个案例通过在R3上配置与访问列表结合的正则表达式,以阻止通过BGP发送过来的网络能通过AS300传到R4。
当来自一个特定AS的所有路由都需要过滤时,基于AS路径信息的过滤路由是非常有效的。
如果不使用基于AS路径的过滤,我们不得不一个接一个地列出所有AS300相关的每个路由。
就像上一篇distribute-list中的方法一样。
而AS路径过滤提供了一种高效的替代方法。
//// r1 ////int f2/0ip ad 192.1.1.1 255.255.255.0int f3/0ip ad 193.1.1.1 255.255.255.0int lo0ip ad 1.1.1.1 255.255.255.0int lo1ip ad 2.2.2.2 255.255.255.0router bgp 100no synneighbor 192.1.1.2 remote-as 200neighbor 193.1.1.3 remote-as 200network 1.0.0.0network 1.0.0.0neighbor 193.1.1.3 route-map aspath outneighbor 193.1.1.3 filter-list 1 outaccess-list 1 permit 1.0.0.0 0.255.255.255 //这个acc 1与下边的不同route-map aspath 10match ip ad 1set aspath prepend 300 400route-map aspath 20ip as-path access-list 1 deny _300_ //拒绝任何通过AS300的路由ip as-path access-list 1 permit .*//// r2 ////int f2/0ip ad 192.1.1.2 255.255.255.0int f4/0ip ad 194.1.1.2 255.255.255.0router os 1netw 0.0.0.0 255.255.255.255 a 0passive-interface f2/0router bgp 200no synneighbor 192.1.1.1 remote-as 100neighbor 194.1.1.4 remote-as 200neighbor 195.1.1.3 remote-as 200neighbor 194.1.1.4 next-hop-self//// r3 ////int f3/0ip ad 193.1.1.3 255.255.255.0int f5/0ip ad 195.1.1.3 255.255.255.0router os 1netw 0.0.0.0 255.255.255.255 a 0passive-interface f3/0router bgp 200no synneighbor 193.1.1.1 remote-as 100neighbor 195.1.1.4 remote-as 200neighbor 195.1.1.4 next-hop-selfneighbor 194.1.1.2 remote-as 200//// r4 ////int f4/0ip ad 194.1.1.4 255.255.255.0int f5/0ip ad 195.1.1.4 255.255.255.0int lo0ip ad 4.4.4.4 255.255.255.0router os 1netw 0.0.0.0 255.255.255.255 a 0router bgp 200no synneighbor 194.1.1.2 remote-as 200neighbor 195.1.1.3 remote-as 200netw 4.0.0.0验证始终都是重头戏:验证结果应该是300这条路由在R3上消失,被过滤。
BGP路由过滤

BGP路由过滤有三种方法1route-map2distribute-list3prefix-list上面为BGP AS1,下面为AS2。
R1R2R3指邻居。
R2上面有3个环回接口。
全为32位掩码,在BGP里通告路由信息。
在R4上面做配置来过滤上面的路由信息,在R4上面R4#show ip bgp 看不到上面的路由信息。
22.1.1.1/32的路由信息使用route-map来过滤。
22.22.22.1/32使用prefix-list来过滤。
22.22.1.1/32使用distribute-list来过滤。
在做过滤配置前查看BGP的路由信息:R4(config)#do sho ip bgpBGP table version is4,local router ID is192.168.1.4Status codes:s suppressed,d damped,h history,*valid,>best,i-internal, r RIB-failure,S StaleOrigin codes:i-IGP,e-EGP,?-incompleteNetwork Next Hop Metric LocPrf Weight Path *22.1.1.1/32192.168.1.301i *>192.168.1.101i *22.22.1.1/32192.168.1.301i *>192.168.1.101i *22.22.22.1/32192.168.1.301i *>192.168.1.101iR1:interface FastEthernet0/0ip address192.168.1.1255.255.255.0interface Serial1/0ip address12.1.1.1255.255.255.0router bgp1no synchronizationneighbor12.1.1.2remote-as1neighbor192.168.1.3remote-as1neighbor192.168.1.4remote-as2(上面配置为指邻居)neighbor192.168.1.4next-hop-self(设置自己为)no auto-summaryR2:interface Loopback0ip address22.1.1.1255.255.255.255!interface Loopback1ip address22.22.1.1255.255.255.255!interface Loopback2ip address22.22.22.1255.255.255.255interface Serial1/0ip address23.1.1.1255.255.255.0interface Serial1/1ip address12.1.1.2255.255.255.0router bgp1no synchronizationbgp log-neighbor-changesnetwork22.1.1.1mask255.255.255.255network22.22.1.1mask255.255.255.255network22.22.22.1mask255.255.255.255(通告三条路由信息)neighbor12.1.1.1remote-as1neighbor23.1.1.2remote-as1(指邻居)no auto-summaryR3:interface FastEthernet0/0ip address192.168.1.3255.255.255.0interface Serial1/1ip address23.1.1.2255.255.255.0router bgp1no synchronizationneighbor23.1.1.1remote-as1neighbor192.168.1.1remote-as1neighbor192.168.1.4remote-as2(指邻居)neighbor192.168.1.4next-hop-self(设置自己为)no auto-summaryR4:interface FastEthernet0/0ip address192.168.1.4255.255.255.0router bgp2no synchronizationneighbor192.168.1.1remote-as1neighbor192.168.1.1prefix-list hai in(使用前缀列表hai来过滤22.22.1.1的路由信息)neighbor192.168.1.1route-map zhang in(使用route-map来过滤路由信息22.1.1.1)neighbor192.168.1.3remote-as1(指邻居)neighbor192.168.1.3prefix-list hai inneighbor192.168.1.3route-map zhang indistribute-list feng in(使用分发列表来过滤22.22.22.1的路由信息,一般情况下不指接口,这个情况下指接口,起不到效果)no auto-summaryip prefix-list hai seq5deny22.22.1.1/32(定义前缀列表hai)ip prefix-list hai seq20permit0.0.0.0/0le32(这条必须有,不然其他的路由信息也将被过滤)ip access-list standard feng(定义ACL来抓取22.22.22.1的路由信息)deny22.22.22.1permit anyaccess-list1permit22.1.1.1(定义ACL来抓取22.1.1.1的路由信息)route-map zhang deny10(定义route-map zhang)match ip address1(匹配ACL1)route-map zhang permit20(这条必须有否则过滤掉其他的路由信息)由于上面的拓扑中R1R3R4处于MA网络中所以R4在过滤指邻居时必须都对R1和R3指。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
BGP正则表达式以及基于AS路径的过滤(filter-list)
BGP正则表达式以及基于AS路径的过滤
(filter-list)
配置一个过滤列表相结合的正则表达式,以阻止通过BGP发送来的AS300的路由。
当一个特定AS的所有路由都需要过滤时,基于AS路径信息的过滤是很有用的。
如果不使用基于AS路径的过滤,我们将不得不一个接一个地列出一个前缀上的每个路由。
我们需要区分基于已定义的正则表达式的AS路径并将此信息通过一个过滤器列表应用到一个BGP邻居上。
1、定义与此同时表达式以否定通过AS300的任意路由
///// router c /////
ip as-path access-list 1 deny _300_ //拒绝任何通过AS300的路由
ip as-path access-list 1 permit .*
使用命令show ip bgp regexp 命令来看正则表达式匹配了哪些路由。
注意
2.0.0.0是需要匹配正则表达式(_300_)的唯一路由。
此命令在确定正则表达式覆盖到了你想覆盖的路由时是很有用的。
show ip bgp regexp _300_
*>2.0.0.0 193.1.1.1 .... 100 300 400 i
* I 192.1.1.1 .... 100 300 400 i
对BGP邻居195.1.1.1应用此过滤列表。
//// router c ///////
router bgp 200
neighbor 195.1.1.1 filter-list 1 out
clear ip bgp *
show ip as-path-access-list
as path access list 1
deny _300_
permit .*
在路由器C上用命令show ip bgp filter-list 1显示被配置的BGP过滤器。
//// router c ////
show ip bgp filter-list 1
*> 2.0.0.0 193.1.1.1 0
* i 192.1.1.1 0
在路由器D上用命令show ip bgp显示BGP表。
注意经过路由C到达1.0.0.0的路由不再存在
////// router d/////////
show ip bgp
*>i 1.0.0.0 192.1.1.1
* i 2.0.0.0 193.1.1.1
*>i 192.1.1.1
下面给出正则表达式及其意义
_300_ 匹配所有经过AS300的路由
_300$ 匹配所有源在AS300中的路由
^300_ 仅匹配接收的路由
^300$ 仅指那些源于AS300没有经过任何其他AS的路由
.* 所有路由。