Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 01 Jul 2003 21:46:33 +0000
From:      "Matthew Grooms" <mgrooms@shrew.net>
To:        "Chuck Swiger" <cswiger@mac.com>
Cc:        "freebsd-net@freebsd.org" <freebsd-net@freebsd.org>
Subject:   Re: broadcast udp packets ...
Message-ID:  <200307012146.h61LkXOW001888@hole.shrew.net>
In-Reply-To: <3F01DA79.4080709@mac.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Well,

     Ok, sounds stupid right, well here is a bit of background. My friend and
I have an IPSEC tunnel in between our two private networks connected by  BSD
firewalls w/ cable modems. Without going into too much detail, certain
programs ( win32 games ) use all-routes broadcasts to advertise the info
pertaining to the workstaion hosting a particular game. After much searching,
I could find no mechanism in FreeBSD that would allow me to pass these
broadcasts from a private network, across the IPSEC tunnel and to the distant
private network. ( tried all sorts of nat and bridging configurations )

     As a result, I decided to write a small relay daemon that used bpf to
pick up the broadcast messages from the local private network, forward them
to a peer that in turn drops it on to the distant private network. ( I know,
its a lot of work to play a game but it sounded like a fun project ) In any
case, I have most of it working well but am getting loops when the bpf dropps
the packet on the wire at the far end. It reads the packet in after writing
it out and forwards it back to the originating relay partner, just like a
really bad pong game. Setting BIOCSSEESENT on the fd does not seem to do the
trick. Any Ideas?

     In any case, I wrote a quick little program to generate a broadcast
message for use with testing the relay daemon ( I got tired of waiting for
bootp requests to be picked up by my cable modem as a test case ).
Unfortunately, I can never get the test program generate an all-routes
broadcast, they always come out as network directed broadcasts.

<Sigh> ... If there is not a more conventional way of going about it, I guess
I will just have to generate one using the bpf.

On 7/1/2003, "Chuck Swiger" <cswiger@mac.com> wrote:

>Matthew Grooms wrote:
>>      Is there any way to generate a udp broadcast ( all routes
>> 255.255.255.255 ) packet using a standard sendto() without it being
>> translated into a local network broadcast? Is this just not "allowed"?
>
>Are you trying to use 255.255.255.255 to reach something not on a local
subnet?
>
>If you have multiple interfaces, a broadcast to 255.255.255.255 should go
out on
>all of them.  That being said, the all-ones broadcast address means "all
local
>networks", and most routers will block such traffic from passing on in any
event.
>
>--
>-Chuck
>



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