cole@coledd.com
ftp://ftp.tux.org/people/alan-cox/BRCFG.tgz
BRCFG may also be found at:
        
http://coledd.com/networking/bridge//etc/lilo.conf,
and re-run lilo:
append = "ether=0,0,eth1"
        
append = "ether=0,0,eth1 ether=0,0,eth2"
        
linux ether=0,0,eth1
        
linux ether=0,0,eth1 ether=0,0,eth2
        
BRIDGING enabled.
/etc/sysconfig/network-scripts/ (for a RedHat system)
and copy ifcfg-lo0 to ifcfg-eth0 &
ifcfg-eth1.
In these 2 eth files, change the line containing
``DEVICE=lo'' to ``DEVICE=eth0''
and ``DEVICE=eth1''.
Other distributions may deviate from this, do what you need to do!
If there are more than 2 interfaces to this bridge,
be sure to make the corresponding configurations to those, as well.
ifconfig eth0 promisc ; ifconfig eth1 promisc
        
brcfg program:
brcfg -ena
        
tcpdump -i eth0      (in one window)
tcpdump -i eth1      (in another window)
        
tcpdump on another machine
to verify the bridge is separating the segment correctly.
I get the message
ioctl(SIOCGIFBR) failed: Package not installed
        
You don't have bridging capability in your kernel.
Get a 2.0 or greater kernel,
and recompile with the BRIDGING option enabled.
Machines on one side cannot ping the other side!
brcfg -ena''?
(brcfg should say ``bridging is ENABLED'')ifconfig'' command.
The ``PROMISC'' flag should be on for
both interfaces.)I cannot telnet/ftp from the bridge! Why?
This is because there is no IP address bound to any of bridge interfaces. A bridge is to be a transparent part of a network.
What do I need to set up in the way of routing?
Nothing!
All routing intelligence is handled by
the bridging code in the kernel.
To see the ethernet addresses as they are learned by the bridge,
use the brcfg program in debug mode:
brcfg -deb
        
The bridge appears to work, but why doesn't ``traceroute'' show the bridge as a part of the path?
Due to the nature of a bridge, a ``traceroute'' should NOT show the bridge as a part of the path. A bridge is to be a transparent component of the network.
Is it necessary to compile IP_FORWARD into the kernel?
No. The bridging code in the kernel takes care of the packet
transport.
IP_FORWARD is for a gateway which has IP addresses
bound to its interfaces.
Why are the physical ethernet addresses for port 1 and port 2 the
same according to the ``brcfg'' program?
Shouldn't they be different?
No. Every port on a bridge intentionally is assigned the same physical ethernet address by the bridging code.
Bridging does not appear to be an option when performing a make config on the kernel. How does one enable it?
During the kernel config, answer 'Y' to the question, ``Prompt for development and/or incomplete code/drivers (CONFIG_EXPERIMENTAL) [Y/n/?]''.
Too many hubs (4 or more) chained one after another (in series) cause timing problems on an ethernet. What effect does a bridge have in a subnet that is layered with hubs?
A bridge resets the 3/4/5 hubs rule. A bridge does not deal with packets the way a hub does, and is therefore not a contributor to timing problems on a network.
Can a bridge interface to both 10Mb and 100Mb ethernet segments? Will such a configuration slow down the rest of the traffic on the high speed side?
Yes, a bridge can tie together a 10Mb segment with a 100Mb segment. As long as the network card on the fast network is 100Mb capable, TCP takes care of the rest. While it's true that the packets from a host in the 100Mb network communicating to a host in the 10Mb network are moving at only 10Mb/s, the rest of the traffic on the fast ethernet is not slowed down.