对发布的路由应用路由过滤器
在路由协议中应用路由策略相关的过滤器,过滤发布的路由。
应用环境
在定义了路由策略相关的过滤器(地址前缀列表、ACL、Route-Policy等)后,需要在协议中引入这些过滤器。应用各协议中的filter-policy命令引用ACL和地址前缀列表,对发布的路由进行过滤,仅发布满足条件的部分路由。
过滤发布路由的命令是filter-policy export。对于距离矢量协议和链路状态协议,filter-policy命令的操作过程是不同的:
距离矢量协议
距离矢量协议是基于路由表生成路由的。因此过滤器会影响从邻居接收的路由和向邻居发布的路由。
链路状态协议
链路状态路由协议是基于链路状态数据库来生成路由的,filter-policy不影响链路状态通告或链路状态数据库的完整性,因此在接收和发布时的影响是不同的。
在发布路由时,filter-policy export可以用来控制是否发布协议引入路由(如引入的RIP路由)。如果不通过filter-policy import命令引入则不会将LSA/LSP加入到LSDB中,但不影响向其他设备发布的链路状态通告。
BGP具有强大的过滤功能,BGP相关的策略配置请参见“BGP配置”。
在路由协议RIP、OSPF、IS-IS、BGP中,都有相应的filter-policy和import-route命令及其应用,请参见各章节中相关配置。
配置RIP对发布的路由进行过滤
通过对要发布的路由设置路由信息的过滤条件,只有通过过滤的信息才能被发布出去。
操作步骤
- 执行命令system-view,进入系统视图。
- 执行命令rip [ process-id ],创建RIP进程并进入RIP视图。
- 配置过滤发布的路由信息。
根据实际情况选择其中之一:
- 匹配基本ACL:
- 执行命令filter-policy { acl-number | acl-name acl-name } export [ protocol process-id | interface-type interface-number ]。
- 执行命令quit,返回系统视图。
- 执行命令acl { name basic-acl-name { basic | [ basic ] number basic-acl-number } | [ number ] basic-acl-number } [ match-order { config | auto } ],进入ACL视图。
执行命令rule [ rule-id ] [ name rule-name ] { deny | permit } [ fragment-type { fragment | non-fragment | non-subseq | fragment-subseq | fragment-spe-first } | source { source-ip-address { source-wildcard | 0 | src-netmask } | any } | time-range time-name | vpn-instance vpn-instance-name ] *,配置ACL规则。
对于命名型ACL,使用rule命令配置过滤规则时,只有source参数指定的源地址范围和time-range参数指定的时间段对配置规则有效。
使用路由协议下的Filter-Policy策略过滤路由时:如果ACL规则的动作是permit时,则该路由被系统接收或发布;
如果ACL规则的动作是deny时,则该路由不会被系统接收或发布;
如果路由的网段不在ACL规则指定的范围内,则该路由默认不被系统接收或发布;
如果ACL中不存在规则,那么引用该ACL的路由策略中涉及的所有路由不被系统接收或发布;
路由过滤可分为黑名单和白名单方式:
当ACL规则的匹配顺序为配置方式时,系统根据规则编号从小到大的顺序进行匹配。
黑名单方式可以在同一个ACL中先配置动作是deny的编号较小的规则,用于过滤掉不希望被系统接收或发布的路由,然后再配置动作是permit的编号较大的规则,用于接收或发布其他路由。
白名单方式可以在同一个ACL中先配置动作是permit的编号较小的规则,用于允许希望被系统接收或发布的路由,然后再配置动作是deny的编号较大的规则,用于过滤掉其他不希望被系统接收或发布的路由。
匹配地址前缀列表:
执行命令filter-policy ip-prefix ip-prefix-name export [ protocol process-id | interface-type interface-number ]。
- 匹配基本ACL:
- 执行命令commit,提交配置。
配置OSPF对发布的路由进行过滤
通过对OSPF引入的路由设置路由信息的过滤条件,只有通过过滤的信息才能被发布出去。
操作步骤
- 执行命令system-view,进入系统视图。
- 执行命令ospf [ process-id ],进入OSPF进程视图。
- 配置过滤发布的路由信息。
根据实际情况选择其中之一:
- 匹配基本ACL:
- 执行命令filter-policy { acl-number | acl-name acl-name } export [ direct | static | unr | bgp | { rip | isis | ospf } [ process-id ] ],设置对引入的路由在向外发布时进行过滤。
- 执行命令quit,返回系统视图。
- 执行命令acl { name basic-acl-name { basic | [ basic ] number basic-acl-number } | [ number ] basic-acl-number } [ match-order { config | auto } ],进入ACL视图。
执行命令rule [ rule-id ] [ name rule-name ] { deny | permit } [ fragment-type { fragment | non-fragment | non-subseq | fragment-subseq | fragment-spe-first } | source { source-ip-address { source-wildcard | 0 | src-netmask } | any } | time-range time-name | vpn-instance vpn-instance-name ] *,配置ACL规则。
对于命名型ACL,使用rule命令配置过滤规则时,只有source参数指定的源地址范围和time-range参数指定的时间段对配置规则有效。
使用路由协议下的Filter-Policy策略过滤路由时:如果ACL规则的动作是permit时,则该路由被系统接收或发布;
如果ACL规则的动作是deny时,则该路由不会被系统接收或发布;
如果路由的网段不在ACL规则指定的范围内,则该路由默认不被系统接收或发布;
如果ACL中不存在规则,那么引用该ACL的路由策略中涉及的所有路由不被系统接收或发布;
路由过滤可分为黑名单和白名单方式:
当ACL规则的匹配顺序为配置方式时,系统根据规则编号从小到大的顺序进行匹配。
黑名单方式可以在同一个ACL中先配置动作是deny的编号较小的规则,用于过滤掉不希望被系统接收或发布的路由,然后再配置动作是permit的编号较大的规则,用于接收或发布其他路由。
白名单方式可以在同一个ACL中先配置动作是permit的编号较小的规则,用于允许希望被系统接收或发布的路由,然后再配置动作是deny的编号较大的规则,用于过滤掉其他不希望被系统接收或发布的路由。
匹配地址前缀列表:
执行命令filter-policy ip-prefix ip-prefix-name export [ direct | static | unr | bgp | { rip | isis | ospf } [ process-id ] ],设置对引入的路由在向外发布时进行过滤。
匹配路由策略:
执行命令filter-policy route-policy route-policy-name export [ direct | static | unr | bgp | { rip | isis | ospf } [ process-id ] ],设置对引入的路由在向外发布时进行过滤。
- 匹配基本ACL:
- 执行命令commit,提交配置。
配置IS-IS对发布的路由信息进行过滤
通过配置IS-IS对发布的路由信息进行过滤,有效控制网络中IS-IS路由信息的数量。
操作步骤
- 执行命令system-view,进入系统视图。
- 执行命令isis [ process-id ],进入IS-IS视图。
- 配置过滤发布的路由信息。
根据实际情况选择其中之一:
- 匹配基本ACL:
- 执行命令filter-policy { acl-number | acl-name acl-name } export [ direct | static | rip process-id | bgp | ospf process-id | isis process-id | unr ]。
- 执行命令quit,返回系统视图。
- 执行命令acl { name basic-acl-name { basic | [ basic ] number basic-acl-number } | [ number ] basic-acl-number } [ match-order { config | auto } ],进入ACL视图。
执行命令rule [ rule-id ] [ name rule-name ] { deny | permit } [ fragment-type { fragment | non-fragment | non-subseq | fragment-subseq | fragment-spe-first } | source { source-ip-address { source-wildcard | 0 | src-netmask } | any } | time-range time-name | vpn-instance vpn-instance-name ] *,配置ACL规则。
对于命名型ACL,使用rule命令配置过滤规则时,只有source参数指定的源地址范围和time-range参数指定的时间段对配置规则有效。
使用路由协议下的Filter-Policy策略过滤路由时:如果ACL规则的动作是permit时,则该路由被系统接收或发布;
如果ACL规则的动作是deny时,则该路由不会被系统接收或发布;
如果路由的网段不在ACL规则指定的范围内,则该路由默认不被系统接收或发布;
如果ACL中不存在规则,那么引用该ACL的路由策略中涉及的所有路由不被系统接收或发布;
路由过滤可分为黑名单和白名单方式:
当ACL规则的匹配顺序为配置方式时,系统根据规则编号从小到大的顺序进行匹配。
黑名单方式可以在同一个ACL中先配置动作是deny的编号较小的规则,用于过滤掉不希望被系统接收或发布的路由,然后再配置动作是permit的编号较大的规则,用于接收或发布其他路由。
白名单方式可以在同一个ACL中先配置动作是permit的编号较小的规则,用于允许希望被系统接收或发布的路由,然后再配置动作是deny的编号较大的规则,用于过滤掉其他不希望被系统接收或发布的路由。
匹配地址前缀列表:
执行命令filter-policy ip-prefix ip-prefix-name export [ direct | static | rip process-id | bgp | ospf process-id | isis process-id | unr ]。
- 匹配基本ACL:
- 执行命令commit,提交配置。