"Jakie pasmo może obsłużyć PF?"
"Jaki komputer będzie potrzebny aby zrealizować bramkę NAT lub PF?"
Nie ma prostej i jednoznacznej odpowiedzi na te pytania. Dla większości
zastosowań, komputer klasy 486/66 MHz z parą dobrych kart sieciowych ISA może
poradzić sobie z filtrowaniem i translacją adresów nawet przy paśmie sięgającym
5 Mb/s, jednak w niektórych przypadkach o wiele szybszy komputer z jeszcze
bardziej wydajnymi interfejsami sieciowymi na szynie PCI może okazać się
niewystarczający. Pytanie, które należy zadać nie odnosi się do bitów na
sekundę przechodzących przez interfejs, ale raczej do ilości napływających
pakietów i złożoności reguł użytych do filtrowania.
Wydajność PF jest zależna od kilku czynników:
Ilości pakietów na sekundę. Ilość operacji wykonanych na pakiecie
zawierającym 1500 bajtów jest prawie taka sama jak dla pakietu z tylko jednym
bajtem danych. Ilość pakietów na sekundę decyduje o tym, jak wiele reguł musi
zostać sprawdzonych w ciągu sekundy, co określa rzeczywiste zapotrzebowanie na
zasobów systemu przez PF.
Wydajność szyny. Magistrala ISA posiada maksymalną przepustowość na poziomie
8 MB/sec, w momencie gdy procesor wykorzystuje tą szynę, musi spowolnić swoją
pracę do poziomu procesora 80286 8 MHz, bez względu na to jaki jest szybki.
Szyna PCI ma o wiele wyższą przepustowość, a w mniejszym stopniu obciąża
procesor.
Wydajność kart sieciowych. Niektóre karty są bardziej wydajne niż inne.
Urządzenia bazujące na Realtek 8139
(rl(4))
mają relatywnie niską wydajność, interfejsy oparte o chipset Intel 21143
(dc(4))
oferują wydajność na bardzo wysokim poziomie. Dla ludzi chcących uzyskać jak
największą przepustowość sensownym rozwiązaniem może być użycie kart Gigabit
Ethernet, nawet jeśli nie pracują w sieci gigabitowej, ponieważ posiadają one o
wiele bardziej zaawansowane systemy buforowania.
Złożoność i zapis reguł. Bardziej skomplikowane reguły to mniejsza
wydajność. Wzrost wydajności można uzyskać stosując reguły keep state i
quick. Im więcej linii z regułami do sprawdzenia dla każdego pakietu tym
mniejsza wydajność.
Warte wspomnienia: CPU i RAM. Jako, że PF jest procesem jądra, nie będzie
on używał pamięci wirtualnej. Jeśli więc maszyna posiada wystarczającą ilość
pamięci RAM, PF będzie działał, jeśli nie, zawiesi się z powodu wyczerpania
zasobów pamięci (więcej szczegółów można znaleźć na stronie podręcznika
systemowego
pool(9)).
Ogromne ilości pamięci RAM nie są wcale konieczne - 32MB w zupełności wystarczy
dla blisko 30,000 wpisów w tabeli stanów, liczba ta jest absolutnie zadowalająca
dla niewielkich biur czy też domowego użytku. Większość użytkowników może
znaleźć gdzieś komputer z "odzysku", który spełni wymagania stawiane przez PF z
nawiązką - system z procesorem 300 MHz może obsłużyć bardzo dużo pakietów w
mgnieniu oka, przynajmniej jeśli posiada dobrą kartę sieciową i przemyślany
zestaw reguł.
Ludzie często zadają pytanie o benchmark dla PF. Jedyny benchmark, który można
wziąć pod uwagę jest wydajność danego systemu w danym środowisku.
Benchmark, który nie będzie w stanie odtworzyć warunków panujących w danej sieci
nie będzie dobrą pomocą przy konstruowaniu firewalla. Najlepszym rozwiązaniem
jest sprawdzenie wydajności PF w takim środowisku, które będzie takie same, lub
możliwie najbardziej podobne do tego, w którym będzie pracował gotowy system.
PF znajduje zastosowanie w wielu dużych, bardzo obciążonych implementacjach,
a jego developerzy są "mistrzami" w posługiwaniu się nim. Jest bardzo
prawdopodobne, że będzie on bardzo użyteczny także i dla ciebie.