路由选择工具:
访问控制列表:ACL
用于匹配用于匹配路由信息或者数据包的地址,过滤不符合条件的路由信息或数据包
前缀列表:(ip-prefix)
匹配对象为路由信息的目的地址或直接作用于路由对象(gateway)
自制系统路径信息访问列表(AS-path-filter)
仅用于BGP协议,匹配BGP路由信息的自制系统路径域
团体属性列表(community-filter)
仅用于BGP协议,匹配BGP路由信息的自制系统团体域
路由策略(route-policy)
设定匹配规则,由if-math和apply子句组成
访问控制列表:
是由permit|deny语句组成的一些列有序的规则,这些规则根据源地址、目标地址、端口号等描述
按照访问控制列表的用途,可以分为三类:
基本访问控制列表(basic acl)
高级访问控制列表(advanced acl)
基于接口的访问控制列表(interface-based acl)
访问控制列表的使用用途是依靠数字的范围指定的
2000——2999:基本访问控制列表
3000——3999:高级的访问控制列表
1000——1999:基于接口的访问控制列表
配置顺序:
有两种匹配顺序:
配置顺序:
是指按照用户配置ACL规则的先后进行匹配
自动排序:
自动排序使用“深度优先”的原则
“深度优先”规则是吧指定范围最小的语句排在最前面
(注):华为的ACL可以匹配数据包,对数据包过滤;匹配路由前缀,做路由策略
配置:
手动排序
acl 2000
rule permit source x.x.x.x x.x.x.x(掩码通配符)
(当存在多个rule,默认间隔是5,顺序:5/10/15/20…)
自动排序:
acl 2001 match-order auto
rule permit source 10.1.1.0 0.0.0.255
rule permit source 10.1.1.1 0
display this
前缀列表:
前缀列表用来过滤IP前缀,能同时匹配前缀号和前缀长度(AL不能解决这个问题)
签注机列表的性能比访问控制列表高
前缀列表不能用于数据包的过滤
例如 ip ip-perfix test index 10 permit 10.0.0.0 16 greater-equal 24 less-equal 28
前缀号必须是10.0,
前缀长度:24<=前缀长度<=28
配置:
ip ip-perfix NAME index 10 permit 10.1.0.0 16 greater-equal 24 less-equal 25
特殊的前缀列表:
ip ip-perfix A permit 0.0.0.0 0 greater-equal 32(匹配所有的主机路由)
ip ip-perfix A permit 128.0.0.0 2 greater-equal 17()
ip ip-perfix A permit 0.0.0.0 0 less-equal 32 匹配任意路由
ip ip-perfix A permit 0.0.0.0 0 匹配默认路由
ip ip-perfix A permit 0.0.0.0 1 less-equal 24
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_
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
一个route-policy下可以有多个节点,不同的节点号用seq-number标识,不同seq-number各个部分之间的关系是“或”的关系
每个节点下可以有多个if-match和apply子句,if-match子句之间是“与”的关系
允许模式:当路由项满足该节点的所有if-match子句时,将被允许通过该节点的过滤并执行该节点的apply子句,如果路由项不满足该节点的if-match子句,将试图匹配路由策略的下一个节点
拒绝模式:当路由项满足该节点的所有if-match子句时,将被拒绝通过该节点的过滤,并且不会继续下一个节点的测试
if-match 子句可以引用其他的过滤工具
命令:
route-policy NAME permit node
if-match acl 2000
apply ….
if-match….
(一个节点里的if-match关系是与,节点间的关系是或)