Назад | Перейти на главную страницу

haproxy: Могу ли я аннотировать файл белого списка IP-адресов?

В моем файле "/etc/haproxy/haproxy.cfg" я указываю файл белого списка, который содержит IP-адреса, которым разрешен доступ к интерфейсу.

frontend default-frontend
    <snip>

    tcp-request connection reject if ! { src -f /etc/haproxy/templates/ip-whitelist.txt }

    <snip>

Содержимое «/etc/haproxy/templates/ip-whitelist.txt» выглядит следующим образом:

192.45.21.89/32
123.34.33.7/32
56.23.12.77/32
78.12.66.3/32

Это прекрасно работает! Пока я не захочу очистить файл и удалить IP-адреса для людей, которым больше не нужен доступ.

Вопрос: Можно ли добавлять комментарии к haproxy файл шаблона?

Я пробовал это:

192.45.21.89/32 # Dylan Reeve
123.34.33.7/32 # Jane Doe
56.23.12.77/32 # Priscilla Ahmed
78.12.66.3/32 # Sayed Salas

... который возвращает ошибки, похожие на:

[ALERT] : parsing [/etc/haproxy/haproxy.cfg:123] : 'tcp-request connection reject' :
    error detected in frontend 'default-frontend' while parsing 'if' condition : 
    '192.45.21.89/32 # Dylan Reeve' is not a valid IPv4 or IPv6 address
    at line 1 of file '/etc/haproxy/templates/ip-whitelist.txt'
[ALERT] : Error(s) found in configuration file : /etc/haproxy/haproxy.cfg
[ALERT] : Fatal errors found in configuration.

Худший сценарий: мне нужно хранить отдельный список в другом месте, чтобы сопоставить IP-адреса с именами.

Согласно Документация HAProxy v1.8, это должно работать:

# Dylan Reeve
192.45.21.89/32
# Jane Doe
123.34.33.7/32
...

Взято из документации 1.8 (я делал это и на 1.6):

За флагом «-f» следует имя файла, из которого все строки будут считаны как отдельные значения. Можно даже передать несколько аргументов «-f», если шаблоны должны быть загружены из нескольких файлов. Пустые строки, а также строки, начинающиеся с символа «#», будут игнорироваться. Все начальные пробелы и табуляции будут удалены. Если абсолютно необходимо вставить действительный образец, начинающийся с диеза, просто поставьте перед ним пробел, чтобы он не принимался за комментарий.

Или вы можете попробовать использовать Карты HAProxy которые я считаю полным излишеством для вашего варианта использования.