[Předchozí: Konfigurace] [Obsah] [Dále: Tabulky]
Když pfctl(8) narazí při zpracovávání sady pravidel na seznam, vytvoří více pravidel, jedno pro každou položku seznamu. Například:
block out on fxp0 from { 192.168.0.1, 10.5.32.6 } to any
je expandováno na:
block out on fxp0 from 192.168.0.1 to any
block out on fxp0 from 10.5.32.6 to any
Je možné specifikovat více seznamů v jednom pravidle a jejich použití není omezeno pouze na pravidla filtru:
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 }
Všimněte si, že čárky mezi položkami seznamu jsou nepovinné.
Makro musí začínat písmenem a může obsahovat písmena, čísla a podtržítka. Název makra nemůže být rezervované slovo jako pass, out, nebo queue.
ext_if = "fxp0"
block in on $ext_if from any to any
Tím je vytvořeno makro pojmenované ext_if. Při odkazování se na makro po jeho vytvoření přidáváme před jeho jméno znak $.
Makro může být také expandováno na seznam, jako třeba:
friends = "{ 192.168.1.1, 10.0.2.5, 192.168.43.53 }"
Makra mohou být definována rekurzivně. Protože makra nejsou expandována uvnitř uvozovek, musí být použita následující syntaxe:
host1 = "192.168.1.1"
host2 = "192.168.1.2"
all_hosts = "{" $host1 $host2 "}"
Makro $all_hosts bude nyní expandováno na 192.168.1.1, 192.168.1.2.
[Předchozí: Konfigurace] [Obsah] [Dále: Tabulky]