how to force packets to go out on a specific interface

Maksim Yevmenkin m_evmenkin at yahoo.com
Thu Dec 4 08:27:22 PST 2003


Dear Hackers,

is there a way to force packets to go out on a specific interface
based on a source IP address? 

here is what we want: for testing purposes we have a FreeBSD box with
two 100Mbit NICs (em0 and em1). both NICs are on the the same subnet
172.1.1.x/23. both NICs are connected to the ServerIron. the purpose
of the setup is to get 200Mbit link between FreeBSD and ServerIron.

ethernet trunking is NOT an option. it seems ServerIron uses algorithm
that selects physical port in the trunk based on source and destination
IP. IPs do not change during the test, so one NIC gets more traffic then
another (we only have few clients that talk to the FreeBSD box).

so what is really required is: if a process was bound to 172.1.1.1 (em0)
then the packets should go out on em0 and if process was bound to
172.1.1.2 (em1) then packets should go out on em1. we tried ipfw(8)
"forward" and it did not do what we want. Linux can handle this via
"ip route foo bar" thing where we can specify which local source address
should go out on which interface.

one more thing: the solution must be compatible with dummynet(4).

thanks,
max

__________________________________
Do you Yahoo!?
Free Pop-Up Blocker - Get it now
http://companion.yahoo.com/


More information about the freebsd-questions mailing list