All of lore.kernel.org
 help / color / mirror / Atom feed
* MAC address matching. Or other ideas.
@ 2003-05-04 23:34 Daniel
  2003-05-10 10:59 ` Patrick Schaaf
  0 siblings, 1 reply; 5+ messages in thread
From: Daniel @ 2003-05-04 23:34 UTC (permalink / raw)
  To: netfilter-devel

Quick version:

Is it possible to get the MAC match module to match on dst MAC address 
rather than just src MAC?

Longer Version:

My network is peered to an internet exchange. I am running Debian stable 
with Zebra to handle all of the routing. I only want to measure traffic 
that is going through our ISP. So I want to be able to say only gimme 
traffic that is coming in and out via gateway X, the only way I can 
figure to do that is by matching the MAC address of the gateway, but the 
match only works on incoming traffic. Is it even technically possible to 
match on out going? Or if someone has a better way of doing it I would 
be happy to hear that as well.

I am not subscribed to the list so if it is possible to reply to me and 
the list that would be great, but I will read the list archive for the 
next couple of days anyway.

Thanks
Daniel Griggs

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: MAC address matching. Or other ideas.
  2003-05-04 23:34 MAC address matching. Or other ideas Daniel
@ 2003-05-10 10:59 ` Patrick Schaaf
  2003-05-10 13:24   ` Maciej Soltysiak
  2003-05-11 22:44   ` Daniel
  0 siblings, 2 replies; 5+ messages in thread
From: Patrick Schaaf @ 2003-05-10 10:59 UTC (permalink / raw)
  To: Daniel; +Cc: netfilter-devel

> Is it possible to get the MAC match module to match on dst MAC address 
> rather than just src MAC?

Not without much much work. The destination MAC is not known, generally,
while the packet traverses the network stack; only on output, after
a potentially long time waiting for an ARP reply, will a destination
MAC be available for checking.

You could, maybe, be lucky to have it in the POSTROUTING table. But I
doubt that.

> So I want to be able to say only gimme traffic that is coming in and
> out via gateway X, the only way I can figure to do that is by matching
> the MAC address of the gateway,

Why not the IP address of the gateway? That is known after routing,
i.e. in both the INPUT and FORWARD chains, and a 'route' match
is trivial to write, as far as I know. There is already a nice
ROUTE target in patch-o-matic, such a route-match could A) be
patterned after the target (take the same options), and it
could B) look at the exact same structure (skb->dst) that the
ROUTE target sets up. Nice mirror work.

If that's a solution for you, and you set out to implement it,
just mail me if you have detail questions.

best regards
  Patrick

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: MAC address matching. Or other ideas.
  2003-05-10 10:59 ` Patrick Schaaf
@ 2003-05-10 13:24   ` Maciej Soltysiak
  2003-05-10 13:43     ` Patrick Schaaf
  2003-05-11 22:44   ` Daniel
  1 sibling, 1 reply; 5+ messages in thread
From: Maciej Soltysiak @ 2003-05-10 13:24 UTC (permalink / raw)
  To: Patrick Schaaf; +Cc: Daniel, netfilter-devel

> You could, maybe, be lucky to have it in the POSTROUTING table. But I
> doubt that.
Hmm, how about an another netfilter hook somewhere in the output code
path, when the dst mac is known?

Regards,
Maciej

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: MAC address matching. Or other ideas.
  2003-05-10 13:24   ` Maciej Soltysiak
@ 2003-05-10 13:43     ` Patrick Schaaf
  0 siblings, 0 replies; 5+ messages in thread
From: Patrick Schaaf @ 2003-05-10 13:43 UTC (permalink / raw)
  To: Maciej Soltysiak; +Cc: Patrick Schaaf, Daniel, netfilter-devel

On Sat, May 10, 2003 at 03:24:16PM +0200, Maciej Soltysiak wrote:
> > You could, maybe, be lucky to have it in the POSTROUTING table. But I
> > doubt that.
> Hmm, how about an another netfilter hook somewhere in the output code
> path, when the dst mac is known?

There was a proposal for such a thing, some time ago, I think by Don Cohen.
The intent, there, was to have a way to do things after traffic control.
As a personal example, it could be nice to have a way to do accounting
only for those packets that really made it through; customers could
complain that they are billed for dropped packets.

In principle, such a chain would have to sit in the network card driver
output path, just before a packet is really handed over to the hardware.
The destination MAC will surely be resolved, there.

One thing that I find a bit icky, is that there, we are clearly
"out and below" the IPv4 stack, so we have left the native scope of
the iptables tool. Thus, another iptables table could be problematic,
and another clone like arptables or ebtables, maybe called devtables,
would be more appropriate.

best regards
  Patrick

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: MAC address matching. Or other ideas.
  2003-05-10 10:59 ` Patrick Schaaf
  2003-05-10 13:24   ` Maciej Soltysiak
@ 2003-05-11 22:44   ` Daniel
  1 sibling, 0 replies; 5+ messages in thread
From: Daniel @ 2003-05-11 22:44 UTC (permalink / raw)
  To: Patrick Schaaf; +Cc: netfilter-devel

Thanks for your reply, I thought that there may be some issues with 
matching dst MAC addresses. You are right though that a better solution 
would be to base it on the gateways IP address. I would be happy to 
implement it myself, but I don't have any experience with C let alone 
kernel programming, though it would be cool to have something I wrote in 
the kernel. It you guys added a method to allow people to write perl 
modules then I would certainly contribute :).
If someone wants to/ has the time the time to implement such a match 
module then kudos to them, otherwise I will just have to find a 
different solution.

Thanks again for your help.
Daniel


Patrick Schaaf wrote:
>>Is it possible to get the MAC match module to match on dst MAC address 
>>rather than just src MAC?
> 
> 
> Not without much much work. The destination MAC is not known, generally,
> while the packet traverses the network stack; only on output, after
> a potentially long time waiting for an ARP reply, will a destination
> MAC be available for checking.
> 
> You could, maybe, be lucky to have it in the POSTROUTING table. But I
> doubt that.
> 
> 
>>So I want to be able to say only gimme traffic that is coming in and
>>out via gateway X, the only way I can figure to do that is by matching
>>the MAC address of the gateway,
> 
> 
> Why not the IP address of the gateway? That is known after routing,
> i.e. in both the INPUT and FORWARD chains, and a 'route' match
> is trivial to write, as far as I know. There is already a nice
> ROUTE target in patch-o-matic, such a route-match could A) be
> patterned after the target (take the same options), and it
> could B) look at the exact same structure (skb->dst) that the
> ROUTE target sets up. Nice mirror work.
> 
> If that's a solution for you, and you set out to implement it,
> just mail me if you have detail questions.
> 
> best regards
>   Patrick

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2003-05-11 22:44 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-05-04 23:34 MAC address matching. Or other ideas Daniel
2003-05-10 10:59 ` Patrick Schaaf
2003-05-10 13:24   ` Maciej Soltysiak
2003-05-10 13:43     ` Patrick Schaaf
2003-05-11 22:44   ` Daniel

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.