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 clauses are specified for a permit-mode node, all routes can pass the node. If no if-match clauses are specified for a deny-mode 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 identical if-match clauses are generated. These clauses have a logical OR relationship. A route only needs to match 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 matches an ACL or prefix list.

  • Match IPv4 routes whose destination, next hop, or source matches an ACL or IPv4 prefix list:if-match ip { address | next-hop | route-source } { acl acl-number | prefix-list prefix-list-name }

  • Match IPv6 routes whose destination, next hop, or source matches an ACL or IPv6 prefix list:if-match ipv6 { address | next-hop | route-source } { acl acl6-number | prefix-list prefix-list-name }

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.

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 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 routes having MPLS labels.

if-match mpls-label

By default, no MPLS label match criterion is configured.

11. 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.

12. Match IGP routes having the specified tag value.

if-match tag value

By default, no tag match criterion is configured.