HAProxy Карта геолокации IP-адресов, не соответствующих ни одной записи - PullRequest
0 голосов
/ 03 мая 2019

В моей конфигурации haproxy есть следующая строка:

http-request set-header x-geoip-country %[src,map(/etc/hap1.8/geo/country_iso_code.map)]

для установки страны происхождения, но она работает только в том случае, если ключ является точным ключом ip, а не iID CIDR, который ожидает haproxy. список от maxmind и отформатирован как;

1.0.0.0/24 AU
1.0.1.0/24 CN
1.0.16.0/20 JP
...

например, ip 1.0.0.45 будет соответствовать 1.0.0.45 в файле, но не 1.0.0.0/24. Хотя это кажется логичным, это было в примере с haproxy, поэтому я спрашиваю, возможно ли его сопоставить с 10.0.0.0/24?

1 Ответ

1 голос
/ 04 мая 2019

По умолчанию map будет соответствовать по строке, а не по ip.Из документов :

map_<match_type>(<map_file>[,<default_value>])

... Если <match_type> не установлено, по умолчанию используется "str" ​​...

Для сопоставления по ip используйте map_ip:

http-request set-header x-geoip-country %[src,map_ip(/etc/hap1.8/geo/country_iso_code.map)]
...