viernes, 3 de febrero de 2012

Switch L2 - L3 con linux

Switch L2 - L3 con linux

Voy a compartir con ustedes una interesante experiencia. Armar con un Pentium 1 y cuatro nics un switch L2 y L3.

Más allá de la experimentación en si misma, este tema tiene al menos un par de ventajas.

Para aquellos que están estudiando y no pueden más que practicar en entornos virtuales o para quienes trabajan en pequeños entornos de producción y no es fácil acceder económicamente a un switch que sea programable y que soporte características como VTP, VMPS, VLAN, QoS, STP, etc.

Este proyecto esta basado en LISA [1]. Un kernel de linux que implementa completamente todas las funciones de un switch capa 2 y capa 3.

Hay muy poca documentación, sino ninguna, sobre cómo programarlo pero eso es un problema menor puesto que su operación y concepto es similar a CISCO OS.

1. Descargamos Centos 5.4

CentOS 5.4 torrent

Alternativamente podemos bajarlo por http desde:

http://vault.centos.org/5.4/isos/i386/

para una instalación minima necesitamos los CD 1, 3 y 4.

En las opciones del instalador ponemos “linux text” y a partir de ahí avanzamos respondiendo las preguntas hasta llegar al particionado.

Elegimos “personalizado” (cfdisk manual) y en las opciones creamos una partición primaria ext3 de 3~5 GB y una partición primaria de intercambio (swap) de 512Kb.

Personalizamos la lista de paquetes a instalar dejando seleccionado solo el “base system” y “editores”. En sistema base personalizamos la lista con tcpdump, telnet, irqbalance, bridge-utils, ftp, ipstate, sudo, system-config-network-tui, vconfig, wget.

2. Descargamos el kernel Lisa kernel 2.6.18-164 y kernel-devel

Iniciamos centos desde nuestra nueva instalacion y bajamos el kernel lisa:

wget http://lisa.mindbit.ro/download/lisa/rpm/centos/5/kernel-2.6.18-164.6.1.el5.lisa2.0.1/kernel-2.6.18-164.6.1.el5.lisa2.0.1.i686.rpm

wget http://lisa.mindbit.ro/download/lisa/rpm/centos/5/kernel-2.6.18-164.6.1.el5.lisa2.0.1/kernel-devel-2.6.18-164.6.1.el5.lisa2.0.1.i686.rpm

Lo instalamos:

rpm -ihv kernel-2.6.18-164.6.1.el5.lisa2.0.1.i686.rpm

rpm -ihv kernel-devel-2.6.18-164.6.1.el5.lisa2.0.1.i686.rpm

reiniciamos para cargar el nuevo kernel.

3. Descargamos el componente lisa

wget http://lisa.mindbit.ro/download/lisa/rpm/centos/5/lisa-2.0.2_2.6.18-1.el5/liblisa-2.0.2_2.6.18-1.el5.i386.rpm

wget http://lisa.mindbit.ro/download/lisa/rpm/centos/5/lisa-2.0.2_2.6.18-1.el5/lisa-2.0.2_2.6.18-1.el5.i386.rpm

wget http://lisa.mindbit.ro/download/lisa/rpm/centos/5/lisa-2.0.2_2.6.18-1.el5/lisa-debuginfo-2.0.2_2.6.18-1.el5.i386.rpm

Lo instalamos:

rpm -ihv liblisa-2.0.2_2.6.18-1.el5.i386.rpm

rpm -ihv lisa-2.0.2_2.6.18-1.el5.i386.rpm

rpm –ihv lisa-debuginfo-2.0.2_2.6.18-1.el5.i386.rpm

4. Deshabilitamos selinux e iptables

vi /etc/selinux/config

SELINUX=disable

chkconfig –level 345 ip6tables off

chkconfig –level 345 iptables off

5. Configuramos las interfaces

/etc/sysconfig/network-scripts/ifcfg-ethX

DEVICE=ethX
BOOTPROTO=static
ONBOOT=yes

(cambiamos X por cada una de nuestras interfaces)

Finalmente reiniciamos para cargar la nueva configuración.

6. Configuramos Lisa para nuestro entorno de producción.

Con la orden “swcli” ingresamos a la consola del Switch

[root@centos5.4]#swcli

Localhost.localdomain#show run

Localhost.localdomain#configure t

Localhost.localdomain(config)#hostname Lisa

Lisa(config)#enable secret pirulo

Lisa(config)#interface ethernet 0

Configuramos la IP administrativa

Lisa(config-if)#interface vlan 1

Lisa(config-if)#ip address 192.168.254.254 255.255.255.0

configuramos vlan20

Lisa(config-if)#interface vlan 1

Lisa(config-if)#ip address 192.168.20.1 255.255.255.0

Lisa(config-if)#exit

configuramos trunk y allowed

Lisa#conf terminal

Lisa(config)#interface ethernet 0

Lisa(config-if)#switchport mode trunk

Lisa(config-if)#switch port trunk allowed vlan add 20

Guardamos la configuracion

Lisa#write memory

A partir de aquí esta en el entorno de cada administrador los comandos que necesitará ingresar hasta lograr la configuración deseada.

7. Alternativamente se puede bajar un Live CD

http://lisa.mindbit.ro/download/lisa/iso/lisa-livecd-2009-12-12.iso

Algunas fuentes cosultadas:

[1] http://lisa.mindbit.ro/

http://brezular.wordpress.com/category/gns3/linux-switch/lisa/

http://www.netstorming.com.ar/tag/switching/

https://projects.centos.org/trac/livecd/wiki/CreateImage

http://www.garfio.org.ar/descargas/garfio10minutos.pdf

http://www.garfio.org.ar/?page_id=3

https://projects.centos.org/trac/livecd/browser/trunk/CentOS5/unsupported/centos-livecd-installer.ks