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

Расширение макроса, содержащего IP-адрес подсети с префиксом (CIDR), в список с помощью брандмауэра PF

Я пытаюсь развернуть макрос, содержащий адрес с маской подсети, в список с PF следующим образом:

subnet1 = "192.168.1.0/24"
subnet2 = "10.0.0.0/8"
subnets = "{" $subnet1 $subnet2 "}"

Но это приводит к синтаксической ошибке в последней строке:

/etc/pf.conf:3: синтаксическая ошибка

Он отлично работает с адресами без маски подсети:

ip1 = "192.168.1.0"
ip2 = "10.0.0.0"
ips = "{" $ip1 $ip2 "}"

Я использую PF из FreeBSD 10.0 (≈ PF из OpenBSD 4.5). Как я могу заставить это работать?

Вы должны снова указать адреса маски подсети (в одинарных кавычках) при определении:

subnet1 = "'192.168.1.0/24'"
subnet2 = "'10.0.0.0/8'"
subnets = "{" $subnet1 $subnet2 "}"

К сожалению, это нигде не задокументировано.