[Bridge] Help needed about IP class finding in a bridge netfilter module

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Eric,
first, thx for your responses.
I have tried to hping on destination IP 239.255.255.250 (a Multicast
ip used for example in the uPnP discovery process).
The inet_addr_type() function detect multicast well.

For the question of the broadcast, your idea of using the mac dest
address is great. I will check this and give a feedback.
Cheers,
LOUIS

2006/12/8, Eric Brower <ebrower at gmail.com>:
> On 12/7/06, Eric Brower <ebrower at gmail.com> wrote:
> > On 12/7/06, Louis Croisez <louis.croisez at gmail.com> wrote:
> > > Hi,
> > > i am currently trying to code a little netfilter plugin, to be placed
> > > into the bridge forwarding path.
> > > In such plugin, i would like to test if a packet is:
> > > - unicast
> > > - multicast
> > > - broadcast
> > >
> > > The starting condition is that the bridge has no knowledge of the IP
> > > configuration of the sending and receiving stations. It does not know
> > > about their netmask e.g.
> > >
> > > I have tried the following function (from 2.6 kernel):
> > > inet_addr_type(u32 addr), but it always return RTN_UNICAST, and never
> > > RTN_MULTICAST, RTN_BROADCAST.
> > >  For example, for this address: 10.255.255.255 it returns RTN_UNICAST.
> > >
> > > How could the bridge decide in which class is the destination IP of a
> > > skb, and what is my error?
> >
> > The bridge can't discriminate between broadcast and unicast because
> > you have no routing table entries (netmasks) to associate with the
> > destination address.  You could hack-in a class A/B/C match yourself,
> > but with CIDR (RFC 1519) the world does not work that way any longer.
>
> On further thought, you might be able to look at destination MACs
> rather than IPs; for the ff:ff:ff:ff:ff:ff destination MAC on
> broadcast packets, or multicast destination MACs.  In any case, using
> the kernel to lookup IP addresses just isn't going to do it without a
> routing table.
>
> HTH,
> E
>
> >
> > Based on the code I would suggest multicast addresses would be matched
> > (have you tried to ping 224.0.0.1 [all hosts mcast] to see if it is
> > properly classified?).  For the locally-destined packets you could
> > maintain static routing table entries on your system, if that is
> > tenable in your environment.
> >
> > You might be able to obtain this information via RMON from your
> > routers, if this is not a science project.
> >
> > --
> > E
> >
>
>
> --
> E
>


[Index of Archives]     [Netdev]     [AoE Tools]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]     [Video 4 Linux]

  Powered by Linux