Re: Dual-Homed/Triple-Subnet Bridge Challenge
Grant Taylor <[email protected]> Tue, 12 Feb 2008 11:25:42 -0600
| Newsgroups | gmane.linux.network.bridge.ebtables.user |
|---|---|
| Organization | Riverview Technologies Inc. |
| Message-ID | <[email protected]> |
On 02/12/08 07:09, Vincent Callanan wrote: > Many thanks for your prompt and detailed response. Let me step back and > give you some background before I answer your questions.... You are welcome. <snip> Thank you for the helpful and informative explanation of what you are wanting and what you have tried to do. > Because of routing conflict (as discussed above) I was thinking bind the 169.254.0.0/16 network to eth1 only, not eth0 and eth1. You are correct that binding to both will cause a routing problem if you can get it to bind at all. > Sorry, I should have just said bridge from eth0 to eth1 (not eth0:0 to > eth1) No problem. > eth1 will interface to both 169.254.*.* and 192.168.4.* > eth0 will interface to both 169.254.*.* and 192.168.3.* > > That's THREE subnets in total on TWO interfaces > with no routing between these subnets > but I do need to bridge between eth0 and eth1 for 169.254.*.* traffic > only *nod* This is a perfect case for bridging. > That looks good and makes sense even to me :) > You say that my services will be bound to eth0 and eth1. > Does that mean all three subnets will be visible? Well, you have the option to have services bound to all subnets. If they are bound, yes they will be visible. > That's fine - I have no need for IP filtering (or forwarding) anyway. Ok. > I will want ARP broadcasts on 169.254.*.* to permeate both interfaces > so that Zeroconf clients on either interface can detect conflicts during > address negotiation. But I don't want ARPs from other subnets getting > bridged. This is not a problem. > Do I need extra ebtables commands to ensure this? No. Based on what you are wanting to do, bind your 192.168.3/24 and 192.168.4/24 subnets to eth0 and eth1 respectively. Then bridge eth0 and eth1 together in bri0. (I like to name my bridges "bri" rather than "br", but what ever will work.) Then bind 169.254/16 to bri0. Set up ebtables rules that will cause any traffic entering the bridge not from and to the 169.254/16 network to be routed. In EBTables terms this means to DROP (the packet out of the bridge and pass it on up to the routing code) the frame in the BROUTING chin of the broute table. I believe this will have your desired result. 192.168.3/24, 192.168.4/24, and 169.254/16 networks will all appear on their own interface where you can choose to bind (or not) your services to them. You should have little fear of traffic crossing the bridge that should not. In fact, the only thing that may cross the bridge is ARP traffic (that does not need to), however you can even set up EBTables rules to stop that. > My very basic understanding about Linux bridging is that each NIC is > placed > in promiscuous mode and the switches will also pass traffic which would > not otherwise be visible on the Image Server ports. In other words, > all traffic on each subnet is visible to the server and needs to be > processed (and ignored where applicable). Note quite. The interface(s) are indeed put in to promiscuous mode. However switches connected to the system do not do any thing different (save for Spanning Tree if it is used). The promiscuous mode is just so that all frames that enter the interface can be passed to the bridging code, which will act like a software switch and decide what needs to be done with the frame. > So let's say there is a heavy NFS backup happening on the 192.168.3.* > subnet > between two other servers. Will this traffic create a lot of unnecessary > processing overhead for my Image Server? No, that will not be a problem as long as you are on a modern (switched) network. Remember that a switch will learn where a MAC address is at. Thus if you have one (or more) MAC address(es) talking to one (or more) other MAC address(es), the switch will learn where source and destination MACs are in the conversation. Once the switch has learned where (which port(s)) the destination MAC(s) is connected to, it will no longer send the frames out the other ports in the switch. Thus if you are connected to a network with an NFS server and client (or what ever protocol) they will communicate directly with each other with out the switch sending the traffic to your system. > Many thanks again for your help You are welcome. Grant. . . . ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/