Configuring if-match clauses
You can either specify no if-match clauses or multiple if-match clauses for a routing policy node. If no if-match clause is specified for a permit node, all routes can pass the node. If no if-match clause is specified for a deny node, no routes can pass the node.
The if-match clauses of a routing policy node have a logical AND relationship. A route must meet all if-match clauses before it can be executed by the apply clauses of the node. If an if-match command exceeds the maximum length, multiple if-match clauses of the same type are generated. These clauses have a logical OR relationship. A route only needs to meet one of them.
To configure if-match clauses:
Step | Command | Remarks |
---|---|---|
1. Enter system view. | system-view | N/A |
2. Enter routing policy node view. | route-policy route-policy-name { deny | permit } node node-number | N/A |
3. Match routes whose destination, next hop, or source address matches an ACL or prefix list. |
| By default, no ACL or prefix list match criterion is configured. If the ACL used by an if-match clause does not exist, the clause is always matched. If no rules of the specified ACL are matched or the match rules are inactive, the clause is not matched. The ACL specified in an if-match clause must be a non-VPN ACL. All IPv6 routes match a node if the if-match clauses of the node use only IPv4 ACLs. All IPv4 routes match a node if the if-match clauses of the node use only IPv6 ACLs. |
4. Match BGP routes whose AS_PATH attribute matches a specified AS path list. | if-match as-path as-path-number&<1-32> | By default, no AS path match criterion is configured. |
5. Match BGP routes whose COMMUNITY attribute matches a specified community list. | if-match community { { basic-community-list-number | name comm-list-name } [ whole-match ] | adv-community-list-number }&<1-32> | By default, no COMMUNITY match criterion is matched. |
6. Match routes having the specified cost. | if-match cost cost-value | By default, no cost match criterion is configured. |
7. Match BGP routes whose extended community attribute matches a specified extended community list. | if-match extcommunity ext-comm-list-number&<1-32> | By default, no extended community list match criterion is configured. |
8. Match routes having the specified output interface. | if-match interface { interface-type interface-number }&<1-16> | By default, no output interface match criterion is configured. This command is not supported by BGP. |
9. Match BGP routes having the specified local preference. | if-match local-preference preference | By default, no local preference is configured for BGP routes. |
10. Match MAC addresses in EVI IS-IS packets. | if-match mac-list mac-list-name | By default, no MAC list match criterion is configured. The MAC list match criterion applies only to EVI IS-IS. For information about EVI IS-IS, see EVI Configuration Guide. |
11. Match routes having MPLS labels. | if-match mpls-label | By default, no MPLS label match criterion is configured. |
12. Match routes having the specified route type. | if-match route-type { external-type1 | external-type1or2 | external-type2 | internal | is-is-level-1 | is-is-level-2 | nssa-external-type1 | nssa-external-type1or2 | nssa-external-type2 } * | By default, no route type match criterion is configured. |
13. Match IGP routes having the specified tag value. | if-match tag tag-value | By default, no tag match criterion is configured. |
14. Match VLANs in EVI IS-IS packets. | if-match vlan vlan-list | By default, no VLAN match criterion is configured. The VLAN match criterion applies only to EVI IS-IS. For information about EVI IS-IS, see EVI Configuration Guide. |