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指。
bgp正则表达式
bgp正则表达式本文旨在研究和探讨BGP正则表达式,它是一种特殊类型的网络术语,于定义网络路由规则,特别适用于实现路由表分析和路由收集。
在本文中,我们将深入探讨BGP正则表达式及其实现,以及它在网络编程应用中的作用。
1. 什么是BGP正则表达式?BGP正则表达式(Border Gateway Protocol)是一种特定格式的表达式,用于定义网络路由规则。
它的应用特别广泛,能够为路由表分析和路由收集提供支持。
这种表达式可以用于指定网关路由表中的某个模式,从而使网络管理人员可以更加有效率地建立和维护网络连接。
2. BGP正则表达式的实现BGP正则表达式的实现需要使用正则表达式引擎。
正则表达式引擎可以对特定的路由表模式进行匹配,从而实现BGP正则表达式的功能。
其中,正则表达式引擎主要由两部分组成:搜索算法和匹配算法。
搜索算法是计算机程序员使用正则表达式引擎时所必须实现的第一步,它是一种从给定的路由表中提取BGP正则表达式的算法。
这一算法可以帮助程序员从复杂的网络路由表中提取相应的模式,从而更加有效率地完成路由表分析和路由收集。
搜索算法所提取出的模式必须由匹配算法进行处理,以实现BGP 正则表达式的功能。
匹配算法是一种比较模式、判断特征和确定分析结果的算法,主要通过搜索算法从路由表搜索出的模式进行比较,以确定它们是否符合BGP正则表达式的要求。
3. BGP正则表达式在网络编程中的应用BGP正则表达式在网络编程应用中有很多用途。
它可以帮助程序员更加容易地实现网络路由表的管理程序,帮助搜索特定类型的路由模式,辅助网络编程解决方案的开发,并且可以提高网络编程应用的稳定性、可靠性和执行速度。
因此,BGP正则表达式不仅能够加快网络编程应用的实现,还有助于提高网络应用的可靠性和稳定性。
考虑到BGP正则表达式所具有的多种优势,它已经成为网络编程应用中不可缺少的一部分。
综上所述,BGP正则表达式是一种特定格式的表达式,用于定义网络路由规则,特别适用于实现路由表分析和路由收集。
在BGP中使用正则表达式
您能使用在ip as-path access-list命令的Regular Expression与边界网关协议(BGP)。 本文档介绍使用正则表达式的方案。 有关 正则表达式的更多一般信息,请参阅有关正则表达式的 Cisco 文档。
前提条件
需求
本文档的读者应具备以下方面的知识:
基本 BGP 配置。 有关更多信息,请参阅 BGP 案例分析和配置 BGP。
在 BGP 中使用正则表达式
内容
前言 前提条件
需求 使用的组件 惯例 网络环境 只允许起源于 AS4 的网络进入路由器 1 只允许通过 AS4 的网络输入 AS3 拒绝起源于 AS4 的网络输入 AS3 但允许所有其它网络这么做 只允许起源于 AS4 的网络和直接连接到 AS4 的 AS 进入路由器 1 相关信息
这样可确保只有源自 AS 4 的网络允许进入路由器 1。
只允许通过 AS4 的网络输入 AS3
如果希望仅允许已通过 AS 4 的网络从路由器 3 进入 AS 3,则可以在路由器 3 应用一个入站过滤器。
ip as-path access-list 1 permit _4_ router bgp 3 neighbor 2.2.2.2 remote-as 1 neighbor 2.2.2.2 route-map foo in route-map foo permit 10 match as-path 1
ip as-path access-list 1 deny _4$ ip as-path access-list 1 permit .* router bgp 3 neighbor 2.2.2.2 remote-as 1 neighbor 2.2.2.2 route-map foo in route-map foo permit 10 match as-path 1
BGP命令手册-v1.2
临时目录命令aggregate-address (2)命令bgp always-compare-med (3)命令bgp bestpath as-path ignore (3)命令bgp bestpath compare-routerid (4)命令bgp bestpath med confed (4)命令bgp bestpath med missing-as-worst (4)命令bgp client-to-client reflection (4)命令bgp cluster-id (5)命令bgp confederation identifier (5)命令bgp confederation peers (6)命令bgp dampening (6)命令bgp default local-preference (7)命令bgp deterministic-med (7)命令clear ip bgp (7)命令clear ip bgp peer-group (8)命令clear ip bgp dampening (8)命令clear ip bgp flap-statistics (8)命令bgp enforce-first-as (9)命令bgp network import-check (9)命令bgp router-id (9)命令debug bgp (10)命令default-metric (10)命令distance bgp (10)命令ip as-path access-list (11)命令ip community -list (11)命令match as-path (12)命令match community-list (12)命令neighbor peer-group(创建) (13)命令neighbor peer-group(邻居加入) (13)命令neighbor capability route-refresh (14)命令neighbor capability-negotiate (14)命令neighbor default-originate (14)命令neighbor description (15)命令neighbor distribute-list (15)命令neighbor ebgp-multihop (16)命令neighbor filter-list (16)命令neighbor maximum-prefix (16)命令neighbor next-hop-self (17)命令neighbor override-capability (17)命令neighbor prefix-list (17)命令neighbor remote-as (18)命令neighbor route-map (18)命令neighbor route-reflector-client (19)命令neighbor send-community (20)命令neighbor shutdown (20)命令neighbor strict-capability-match (20)命令neighbor timers (21)命令neighbor timers connect (21)命令neighbor transparent-as (21)命令neighbor transparent-nexthop (22)命令neighbor weight (22)命令network (22)命令network backdoor (23)命令redistribute (23)命令router bgp (24)命令set aggregator as (24)命令set as-path prepend (24)命令set atomic-aggregate (25)命令set community (25)命令set community-additive (26)命令set community-delete (26)命令set local-preference (27)命令set origin (27)命令set originator-id (28)命令set weight (28)命令show debugging bgp (28)命令show ip bgp (29)命令show ip bgp community (29)命令show ip bgp community-list (29)命令show ip bgp dampened-paths (30)命令show ip bgp filter-list (30)命令show ip bgp flap-statistics (31)命令show ip bgp neighbors (31)命令show ip bgp neighbors advertised-routes (31)命令show ip bgp neighbors routes (31)命令show ip bgp peer-group (32)命令show ip bgp prefix-list (32)命令show ip bgp regexp (32)命令show ip bgp summary (33)命令synchronization (33)命令timers bgp (34)命令aggregate-address命令作用:配置聚合地址。
华为BGP路由发布及过滤配置说明
配置BGP过滤器充分利用BGP过滤器,可以灵活地对发布的路由进行过滤。
背景信息目前提供以下六种过滤器供BGP使用:∙访问控制列表ACL(Access Control List)∙地址前缀列表(IP-Prefix List)∙AS路径过滤器(AS-Path-Filter)∙团体属性过滤器(Community-Filter)∙扩展团体属性过滤器(Extcommunity-Filter)∙Route-Policy操作步骤∙配置访问控制列表ACL访问控制列表ACL是由permit和deny语句组成的一系列有顺序的规则,这些规则根据数据包的源地址、目的地址、端口号等来描述。
ACL通过这些规则对数据包进行分类,这些规则应用到路由器接口上,路由器根据这些规则判断哪些数据包可以接收,哪些数据包需要拒绝。
ACL的有关配置请参见《HUAWEI NetEngine5000E 核心路由器配置指南-IP业务》中的描述。
访问控制列表ACL可以做为Route-policy的一个匹配条件,也可以在filter-policy{ acl-number| acl-name acl-name} export[protocol[ process-id] ]或peer{ group-name| ipv4-address} filter-policy{ acl-number| acl-name acl-name} export命令中直接使用。
∙配置地址前缀列表地址前缀列表是一种针对路由目的地址信息做过滤的工具,它使用名字作为地址前缀列表的标识。
地址前缀列表比较灵活,可以实现精确过滤,比如,可以对某一条路由或某一网段的路由进行过滤。
但是当需要过滤的路由数量较大,且没有相同的前缀时,配置地址前缀列表会比较繁琐。
地址前缀列表可以做为Route-policy的一个匹配条件,也可以在filter-policy ip-prefix ip-prefix-name export[ protocol[process-id] ]或peer{ group-name| ipv4-address} ip-prefix ip-prefix-name export 命令中直接使用。
浅谈as-path及基于as-path的路由过滤
浅谈as-path及基于as-path的路由过滤摘要:本文主要针对BGP as-path属性和as-path filter的概念、配置和使用做了介绍,重点讲解AS正则表达式的配置和匹配关系,并对使用as-path access-list进行BGP路由过滤的应用举例进行了简单介绍。
关键词:BGP as-path access-list 路由过滤缩略语:BGP Border Gateway Protocol 边界网关协议AS Autonomous System 自治系统随着NE路由器、S8016等高端设备的网上位置不断提升,很多应用中都是作为BGP路由器来承担路由交换的核心任务。
在BGP的路由策略实施中,as-path、as-path access-list是最常使用过滤方法之一。
as-path是BGP协议中的一个非常重要的路径属性(Path attribute),它顺序记录了一条BGP路由从源AS到目的AS所经过的路径(由源到目的所途径的所有as-number组成一个字符串,不包含目的as-number;as-number-自治系统号);每一条BGP 路由都携带as-path属性,所以我们可以通过对as-path属性的过滤来灵活实现对BGP路由的过滤。
as-path access-list主要应用在以下几个方面:♦对BGP路由的收发过滤,使用neighbor A.B.C.D filter-list in/out。
♦限制仅本地(AS)产生的路由允许向自治系统外发送,避免成为Transit AS,as-path必须为空。
♦基于as-path中的特定as-number选择接收/发送路由。
♦对BGP路由其他属性的设置、修该,使用route-map、match as-path 、set 等命令。
1. as-number 自治系统号在路由协议中,as-number用于标识不同的自治系统,在as-path中同样使用as-number记录经过的自治系统,在BGP中自治系统号是一个32bit的数字(1-65535)。
关于BGP_AS-PATH的正则表达式
•< 上一页下一页>关于BGP AS-PATH的正则表达式. 匹配任意单个字符,包括空格* 匹配零个或多个模式的出现+ 匹配一个或多个模式的出现匹配零个或多个模式的出现^ 匹配字符的开始$ 匹配字符的结束_ 匹配逗号,左大括号,右大括号,左小括号,右小括号例:c* 匹配行中任意多个c的出现,包括不出现cc+ 匹配行中一个或多个字符c的出现ca?b 匹配cb或者cab[Aa] 匹配单个字符A或a,[1-35-7] 匹配指为1,2,3,4,5,6,7的单个字符^[bB] 匹配以b或B开头的行[2-5]$ 匹配以2,3,4,5结尾的行。
在方括号中的脱字符号(^)用于反转字符的意义[^1-3] 匹配字符0和4-9路由含义^$ 从该as起源的路由^2_ 所有从直接相连的位于as 2的邻居来的路由^2$ 源于as2中的邻居路由_3_ 路由包含as 3{1 2} 使用as-path 选项聚合路由,从as 1和as 2来的路由形成聚合(65530) 与对等体形式联盟,该对等体在as 65530as-path路径过滤器的格式为:ip as-path access-list <#> permit <正则表达式>ip as-path access-list <#> deny <正则表达式>理解:^ 标志一个表达式的开始,如果不用这个字符,那么默认就没有开始的限制了。
如:当使用permit ^254,那么表示的意思就是和本地相连的AS是254传过来的路由全部都允许了。
如果使用简单的permit 254,那么就是只要是经过了AS 254的路由,全部都被允许了,其实和permit _254_表达的意思相同。
$ 标志一个表达式的结束,如果不用这个字符,那么默认就没有结束的限制了。
如:当使用了permit 254$,那么表示的意思就是起源于AS 254的路由全部被接受,如果permit 254那么见上面的解释。
as号和bgp路由表里转换规则
as号和bgp路由表里转换规则AS号和BGP路由表之间的转换规则是BGP(边界网关协议)中的重要组成部分。
BGP是一种用于交换路由信息的协议,它允许不同的自治系统(AS)在互联网上互相通信。
AS号是互联网上用来唯一标识一个自治系统的数字。
在BGP中,AS号在路由器之间传递,以确定最佳的路径来转发数据包。
BGP路由表是一个记录了可用路由的列表,它包含了通过BGP协议学习到的路由信息。
转换规则是为了确保AS号和BGP路由表之间的兼容性和正确性。
其中一些重要的转换规则包括:1. AS号的转换规则:- AS号在BGP路由表中以AS_PATH属性的形式存在,用于描述路由经过的自治系统。
AS号的转换涉及到AS_PATH属性的修改,以确保转发路径的准确性。
- AS号转换规则还包括使用BGP community属性来限制或控制路由的传播。
这可以通过特定的AS号向特定的自治系统传播路由或通过修改BGP community属性来限制路由的传播路径。
2. BGP路由表的转换规则:- BGP路由表中的转换规则主要是通过BGP路由器进行的。
BGP路由器将学习到的路由信息与本地配置进行匹配,并根据特定的转换规则来选择和转发最佳路径。
- 转换规则可以是基于路由的AS号或其他属性,如路由的起始点、终点、路径优先级等。
BGP路由器可以使用这些规则来确定最佳路径,并将其更新到BGP路由表中。
AS号和BGP路由表之间的转换规则是确保自治系统之间通过BGP协议进行路由信息交换和转发的关键。
这些规则涉及到AS号的修改、BGP community属性的使用以及BGP路由器的配置和策略。
通过严格遵循这些转换规则,可以确保网络的稳定性和可靠性。
bgp 正则表达式
bgp 正则表达式【原创版】目录1.BGP 简介2.BGP 正则表达式的概念3.BGP 正则表达式的应用4.BGP 正则表达式的语法规则5.示例与实践正文【1.BGP 简介】BGP(Border Gateway Protocol,边界网关协议)是一种用于在不同的自治系统(AS)之间交换路由信息的协议。
BGP 主要用于互联网中的路由选择,它可以在不同的网络之间转发数据包,确保数据包能够有效地到达目标网络。
【2.BGP 正则表达式的概念】BGP 正则表达式是一种用于匹配 BGP 路由信息的文本模式。
通过使用正则表达式,可以有效地对 BGP 路由信息进行过滤、分析和处理。
【3.BGP 正则表达式的应用】BGP 正则表达式在实际应用中具有广泛的用途,例如:- 路由策略:通过匹配特定的 BGP 路由信息,可以制定相应的路由策略,优化网络路由。
- 路由过滤:使用正则表达式可以对收到的 BGP 路由信息进行过滤,仅保留需要的路由信息。
- 数据分析:对 BGP 路由信息进行正则表达式匹配,可以提取感兴趣的数据,便于进行分析和监控。
【4.BGP 正则表达式的语法规则】BGP 正则表达式的语法规则遵循正则表达式的一般规范,同时考虑到BGP 路由信息的特性,具体如下:- 路由前缀:匹配 IP 地址的前缀部分,例如:192.168.0.0/16。
- 协议:匹配 BGP 路由协议类型,例如:IGP、EGP、IGP_MED、EGP_MED 等。
- 标签:匹配 BGP 路由标签,例如:标签名称=标签值。
- 社区:匹配 BGP 路由社区属性,例如:community=100:1、community=100:2 等。
- 其他属性:匹配其他 BGP 路由属性,例如:origin=IGP、origin=EGP 等。
【5.示例与实践】假设我们有以下 BGP 路由信息:```192.168.0.0/16 route-policy P1172.16.0.0/12 route-policy P2```我们可以使用正则表达式来匹配这些路由信息:```^(?:d+.d+.d+.d+)/d+ route-policy w+```上述正则表达式匹配成功后,将返回两组匹配结果,分别对应上述两组路由信息。
操纵BGP路由过滤(基于AS路径)案例
操纵BGP路由过滤(基于AS路径)案例这个案例通过在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中过滤掉私有AS编号的配置方法
在BGP中过滤掉私有AS编号的配置方法海外用户工程中心黄俊介绍这篇文章将会简单的介绍如何从BGP系统中过滤掉私有自治系统编号我们经常使用私有的AS编号来将一个大型的自治系统划分成多个通过eBGP连接的小自治系统当你和一个单一的ISP进行连接的时候为了保证路由在INTERNET中传递的正确性在BGP的路由更新报文发送到整个BGP的全连接中之前私有AS编号范围从64512到65535下面我们将结合具体的配置实例来说明如何去除BGP系统中的私有AS编号图一各路由器具体配置如下endRouter 2Current configuration:interface Serial0ip address 140.4.4.4 255.255.255.0!interface Ethernet1ip address 191.10.10.1 255.255.255.0interface Serial1ip address 141.108.8.3 255.255.255.0!router bgp 5network 191.10.10.0 mask 255.255.255.0neighbor 140.4.4.5 remote-as 65000neighbor 141.108.8.2 remote-as 1neighbor 141.108.8.2 remove-private-ASendRouter 1Current configuration:interface Serial0ip address 141.108.8.2 255.255.255.0!router bgp 1neighbor 141.108.8.3 remote-as 5end使用Show命令来观察各个路由器的路由表中的路由状况*> 3.3.3.0/24 140.4.4.5 0 0 65000 i*> 191.10.10.0/24 0.0.0.0 0 32768 iR1#show ip bgpBGP table version is 8, local router ID is 141.108.8.2Status codes: s suppressed, d damped, h history, * valid, > best, i - internalOrigin codes: i - IGP, e - EGP, ? - incompleteNetwork Next Hop metric LocPrf Weight Path*> 3.3.3.0/24 141.108.8.3 0 5 i*> 191.10.10.0/24 141.108.8.3 0 0 5 iRouter2的BGP路由表显示network 3.3.3.0起源自AS65000这是因为在Router2上使用了remove-private-as 命令从而阻止了私有的AS编号向INTERNET中扩散AS1(router 1)认为network 3.3.3.0/24这个网络起源自编号为5的自治系统通常这个命令配置在外部的BGP邻居上这个私有的AS编号将被过滤ABÄÇôBGP会过滤掉这些私有编号如果在AS_PATH路径中既包含私有的又包含公有的AS编号DÄÇôBGP也不会将私有的 AS编号进行过滤如果AS_PATH 包含联盟BGP才会将私有的AS编号清除。
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...,当增加或减少某个前缀列表时,直接增减该前缀号.序列号的检查是从最小的开始。
FAST路由器的BGP的正确应用方法
FAST路由器的BGP的正确应用方法FAST路由器的BGP的正确应用方法一、Internet路由表中的BGP路由条目,目前规模已经达到十几万。
在面对庞大的Internet路由表时,我们免不了需要进行路由过滤。
在处理如此大规模的路由表时,如果利用地址前缀去过滤BGP路由,那么一来有可能配置比较繁琐,二来且有新的路由加入不好维护,所以提出了利用AS_PATH进行BGP路由过滤的办法。
二、由于Internet核心AS的分布都是有记录的所以利用AS的过滤更有针对性,例如可以使用AS_PATH作过滤,解决过滤从某个AS_PATH始发的.全部路由,只需一个AS_PATH列表即可,当然利用AS_PATH过滤可以解决的问题远不仅如此,这还需要我们在下文中慢慢体会。
三、AS_PATH与正则表达式介绍,AS_PATH,公认必遵属性。
这个属性在传递UPDATE报文中标识了到达一个目的地所经过的AS 信息,AS_PATH有4种类型:AS_SEQUENCE(用于路由AS路径记录);AS_SET(用于聚合路由的明细路由AS集合);AS_CONFED_SEQUENCE(用于联盟路由AS路径记录);AS_CONFED_SET(用于联盟聚合路由)。
四、从AS_PATH的显示格式看出,AS_PATH可以看成一个由数字0-9,“()”,“[]”,“{}”和空格组成的字符串。
当然例子中是最复杂的格式,实际应用中并不是所有字段都有填充的,当我们想利用匹配AS_PATH做路由过滤的时候,怎么实现对AS_PATH匹配呢?根据之前分析过AS_PATH可以看作是字符串的这一特点,我们找到了处理字符串的强大工具正则表达式这把利剑来帮我们实现匹配,这样正则表达式就在BGP的舞台登场了。
五、正则表达式是按照一定的模板来匹配字符串的公式。
在BGP中,正则表达式可以应用于基于AS_PATH的ACL,根据BGP路由的AS_PATH属性决定路由的接受与拒绝。
- 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的路由
.* 所有路由。