1 路由选择工具--ACL
ACL访问控制列表:ACL是由permit或deny语句组成的一些列有顺序规则的集合。
ip-prefix前缀列表:将路由条目与前缀过滤列表进行匹配,让后根据定义的匹配模式进行过滤,达成路由筛选的目的;ip-prefix不能用来过滤数据包,只能过滤路由信息;
as-path-filter AS路径过滤器:BGP中针对自治系统路径指定匹配条件,仅应用于BGP协议;
community-filter团体属性过滤:BGP中可以携带一个或多个团体属性,针对团体属性进行过滤或指定匹配条件
(1)ACL的规则管理
每个ACL作为一个规则组,可以包含多个规则。规则通过规则ID(rule-id)来标识,规则ID 可以由用户进行配置,也可以由系统自动根据步长生成。一个ACL中所有规则均按照规则ID从小到大排序。
规则ID 之间会留下一定的间隔。如果不指定规则ID 时,具体间隔大小由“ACL 的步长”来设定。用户可以根据规则ID 方便地把新规则插入到规则组的某一位置。ACL的规则管理,报文到达设备时,查找引擎从报文中取出信息组成查找键值,键值与ACL中的规则进行匹配,只要有一条规则和报文匹配,就停止查找,称为命中规则。
查找完所有规则,如果没有符合条件的规则,称为未命中规则。
华为ACL缺省隐含最后一条规则为permit。
(2)ACL分类
ACL根据命名方式分为:数字型ACL和命名型ACL
安装功能分类:
基于接口的ACL(编号范围1000-1999),根据报文的入接口定义规则,实现对报文的匹配过滤。通过命令traffic-filter调用ACL。
基本ACL(编号范围2000-2999),根据报文的源IP地址、VPN实例、分片标记和时间段来定义规则
高级ACL(编号范围3000-3999),根据报文的源IP地址、目的IP地址、IP优先级、ToS、DSCP、IP协议类型、ICMP协议类型、TCP源端口/目的端口、UDP源端口/目的端口号等来定义规则。
二层ACL(编号范围4000-4999),根据报文的以太帧头信息来定义规则,如MAC地址、以太帧协议类型等。
(3)ACL匹配顺序
匹配顺序(config):按照ACL规则的编号按照从小到大的顺序进行匹配。
自动排序(auto):使用“深度优先”的原则进行匹配,常用ACL的匹配顺序如下:
(4)ACL其他特性
ACL对分片报文的支持:
传统的包过滤并不处理所有IP 报文分片,而是只对第一个(首片)分片报文进行匹配处理,后续分片一律放行。这样,网络攻击者可能构造后续的分片报文进行流量攻击,带来安全隐患。
在ACL规则中,通过参数fragment来标识该ACL规则对所有分片报文有效,而对非分片报文则忽略此规则;通过参数none-first-fragment来标识该规则仅对非首片分片报文有效,而对非分片报文和首片分片报文则忽略此规则。不包含参数fragment或none-first-fragment的配置规则项对所有报文(包括分片报文)均有效。
ACL生效时间段:
可以使ACL规则需要在某个或某些特定时间内生效,而在其他时间段则不生效。
2 路由选择工具—ip-prefix
(1)用于过滤IP前缀,能同时匹配前缀号和掩码长度;
(2)不能用于数据包过滤;
(3)缺省情况下,存在最后一条默认匹配模式为deny;
(4)当引用的前缀过滤列表不存在时,默认匹配模式为permit;
每个地址前缀列表可以包含多个IP-Prefix条目,每个IP-Prefix条目对应一个索引号(index)。路由将按照索引号从小到大依次检查IP-Prefix列表,任意一个IP-Prefix匹配成功,将不再检查其余项。若所有IP-Prefix都匹配失败,路由信息将被过滤。
根据匹配的前缀不同,前缀过滤列表可以进行精确匹配,也可以进行在一定掩码长度范围内匹配。可以通过配置关键字greater-equal和less-equal指定待匹配的前缀掩码长度范围。如果没有配置关键字greater-equal或less-equal,前缀过滤列表进行精确匹配,即只匹配掩码长度为前缀过滤列表掩码长度的相同IP地址路由;如果只配置了关键字greater-equal,则待匹配的掩码长度范围为从greater-equal指定值到32 位长度;如果只匹配了关键字less-equal,则待匹配的掩码长度范围为从指定的掩码到关键字less-equal指定值。greater-equal-value 与 less-equal-value 的取值限制: mask-length <= greater-equal-value <= less-equal-value <=32。
当所有前缀过滤列表均未匹配时,缺省情况下,存在最后一条默认匹配模式为deny。
当引用的前缀过滤列表不存在时,默认匹配模式为permit。
举例:
ip ip-prefix filter1 index 10 permit 1.1.1.0 24 //精确匹配,只有1.1.1.0/24才能permit
ip ip-prefix filter1 index 10 permit 1.1.1.0 24 less-equal 32 //掩码范围24-32之间的网络1.1.1.0才能permit
ip ip-prefix filter1 index 10 permit 1.1.1.0 24 greater-equal 26 //掩码范围26-32之间的网络1.1.1.0才能permit
ip ip-prefix filter1 index 10 permit 0.0.0.0 0 greater-equal 8 less-equal 32 //所有掩码长度在8到32的路由都被permit
3 路由选择工具—as-path-filter
(1)以BGP中的AS_Path属性为匹配条件
(2)使用正则表达式进行定义
举例:
ip as-path-filter 10 permit .* //匹配所有AS-PATH属性
ip as-path-filter 10 permit _100$ //匹配从AS100发起的路由
ip as-path-filter 10 permit ^100_ //匹配从AS100接收的路由
ip as-path-filter 10 permit _100|200$ //匹配从AS100或200发起的路由
AS路径过滤器是将BGP中的AS_Path属性作为匹配条件,只有BGP在收发路由的时候才能使用。由于AS_Path属性记录AS号是将最后经历的AS号放在AS_Path记录中的最左侧,所以在配置as-path-filter时需要格外注意。
如果一条路由起源于AS100,然后依次经过AS300, AS200,AS500,最后到达AS600。那么在AS600里,路由的AS-PATH属性表示为(500 200 300 100)。
4 路由选择工具—community-filter
以BGP中的community属性为匹配条件,示例:
ip community-filter 1 permit 100:1 //匹配community属性为100:1
ip community-filter 1 permit no-export //匹配community属性为no-export
团体属性包括基本basic团体属性和extended团体属性,自定义团体属性和公认团体属性均属于basic团体属性,MPLS VPN中的RT和SOO均属于extended团体属性。
5 路由策略
路由策略:
(1)主要用于路由过滤和路由属性设置等,从而影响流量所经过的路径
(2)主要通过route-policy
路由策略常用于如下场景:
(1)控制路由的引入:
• 在对路由做相互引入时,为了防止次优路径或者环路,可以使用路由策略加以解决。
(2)控制路由的接收和发布:
• 根据网络需求,接收或者发布特定的路由。
(3)设置特定路由的属性:
• 可以通过路由策略修改路由的属性,以对网络进行优化、调整
路由策略原理
一个Route-Policy由多个节点构成,路由进入路由策略后,按节点序号从小到大依次检查各个节点是否匹配。一个节点包括多个if-match和apply子句。if-match子句用来定义该节点的匹配条件,apply子句用来定义通过过滤的路由行为。if-match子句的过滤规则关系是“与”,即该节点的所有if-match子句都必须匹配。Route-Policy节点间的过滤关系是“或”,即只要通过了一个节点的过滤,就可通过该Route-Policy。如果没有通过任何一个节点的过滤,路由信息将无法通过该Route-Policy。
对于同一个Route-Policy节点,在匹配的过程中,各个if-match子句间是“与”的关系,即路由信息必须同时满足所有匹配条件,才可以执行apply子句的动作。但命令if-match route-type和if-match interface除外,这两个命令的各自if-match子句间是“或”的关系,与其它命令的if-match子句间仍是“与”的关系。
fIlter-policy:
(1)出方向过滤:只过滤路由信息,不能过滤链路状态信息,在OSPF中的ASR/ASBR上,可以过滤LSA3、LSA5和LSA7;
(2)入方向过滤:对于链路状态路由协议,仅仅是不把路由加入到路由表中;对于OSPF和IS-IS,代表该路由的LSA仍然会在OSPF域或者IS-IS域内传递;
(3)过滤从其他协议引入的路由:只在出方向上过滤;