[OpenBSD]

[Předchozí: Seznamy a makra] [Obsah] [Dále: Options]

PF: Tabulky


Obsah


Introduction

Tabulky jsou používány k uložení skupiny IPv4 a/nebo IPv6 adres. Vyhledávání v tabulkách je velmi rychlé a potřebuje méně paměti a procesorového času než seznamy. Z tohoto důvodu je tabulka ideální pro uložení velké skupiny adres, protože vyhledání v tabulce obsahující 50.000 adres je jen o málo pomalejší než v tabulce s 50 adresami. Tabulky mohou být použity namísto zdrojových a cílových adres v pravidlech filter, scrub, nat, a redirection, ale nemohou být použity jako cílové adresy v pravidlech nat nebo v routovacích volbách (route-to, reply-to, dup-to) filtrovacích pravidel. Tabulky se vytvářejí v souboru /etc/pf.conf nebo pomocí pfctl(8).

Konfigurace

V souboru pf.conf se tabulky vytvářejí direktivou table. Pro každou tabulku mohou být specifikovány následující vlastnosti:

Příklad:

table <goodguys> { 192.0.2.0/24 }
table <rfc1918> const { 192.168.0.0/16, 172.16.0.0/12, \
   10.0.0.0/8 }
table <spammers> persist

block in on fxp0 from { <rfc1918>, <spammers> } to any
pass  in on fxp0 from <goodguys> to any

Adresy mohou být také specifikovány pomocí negačního modifikátoru (nebo "not"), např.:

table <goodguys> { 192.0.2.0/24, !192.0.2.5 }

Tabulka goodguys nyní odpovídá všem adresám v síti 192.0.2.0/24 s výjimkou 192.0.2.5.

Všimněte si, že názvy tabulek jsou vždy uzavřeny mezi < >.

Tabulky také mohou být načteny z textového souboru obsahujícího seznam IP adres a sítí:

table <spammers> persist file "/etc/spammers"

block in on fxp0 from <spammers> to any

Soubor /etc/spammers y obsahoval seznam IP adres, na každém řádku jednu. Každá řádka začínající # je považována za komentář a je ignorována.

Manipulace pomocí pfctl

Tabulky mohou být měněny za běhu pomocí pfctl(8). Například přidání položky do tabulky <spammers> vytvořené výše:
# pfctl -t spammers -Tadd 218.70.0.0/16

Tím bude také vytvořena tabulka <spammers>, pokud ještě neexistovala. Pro vypsání adres v tabulce:

# pfctl -t spammers -Tshow
Volba -v může být také použita spolu s -Tshow k vypsání statistik pro každou položku tabulky. Odstranění adresy z tabulky:
# pfctl -t spammers -Tdelete 218.70.0.0/16

Další informace o manipulování s tabulkami pomocí pfctl naleznete v pfctl(8).

Specifikování adres

Kromě specifikování IP adresou může být počítač také určen svým hostname. když je jméno převedeno na IP adresu, všechny výsledné IPv4 a IPv6 adresy jsou přidány do tabulky. IP adresy mohou být také zadány určením platného názvu rozhraní nebo klíčovým slovem self, které způsobí přidání všech adres asociovaných s rozhraním(i) do tabulky.

Address Matching

Vyhledání adresy v tabulce vrátí nejpřesněji odpovídající položku. To umožňuje vutvoření tabulky jako třeba:
table <goodguys> { 172.16.0.0/16, !172.16.1.0/24, 172.16.1.100 }

block in on dc0 all
pass  in on dc0 from <goodguys> to any

Zdrojová adresa každého paketu procházejícího rozhraním dc0 bude porovnána s tabulkou <goodguys>:

[Předchozí: Seznamy a makra] [Obsah] [Dále: Options]


[back] www@openbsd.org
Originally [OpenBSD: tables.html,v 1.6 ]
$Translation: tables.html,v 1.3 2003/11/10 13:34:59 horacio Exp $
$OpenBSD: tables.html,v 1.3 2003/11/10 14:42:48 horacio Exp $