Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 20 May 2002 13:35:29 -0400
From:      Don Bowman <don@sandvine.com>
To:        "'freebsd-stable@FreeBSD.ORG'" <freebsd-stable@FreeBSD.ORG>
Subject:   tens of thousands of ip alias, part 2
Message-ID:  <FE045D4D9F7AED4CBFF1B3B813C85337676212@mail.sandvine.com>

next in thread | raw e-mail | index | archive | help
I posted a few weeks ago about the performance of ip aliases
when used for tens of thousands of IP's. The numbers are in,
the performance is quite poor.

I think the culprit is:
if.c: ifa_ifwithaddr(addr)

The application is a test tool to simulate a larger network.
It is directly connected to the device under test. I need to
be able to have TCP sockets (well, UDP too). I already have
tools to craft raw packets, but its difficult to simulate
real TCP behaviour that way.

The server side seems to take care of itself with ipfw and
a fwd rule. I want that performance and flexibility, but on
the initiate side.

I think I need to change my direction here. I'm thinking that
I should add a mode so that bind() doesn't check the local
address passed in, it just uses it as-is. That plus removing
the check in the stack that a packet we received is for one of our
IP address'. I'd like to do this in a generic way so that I can
merge the changes back.

Does anybody have any suggestions before i start? Is this the
best way?

It seems like this is something that application-level proxies
must need (e.g. in a firewall).

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-stable" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?FE045D4D9F7AED4CBFF1B3B813C85337676212>