Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 13 Apr 2008 22:28:16 -0400
From:      Boris Kochergin <spawk@acm.poly.edu>
To:        tmm <tmm@fastmail.fm>
Cc:        freebsd-net@freebsd.org
Subject:   Re: Howto send a limited broadcast?
Message-ID:  <4802C140.9020304@acm.poly.edu>
In-Reply-To: <48022162.4030601@fastmail.fm>
References:  <4800E2D5.20107@fastmail.fm> <480147C7.6090107@FreeBSD.org>	<48017958.8020302@fastmail.fm> <4801A0F8.1060002@acm.poly.edu> <48022162.4030601@fastmail.fm>

next in thread | previous in thread | raw e-mail | index | archive | help
tmm wrote:
> Boris Kochergin wrote:
>> tmm wrote:
>>>
>>>
>>> Bruce M. Simpson wrote:
>>>> tmm wrote:
>>>>> So, can anyone suggest how I can send a limited broadcast (on an 
>>>>> interface that has been initalized with an IP and a subnet)?
>>>>
>>>> Use the IP_ONESBCAST option and send to the network broadcast 
>>>> address for that subnet. The stack will change it into 
>>>> 255.255.255.255 on output. See man page ip(4) for details.
>>>>
>>>> It's a hack, but it's largely due to how the stack has worked 
>>>> historically.
>>>>
>>>> BMS
>>> Thanks.  I wasn't aware of that option.
>>>
>>> But now I find that this option is not present in my (eCos port of) 
>>> FreeBSD stack.  Either it was removed during the port, or the ported 
>>> version is too old.
>>>
>>> Perhaps the best thing for me to do is to look at the 'normal' 
>>> FreeBSD stack (as opposed to the eCos one) and see how IP_ONESBCAST 
>>> is implemented.  Then perhaps I could do the same thing in my 
>>> FreeBSD stack.
>>>
>>> Is there a way for me to download the FreeBSD source code without 
>>> actually downloading, burning, and installing FreeBSD?  Looking 
>>> around the FreeBSD website I don't see a source download link.
>>>
>>> thanks,
>>> Tom.
>>> _______________________________________________
>>> freebsd-net@freebsd.org mailing list
>>> http://lists.freebsd.org/mailman/listinfo/freebsd-net
>>> To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org"
>> You can get them via CVS: 
>> http://www.freebsd.org/doc/en/books/handbook/cvsup.html.
>>
>> Also, although it, too, may be considered hacky, if the system you're 
>> working on has pcap(3), you could just manually craft the broadcast 
>> frame and send it out the interface yourself. I can provide some 
>> sample code.
>>
>> -Boris
> Yes, that is what I was looking for - I'll use cvsup/csup to get the 
> sources.
>
> I don't have pcap, but I do have access to the lower layers of the 
> stack, so yes, I would be interested in seeing your code.  Doing 
> something like that might turn out to be a better solution for me.
>
> Thanks a lot.
> Tom.
> _______________________________________________
> freebsd-net@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-net
> To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org"
http://acm.poly.edu/~spawk/arpCounterattack.tbz

That's some code I wrote a while ago that detects ARP attacks against a 
configured set of IP/Ethernet address pairs on broadcast networks, and 
sends out gratuitous ARP requests in an attempt to correct the 
situation. The relevant function here is sendGratuitousARPRequest() in 
arpCounterattack.hpp. It constructs a gratuitous ARP frame and sends it 
out the configured interface.

-Boris



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