Hi there!
I am looking for a platform to implement an externally controlled firewall.
The resulting firewall is to block all packets, except for the dynamically configured "pinholes" (or flows, or connections, ...) identified by incoming interface, source and destination IP addresses and TCP ports. It then replaces both IP addresses and ports as configured, and sends the packet out on the configured port. (please note there is no correlation between addresses and interfaces...)
The number of flows (thousands) and the packets per second (~10^5) load are not extraordinary high, but there are dozens of reconfigurations each second (adding and dropping flows).
We currently do this with linux, manipulating the conntrack table directly. It works great - on a single core. We are evaluating alternatives that could scale further on SMP systems.
Is FreeBSD for me? If yes, which firewall option do I use, and how do I access the NAT flow cache, preferably from user space?
Any advice appreciated.
Szocske
I am looking for a platform to implement an externally controlled firewall.
The resulting firewall is to block all packets, except for the dynamically configured "pinholes" (or flows, or connections, ...) identified by incoming interface, source and destination IP addresses and TCP ports. It then replaces both IP addresses and ports as configured, and sends the packet out on the configured port. (please note there is no correlation between addresses and interfaces...)
The number of flows (thousands) and the packets per second (~10^5) load are not extraordinary high, but there are dozens of reconfigurations each second (adding and dropping flows).
We currently do this with linux, manipulating the conntrack table directly. It works great - on a single core. We are evaluating alternatives that could scale further on SMP systems.
Is FreeBSD for me? If yes, which firewall option do I use, and how do I access the NAT flow cache, preferably from user space?
Any advice appreciated.
Szocske