Best way for an app to accept traffic on 30,000+ interfaces?

Mark D markd-freebsd-net at bushwire.net
Thu Mar 21 01:06:41 UTC 2013


(Hopefully this isn't too out-of-scope for this list..)

I have an application in mind that I'd like to have accept/respond to
UDP queries sent to perhaps 30K contiguous IP addresses (most likely
IPV6 addresses because such ranges are easy to come by, but
conceptually ipv4 as well).

This would all be on a small number of FBSD instances.

Though it could be done, I don't really want to create 30K interfaces
and have the application bind 30K sockets as it's not clear if that
will scale if I try an address range that expands to, say, 1M IPs
wide.

This address range would be internet-facing and responding to random
remote clients.

My first thought is to use SOCK_RAW in much the same way that natd
does - at least to receive the traffic.

Is that a sensible and viable approach or is there a better/easier
way?


Mark.


More information about the freebsd-net mailing list