route_geoip

This escaper chooses the next escaper by applying GeoIP rules to the resolved upstream IP address.

There is no path selection support for this escaper.

Resolution follows the Happy Eyeballs algorithm.

The following common keys are supported:

Config-loading rules derived from the implementation:

  • geo_rules also accepts the alias geo_match

  • duplicate networks, ASNs, countries, or continents across different next escapers are rejected

  • each next escaper can appear at most once for each rule category

ip_locate_service

optional, type: ip locate service

Set the configuration of the remote IP location service.

default: set with default config

Added in version 1.9.1.

geo_rules

optional, type: seq, alias: geo_match

Set the GeoIP rules used to select the next escaper.

Each rule is in map format, with the following keys:

  • next

    required, type: metric node name

    Set the next escaper.

  • networks

    optional, type: ip network | seq

    Each element should be valid network string. Both IPv4 and IPv6 are supported.

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

  • as_numbers

    optional, type: u32 | seq

    Each element should be valid AS number.

    An AS number must not appear in rules for different next escapers.

  • countries

    optional, type: iso country code | seq

    Each element should be valid ISO country code.

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

  • continents

    optional, type: continent code | seq

    Each element should be valid continent code.

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

Example:

geo_rules:
  - next: cn-exit
    countries: [CN]
  - next: eu-exit
    continents: [EU]
  - next: corp-net
    networks:
      - 10.0.0.0/8

resolution_delay

optional, type: humanize duration

How long to wait for the preferred address family after another family has already returned a result.

This has the same meaning as the resolution_delay field in happy eyeballs.

default: 50ms