Hi all,
I have a problem that I would like to know if Netgraph can help me solve or not. Any help will be greatly appreciated :-)
I'm trying to emulate many (hundreds) of physical machines using a single PC,
for purposes of testing Internet access hardware. I have set up a (Linux-based)
system where I set up virtual VLAN-enabled network interfaces on the PC, give
these interfaces individual MAC- and IP-addresses, then connect the "real",
physical interface on the machine to a VLAN switch. By using source routing
on the Linux PC I'm able to make all traffic from an application that binds to
a certain interface to be sent through the appropriate VLAN interaface
and thus get VLAN-tagged and also the right source MAC-address.
To the hardware on the other side of the VLAN switch it looks as if there are many physical machines connecting to it because it sees traffic from different MAC- and IP-addresses coming in on different physical ports.
[EMAIL PROTECTED]@PC ---+ +--- port 1 --- Access unit port 1
[EMAIL PROTECTED]@PC ---+---VLAN SWITCH +--- port 2 --- Access unit port 2
[EMAIL PROTECTED]@PC ---+ +--- port 3 --- Access unit port 3
I'm using Linux to do this, because it allows me to assign individual MAC addresses to
virtual interfaces. Something I had problems doing under FreeBSD (I think it was the
kernel dropping ethernet packets that arrived on virtual interface X, with destination
MAC address for interface X, and not the destination MAC address for the
underlying physical interface. Something I've seen mentioned here on the list too
and which seems to have changed between FreeBSD 4.10 and 5.x).
Anyway, the problem with Linux is that apart from some troubles with e.g. IGMP/
Multicast I've also run into a limit of roughly 250 virtual interfaces that I'm able to create.
The Linux kernel uses a single byte as index value for its routing tables, meaning you can
only have 256 of them on the system, and each of my virtual interfaces need its own
routing table (albeit with only a single entry in it) so I can't emulate more than roughly
250 physical machines with this setup.
What I would like to do would be to have a special virtual network interface that
when an application binds to it, causes all the packets from that application to
get the right source MAC address and IP address (of the virtual interface) as well as
bypass the normal routing table and get sent directly to e.g. a gateway host that can
forward packets for that particular source IP address. Packets coming in to the raw
physical interface similarly needs to get directed to the virtual interface so that the
application can read them. Ideally, the application should think that it's using
a standard ethernet interface and notice nothing different about it.
Is it possible to do something like that with Netgraph on FreeBSD?
Regards,
/Ragnar
_______________________________________________ [email protected] mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-net To unsubscribe, send any mail to "[EMAIL PROTECTED]"
