Recien pasada la entrega del proyecto de Redes, decidí publicar una información que me llevó casi 2 semanas de investigación en google buscando algun tipo de software que me permitiera usar una máquina linux con 2 interfaces de red, como un switch LAN (Nivel 2), sin saber que era tan sencillo y que el mismo kernel lo podía hacer, con el front-end necesario (en este caso bridge-utils), y yo pensando en soluciones mas complejas como hacerme un programa para capturar los marcos en C, qué desperdicio de tiempo y esfuerzo hubiera sido! Por eso, aqui les va el dato:
Requisitos:
Hardware:
– 1 ordenador que soporte GNU/Linux.
– 2 o mas dispositivos de red(ya sean alambradas o inalámbricas(wifi)) soportadas por el kernel y correctamente funcionales.
– 2 o mas cables UTP cruzados si se va a utilizar ethernet alambrado.
Software:
– Cualquier distribución moderna de gnu/linux obviamente (se recomienda Ubuntu por su facilidad y soporte)
– El paquete bridge-utils.
1. Se deberá instalar los 2 dispositivos de red a la maquina donde se desee instalar, con sus cables cruzados conectados a sus respectivas máquinas clientes para cuando se use Ethernet.
2. Encender el ordenador y arrancar gnu/linux, y luego verificar si existen las 2 intefaces, para ver esto ejecutar el sig. comando como root:
# ifconfig
2.1 Si los dispositivos estan correctamente instalados, aparecerá en pantalla el nombre de las interfaces, en mi caso aparece eth0 y eth1, pues son dos tarjetas ethernet 100baseT. Si se usa inalambricas, aparecera ya sea wifi0, ra0, ar0, etc.
3. Instalar el paquete bridge-utils, que contiene las interfaces que accederan al kernel para agregar los bridges virtuales,
3.a. Si se utiliza Debian, Ubuntu, o cualquier derivado, colocar en la linea de comandos
$ sudo apt-get install bridge-utils
3.b. pero si se baja el paquete desde el sitio oficial, o se usa otra distribucion que no sea Debian, Ubuntu o cualquier derivado, muy probablemente se deberá desempaquetar primero, y luego compilar con:
$ ./configure
$ make
y como root.
# make install
4. Luego de instalado el paquete, se deberá proceder a crear un nuevo bridge virtual con el sig. comando como root:
# brctl addbr br0
5. Despues de que el bridge/switch br0 virtual ha sido correctamente creado. debemos conectar a éste las interfaces de red que tenemos disponibles, escribiendo en la consola como root:
# brctl addif br0 eth0
# brctl addif br0 eth1
… y asi con todos los dispositivos de red que querramos conectar.
6. Debemos activar el protocolo STP (Spanning-Tree Protocol) en nuestro switch linux, para que nuestro switch no tenga problemas al interconectarse a otro switch. Esto se hace escribiendo el sig. comando como root:
# brctl stp br0 on
7. Para evitar conflictos, se debera inicializar en 0 los IP de todos los dispositivos de red escribiendo como root lo que sigue:
# ifconfig eth0 0
# ifconfig eth1 0
… y asi con todos los dispositivos de red que conectemos al bridge
8. Si se desea, se le puede agregar un IP al bridge, es recomendable que se le de un IP valido para la red a la que se va a conectar. Escribiendo lo siguiente como root:
# ifconfig br0 192.168.1.50
Asumiendo que estamos en la red 192.168.1.0, y que el IP dado al bridge no esta asignado a ninguna otra maquina. Ya con esto podemos conectar nuestro bridge a cualquier cliente.
Eso es todo. Con linux podemos hacer maravillas y revivir maquinas viejas que sirvan para algun proposito util. Incluso se pueden realizar Routers baratos y eficientes usando el software Quagga, pero esta es otra historia….