Using a linux box as a bridge
A bridge is a way to connect more than one Ethernet segments together in a protocol independent way. Packets are forwarded based on Ethernet address, rather than IP address (like a router does). Since forwarding is done at Layer 2, all protocols can go transparently through a bridge.
Now imagine you want to build a bridge with you own PC equipped with three different interfaces: a wlan two Gb Ethernet 1000 Base-T and a Gb Ethernet 1000 Base-SX (Fiber Optic connection).
Linux gives you the ability to do that.
You only need to install the brctl command (yet installed on most of Linux dIstributions).
A simple bridge configuration
Referring to the above picture we configure a bridge bitween the four interfaces, remeber that you need to be root to issue the following commands:
# ifconfig wlan0 0.0.0.0
# ifconfig eth0 0.0.0.0
# ifconfig eth1 0.0.0.0
# ifconfig eth2 0.0.0.0
# brctl addbr bridge0
# brctl addif bridge0 wlan0
# brctl addif bridge0 eth0
# brctl addif bridge0 eth1
# brctl addif bridge0 eth2
# ifconfig bridge0 up
If you issue the ifconfig command you should obtain an output like the following:
~# ifconfig
bridge0 Link encap:Ethernet HWaddr yy:yy:yy:yy:yy:yy
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:138 errors:0 dropped:0 overruns:0 frame:0
TX packets:111 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:11501 (11.2 KiB) TX bytes:9714 (9.4 KiB)
eth0 Link encap:Ethernet HWaddr yy:yy:yy:yy:yy:yy
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:17 errors:0 dropped:0 overruns:0 frame:0
TX packets:20 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:3023 (2.9 KiB) TX bytes:3475 (3.3 KiB)
eth1 Link encap:Ethernet HWaddr xx:xx:xx:xx:xx:xx
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:17 errors:0 dropped:0 overruns:0 frame:0
TX packets:20 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:3023 (2.9 KiB) TX bytes:3475 (3.3 KiB)
eth2 Link encap:Ethernet HWaddr xx:xx:xx:xx:xx:xx
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:17 errors:0 dropped:0 overruns:0 frame:0
TX packets:20 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:3023 (2.9 KiB) TX bytes:3475 (3.3 KiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:8 errors:0 dropped:0 overruns:0 frame:0
TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:636 (636.0 B) TX bytes:636 (636.0 B)
This configuration is a configuration for a transparent bridge, it looks like a bridge you can buy in a Store. But your Linux box is a more intelligent system, so you can add services. If you want to add some services like snmp (to check the status of your Linux system) or a NTP service or a telnetd daemon or whatever you want, you can add an IP address to your bridge interface.
Simply issue the following commands:
# ifconfig bridge0 192.2.2.5 netmask 255.255.255.0
# ifconfig bridge0
br0 Link encap:Ethernet HWaddr yy:yy:yy:yy:yy:yy
inet addr:192.2.2.5 Bcast:192.2.2.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:213 errors:0 dropped:0 overruns:0 frame:0
TX packets:134 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:19714 (19.2 KiB) TX bytes:12640 (12.3 KiB)


