1 ===============================================================================
2 LIBNET 1.0 (c) 1998 - 2001 Mike D. Schiffman <mike@infonexus.com>
3 http://www.packetfactory.net/libnet
4 ===============================================================================
7 The Berkeley Packet Filter does not allow a user to arbitrarily specify
8 a source ethernet address. This is not intuitively obvious. In fact
9 it's downright daffy. A filled in sockaddr structure containing the
10 user designated source and destination addresses is passed to the generic
11 ethernet output routine. However, the ether_output routine
12 (in /usr/src/sys/net/if_ethersubr.c) ignores the supplied value and grabs
13 the source address directly from the interface.
15 To fix this, we of course, have to modify the kernel. The easiest way
16 to do this is via the loadable kernel module interface. Included in the
17 support dir is lkm code for FreeBSD and OpenBSD.
19 Keep in mind that in order to load modules, your securelevel needs to
22 cd support/bpf-lkm/etherspoof
27 Thomas Ptacek wrote the original FreeBSD 3.0 lkm code (I had to modify
28 it a wee bit to get it to work on 3.0-19980804-SNAP). Check out his
29 stuff at http://www.enteract.com/~tqbf/goodies.html. Tom's very smart.
31 Also included is a kernel patch for more recent 3.0 releases. Written