Servidor OpenVMPS

Servidor OpenVMPS 1. Índice 1. 2. 3. 4. 5. Índice Introducción Instalación Configuración Verificación del funcionamient

Views 62 Downloads 0 File size 804KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Servidor OpenVMPS 1. Índice 1. 2. 3. 4. 5.

Índice Introducción Instalación Configuración Verificación del funcionamiento

2. Introducción El servidor que instalaré es el OpenVMPS aunque para resumir me referiré a él como VMPS. El servidor VMPS hace la función de servidor para la base de datos de asignación de VLANs dinámicas. En las redes basadas en equipos de Cisco Systems hay la posibilidad de asignar de manera dinámica los puertos a una u otra VLAN dependiendo de la dirección MAC del dispositivo conectado a un puerto determinado, los dipositivos capaces de realizar esta función son los Cisco Catalyst de las series 6000, al ser una gama alta pueden no estar al alcance de cualquier empresa que quiera implementar este sistema, para ello hay la alternativa de instalar el servidor VMPS en un servidor Linux a un coste mucho menor, ya que las necesidades de prestaciones del servidor son mínimas. El funcionamiento de las VLAN virtuales es el siguiente: cuando se conecta un dispositivo a un puerto de un conmutador, y el conmutador recibe la dirección MAC del dispositivo, éste envía una consulta al servidor VMPS indicando la dirección MAC del dispositivo y pide la VLAN a la que se ha de asignar, el servidor VMPS tiene una base de datos (un fichero) en la que consulta la VLAN a la que hay que asignar la dirección MAC, si no encuentra ninguna VLAN le asigna una por defecto. Cuando el servidor VMPS le responde con la VLAN, el puerto pasa a ser asignado a dicha VLAN. Hay que tener en cuenta que el servidor VMPS no responde con un número de VLAN, sino que responde con el nombre de la VLAN, por lo que los conmutadores (switch) han de tener configuradas las VLAN con nombres asignados. El servidor VMPS permite muchas configuraciones, pero en éste caso, de momento al menos, solamente configuraré el servidor para asignar VLAN a puertos. 3. Instalación Yo uso el sistema operativo Linux CentOS, en otros sistemas la instalación será similar. Primeramente se descarga el software de la web: http://sourceforge.net/projects/vmps/ La versión del fichero que he encontrado y que usaré se llama: vmpsd-1.4.03.tar.gz

En mi caso guardaré el fichero en el directorio /vmpsd e instalaré el servidor en la ruta /vmpsd/servidor. Pasos: [root@localhost /]# cd vmpsd [root@localhost vmpsd]# ls vmpsd-1.4.03.tar.gz [root@localhost vmpsd]# tar -xvf vmpsd-1.4.03 vmpsd-1.4.03/

Si hay algún problema instalándolo, en el directorio donde se descomprime el archivo descargado hay un fichero llamado "INSTALL" donde indica como instalarlo también. Una vez instalado el servidor, para ejecutarlo aconsejo introducir los siguientes parámetros: 

 

-d: muestra mensajes del servidor, errores, ... sin tener que revisar el registro de errores. De esta manera si hay que "matar" el proceso se puede hacer con Control+C y sin tener que buscar el proceso y matarlo. Para hacer pruebas ya está bien, si es en un entorno de producción se puede omitir este parámetro y ejecutarlo en segundo plano cuando se ha verificado su funcionamiento. -f: especifica el fichero de la BBDD donde se encuentra la información de las VLAN y las direcciones MAC. -a: especifica la dirección IP en la que tiene que "escuchar" para las peticiones entrantes.

Así pues, el comando completo que ejecuto para utilizar el servidor VMPSd es: /vmpsd/vmpsd -d -f /etc/vmps.db -a 192.168.0.2

4. Configuración Una vez instalado el servidor VMPSd, hay que configurarlo, para ello se crea un fichero (o se usa el que viene de ejemplo llamado vlan.db) y se edita. Los parámetros que usaré son:    

Dominio VTP: redespracticas Modo abierto. VLAN por defecto "default". Se permiten peticiones donde no se especifique el dominio VTP.

El dominio VTP es el que se ha configurado en los conmutadores. El modo tiene dos valores: abierto (open) si se permite que las direcciones MAC que no tienen VLAN configurada sean asignadas a la VLAN por defecto, o bien seguro (secure) en caso de que cuando se conecte un dispositivo con una MAC no configurada en la base de datos, el puerto se desactive y se tenga que acceder al switch por consola y activarlo de nuevo. La VLAN por defecto es la VLAN que se asignará a los puertos donde la dirección MAC no esté configurada. En este caso se permitirán conexiones donde no se especifique el dominio VTP. Estos cuatro parámetros es obligatorio indicarlos.

Se configurarán dos asignaciones de direcciones MAC a VLAN:  

MAC: 0040.9531.eb8b -> VLAN "PRUEBA" MAC: 1234.5678.9123 -> VLAN "Administración"

El fichero de configuración "vlan.db" queda así: vmps no-domain-req allow vmps-mac-addrs address 0040.9531.eb8b vlan-name PRUEBA address 1234.5678.9123 vlan-name Administra

5. Verificación del funcionamiento Este apartado está explicado en la sección Conmutación -> VLAN y VTP -> VLAN dinámicas. Para ir al apartado correspondiente presione en el siguiente enlace: VLAN dinámicas

Redes locales virtuales (VLAN y VTP) 1. Índice 1. 2. 3. 4. 5. 6. 7.

Índice Introducción Topología Configuración VLAN Configuración de los enlaces troncales Ajustes de VTP VLANs dinámicas

2. Introducción Se entiende por red local (LAN), la que está localizada en un entorno reducido, puede ser una habitación, un auditorio, toda una planta de un edificio, o un edificio entero, a diferencia de una red de área amplia (WAN) que abarcaría desde la conexión entre dos pueblos, dos países vecinos o situados en los extremos del planeta Tierra o una red de área metropolitana (MAN) que abarcaría localizaciones separadas pero dentro de una misma ciudad por ejemplo. Al ser tan genérico el término "red de área local" y dándose tantas escalas, también pueden darse muchas topologías distintas, haber desde solamente un grupo reducido de dispositivos hasta cientos o miles de dispositivos, de diferentes tipos como PC, servidores, teléfonos IP, ... por lo que si se colocasen todos en la misma red física sería algo caótico.

Una posibilidad es fragmentar físicamente la red según los departamentos, como colocando un switch por departamento y luego conectarlos entre ellos, aunque así puede darse el caso de desaprovechar aparatos, sobredimensionar la red según las necesidades, por ejemplo, tener que poner un switch de 24 puertos para un departamento con 17 PCs, y otro switch de 48 puertos para otro departamento con 28 PCs, en éste caso se necesitarían 17+28=45 puertos, y los switch en total suman 72 puertos y restando un puerto en cada switch para la interconexión aún sobrarían 15 puertos, y aún así, habría la posibilidad de que si un PC estuviese infectado por malware, este se propagase a toda la red. Otra posibilidad, es colocar un solo switch de 48 puertos y segmentar la red a nivel lógico, esto significa que físicamente todos los PC están conectados al mismo dispositivo (el mismo switch) pero el switch está configurado para que se comporte como dos o más redes independientes. Esto también tiene la ventaja de que en este caso las difusiones (broadcast), las subredes, ... se encuentran aisladas unas de otras por lo que en caso de que un PC tenga un virus que afecte a la red, solo afectaría a la red virtual (VLAN) en la que se encuentre. Y en caso se que haya que interconectar varios switch, se seguirá manteniendo la separación lógica entre las diferentes redes virtuales configuradas. Esta separación lógica se hace a todos los niveles menos el físico, es decir, a cualquier dato que entre por un puerto de un switch configurado con una o más VLAN se le asigna una "etiqueta" con el identificador de la red virtual que se ha asignado al puerto por donde ha entrado. En caso de que los datos entrantes vengan de otro switch, el otro switch ya le habrá asignado la etiqueta correspondiente y el receptor mirará su tabla de direcciones MAC para decidir a donde enviar los datos recibidos. De la misma manera, el protocolo de árbol expandido (Spanning-Tree Protocol - STP) también tratará a las diferentes LANs virtuales como redes independientes bloqueando puertos para una VLAN y para otra dejándolos en estado de reenvío (Forward). Las VLANs están definidas por el estándar 802.1q y la encapsulación a la hora de configurarlas en conmutadores de la marca Cisco se define con el nombre del estándar: "dot1q". Hay dos tipos de puertos en las VLAN y VTP, los de acceso que solamente pertenecen a una VLAN y es en los que se conectan los hosts, y los troncales que tienen el fin de interconectar switch y por donde pasan una o varias VLAN configuradas pero el puerto no tiene asignada explícitamente ninguna VLAN. Si hay un enlace entre switch que tiene la finalidad de unir una VLAN configurada en cada conmutador, no es necesario configurar el puerto como troncal, sino que se puede configurar el puerto como de acceso y asignarle la VLAN que se quiere unir con él, esta opción es válida solamente cuando se quieren llevar datos de una sola VLAN por un puerto, si se quieren unir dos o más VLANs el puerto ha de ser configurado como troncal. Existen dos tipos de VLAN: 

Dinámicas: se configura una base de datos con las direcciones MAC y las VLAN que tienen permitidas, cuando un dispositivo con una dirección MAC almacenada en la



base de datos se conecta al switch, éste le asigna la VLAN definida, en caso de no haber ninguna VLAN definida para la dirección MAC, se asigna una predeterminada. Estáticas: la asignación de VLAN se hace en base al puerto por el cual se conecta el dispositivo, en caso de no haber ninguna VLAN explícitamente configurada para un puerto, éste tendrá asignada la VLAN de administración (VLAN número 1).

Aquí pueden encontrarse documentos sobre este y otros estándares: ir a la página de los estándares 802.1 del IEEE. 3. Topología La topología que se usará estará formada por cinco switch y un enrutador:    

2 Catalyst 2950G 2 Catalyst 2950T 1 Catalyst 3550-EMI 1 Cisco 7204VXR

Será la misma topología que se usará para el apartado sobre el protocolo Spanning-Tree. En éste caso se simularán tres departamentos de una empresa y aparte la red de Voz IP, cada departamento tendrá su VLAN y la red de voz tendrá su propia VLAN independiente, por lo que por cada usuario que haya en la supuesta empresa habrá dos puertos del switch en uso (para el PC y para el teléfono IP). Topología de la red:

Cada departamento y servicio usará los puertos siguientes:  





Dirección: 2 usuarios. o 2950G1: Fa 3, Fa 4. Administración: 8 usuarios y 2 impresoras en red. o 2950G1: Fa 11, Fa 12, Fa 15, Fa 16, Fa 17, Fa 18. o 2950G2: Fa 3, Fa 4, Fa 7, Fa 8. Comercial: 10 usuarios, 4 impresoras en red, 4 datáfonos. o 2950G2: Fa 9, Fa 10, Fa 11, Fa 12. o 2950T1: Fa 3, Fa 4, Fa 7, Fa 8, Fa 11, Fa 12, Fa 13, Fa 14, Fa 15, Fa 16. o 2950T2: Fa 1, Fa 2, Fa 3, Fa 4. Voz IP: 20 usuarios, 1 servidor de Voz IP. o 2950G1: Fa 19, Fa 20, Fa 21, Fa 22, Fa 23, Fa 24. o 2950G2: Fa 15, Fa 16, Fa 17, Fa 18, Fa 19, Fa 20. o 2950T1: Fa 19, Fa 20, Fa 21, Fa 22, Fa 23, Fa 24. o 2950T2: Fa 15, Fa 16. o 3550: Fa 48 (Servidor VoIP).

Las conexiones del switch 3550 al router 7204vxr no serán configuradas como un EtherChannel sino que serán dos conexiones independientes en modo troncal transportando cada una de ellas unas VLAN distintas.

Topología de interconexión entre VLANs:

Las interfaces que forman los EtherChannels no se muestran porque al estar agrupadas en un Port Channel dejan de configurarse independientemente. Todos los EtherChannels usan el protocolo PAgP y están en modo "on", aunque para las VLAN y VTP no tiene importancia. Inicialmente solamente se configurarán los switch sin tener en cuenta el router, posteriormente se configurarán los enlaces troncales entre switchs y del switch al router, se aplicarán ACLs para filtrar tráfico entre VLAN y finalmente se verificará la conectividad entre dispositivos de cada VLAN y también que pueden conectarse a "la nube". 4. Configuración de las LANs virtuales La configuración de las VLAN es sencilla, ha de configurarse el puerto en modo de acceso y asignarlo a una VLAN, según los puertos especificados en el apartado anterior:  

Dirección (VLAN 10): 2 usuarios. o 2950G1: Fa 3, Fa 4. Administración (VLAN 20): 8 usuarios y 2 impresoras en red.

o o





2950G1: Fa 11, Fa 12, Fa 15, Fa 16, Fa 17, Fa 18. 2950G2: Fa 3, Fa 4, Fa 7, Fa 8. Comercial (VLAN 30): 10 usuarios, 4 impresoras en red, 4 datáfonos. o 2950G2: Fa 9, Fa 10, Fa 11, Fa 12. o 2950T1: Fa 3, Fa 4, Fa 7, Fa 8, Fa 11, Fa 12, Fa 13, Fa 14, Fa 15, Fa 16. o 2950T2: Fa 1, Fa 2, Fa 3, Fa 4. Voz IP (VLAN 90): 20 usuarios, 1 servidor de Voz IP. o 2950G1: Fa 19, Fa 20, Fa 21, Fa 22, Fa 23, Fa 24. o 2950G2: Fa 15, Fa 16, Fa 17, Fa 18, Fa 19, Fa 20. o 2950T1: Fa 19, Fa 20, Fa 21, Fa 22, Fa 23, Fa 24. o 2950T2: Fa 15, Fa 16. o 3550: Fa 48 (Servidor VoIP).

Pondré la configuración de las VLAN en los switch Catalyst 2950G1 y 2950G2 usando diferentes comandos para configurar las propiedades de las VLAN, la configuración de los switch 2950T1, 2950T2 y 3550 es similar solo cambiando el número de puerto y VLAN. La configuración se hace con los siguientes pasos: 1. Se crea la VLAN de una de las siguientes maneras: o Desde el modo "(vlan)" con los comandos:  "vlan database": pasa al modo de configuración vlan desde el modo privilegiado (switch#).  "vlan name state media ": crea o modifica una vlan existente con los parámetros especificados. El parámetro esencial solo es el parámetro "id" donde se pone el número de VLAN. El parámetro "name" sirve para darle un nombre identificativo a la VLAN, si el nombre tiene espacios ha de ir entre comillas dobles "". El parámetro "state" indica el estado de la VLAN, si está activada o no, las opciones son "active" para activarla o "suspend" para desactivarla. El parámetro "media" indica el tipo de medio por el cual irán las tramas, puede ser Ethernet, Token Ring o FDDI. o Desde el modo de configuración global ("switch(config)#") con los comandos:  "vlan ": entra en modo de configuración de la VLAN.  "name ": asigna un identificador alfanumérico a la VLAN.  "media ": igual que del otro modo hay las opciones Ethernet, FDDI o Token Ring.  "state ": estado de la VLAN, las opciones son "active" o "suspend". 2. Se establece el tipo de puerto como de acceso y se asignan los puertos a las VLAN correspondientes. Desde el modo de configuración global:  "interface [range] /": entra en el modo de configuración de la/s interfaz/ces.  "switchport mode access": establece el puerto como puerto de acceso.  "switchport access vlan ": se asigna el puerto a la VLAN indicada en . En caso de que las VLAN vayan nombradas, el identificador sigue siendo el número asignado. 3. De los puertos de acceso configurados, se establecen los que van a ser para conectar host de los que van a ser para hosts:  "interface [range] /": entra en el modo de configuración de la/s interfaz/ces.



"switchport host": indica que en este puerto irá conectado un dispositivo "cliente" como un PC, servidor, teléfono IP, ... Al ejecutar este comando, el switch lleva a cabo los siguientes cambios en el puerto:  Se deshabilita cualquier EtherChannel del cual forme parte la interfaz.  Se establece el puerto como puerto de acceso (si en lugar de introducir en el paso anterior el comando "switchport mode access" se introduce "switchport host" tendría el mismo efecto de cara a la VLAN).  Se establece el puerto en el modo "PortFast" de SpanningTree, esto se explicará detalladamente en el apartado dedicado a STP cuando esté disponible.

Catalyst 2950G1: CREACION DE LAS VLAN: 2950G1#vlan database 2950G1(vlan)#vlan 10 name Dir

Catalyst 2950G2: CREACION DE LAS VLAN: 2950G2(config)#vlan 20 2950G2(config-vlan)#name Adm

Tras configurar los puertos con las respectivas VLAN correspondientes, los puertos a los que no se ha asignado ninguna VLAN se comportan como puertos troncales, esto se detalla en el siguiente apartado donde se configuran los puertos troncales. Por ejemplo, la interfaz virtual "Port-Channel 3" que será enlace troncal para las VLANs 20, 30 y 90, cuando todavía no se ha configurado, muestra los siguientes parámetros: 2950G1#sh interfaces port-cha Port Po3

Mode Encapsulati desirable 802.1q

Al comportarse todos los puertos no configurados como troncales hay conectividad total entre dispositivos de una misma VLAN, como por ejemplo, un host (20.0.0.66) conectado a un puerto del switch 2950G1 en la VLAN 20 haciendo ping a otro host (20.0.0.67) en la misma VLAN del switch 2950G2, tiene conectividad, posteriormente, haciendo ping a otro host (20.0.0.2) en el switch 2950G1 en la VLAN 10 no tiene conectividad:

C:\>ipconfig Configuración IP de Window s

5. Configuración de los enlaces troncales Normalmente las redes troncales son las que se encargan de transportar el grueso de los datos y en cada punto de acceso a la red troncal los datos se distribuyen a otros puntos. En el caso de las VLAN, los enlaces troncales son los encargados de centralizar el transporte de los datos de las diferentes VLANs, y de esto se encarga el protocolo VTP (del inglés "VLAN Trunking Protocol"). Hay dos encapsulaciones para configurar enlaces troncales: 1. dot1q: estándar de la industria 802.1q. Añade 4 bytes a los datos. 2. ISL: propietario de Cisco. Añade 30 bytes a los datos.

Al limitarse actualmente los dispositivos compatibles con ISL a algunos dispositivos solamente, es mejor configurar siempre que se pueda la encapsulación 802.1q ya que es compatible con dispositivos de varios fabricantes. El estándar 802.1q contempla que los puertos de los switch tengan asignada una VLAN por defecto, de esta manera, en caso de recibir tramas sin etiqueta VLAN, se les asignará la etiqueta de la VLAN por defecto y en caso de estar etiquetadas se respetará la etiqueta a la hora de tomar la decisión mientras en el caso de ISL, si recibe una trama sin etiquetar la descarta. De esta manera pueden coexistir en una misma red switch con y sin capacidad de interpretar VLANs. Es importante que la VLAN por defecto sea la misma en todos los switch para evitar problemas. En los switch Cisco, todos los puertos se comportan como troncales por defecto. Los diferentes modos de puerto troncal que hay son los siguientes:  







"access": deshabilita el modo de puerto troncal. "trunk": el puerto está en modo troncal e intenta establecer un enlace troncal negociando con la interfaz a la que está conectado. La negociación se hace con DTP (Dynamic Trunking Protocol) propietario de Cisco. "nonegotiate": el puerto está en modo troncal pero no negocia mediante DTP. Para que se convierta en un puerto troncal hay que configurar los puertos de ambos dispositivos conectados en modo troncal. "desirable": hace que la interfaz intente conectarse de manera activa el enlace en un enlace troncal, si la interfaz a la cual está conectada el puerto está en modo "auto", "desirable" o "trunk", el enlace se convertirá en un enlace troncal. Este modo es el que viene por defecto en los switch con Cisco IOS. "auto": la interfaz intenta establecer el enlace troncal, el enlace se establece solo si la interfaz del dispositivo conectado está en modo "trunk" o "desirable". Modo por defecto de las interfaces en CatOS.

Todas los switch Cisco soportan el estándar 802.1q, mientras que solamente los switch de las series 1970, 3550, 3560, 3750, 4000*, 4500* y 6500 soportan ISL. Los modelos

marcados con * soportan ISL en la versión con Cisco IOS, pero no en la versión con sistema operativo CatOS. La configuración de los enlaces troncales es similar sea configurando un solo puerto o un EtherChannel en modo troncal, pero no en un enrutador, por lo que según la topología que se mostraba en el apartado "Topología":

Primero se mostrará la configuración de los enlaces troncales del switch 3550 (switch multicapa conectado al enrutador 7204vxr, 2950G1 y 2950T1) y posteriormente se mostrará la configuración de los enlaces troncales entre el switch 3550 y el enrutador 7204vxr, y cuando se configuré el enrutador, habrá conectividad entre las diferentes VLAN. Las configuraciones van descritas dentro del mismo campo de texto. Configuración switch Catalyst 3550: MODO DE CONFIGURACIÓN GLOBAL: s3550#conf t Enter configuration commands,

Ahora hay conectividad entre dispositivos de la misma VLAN aunque no entre dispositivos de VLANs diferentes:

DE HOST EN 2950T1 A HOST EN C:\>ping 20.0.0.130

Configuración router Cisco 7204VXR: SE CREA UNA SUBINTERFAZ P 7204vxr(config)#int fa0/0.10 SE ESPECIFICA QUE SE VA A U

He configurado un servidor DHCP con los respectivos rangos IP de cada VLAN para no estar cambiando manualmente las direcciones IP según la VLAN asignada a cada interfaz, y al conectar el cable en una u otra interfaz según esté asignada a una VLAN u otra, las asigna correctamente: Adaptador Ethernet Conexión Rack Cisco 2: Sufijo conexión específica DNS: Dirección IP. . . . . . . . . : 192.168.0.2 Máscara de subred . . . . . . : 255.255.255.0

Y ahora, con el enrutador configurado ya hay conectividad entre VLANs: Adaptador Ethernet Rack CISCO: Sufijo conexión específica DNS: Dirección IP. . . . . . . . . : 20.0.0.130 Máscara de subred . . . . . . : 255.255.255.192

6. Ajustes de VTP Partiendo de la configuración ya hecha, se van a realizar modificaciones en la configuración de VTP. Se considera un dominio a una parte de una red administrada por un único colectivo o individuo, en VTP siempre hay un dominio que abarca todos los dispositivos que se unen y en este dominio los dispositivos tienen la misma configuración. El protocolo VTP tiene tres modos de funcionamiento:   

Cliente: no puede añadir ni modificar la configuración en el dominio VTP. Servidor: puede añadir y modificar la configuración en el dominio VTP. Transparente: simplemente transfiere los cambios de configuración sin aplicárselos.

En la red, los switch se configurarán con los siguientes modos cada uno:

Se mostrarán las configuraciones del switch 3550, 2950G1 y 2950T1. Dentro de las configuraciones habrá la descripción de lo que se haga. En la configuración de los parámetros de VTP el enrutador no tiene ningún papel. Cisco 3550: ESTABLEZCO EL DOMINIO VTP A redespractic s3550(config)#vtp domain redespracticas Changing VTP domain name from NULL to redes 00:07:02: %SW_VLAN-6-VTP_DOMAIN_NAME_

Como se puede ver, por defecto el switch tiene establecido el modo servidor de VTP. Al haber configurado el dominio a "redespracticas" en un switch del dominio que estaba en modo servidor (tiene autoridad para cambiar y transmitir la configuración VTP a los switch del dominio), ahora el dominio VTP del resto de switch habrá de ser el mismo ("redespracticas"):

2950T1#show vtp status VTP Version :2 Configuration Revision : 14 Maximum VLANs supported locally : 250 Number of existing VLANs :9

El dominio no es necesario configurarlo en los otros switch porque el servidor ya lo tiene configurado, ahora están todos en modo servidor por lo que falta configurar el resto según corresponda en modo cliente o transparente. Cisco 2950T1: CONFIGURACIÓN DE VTP EN MODO CLIENTE: 2950T1(config)#vtp mode client Setting device to VTP CLIENT mode. VERIFICACIÓN DE LOS CAMBIOS:

Cisco 2950G1: CONFIGURACIÓN DE VTP EN MODO TRANSPA 2950G1(config)#vtp mode transparent Setting device to VTP TRANSPARENT mode. VERIFICACIÓN DE LOS CAMBIOS:

Si se intenta cambiar, por ejemplo, la versión VTP o activar el pruning en el switch en modo transparente (2950G1) no debería permitirlo o los cambios no tienen efecto ni en el switch ni en el dominio, de igual forma, los cambios hechos en el dominio desde el switch "servidor" (3550) no tienen efecto sobre el switch en modo "transparente", mientras que en el switch en modo cliente no puede cambiar la configuración del dominio VTP mientras que los cambios desde el switch en modo "servidor" sí que los aplica. Modo transparente (2950G1): CONFIGURACIÓN ACTUAL SWITCH "TRANSPA 2950G1#sh vtp status VTP Version :2 Configuration Revision :0 Maximum VLANs supported locally : 250

Modo cliente (2950T1): 2950T1(config)#vtp version 1 Cannot modify version in VTP client mode

Parámetros como el dominio o la clave sí que son modificables a nivel de cliente ya que un switch puede cambiar de dominio, y si la clave configurada en el servidor se propagase a través de la red para configurar a los clientes, sería una vulnerabilidad. También se puede establecer una contraseña en el dominio VTP de manera que sea necesario que los switch necesiten la contraseña para unirse al dominio. En este caso se configurará la contraseña "RedesPracticas": ESTABLEZCO LA CONTRASEÑA "RedesPractic s3550(config)#vtp passw ord RedesPracticas Setting device VLAN database passw ord to Re PARA VER COMO AFECTA LA CONTRASEÑA

Otra función de VTP es lo que se llama el "pruning". Cuando en un switch se configura la VLAN X, informa a los switch vecinos de que en ése switch hay la VLAN X, si se envía un paquete destinado a la VLAN Y con el pruning deshabilidado hacia una MAC que no está registrada, se enviará a todos los switch, tengan configurada la VLAN X, Y, Z, ... o no, mientras que con el pruning habilitado, el paquete destinado a la VLAN Y, solo se enviará a los switch que tengan la VLAN Y configurada y no a los que tengan cualquier otra VLAN, excepto en caso de que para llegar de un switch A a un switch C que tienen configurada la VLAN Y, han de pasar por un switch B que no la tiene configurada. Configuración del parámetro: s3550(config)#vtp pruning Pruning sw itched on

Depuración de los procesos de pruning: 2950T2#debug sw -vlan vtp pruning vtp pruning debugging is on 2950T2#VTP PRUNING DEBUG: trunk Gi0/2 rx J VTP PRUNING NOTICE: discard Join rx on trunk VTP PRUNING DEBUG: trunk Po5 rx Join, len=16

Como se puede ver, se establecen los puertos VTP en modo de "noPrune", posteriormente se envían datos ("Flooding") por los puertos, y se inicia el proceso de agrupar los puertos configurados como troncales según si se encuentra una VLAN u otra. Esta agrupación tiene un periodo de validez breve, tras el cual, el switch vecino ha de solicitar unirse de nuevo.

7. VLANs dinámicas Las VLANs dinámicas son VLANs que se crean según el dispositivo que se conecte en un switch, se agregan los puertos a una VLAN determinada y si se conecta otro dispositivo con una dirección MAC distinta, el puerto se asignará a otra VLAN. Para ello se configura una pequeña base de datos con un grupo de direcciones MAC y se asigna cada una de ellas a una VLAN, al conectar un dispositivo con una dirección MAC que se encuentre en la base de datos a un puerto cualquiera del switch, ese puerto toma la VLAN especificada. Para configurar VLANs dinámicas, es necesario tener un servidor llamado VMPS (de "VLAN Membership Policy Server"), el cual tiene una base de datos donde se relacionan las direcciones MAC con la VLAN correspondiente. Usando solamente equipamiento de Cisco Systems, solo es posible tener un servidor VMPS usando switch Catalyst serie 6000 ya que son los únicos que pueden dar este servicio. Aparte del switch Catalyst 6000, también es necesario un servidor TFTP en el cual estará almacenado el fichero con la relación de las direcciones MAC y las VLAN. Como los sistemas Catalyst 6000 son caros, usaré un servidor VMPS para Linux (vmpsd), la instalación y configuración del mismo la especificaré en otro apartado (Linux -> Servidor VMPS), este programa no necesita ningún servidor TFTP sino que usa un fichero que se ha de editar para añadir o modificar las asignaciones y parámetros. Importante: VMPS utiliza el puerto UDP/1589, si el Linux que se utiliza tiene un firewall configurado por defecto que bloquea los puertos, es importante que se abra este puerto, ya que hasta que el switch no contacta con el servidor para saber la VLAN que ha de asignar a cada puerto, ningún dispositivo conectado podrá transmitir. Los puertos que vayan a asignarse de manera dinámica, han de estar configurados en modo de acceso y en lugar de especificar una VLAN determinada, se usa el parámetro "dynamic", de esta manera en lugar de asignar el puerto a la VLAN, consultará al servidor VMPS configurado. Switch(config-if)#switchport access vlan dynamic

El servidor VMPS lo conectaré al puerto Fa0/48 del switch 3550, donde iría el servidor "Asterisk" de Voz IP, usaré la VLAN "Voz IP" para que los switch se comuniquen con el servidor. La dirección IP del servidor VMPS será 192.168.0.2. Como esta configuración será solo para este apartado, usaré solamente el switch 3550 y asignaré los puertos desde el Fa 0/17 al 32 en modo dinámico y conectaré dos interfaces con diferente dirección MAC, las asignaciones que haré serán:  

MAC: 0040.9531.eb8b VLAN: Administracion MAC: 1234.5678.9123 VLAN Comercial

Al especificar la VLAN, siempre hay que configurarla por su nombre, nunca por su identificador (el número de VLAN).

Se usará una configuración sencilla en el fichero de configuración, solamente para asignar dos direcciones MAC a las VLAN respectivas, pero sin más opciones. Contenido del fichero: 1> vmps 2> vmps 3> vmps 4> vmps

domain redespracticas mode open fallback default no-domain-req deny

Explicación por líneas: 1. Se especifica el dominio VTP. 2. Modo 3. Cuando una MAC no tenga asignada una VLAN, se asignará a la VLAN por defecto, en éste caso es la VLAN 1. 4. Los switch fuera del dominio VTP especificado no pueden consultar al servidor VMPS. 5. Se indica el inicio de la lista de direcciones MAC. 6. Se asigna la MAC 0040.9531.eb8b a la VLAN llamada Administracion. 7. Se asigna la MAC 1234.5678.9123 a la VLAN llamada Comercial.

Nota: los números de línea son añadidos para enumerar las líneas para su explicación, en el fichero original no han de ir enumeradas. Configuración del switch: 1> s3550#conf t 2> s3550(config)#interface range fa0/17 - 32 3> s3550(config-if-range)#sw itchport mode ac 4> s3550(config-if-range)#sw itchport access v 5> 01:51:49: %LINEPROTO-5-UPDOWN: Line pr

Explicación por líneas: 1. 2. 3. 4. 5.

6. 7. 8. 9.

Se entra en modo de configuración global. Se selecciona el rango de puertos del Fa0/17 a 32 Se establecen los puertos en modo de acceso. Se establecen los puertos en modo de asignación dinámica de VLAN. Como los puertos por defecto están asignados a la VLAN 1, al establecer una asignación dinámica de los puertos, dejan de estar asignados a la VLAN 1, por lo que la VLAN 1 pasa a estar desactivada. Se sale del modo de configuración de interfaz. Se configura como servidor VMPS primario al servidor 192.168.0.2 En caso de no responder a la primera consulta, se establece que reintente contactar con el servidor 10 veces, el rango es entre 1 y 10, por defecto 3. Se configura que reconfirme cada una de las asignaciones cada 1 minuto, el rango es de 0 a 120 minutos, por defecto 60.

Se puede configurar más de un servidor VMPS, pero uno ha de ser el primario.

Cuando se configura el switch y todavía no hay ningún dispositivo conectado a los puertos de asignación dinámica, se muestra el estado "No Dynamic Port": s3550#show vmps VQP Client Status: -------------------VMPS VQP Version: 1 Reconfirm Interval: 1 min

En cuanto se conecta un dispositivo a un puerto de asignación dinámica, el estado de reconfirmación cambia a "other": s3550# 00:08:30: %LINK-3-UPDOWN: Interface FastEth 00:08:31: %LINEPROTO-5-UPDOWN: Line proto s3550#show vmps VQP Client Status:

Tras pasar el intervalo de reconfirmación (en este caso 1 minuto), y tras haber reconfirmado almenos una vez la asignación de VLANs, el estado cambia a "Success" (correcto): 00:09:31: %VQPCLIENT-7-RECONF: Reconfirmi 00:10:31: %VQPCLIENT-7-RECONF: Reconfirmi s3550#show vmps VQP Client Status: --------------------

Ahora verificaré que las direcciones MAC asignadas a cada puerto corresponden con lo configurado anteriormente en el fichero del servidor VMPS de tal manera que los puertos estén asignados a las VLAN según la dirección MAC conectada a cada puerto: DIRECCIONES MAC CONECTADAS A CADA PU s3550#show mac address-table dynamic Mac Address Table -------------------------------------------

Como se ve, se cumple lo que se había configurado, el puerto donde se conecta la MAC que comienza por 1234... está asignado a la VLAN "Comercial", y el puerto que comienza por 0040... está asignado a la VLAN "Administracion". Mirando los parámetros de la interfaz, se puede ver que está configurada para ser asignada a una VLAN de manera dinámica:

s3550#show interfaces fa0/17 sw itchport Name: Fa0/17 Sw itchport: Enabled Administrative Mode: dynamic access Operational Mode: dynamic access

En el fichero de configuración del servidor VMPS, se pueden hacer varios cambios para ajustar el comportamiento, como por ejemplo:  





vmps domain : dominio VTP donde se encuentra el servidor VMPS. vmps mode: o open: si no encuentra una coincidencia para la dirección MAC, le asigna la VLAN de último recurso ("fallback"). Si no hay VLAN de último recurso configurada, el puerto se queda sin ser asignado a ninguna VLAN y sin poder transmitir, puede seguir intentando ser asignado a diferencia del modo seguro que queda totalmente desactivado. o secure: si no se encuentra una coincidencia y no hay configurada una VLAN de último recurso, el puerto se desactiva como medida de seguridad, para activarlo de nuevo el administrador ha de activar la interfaz por consola. vmps fallback : en caso de que el servidor VMPS no encuentre ninguna coincidencia con la dirección MAC, y si el "vmps mode" está como "open", se asignará esta VLAN al puerto. vmps no-domain-req: o allow: permite consultas a clientes de otros dominios VTP. o deny: no permite consultas a clientes de otros dominios.

Como VLAN se puede especificar el nombre "--NONE--" que es como un comodín, al asignar esta VLAN, el puerto queda desactivado. Lo mismo ocurre cuando el servidor VMPS está configurado en modo seguro y no hay configurada ninguna VLAN de último recurso o está configurada con el valor "--NONE--", en este caso no se ha configurado VLAN de úlimo recurso: %LINK-3-UPDOWN: Interface FastEthernet0/25, changed state to up %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/25, changed state to up %VQPCLIENT-2-SHUTDOWN: Interface Fa0/25 shutdown by VMPS %PM-4-ERR_DISABLE: vmps error detected on Fa0/25, putting Fa0/25 in err-disable state %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/25, changed state to down %LINK-3-UPDOWN: Interface FastEthernet0/25, changed state to down

Se puede ver que primero el puerto detecta que hay un dispositivo conectado y hay enlace, por lo que se activa, cuando el dispositivo transmite su dirección MAC y el servidor VMPS no encuentra la dirección en el fichero y no tiene configurada la VLAN de último recurso, indica que el puerto ha de ser desactivado. Registro del servidor VMPS:

ALLOW: 12:34:56:78:91:23 -> Comercial, switch (unknown) [192.168.0.254] port Fa0/22 ALLOW: 00:40:95:31:eb:8b -> Administracion, switch (unknown) [192.168.0.254] port Fa0/29 SHUTDOWN: 12:34:56:78:91:22 -> --NONE--, switch (unknown) [192.168.0.254] port Fa0/25

Se puede ver que como solamente hay configuradas en el fichero de configuración las direcciones MAC que acaban por ...9123 y ...eb8b, al conectarse la que acaba por ...9122 le indica al switch que desactive el puerto enviando como nombre de la VLAN a asignar "--NONE--", el mismo efecto tendría configurar la VLAN de último recurso ("fallback vlan") con ése mismo nombre. Por ahora dejo el protocolo VMPS aquí, se pueden configurar bastantes más cosas, pero lo más importante y que es necesario saber, es esto. Mirando por internet me he encontrado aplicativos NAC ("Network Access Control") que incluyen vmpsd dentro del aplicativo, pero aún así, he encontrado poca información de este servicio, por lo que quizás VMPS sea algo que vaya cayendo en desuso. Los inconvenientes que le veo a este sistema, es sobretodo el hecho de que si se quiere configurar en una empresa no muy grande, es necesario tener o bien un switch de gama alta y coste elevado, o bien un host asignando VLANs. Por otro lado, creo que si se documenta bien una red y se tienen presentes los puertos de los switch que hay asociados a cada VLAN, la configuración se reduce y simplifica aparte de que se mejroa la seguridad, ya que cada servicio ejecutándose en la red es una carga en los enlaces, switch y una vulnerabilidad más. Lo mejor que le encuentro a este sistema es el bloqueo de puertos o la no asignación de una VLAN por lo que el puerto está activo pero inutilizable hasta que se conecte un dispositivo con una VLAN asignada, pero para implementar medidas de seguridad basadas en MAC hay otras alternativas, y al fin y al cabo, la dirección MAC de un PC puede cambiarse y ponerse la misma que un dispositivo configurado y de esta manera se salta la protección. Quizás lo más práctico que le veo a este sistema, es que no tienes que recordar los puertos a los que se ha asignado una VLAN u otra, y conectando un host a un puerto cualquiera, si el host tiene una MAC configurada, se le asignará la VLAN a la que corresponda, esto en una red de empresa es bastante útil ya que permitiría movilidad entre mesas, plantas, ... conservando siempre la pertenencia a la misma VLAN. VLAN Management Policy Server Jose L. Villalón, 7 enero 2013 | |

Also available in English

Habitualmente, cuando tenemos que llevar a cabo la segmentación lógica de una red mediante el uso de VLANs, procedemos a crear las redes necesarias ya sea de forma manual o automáticamente mediante protocolos tipo VTP (VLAN Trunking Protocol) de Cisco en nuestra red y tras esto, asignamos las distintas interfaces de los dispositivos a cada una de las VLANs definidas. Esto supone que, si mañana me cambio de sitio y

cambio mi portátil de toma de red, deberé configurar la nueva toma de red para que pertenezca a la VLAN que necesito para llevar a cabo mi trabajo diario. Una solución a este problema puede ser el uso junto al protocolo VTP, el servicio VMPS (VLAN Management Policy Server) de Cisco, el cual proporciona una primera aproximación a una solución de control de acceso a red tan ofrecida por los fabricantes en la actualidad. Entre otras funcionalidades, VMPS permite asociar dinámicamente equipos a VLANs basándonos en su dirección MAC (con el problema de seguridad que supone), de forma que mi portátil, en cualquier toma de red de la oficina al que lo conecte, siempre pertenecerá a la misma VLAN y podré trabajar con normalidad. Cualquier switch Cisco de gama media soporta VMPS como cliente, no obstante, solo las gamas altas (superiores a la 4000), soportan el modo servidor. A pesar de esto, no es necesario disponer de uno de estos equipos para aplicar esta solución ya que existen multitud de herramientas tanto libres (algunas algo desactualizadas) como comerciales que nos proporcionan la funcionalidad de servidor VMPS que necesitamos. Dentro de todas ellas, se ha seleccionado vmpsd (http://sourceforge.net/projects/vmps/), un pequeño demonio para GNU/Linux que nos proporciona un servidor VMPS sin necesidad de instalar demasiado software, como un sistema de gestión de base de datos. Para proceder a configurar VMPS en nuestro switch (el elegido es un Cisco 2960), realizamos los siguientes pasos: 1) Configuramos VTP Switch(config)#vtp Switch(config)#vtp

mode server domain s2

Switch#show vtp status : running VTP2 Configuration Revision Maximum VLANs supported locally Number of existing VLANs VTP Operating Mode VTP Domain Name VTP Pruning Mode VTP V2 Mode VTP Traps Generation MD5 digest 0x79

: : : : : : : : :

1 255 14 Server s2 Disabled Enabled Disabled 0xC4 0xE8 0xDB 0x1A 0xF2 0x6B 0xC2

2) Configuramos switch como cliente VMPS Para llevar a cabo esta configuración, indicamos la dirección IP del servidor VPMS principal (podemos tener varios) Switch(config)# vmps retry 3 Switch(config)# vmps reconfirm 1 Switch(config)# vmps server 172.18.0.150 primary Switch#show vmps VQP Client Status: -------------------VMPS VQP Version: 1 Reconfirm Interval: 1 min Server Retry Count: 3 VMPS domain server: 172.18.0.150 (primary, current)

Reconfirmation status --------------------VMPS Action: No Dynamic Port

3) Creamos las distintas vlans Switch(config)#vlan 21 Switch(config-vlan)#name GESTION Switch(config)#vlan 22 Switch(config-vlan)#name USUARIOS Switch(config)#vlan 23 Switch(config-vlan)#name INVITADOS Switch#show vlan VLAN Name ---- ---------------------------------------21 GESTION 22 USUARIOS 23 INVITADOS

Status Ports --------- ---------------------active active active

4) Marcamos las interfaces que usan VMPS Switch(config)#interface range fastEthernet 0/10-20 Switch(config-if-range)# switchport mode access Switch(config-if-range)# switchport access vlan dynamic Switch#show interface fastEthernet 0/10 switchport Name: Fa0/10 Switchport: Enabled Administrative Mode: dynamic access ****** Operational Mode: down Administrative Trunking Encapsulation: dot1q Negotiation of Trunking: Off Access Mode VLAN: unassigned ******* Trunking Native Mode VLAN: 1 (default) Administrative Native VLAN tagging: enabled Voice VLAN: none Administrative private-vlan host-association: none Administrative private-vlan mapping: none Administrative private-vlan trunk native VLAN: none Administrative private-vlan trunk Native VLAN tagging: enabled Administrative private-vlan trunk encapsulation: dot1q Administrative private-vlan trunk normal VLANs: none Administrative private-vlan trunk associations: none Administrative private-vlan trunk mappings: none Operational private-vlan: none Trunking VLANs Enabled: ALL Pruning VLANs Enabled: 2-1001 Capture Mode Disabled Capture VLANs Allowed: ALL

5) Configuramos el servidor VMPS (vlan.db) vmps vmps vmps vmps

domain s2 mode open fallback INVITADOS no-domain-req deny

vmps-mac-addrs

address 0023.8bd7.c2b3 vlan-name GESTION

En la configuración debemos tener en cuenta lo siguiente:  



El dominio debe coincidir con el configurado en VTP. La VLAN INVITADOS es usada para redireccionar las MACs que no estan autorizadas por la política debido a que configuramos el modo open, si usamos el modo secure, la interfaz quedaría deshabilitada. Asignamos la dirección MAC de mi portatil a la VLAN de GESTION.

Una vez aquí, arrancamos el demonio y lanzamos una consulta de prueba (indicamos la dirección IP, el dominio VTP y la dirección MAC) perl vqpcli.pl -s 172.18.0.150 -v s2 Vlan: GESTION MAC Address: 00238bd7c2b3 Status: ALLOW

-m 0023.8bd7.c2b3

Como vemos, la dirección MAC esta autorizada y le asigna la VLAN GESTION. Llegados a este punto, solo queda probar a conectarnos al switch (activamos el debug mediante el comando debug vqpc all) para realizar distintas pruebas: Conectamos mi portátil una de las tomas definidas para usar VMPS (fa0/13) *Mar 1 02:23:09.070: VQPC EVENT: -pm_port_vqp_start: port Fa0/13 *Mar 1 02:23:11.075: %LINK-3-UPDOWN: Interface FastEthernet0/13, changed state to up *Mar 1 02:23:12.081: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/13, changed state to up *Mar 1 02:23:13.986: VQPC LEARN: *Mar 1 02:23:13.986: VQPC LEARN: -learning mac 0023.8bd7.c2b3 on vlan 0, port Fa0/13 *Mar 1 02:23:13.986: VQPC LEARN: adding mac 0023.8bd7.c2b3 on vlan 0, port Fa0/13, type = 0x0021 *Mar 1 02:23:13.986: VQPC: allocating transID 0x00000471 *Mar 1 02:23:13.986: VQPC PAK: xmt transaction ID = 0x00000471 *Mar 1 02:23:13.986: VQPC PAK: sending query to VMPS *Mar 1 02:23:13.986: VQPC PAK: *Mar 1 02:23:13.986: VQPC PAK: rcvd packet from VMPS *Mar 1 02:23:13.994: VQPC PAK: transaction ID = 0x00000471 *Mar 1 02:23:13.994: VQPC: rcvd response, transID = 0x00000471 *Mar 1 02:23:13.994: VQPC PAK: VLAN name TLV, vlanName = GESTION *Mar 1 02:23:13.994: VQPC PAK: Cookie TLV, cookie = 0023.8bd7.c2b3, length = 6 *Mar 1 02:23:13.994: VQPC EVENT: -set_hwidb_vlanid: port Fa0/13 to vlan 21, mac: 0023.8bd7.c2b3 *Mar 1 02:23:13.994: VQPC EVENT: saving 0023.8bd7.c2b3 from old vlan 0 *Mar 1 02:23:13.994: VQPC EVENT: changing Fa0/13 to vlan 21 *Mar 1 02:23:13.994: VQPC LEARN: adding mac 0023.8bd7.c2b3 on vlan 21, port Fa0/13, type = 0x0001 *Mar 1 02:23:13.994: VQPC LEARN: deleting mac 0023.8bd7.c2b3 on vlan 0, port Fa0/13 *Mar 1 02:23:13.994: VQPC LEARN: changing mac 0023.8bd7.c2b3 on vlan 21, port Fa0/13 to FORWARDING

Como vemos, asigna la dirección MAC la VLAN 21 (GESTION): Switch#show

vlan

VLAN Name ---- ---------------------------------------21 GESTION 22 USUARIOS 23 INVITADOS

Status Ports --------- ---------------------active active active

Fa0/13

Switch#show interface fastEthernet 0/13 switchport Name: Fa0/13 Switchport: Enabled Administrative Mode: dynamic access Operational Mode: dynamic access Administrative Trunking Encapsulation: dot1q Operational Trunking Encapsulation: native Negotiation of Trunking: Off Access Mode VLAN: 21 (GESTION) Trunking Native Mode VLAN: 1 (default) Administrative Native VLAN tagging: enabled Voice VLAN: none Administrative private-vlan host-association: none Administrative private-vlan mapping: none Administrative private-vlan trunk native VLAN: none Administrative private-vlan trunk Native VLAN tagging: enabled Administrative private-vlan trunk encapsulation: dot1q Administrative private-vlan trunk normal VLANs: none Administrative private-vlan trunk associations: none Administrative private-vlan trunk mappings: none Operational private-vlan: none Trunking VLANs Enabled: ALL Pruning VLANs Enabled: 2-1001 Capture Mode Disabled

Ahora la desconecamos y la conectamos a otra toma del switch( fa0/17) *Mar 1 02:24:42.938: VQPC EVENT: -pm_port_vqp_start: port Fa0/17 *Mar 1 02:24:44.650: VQPC LEARN: *Mar 1 02:24:44.650: VQPC LEARN: -learning mac 0023.8bd7.c2b3 on vlan 0, port Fa0/17 *Mar 1 02:24:44.650: VQPC LEARN: adding mac 0023.8bd7.c2b3 on vlan 0, port Fa0/17, type = 0x0021 *Mar 1 02:24:44.650: VQPC: allocating transID 0x00000491 *Mar 1 02:24:44.650: VQPC PAK: xmt transaction ID = 0x00000491 *Mar 1 02:24:44.650: VQPC PAK: sending query to VMPS *Mar 1 02:24:44.650: VQPC PAK: *Mar 1 02:24:44.650: VQPC PAK: rcvd packet from VMPS *Mar 1 02:24:44.650: VQPC PAK: transaction ID = 0x00000491 *Mar 1 02:24:44.650: VQPC: rcvd response, transID = 0x00000491 *Mar 1 02:24:44.650: VQPC PAK: VLAN name TLV, vlanName = GESTION *Mar 1 02:24:44.650: VQPC PAK: Cookie TLV, cookie = 0023.8bd7.c2b3, length = 6 *Mar 1 02:24:44.650: VQPC EVENT: -set_hwidb_vlanid: port Fa0/17 to vlan 21, mac: 0023.8bd7.c2b3 *Mar 1 02:24:44.650: VQPC EVENT: saving 0023.8bd7.c2b3 from old vlan 0 *Mar 1 02:24:44.650: VQPC EVENT: changing Fa0/17 to vlan 21

*Mar 1 02:24:44.658: VQPC LEARN: adding mac 0023.8bd7.c2b3 on vlan 21, port Fa0/17, type = 0x0001 *Mar 1 02:24:44.658: VQPC LEARN: deleting mac 0023.8bd7.c2b3 on vlan 0, port Fa0/17 *Mar 1 02:24:44.658: VQPC LEARN: changing mac 0023.8bd7.c2b3 on vlan 21, port Fa0/17 to FORWARDING *Mar 1 02:24:44.943: %LINK-3-UPDOWN: Interface FastEthernet0/17, changed state to up *Mar 1 02:24:45.950: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/17, changed state to up Switch#sh mac-address-table | inc DYNAMIC 21 0023.8bd7.c2b3 DYNAMIC Fa0/17 Switch#show

vlan

VLAN Name ---- ---------------------------------------21 GESTION 22 USUARIOS 23 INVITADOS

Status Ports --------- ---------------------active active active

Fa0/13, Fa0/17

Vemos que la interfaz Fa0/13 todavía está asignada a la VLAN GESTION, por lo que conectamos otro equipo dicho puerto: *Mar 1 00:03:35.016: VQPC EVENT: -pm_port_vqp_start: port Fa0/13 *Mar 1 00:03:36.887: VQPC LEARN: *Mar 1 00:03:36.887: VQPC LEARN: -learning mac 0005.1b00.3f81 on vlan 0, port Fa0/13 *Mar 1 00:03:36.887: VQPC LEARN: adding mac 0005.1b00.3f81 on vlan 0, port Fa0/13, type = 0x0021 *Mar 1 00:03:36.887: VQPC: allocating transID 0x00000061 *Mar 1 00:03:36.887: VQPC PAK: xmt transaction ID = 0x00000061 *Mar 1 00:03:36.887: VQPC PAK: sending query to VMPS *Mar 1 00:03:36.887: VQPC PAK: *Mar 1 00:03:36.887: VQPC PAK: rcvd packet from VMPS *Mar 1 00:03:36.887: VQPC PAK: transaction ID = 0x00000061 *Mar 1 00:03:36.887: VQPC: rcvd response, transID = 0x00000061 *Mar 1 00:03:36.887: VQPC PAK: VLAN name TLV, vlanName = INVITADOS *Mar 1 00:03:36.887: VQPC PAK: Cookie TLV, cookie = 0005.1b00.3f81, length = 6 *Mar 1 00:03:36.887: VQPC EVENT: -set_hwidb_vlanid: port Fa0/13 to vlan 23, mac: 0005.1b00.3f81 *Mar 1 00:03:36.887: VQPC EVENT: saving 0005.1b00.3f81 from old vlan 0 *Mar 1 00:03:36.887: VQPC EVENT: changing Fa0/13 to vlan 23 *Mar 1 00:03:36.895: VQPC LEARN: adding mac 0005.1b00.3f81 on vlan 23, port Fa0/13, type = 0x0001 *Mar 1 00:03:36.895: VQPC LEARN: deleting mac 0005.1b00.3f81 on vlan 0, port Fa0/13 *Mar 1 00:03:36.895: VQPC LEARN: changing mac 0005.1b00.3f81 on vlan 23, port Fa0/13 to FORWARDING *Mar 1 00:03:37.021: %LINK-3-UPDOWN: Interface FastEthernet0/13, changed state to up *Mar 1 00:03:38.028: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/13, changed state to up

Puesto que la dirección MAC no está autorizada por la política definida, la asigna dinámicamente a la VLAN INVITADOS. Switch#show

vlan

VLAN Name ---- ---------------------------------------21 GESTION 22 USUARIOS 23 INVITADOS

Status Ports --------- ---------------------active active active

Fa0/17 Fa0/24 Fa0/13

Si ahora cambiamos la política al modo secure y sin VLAN de fallback y conectamos el mismo equipo: *Mar 1 00:12:57.019: VQPC LEARN: *Mar 1 00:12:57.019: VQPC LEARN: -learning mac 0005.1b00.3f81 on vlan 0, port Fa0/13 *Mar 1 00:12:57.019: VQPC LEARN: adding mac 0005.1b00.3f81 on vlan 0, port Fa0/13, type = 0x0021 *Mar 1 00:12:57.019: VQPC: allocating transID 0x00000151 *Mar 1 00:12:57.019: VQPC PAK: xmt transaction ID = 0x00000151 *Mar 1 00:12:57.019: VQPC PAK: sending query to VMPS *Mar 1 00:12:57.019: VQPC PAK: *Mar 1 00:12:57.019: VQPC PAK: rcvd packet from VMPS *Mar 1 00:12:57.019: VQPC PAK: transaction ID = 0x00000151 *Mar 1 00:12:57.019: VQPC: rcvd response, transID = 0x00000151 *Mar 1 00:12:57.019: %VQPCLIENT-2-SHUTDOWN: Interface Fa0/13 shutdown by VMPS *Mar 1 00:12:57.019: %PM-4-ERR_DISABLE: vmps error detected on Fa0/13, putting Fa0/13 in err-disable state *Mar 1 00:12:57.019: VQPC EVENT: -pm_port_vqp_stop: port Fa0/13 *Mar 1 00:12:57.019: VQPC EVENT: port Fa0/13, REMOVE dynamic access config *Mar 1 00:12:57.019: VQPC EVENT: deleting all addresses on vlan 0,t Fa0/13 *Mar 1 00:12:57.019: VQPC EVENT: Deleted TCAM catch-all for port Fa0/13 *Mar 1 00:12:57.019: VQPC EVENT: -set_hwidb_vlanid: port Fa0/13 to vlan 0, mac: NULL *Mar 1 00:12:57.019: VQPC EVENT: changing Fa0/13 to vlan 0 *Mar 1 00:12:58.026: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/13, changed state to down *Mar 1 00:12:59.024: %LINK-3-UPDOWN: Interface FastEthernet0/13, changed state to down Switch#show interfaces fas 0/13 status Port Fa0/13

Name

Status Vlan err-disabled unassigned

Duplex auto

Speed Type auto 10/100BaseTX

Podemos comprobar como efectivamente ha desconectado la interfaz del switch y así aparece en las estadísticas del protocolo VMPS: Switch#show vmps statistics VMPS Client Statistics ----------------------

VQP VQP VMPS VQP VQP VQP VQP VQP

Queries: Responses: Changes: Shutdowns: Denied: Wrong Domain: Wrong Version: Insufficient Resource:

53 20 0 5 0 0 0 0

Como hemos podido ver, esta solución nos proporciona algo más de seguridad que la solución habitual, mejorando la mobilidad por nuestra red. No obstante, presenta otros problemas de seguridad que veremos en futuras entradas.

16 comentarios a “VLAN Management Policy Server” (Tenga en cuenta que los comentarios en español y en inglés están mezclados por lo que puede necesitar un traductor online para entender los comentarios de otros usuarios)

buenas! felicito a esta publicacion porque muestra muchos puntos de forma ordenada, y en comparación a otras guias esta es la mas completa que vi, de todas maneras quiero consultar algunos puntos: - ¿el servidor openvmps a que puerto esta conectado a uno dinámico o alguno estático? - ¿como instalo el servidor vmps de forma correcta? - ¿que comandos me permiten ver que el servidor vmps este ya en funcionamiento? - al querer ejecutar esta linea “perl vqpcli.pl -s 172.18.0.150 -v s2 -m 0023.8bd7.c2b3″ no me reconoce el comando perl o vqpcli.pl, en todo caso no se si podrian explicar esa parte con un poco de detalle por favor. por lo demas veo bien, hice toda la configuracion , pero parece que no quiere comunicarse con el servidor, entonces no se si podrian ilustrar con un grafico de ejm q diga de que puerto a que puerto esta conectado el servidor y tambien mas detalles con respecto a la instalacion y ejecucion del openvmps. gracias de antemano. fabrizzio chavez [web], 4 de julio de 2013, 6:49 pm

good! I commend this publication because it shows many points of an orderly, compared to other guides this is the most complete that I saw, anyway I want to check a few points: - OpenVMPS server which port is connected to a dynamic or static one? - How vmps server install properly? - Commands that allow me to see that the server already running vmps this? - To want to run this line “vqpcli.pl perl-v-s 172.18.0.150-m s2 0023.8bd7.c2b3″ does not recognize me or vqpcli.pl perl command, in any case if they could not explain that part a little Please detail. so other look good, did all the settings, but seems unwilling to communicate with the server, then if they could not illustrate with an example chart that says that port is connected to which port the server and also more details regarding to the installation and execution of OpenVMPS. thanks in advance. fabrizzio chavez [web], 4 de julio de 2013, 6:53 pm

Gracias por el comentario Fabrizzio; sobre tus cuestiones - ¿el servidor openvmps a que puerto esta conectado a uno dinámico o alguno estático? En uno estatico, solo se configuraron los puertos dinamicos aquellos en los que se simula la presencia de equipos de usuarios. - ¿como instalo el servidor vmps de forma correcta? Es posible que para la distribucion que uses tengas paquetes compilados; para este post se compilo a mano el codigo, una vez descargado mediante ./configure && make y si quieres instalarlo, make install. - ¿que comandos me permiten ver que el servidor vmps este ya en funcionamiento? El demonio se lanza como vmpsd, por lo tanto, un ps en busca de ese nombre es suficiente para saber si esta arrancado, una vez arrancado, ya puedes hacer consultas. - al querer ejecutar esta linea “perl vqpcli.pl -s 172.18.0.150 -v s2 -m 0023.8bd7.c2b3″ no me reconoce el comando perl o vqpcli.pl, en todo caso no se si podrian explicar esa parte con un poco de detalle por favor. Debes tener instalado el paquete perl para poder lanzar el script de consulta, lo tienes instalado? Un saludo joseluis [web], 5 de julio de 2013, 7:35 am

gracias por la respuesta, bueno efectivamente recién encontre el paquete perl dentro de la carpeta tools,lo que me queda en duda es lo siguiente: - el servidor openvmps cuando se conecta a un puerto estático, este puerto debe tener algun tipo de configuración adicional o dejarlo como esta predeterminado en la vlan 1? lo pongo en modo trunk o access? o simplemente no hago nada ? xD - se debe habilitar algún puerto en el mismo linux para que escuche?¿y si es asi que puerto es y que lineas de código necesito? por lo demás ya lo veo mas claro, esto seria las dudas que me están quedando y bueno espero salga este proyecto, de todas maneras agradezco su respuesta y a este post que me sirvió de mucho, agradezco mucho su ayuda y gracias :D un saludo! fabrizzio chavez [web], 6 de julio de 2013, 6:55 am

Hola Fabrizzio, sobre lo que comentas: - el servidor openvmps cuando se conecta a un puerto estático, este puerto debe tener algun tipo de configuración adicional o dejarlo como esta predeterminado en la vlan 1? lo pongo en modo trunk o access? o simplemente no hago nada ?

Para la prueba se dejo en la vlan por defecto (1), no obstante, supongo que puede estar configurado en cualquier vlan en modo acceso; si esta en modo trunk, tu servidor tiene que estar tambien en modo trunk, no creo que haya mayor problema, pero no he probado esa configuracion. - se debe habilitar algún puerto en el mismo linux para que escuche?¿y si es asi que puerto es y que lineas de código necesito? Cuando arrancas el demonio, escucha automaticamente en el puerto UDP/1589, no obstante puede escuchar en el puerto que indiques con el parametro -p durante el arranque. un saludo! joseluis [web], 8 de julio de 2013, 7:44 am

gracias por la ayuda , me salio el trabajo de maravilla, solo cabe resaltar, que la vlan que use el servidor debe tener una ip asignada, por ejm si mi servidor tiene 192.168.1.5 con mascara 24 y puerta de enlace predeterminada 192.168.1.1, se pone interface vlan 1 , y luego se pone ip address 192.168.1.1 255.255.255.0; es decir que la vlan asignada al puerto donde se conecta el servidor debe ser su gateway, para que este en red la comunicacion que se consideraria UPD/IP, por lo demas está completo el trabajo, gracias. fabrizzio chavez [web], 14 de julio de 2013, 6:25 pm

hola , quisiera saber como reinicio el servidor, cuando modifico una mac a una vlan (cambiar una mac de vlan a otra en el vlan.db) es necesario reiniciar el servidor, cual seria en nombre del demonio, he intentado con vmps y vmpsd y no me funciona, gracias edgar [web], 7 de noviembre de 2013, 4:46 pm

hola Para las pruebas no se uso ningun demonio del sistema, simplemente se lanzo el binario vmpsd de forma manual. En caso de que la instalacion no cree el automaticamente el script de inicio/parada del demonio, no creo que hubiera problema en crear uno nuevo similar al resto de scripts de sistema. Mira en la lista de procesos la entrada del proceso que buscas, normalmente vmpsd. joseluis [web], 8 de noviembre de 2013, 7:45 am

Después de configurar el servidor VMPS, clientes conectadas en las puertas que funcionarán como dinámica no ir a ninguna VLAN. Las puertas están simplemente obstruidos. ¿Qué puede hacer que esto suceda? Braz [web], 10 de noviembre de 2013, 10:29 pm

Hola Braz, No entiendo lo que quieres decir; los puertos estan deshabilitados? tienes algun otro tipo de seguridad activada tipo port-security? cual es el estado de las interfaces?

joseluis [web], 12 de noviembre de 2013, 8:34 am

Hola. ¿Qué sistema operativo se utilizan para aplicar el Service VMPS? ¿Qué versión de Linux? Gracias Braz [web], 24 de noviembre de 2013, 11:58 pm

Hola, levante el servidor y anda de maravillas, pero realice una prueba de clonado de mac y me asigna ambos puertos, como hacer que me reconozca solo una mac y si existe duplicidad de mac, la segunda mac identica no la reconozca? . Gracias edgar [web], 3 de diciembre de 2013, 7:52 pm

Hola Braz: las pruebas las hice con debian 6 Edgar: esta solucion es estandar, para el caso que comentas, se quedaria corta y seguramente habria que añadir otras medidas de seguridad tipo port security o validacion 802.1x. joseluis [web], 4 de diciembre de 2013, 9:17 am

Wow, fantastic weblog format! How long have you ever been blogging for? you made blogging look easy. The full look of your web site is great, as smartly as the content material! colocar tarima flotante [web], 6 de marzo de 2014, 11:01 pm

Me sale el error cannot bien socket gracias por la ayuda andres [web], 3 de mayo de 2014, 5:19 pm

Buenos dias Andres Por ese error, revisa si tienes privilegios para lanzar el servicio en el puerto que tengas configurado y si no hay ya otro servicio en el mismo.

Wednesday, January 30, 2013 Servidor VMPS en Linux (OpenVMPS - Vlan Management Policy Server)

Es posible asignar una Vlan a un puerto de Switch tanto de forma estatica como de forma dinamica; para este ultimo se requiere de un VMPS, el cual es un servidor que se va a encargar de asignar la Vlan a un puerto dependiendo de ciertos parametros pre-establecidos. Cisco oficialmente tiene soporte para que actuen como Servidores VMPS la serie de Catalyst 4000, 5000 y 6500, pero utilizando un servidor Linux con el servicio OpenVMPS podemos llevar a cabo esa tarea. Antes de proceder con la implementación de la solución es necesario que entiendan como funciona: cuando se conecta un dispositivo a un puerto de un Switch, éste envía una consulta al servidor VMPS indicando la dirección MAC del dispositivo y pide la VLAN a la cual deberia pertenecer, el servidor VMPS tiene una base de datos en la que consulta la VLAN a la que hay que asignar la dirección MAC, si no encuentra ninguna VLAN le asigna una por defecto. Lo primero que tenemos que hacer es descargar OpenVPMS, lo podemos descargar desde aqui: http://sourceforge.net/projects/vmps/ Luego descomprimimos el paquete OpenVMPS: [[email protected]]/ # tar -xvf vmpsd-1.4.03.tar.gz Luego instalamos el paquete: [[email protected]] # cd vmpsd-1.4.03 [[email protected]] # ./configure [[email protected]] # make [[email protected]] # make install OpenVMPS para su funcionamiento utiliza un archivo de configuracion que tambien le sirve como base de datos, en la carpeta de instalación podemos ver un archivo de ejemplo llamado vlan.db, lo abrimos y modificamos los siguientes parametros: 

Dominio VTP: Es el dominio que se ha configurado en los Switches.



Modo VMPS: Puede ser Open o Secure, si es Open las Mac Address que no esten especificadas estaran en la Vlan Default y si es Secure el puerto se deshabilitara si encuentra una Mac address no especificada.



Default Vlan: Es la Vlan a la cual irán los puertos que tengan mac addreses no definidas.

Para este archivo de configuración de ejemplo voy a mostrarles como configuro la Mac Address aaaa.aaaa.aaaa en la Vlan Comercial y la Mac Address bbbb.bbbb.bbbb en la Vlan Tecnico.

vmps domain punto-libre.org vmps mode open vmps fallback default vmps-mac-addrs address aaaa.aaaa.aaaa vlan-name Comercial address bbbb.bbbb.bbbb vlan-name Tecnico Luego ejecutamos el server de la siguiente manera: [[email protected]] # vmpsd -f vlan.db -a 10.200.9.230 Donde con la opcion -f especificamos el archivo con la configuración, con -a especificamos la interfaz por la cual escuchara las peticiones y opcionalmente podemos agregarle la opcion -d para que podamos observar todas las peticiones y acciones que toma el server. Solo basta aplicar la siguiente configuración a los Switches para que consulten al servidor:

Switch (config)# vmps server 10.200.9.230 Switch (config)# vmps retry 10 Switch (config)# vmps reconfirm 1 Y en cada puerto del Switch que trabajara dinamicamente ejecutar el siguiente comando: Switch (config)# interface fastethernet0/1 Switch (config-if)# switchport access vlan dynamic Y Listo, eso es todo... cualquier duda, estamos a las ordenes!