diff --git a/plugin/geoip/README.md b/plugin/geoip/README.md index 9c9a943d2f1..febad8ad75f 100644 --- a/plugin/geoip/README.md +++ b/plugin/geoip/README.md @@ -66,6 +66,27 @@ The following configuration configures the `City` database, and looks up geoloca } ``` +The *view* plugin can use *geoip* metadata as selection criteria to provide GSLB functionality. +In this example, clients from the city "Exampleshire" will receive answers for `example.com` from the zone defined in +`example.com.exampleshire-db`. All other clients will receive answers from the zone defined in `example.com.db`. +Note that the order of the two `example.com` server blocks below is important; the default viewless server block +must be last. + +```txt +example.com { + view exampleshire { + expr metadata('geoip/city/name') == 'Exampleshire' + } + geoip /opt/geoip2/db/GeoLite2-City.mmdb + metadata + file example.com.exampleshire-db +} + +example.com { + file example.com.db +} +``` + ## Metadata Labels A limited set of fields will be exported as labels, all values are stored using strings **regardless of their underlying value type**, and therefore you may have to convert it back to its original type, note that numeric values are always represented in base 10.