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

Fleuriot Damien ml at my.gd
Thu Mar 21 13:54:19 UTC 2013


On Mar 21, 2013, at 9:25 AM, Ermal Luçi <eri at freebsd.org> wrote:

> On Thu, Mar 21, 2013 at 1:59 AM, Mark D <markd-freebsd-net at bushwire.net>wrote:
> 
>> (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.
>> _______________________________________________
>> freebsd-net at freebsd.org mailing list
>> http://lists.freebsd.org/mailman/listinfo/freebsd-net
>> To unsubscribe, send any mail to "freebsd-net-unsubscribe at freebsd.org"
>> 
> 
> 
> How about firing up one of the firewall/pfil(9) consumers like (ipfw/pf)
> and adding rules to redirect traffic to a socket bound on loopback?
> 
> -- 
> Ermal


I fail to see how that's different from what I suggested with PF's rdr rule ?



More information about the freebsd-net mailing list