Você está na página 1de 4

Puente en linux (Linux-Bridge) Un bridge en el ambiente de redes es un dispositivo que une dos o ms segmentos de red de forma trasparente, por

ende un bridge es independiente de cualquier protocolo de red o transporte, ya que acta nicamente en la capa 2. Un bridge no re-enruta paquetes como lo hara un router por el contrario al trabajar nicamente en la capa 2 del modelo OSI, este se dedica a aprender las direcciones MAC de las mquinas conectadas a l, direcciones que luego utiliza para comunicar una estacin con otra separando a ambas en dominios de colisiones distintos. Si quiere conocer ms sobre bridge refirase a: Http://es.wikipedia.org/wiki/Puente_de_red Http://es.wikipedia.org/wiki/Spanning_tree http://es.wikipedia.org/wiki/VLAN Un Bridge de mltiples puertos es mejor conocido como un switch de capa 2 o simplemente switch o conmutador, por cuestiones funcionales no tratar sobre switches, ya que no es mi intencin que linux haga de switch ya que su costo-beneficio sera psimo comparado con el de un switch especializado, se pretende a posterior utilizar la funcionalidad de bridge como base para crear otros sistemas de anlisis de trfico o en la creacin de redes virtuales de pruebas, de forma que podamos abaratar costos en infraestructura o a la hora de necesitar laboratorios para practicar para nuestras certificaciones, como por ejemplo las de Cisco, Juniper, Network+, Seguridad, etc. Crear un bridge con linux tiene mltiples funcionalidades como lo son: la creacin de dispositivos de seguridad que no afecten el funcionamiento normal de una red, como el caso de firewalls trasparentes, sistemas de deteccin de intrusos, adems se pueden utilizar como equipos analizadores de trfico de red, o incluso con fines pedaggicos, por ejemplo crear redes virtuales para estudio a manera de laboratorios, probar configuraciones y diseos de redes, en fin cualquier cosa que necesite la interconexin de uno o ms dispositivos tanto fsicos como virtuales. En este documento veremos como crear y configurar un bridge en linux, como funciona un bridge y que precauciones y funcionalidades del mismo debemos tomar en cuenta para no degradar el desempeo de la red. No explicaremos como se instala linux, asumiremos que ya tiene una PC con linux (si es nuevo con linux puede optar por instalar ubuntu o alguno de sus derivados), al menos dos tarjetas de red instaladas, si no posee una mquina con dos tarjetas de red como para que vaya probando el laboratorio, entonces solo preocpese por entender como un bridge funciona, como puede ser instalado y puesto en marcha, ya que en un siguiente artculo escribir sobre interfaces lgicas (tap) que lo ayudar a crear interfaces lgicas en el bridge de forma que no necesitar interfaces de red reales para sus laboratorios. Instalacin: Una vez instalada una distro, en nuestro caso ubuntu, podemos luego instalar una utilidad para la creacin de bridge que se llama bridge-utils, esta puede ser instalada en lnea de comando ejecutando:

user@prompt:~$ sudo apt-get install bridge-utils. NOTA: Todo comando ser ejecutado utilizando sudo, ya que necesitamos permiso de sper usuario para la creacin y eliminacin de dispositivos, incluso virtuales en linux, ubuntu se encargar de instalar todas las dependencias necesarias. Creacin de un puente: Una vez instalado bridge-utils, seguimos con la creacin de nuestro bridge. Comando brctl addbr bridge-nombre Ejemplo: para crear un bridge llamado br0 ejecutamos, sudo brctl addbr br0 Si quisiramos eliminar dicho bridge podemos ejecutar sudo brctl delbr br0 Adicin de una interfaz al bridge: Recordemos que tenemos ya el equipo lgico creado mediante el comando anterior, es decir nuestro bridge, imagnese una caja con la funcionalidad del bridge pero sin puertos a donde conectar las estaciones o segmentos de red, con lo siguiente adicionaremos interfaces a nuestro bridge, si adicionamos ms de dos interfaces podemos llamarle a este switch ya que un switch es un bridge de ms de dos interfaces, asumamos que nuestra estacin de laboratorio tiene dos interfaces eth0 y eth1, ya que nuestra intencin, repit no es crear un switch. Comando sudo brctl addif bridge-nombre intefaz-nombre Ejemplo: sudo brctl addif br0 eth0, con esto adicionamos la interfaz de red eth0 al bridge br0. sudo brctl addif br0 eth1, con esto adicionamos la interfaz de red eth1 al bridge br0. Si queremos eliminar dichas interfaces de bridge, lo hacemos ejecutando: sudo brctl delif br0 eth0 sudo brctl delif br0 eth1 Finalmente levantamos nuestro switch para que quede funcionando: sudo ifconfig br0 up o lo podemos detener sudo ifconfig br0 down Nota: Al ejecutar esto, solo debemos tener cuidado de no tener servicios como DHCP services en ambos extremos porque uniramos ambos trficos de red creando conflicto entre los servicios de DHCP.

Si queremos ver como va nuestro bridge podemos hacerlo ejecutando: sudo brctl show o simplemente brctl show Sin el sudo delante, puesto que solo estamos viendo nuestra configuracin, no creando ni eliminando nada. El resultado ser:
bridge name br0 bridge id 8000.00004c9f0bd2 STP enabled no interfaces eth0 eth1

Podemos imaginar que ya creamos una caja bridge con dos puertos de conexin ethernet, si conectamos una pc al puerto ethernet 0 de la caja linux la estaremos pegando a dicho bridge o switch en el puerto eth0 y lo mismo suceder con el puerto eth1, por lo que podemos configurar dichas mquinas en cada puerto de la estacin ubuntu con direcciones ip de una misma subred, y ambas podrn hacer ping entre ellas, El linux-bridge configurado no necesita ninguna ip para que las estaciones en cada interfaz puedan verse entre ellas. Si adicionamos ms interfaces podemos ver algo como esto:

Nota: Puede que nuestras estaciones no puedan verse entre ellas de inmediato, esto es porque el protocolo STP toma aproximadamente 45 segundo aprendindose todas las direcciones MAC que existen en cada una de sus interfaces, aunque estas sean dos, 15 segundos escuchando(listening state), 15 segundos aprendiendo (learning state), 15 segundos o menos en (forwarding delay state), si despus de 50 segundos an no contestan entre si, podemos proceder a revisar bien nuestra configuracin. Si nota cuando ejecutamos brctl show debajo de STP enabled dice no, esto es porque no se necesita el protocolo STP a menos que utilicemos varios bridge unidos entre si creando redundancia completa, si conectamos tres bridges entre ellos a manera de vrtices de un triangulo, crearemos un loop de paquetes infinito que degradara el desempeo de la red, esto se da porque existiran dos o ms rutas a un mismo punto de la red, para evitar este loop infinito debemos tener un protocolo que cree una ruta nica entre bridges, que corte uno de los caminos de forma temporal para evitar dicho loop y que solo habilite otra ruta si la primera ruta falla, este protocolo es STP (Spanning Tree Protocol). Para activar STP ejecutamos: sudo brctl stp bridge-nombre on ejemplo:

sudo brctl stp br0 on En resumen con estos comando podemos crear nuestro bridge una vez instalado bridge-utils. # sudo ifconfig eth0 0.0.0.0 # sudo ifconfig eth1 0.0.0.0 # sudo brctl addbr br0 # sudo brctl addif br0 eth0 # sudo brctl addif br0 eth1 # sudo ifconfig br0 up Para examinar nuestro switch o bridge con estaciones ya pegadas a este, ejecutemos: brctl showmacs br0
port no mac addr 1 00:00:4c:9f:0b:ae 1 00:00:4c:9f:0b:d2 2 00:00:4c:9f:0b:d3 1 00:02:55:1a:35:09 1 00:02:55:1a:82:87 is local? no yes yes no no ageing timer 17.84 0.00 0.00 53.84 11.53

Con esto obtenemos las direcciones mac e informacin bsica del trfico que pasa a travs del bridge. Los comando de capa tres como traceroute, ping, etc, generados en el bridge no funcionarn puesto que un bridge por ser de capa 2 no analiza trfico o informacin de capa 3 o 4, si quiere crear un firewall o IDS trasparente, como se les denomina a los firewall o IDS que no re-enrutan, ya que manejan trfico de capa 2 con anlisis de informacin de capa 3 y 4, debe primero verificar si a nivel de kernel linux permite el anlisis de estas capas en un bridge. Para modificaciones de otros parmetros del bridge como lo son: Max Age, hello time, forwarding delay, path cost and priority, etc por favor referirse al manual de brctl ejecutando en una consola: man brctl

Por Luis Salas.

Você também pode gostar