route_client

This escaper chooses the next escaper from the client IP address.

There is no path selection support for this escaper.

The following common keys are supported:

Selection order is fixed by the runtime:

  • exact IP match first

  • then longest-prefix subnet match

  • then default_next

The config loader rejects duplicate IPs or subnets across different next escapers.

exact_match

optional, type: seq, alias: exact_rules

If the client IP exactly matches an entry in the rules, the corresponding escaper is selected.

Each rule is in map format, with two keys:

  • next

    required, type: metric node name

    Set the next escaper.

  • ips

    optional, type: seq, alias: ip

    Each element should be ip addr str.

    An IP must not appear in rules for different next escapers.

subnet_match

optional, type: seq, alias: subnet_rules

If the client IP matches multiple subnets, the longest-prefix match is used.

Each rule is in map format, with two keys:

  • next

    required, type: metric node name

    Set the next escaper.

  • subnets

    optional, type: seq, alias: subnet

    Each element should be ip network str.

    A subnet must not appear in rules for different next escapers.

Example

default_next: direct
exact_match:
  - next: office-egress
    ips:
      - 192.0.2.10
      - 192.0.2.11
subnet_match:
  - next: vpn-egress
    subnets:
      - 10.0.0.0/8
      - 2001:db8::/32