Макросы и списки

Имена макросов не могут содержать такие слова, как pass, out, или queue.

  ext_if = "fxp0"
  block in on $ext_if from any to any

Это правило создаст макрос, под названием ext_if. Когда обращаются к макросу, после того, как он был создан, перед его именем стоит знак $.

Также макросы могут развёртываться в списки

  friends = "{ 192.168.1.1, 10.0.2.5, 192.168.43.53 }" 

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

  rdr on fxp0 proto tcp from any to any port { 22 80 } -> \
     192.168.0.6
  block out on fxp0 proto { tcp udp } from { 192.168.0.1, \
     10.5.32.6 } to any port { ssh telnet } 

Обратите внимание, что запятая между пунктами списка не обязательна.

Макрос self

Без скобок "self" это такой же макрос, как имя интерфейса (без скобок) - т.е. один раз при чтении правил разворачивается с список IP-адресов.

pass in quick proto tcp from any to self port $tcp_services
PQ VPS сервера в 28+ странах.