1. Setup
Get Bridge Config: BRCFG.tgz
BRCFG may also be found at: http://coledd.com/networking/bridge
Enable multiple ethernet devices on your machine by adding this line to your /etc/lilo.conf, and re-run lilo:
append = "ether=0,0,eth1"
If you have three interfaces on your bridge, use this line instead:
append = "ether=0,0,eth1 ether=0,0,eth2"
More interfaces can be found by adding more ether statements. By default a stock Linux kernel probes for a single ethercard, and once one is found the probe ceases. The above append statement tells the kernel to keep probing for more ethernet devices after the first one is found. Alternatively, the boot parameter can be used instead:
linux ether=0,0,eth1
Or, with 3 interfaces, use:
linux ether=0,0,eth1 ether=0,0,eth2
Recompile the kernel with BRIDGING enabled.
A bridge should not have an IP address. It CAN, but a plain bridge doesn't need one. To remove the IP address from your bridge, go to /etc/sysconfig/network-scripts/ (for a RedHat system) and copy ifcfg-lo0 to ifcfg-eth0 & ifcfg-eth1. In these two new files, change the line containing DEVICE=lo to DEVICE=eth0 and DEVICE=eth1. Since other distributions may deviate from this, you may need to refer to additional documentation. If there are more than 2 interfaces to this bridge, be sure to make the corresponding configurations to those, as well.
Reboot so you are running the new kernel with BRIDGING in it, and also to make sure that an IP addresses are not bound to the network interfaces.
Once the system is backed up, put the ethernet cards into promiscuous mode, so they will look at every packet that passes by its interface:
All interfaces which are connected to network segments to be bridged are to be put into promiscuous mode.ifconfig eth0 promisc ; ifconfig eth1 promisc
Turn bridging ON using the brcfg program:
brcfg -ena
Verify that there is different traffic on each interface:
tcpdump -i eth0 (in one window) tcpdump -i eth1 (in another window)
Run a sniffer or tcpdump on another machine to verify the bridge is separating the segment correctly.