From 7813b6e09062a1d95d19e305dfed9b7ad81fb1ae Mon Sep 17 00:00:00 2001 From: Chris O'Haver Date: Wed, 7 Dec 2022 06:27:23 -0500 Subject: [PATCH] plugin/geoip: Add GLSB example (#5795) * add glsb example Signed-off-by: Chris O'Haver --- plugin/geoip/README.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/plugin/geoip/README.md b/plugin/geoip/README.md index 9c9a943d2..febad8ad7 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.