"Wie viel Bandbreite kann PF verarbeiten?"
"Wie viele Computer benötige ich, um meine Interverbindung zu
verarbeiten?"
Es gibt keine einfachen Antworten auf diese Fragen. Für einige
Applikationen reicht ein 486/66 mit ein paar guten ISA-Netzwerkkarten,
der Filtern und NAT mit ungefähr 5 Mbps bewerkstelligen kann, aber für
andere Applikationen könnte eine sehr viel schnellere Maschine mit sehr
viel effizienteren PCI-Netzwerkkarten ungenügend sein. Die tatsächliche
Frage ist nicht die Anzahl der Bits pro Sekunde, sondern eher die
Anzahl der Pakete pro Sekunde und die Komplexität des Regelsatzes.
Die Leistung von PF hängt von einigen Begebenheiten ab:
Die Anzahl der Pakete pro Sekunde. Fast die gleiche Rechenleistung
muss auf ein Paket mit 1500 Byte Länge angewandt werden, wie für ein Paket
mit nur einem Byte Länge. Die Anzahl der Pakete pro Sekunde entscheidet
darüber, wie viele Einträge in der ,state'-Tabelle überprüft werden
müssen, in diesem Fall keine Übereinstimmung, und wie viele Filterregeln
pro Sekunde verarbeitet werden müssen, die die tatsächliche Last
auf dem System darstellt.
Die Leistung von deinem System-Bus. Der ISA-Bus hat eine maximale
Bandbreite von 8 MB/Sek, und wenn der Prozessor darauf zugreift, muss er
sich auf eine Geschwindigkeit eines 80286 runterschrauben, der mit 8 MHz
läuft, unabhängig davon, wie schnell der Prozessor wirklich ist. Der
PCI-Bus hat eine viel größere Bandbreite und hat somit auch geringeren
Einfluss auf den Prozessor.
Effizienz deiner Netzwerkkarte. Einige Netzwerk-Adapter sind halt
effizienter als andere. Realtek-8139-
(rl(4))
basierte Karten neigen dazu, recht langsame Karten zu sein, während
Karten, die auf dem Intel 21143
(dc(4))
Chip basieren, gute Leistungen erziehlen. Für maximale Leistung solltest
du Gigabit-Ethernet-Karten in Betracht ziehen, selbst wenn sie nicht
an Gigabit-Netzwerke angeschlossen sind, da sie einen technologisch
ausgereifteren Puffer besitzen.
Komplexität und Design deines Regelsatzes. Je komplexer dein Regelsatz,
umso langsamer wird er. Je mehr Pakete durch keep state und
quick Regeln gefiltert werden, desto besser die Leistung.
Je mehr Zeilen für jedes einzelne Paket durchlaufen werden, desto
schlechter ist die Leistung.
Kaum erwähnenswert: CPU und RAM. Da PF ein kernel-basierter Prozess
ist, wird kein Swapbereich genutzt. Daher wird PF laufen, wenn du
genügend RAM hast und wenn nicht, dann wird er sich wegen
,pool(9) exhaustion' aufhängen.
Große Mengen RAM sind nicht notwendig - 32MB sollten für ungefähr
30.000 ,states' völlig ausreichen, wobei das eine Menge ,states' für
Anwendungen aus dem Heim- oder kleingewerblichem Gebrauch ist.
Die meisten Benutzer werden merken, dass ein ,recycelter' Computer mehr
als genug für ein PF-System ist - ein 300-MHz-System wird schnell eine
große Anzahl der Pakete verarbeiten können, zumindest, wenn es mit
guten Netzwerkkarten und einem guten Regelsatz ausgestattet ist.
Leute fragen oft nach PF-Benchmarks. Der einzige Benchmark, der wirklich
zählt, ist deine Systemleistung in deiner Umgebung. Ein
Benchmark, der nicht zu deiner Umgebung passt, wird dir nicht helfen,
wie du dein Firewallsystem zu planen hast. Das beste, was du tun kannst, ist,
selbst einen Benchmark für PF durchzuführen, und zwar unter den gleichen,
oder nahezu gleichen, Bedingungen, denen die tatsächliche Firewall
ebenfalls ausgesetzt wäre und zwar auf der gleichen Hardware, die die
Firewall nutzen würde.
PF wird mit einigen sehr großen Anwendungen verwendet, die eine Menge
Verkehr erzeugen, und die Entwickler von PF sind ,Power User'.
Merkwürdig ist, dass es für dich wunderbar funktionieren wird.