Нотация CIDR белого списка IP-адресов HAProxy ACL

У меня есть балансировщик нагрузки HAProxy, и я хотел бы разрешить доступ только к определенным IP-адресам. Я знаю, как это сделать, используя обычную запись:

acl is_ip_allowed src 173.245.48.1
http-request deny if !is_ip_allowed

Но когда я использую нотацию CIDR, она не работает.

acl is_ip_allowed src 173.245.48.0/20
http-request deny if !is_ip_allowed

Это должно быть возможно, если я правильно получил документацию по HAProxy.

Значения адресов IPv4 могут быть указаны либо в виде простых адресов, либо с добавленной сетевой маской, и в этом случае адрес IPv4 совпадает, когда он находится в сети. Обычные адреса также могут быть заменены разрешаемым именем хоста, но такая практика обычно не рекомендуется, поскольку затрудняет чтение и отладку конфигураций. Если используются имена хостов, вы должны по крайней мере убедиться, что они присутствуют в /etc/hosts, чтобы конфигурация не зависела от какого-либо случайного совпадения DNS в момент анализа конфигурации.

Но, к сожалению, это не работает. Я что-то упускаю?


person lloiacono    schedule 29.07.2019    source источник


Ответы (1)


Посоветовавшись с коллегой, я нашел ответ.

http-request deny if !{ src 173.245.48.0/20 }

Таким образом, удаление ACL и добавление диапазона CIDR в условии IF работает.

person lloiacono    schedule 10.03.2020