路由选择工具
1、访问控制列表(ACL)
- 用于匹配路由信息或者数据包的地址,过滤不符合条件的路由信息或数据包
2、前缀列表(ip-prefix)
- 匹配对象为路由信息的目的地址或直接作用于路由器对象(gateway)
3、自治系统路径信息访问列表( as-path-filter)
- 仅用于BGP协议,匹配BGP路由信息的自治系统路径域
4、团体属性列表( community-filter)
- 仅用于BGP协议,匹配BGP路由信息的自治系统团体域
5、路由策略(route-policy)
- 设定匹配规则,由if-match和apply子句组成
访问控制列表
-
访问控制列表是由permit | deny语句组成的一系列有顺序的规则,这些规则根据源地址、目的地址、端口号等来描述。
-
按照访问控制列表的用途,可以分为三类:
基本的访问控制列表(basic acl)
高级的访问控制列表(advanced acl
基于接口的访问控制列表(interface-based acl) -
访问控制列表的使用用途是依靠数字的范围来指定的
2000~2999:基本的访问控制列表
3000~3999:高级的访问控制列表
1000~1999:基于接口的访问控制列表 -
有两种匹配顺序:
- 配置顺序
- 配置顺序,是指按照用户配置ACL规则的先后进行匹配
- 自动排序
- 自动排序使用“深度优先”的原则,深度优先”规则是把指定范围最小的语句排在最前面
acl number 2001
rule 0 permit source 1.1.1.0 0
在Route-Policy的If-match子句中只支持基本ACL。把1.1.1.0/25也过滤掉需要用前缀列表 - 配置顺序
前缀列表
-
前缀列表用来过滤IP前缀,能同时匹配前缀号和前缀长度
-
前缀列表的性能比访问控制列表高
-
前缀列表不能用于数据包的过滤
例:ip ip-prefix test index 10 permit 10.0.0.0 16 greater-equal 24 less-equal 28
前缀号必须为10.0(16定义的范围)
4<=前缀长度<=28
满足条件的如10.0.1.0/24, 10.0.2.0/25, 10.0.2.192/26ip ip-prefix Pref1 index 10 permit 1.1.1.0 24 greater-equal 24 less-equal 24
IP-Prefix List能够同时匹配IP地址前缀及掩码长度
IP-Prefix List不能用于IP报文的过滤,只能用于路由信息的过滤 。ip ip-prefix test index 10 permit 10.0.0.0 16 greater-equal 24 less-equal 28
IP地址范围:10.0.0.0 – 10.0.x.x
24<= 掩码长度 <=28
例:10.0.1.0/24, 10.0.2.0/25, 10.0.2.192/26
AS-Path-Filter
-
该列表用来过滤BGP的AS-PATH属性
-
AS-PATH属性使用正则表达式来定义
举例
匹配所有AS-PATH属性 ip as-path-filter 10 permit .*
匹配从AS100发起的路由 ip as-path-filter 10 permit 100$
匹配从AS200接收的路由 ip as-path-filter 10 permit ^200
字符 | 符号 | 特殊意义 |
---|---|---|
句号 | . | 匹配任意单字符 |
星号 | * | 匹配模式中 0或更多序列 |
加号 | + | 匹配模式中 1或更多序列 |
问号 | ? | 匹配模式 0或一次出现 |
加字符 | ^ | 匹配输入字符串的开始 |
美元符 | $ | 匹配输入字符串的结束 |
下划线 | _ | 匹配逗号,括字符串的开始和结束空格 |
方括号 | [范围 ] | 表示一个单字符模式的范围 |
连字符 | - | 把一个范围的结束点分开 |
Community-filter
- 团体列表使用团体属性表示和过滤BGP路由
- 团体列表有基本和高级两种
-
基本团体列表用来匹配实际的团体属性值和常量
ip community-filter 1 permit 100:1 100:2
ip community-filter 1 permit 100:1
ip community-filter 1 permit no-export -
高级团体列表可以使用正则表达式
ip community-filter 100 permit ^10
-
Route-policy
- 一个routing policy下可以有多个节点,不同的节点号用seq-number标识,不同seq-number各个部分之间的关系是“或”的关系,按照顺序依次匹配路由策略的节点
-
每个节点下可以有多个if-match和apply子句,if-match子句之间是“与”的关系
-
允许模式:当路由项满足该节点的所有if-match子句时,将被允许通过该节点的过滤并执行该节点的apply子句,如路由项不满足该节点的if-match子句,将试图匹配路由策略的下一个节点
-
拒绝模式:当路由项满足该节点的所有if-match子句时,将被拒绝通过该节点的过滤,并且不会继续下一个节点的测试
-
If-match子句可以引用其它的过滤工具
-