Re: ebtables & VLAN redirect

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

 



2010/6/29 Grant Taylor <gtaylor@xxxxxxxxxxxxxxxxx>:
> On 06/29/10 14:29, Grant Taylor wrote:
>>
>> The simple fact that you have the amount of incoming traffic that you want
>> to filter and forward a subset of implies that there will be CPU time spent
>> analyzing which traffic to forward.
>
> Along these lines, I have what some might consider a devious idea.
>
> Create a bridge for each VLAN.  That will give you the VLAN interface and
> it's associated bridge interface.  Then bridge the bridge interfaces in to a
> larger bridge.
>
> Using all the smaller bridges will keep the possible rules that you need to
> match smaller, thus less load on the CPU.  You could also turn down the
> VLANs individual bridge when you didn't want to monitor any traffic on it,
> thus reducing the load further.
>
> So, you would end up with a topology somewhat like this:
>
> eth0.101 <-> br101 <-> br9
> eth0.102 <-> br102 <-> br9
> eth0.103 <-> br103 <-> br9 <-> eth1.9
> ...
> eth0.199 <-> br199 <-> br9
>
> In this case, br9 is nothing more than a collector from all the other
> bridges.
>
> It's the interaction between eth0.<VID> and br<VID> that has to do the
> filtering.
>
> When you don't want to monitor traffic on say, eth0.123, simply remove it
> from br123.  Doing so will cause br123 to disable (but not remove) its self
> which will cause br9 to disable the port that is br123.  - Then when you
> want to monitor eth0.123, re-add it to br123, causing br123 to re-enable,
> causing br9 to re-enable br123's port.
>
> Using br9 to aggregate all the VLANs together will also make it easier /
> less load to make sure that you don't have inter-VLAN communications because
> only the traffic you are interested in will make it that far, not all the
> traffic that you are talking about.  Seeing as how there will be much less
> traffic, matching the EBTables rules to see what can talk to what (for br9)
> will be much less load on the system.
>
> Something to think about.
>

A nice idea.
I have thought about it a bit earlier.
BUT linux implementation of bridging has two limitations that makes it
impossible:
1. There cannot be nested bridge devices.
2. Each device can belong to only one bridge device.

Eventually I have come to understanding that my problem has no fine
solution with no risks for performance. Partially I can solve it on
application layer, partially by using bridging.
And talking with you enlightened me on the ways of doing it.
Thanks for your efforts and ideas.

-- 
Best regards
Anatoly Muliarski
--
To unsubscribe from this list: send the line "unsubscribe netfilter" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Netfilter Development]     [Linux Kernel Networking Development]     [Netem]     [Berkeley Packet Filter]     [Linux Kernel Development]     [Advanced Routing & Traffice Control]     [Bugtraq]

  Powered by Linux