I'm at a complete road block here and I appreciate any help!
I'm trying to write a packet generator that generates a packet down to the
destination/src mac address of an eth frame. However, nothing I find seems to
explain how to do this let alone if it is possible. As example (for
familiarity), implementing a RARP client (and server). I first create a socket:
socket(PF_INET, SOCK_PACKET, ETH_P_RARP)
After generating an entire packet (eth frame + RARP request) and sending it via
sendto, tcpdump shows that my packet was encapsulated as the data for an IP
packet. Definitely not what I want and I suspect it is because I'm passing the
PF_INET domain (it assuming IP?).
So how would I go about implement sending a RARP request (obviously I'm doing
something wrong or assuming something wrong)? Or more generally, how do I get
pure raw socket access?
--
Colin Burnett
Colin Burnett wrote:
> socket(PF_INET, SOCK_PACKET, ETH_P_RARP)
I believe you want something more like:
socket(PF_PACKET, SOCK_RAW, htons(ETH_P_RARP));
Try doing a man on "packet".
Chris
--
Chris Friesen | MailStop: 043/33/F10
Nortel Networks | work: (613) 765-0557
3500 Carling Avenue | fax: (613) 765-2986
Nepean, ON K2H 8E9 Canada | email: [email protected]
On Fri, Nov 08, 2002 at 12:12:44AM -0600, Colin Burnett wrote:
> I'm at a complete road block here and I appreciate any help!
>
> I'm trying to write a packet generator that generates a packet down to the
> destination/src mac address of an eth frame. However, nothing I find seems to
> explain how to do this let alone if it is possible. As example (for
> familiarity), implementing a RARP client (and server). I first create a socket:
I wrote a tool which works exactly like this, to test network equipments to
limits. It's slightly commented, and relatively basic. You can download it
there :
http://w.ods.org/tools/ethforge/
Just a tip: don't start it without args, by default it will bomb as many
packets as possible on your network! Read it first :-)
Cheers,
Willy