VLAN


VLAN

Ethernet ya era una tecnología consolidada que ofrecía una velocidad de 10 Mbits/s, mucho mayor que gran parte de las alternativas de la época. Las redes Ethernet tenían una topología en bus, donde el medio físico de transmisión (cable coaxial) era compartido. Ethernet era, por lo tanto, una red de difusión y como tal cuando dos estaciones transmiten simultáneamente se producen colisiones y se desperdicia ancho de banda en transmisiones fallidas.
El diseño de Ethernet no ofrecía escalabilidad, es decir, al aumentar el tamaño de la red disminuyen sus prestaciones o el costo se hace inasumible. CSMA/CD, el protocolo que controla el acceso al medio compartido en Ethernet, impone de por sí limitaciones en cuanto al ancho de banda máximo y a la máxima distancia entre dos estaciones. Conectar múltiples redes Ethernet era por aquel entonces complicado, y aunque se podía utilizar un router para la interconexión, estos eran caros y requería un mayor tiempo de procesado por paquete grande, aumentando el retardo.
Para solucionar estos problemas, Dr. W. David Sincoskie inventó el switch Ethernet con auto-aprendizaje, dispositivo de conmutación de tramas de nivel 2. Usar switches para interconectar redes Ethernet permite separar dominios de colisión, aumentando la eficiencia y la escalabilidad de la red. Una red tolerante a fallos y con un nivel alto de disponibilidad requiere que se usen topologías redundantes: enlaces múltiples entre switches y equipos redundantes. De esta manera, ante un fallo en un único punto es posible recuperar de forma automática y rápida el servicio. Este diseño redundante requiere la habilitación del protocolo spanning tree (STP) para asegurarse de que sólo haya activo un camino lógico para ir de un nodo a otro y evitar así el fenómeno conocido como tormentas broadcast. El principal inconveniente de esta topología lógica de la red es que los switches centrales se convierten en cuellos de botella, pues la mayor parte del tráfico circula a través de ellos.
Sincoskie consiguió aliviar la sobrecarga de los switches inventado LANs virtuales al añadir una etiqueta a las tramas Ethernet con la que diferenciar el tráfico. Al definir varias LANs virtuales cada una de ellas tendrá su propio spanning tree y se podrá asignar los distintos puertos de un switch a cada una de las VLANs. Para unir VLANs que están definidas en varios switches se puede crear un enlace especial llamado trunk, por el que fluye tráfico de varias VLANs. Los switches sabrán a qué VLAN pertenece cada trama observando la etiqueta VLAN (definida en la norma IEEE 802.1Q). Aunque hoy en día el uso de LANs virtuales es generalizado en las redes Ethernet modernas, usarlas para el propósito original puede ser un tanto extraño, ya que lo habitual es utilizarlas para separar dominios de difusión (hosts que pueden ser alcanzados por una trama broadcast).

Aunque las más habituales son las VLANs basadas en puertos (nivel 1), las redes de área local virtuales se pueden clasificar en cuatro tipos según el nivel de la jerarquía OSI en el que operen:Clasificación

  • VLAN de nivel 1 (por puerto). También conocida como “port switching”. Se especifica qué puertos del switch pertenencen a la VLAN, los miembros de dicha VLAN son los que se conecten a esos puertos. No permite la movilidad de los usuarios, habría que reconfigurar las VLANs si el usuario se mueve físicamente. Es la más común y la que se explica en profundidad en este artículo.
  • VLAN de nivel 2 por direcciones MAC. Se asignan hosts a una VLAN en función de su dirección MAC. Tiene la ventaja de que no hay que reconfigurar el dispositivo de conmutación si el usuario cambia su localización, es decir, se conecta a otro puerto de ese u otro dispositivo. El principal inconveniente es que si hay cientos de usuarios habría que asignar los miembros uno a uno.
  • VLAN de nivel 3 por tipo de protocolo. La VLAN queda determinada por el contenido del campo tipo de protocolo de la trama MAC. Por ejemplo, se asociaría VLAN 1 al protocolo IPv4, VLAN 2 al protocolo IPv6, VLAN 3 a AppleTalk, VLAN 4 a IPX.
  • VLAN de nivel 3 por direcciones de subred (subred virtual). La cabecera de nivel 3 se utiliza para mapear la VLAN a la que pertenece. En este tipo de VLAN son los paquetes, y no las estaciones, quienes pertenecen a la VLAN. Estaciones con múltiples protocolos de red (nivel 3) estarán en múltiples VLANs.
  • VLAN de niveles superiores. Se crea una VLAN para cada aplicación: FTP, flujos multimedia, correo electrónico, etc. La pertenencia a una VLAN puede basarse en una combinación de factores como puertos, direcciones MAC, subred, o hora del día.

Protocolos

Durante todo el proceso de configuración y funcionamiento de una VLAN es necesaria la participación de una serie de protocolos entre los que destacan el IEEE 802.1QSTP y VTP (cuyo equivalente IEEE es GVRP). El protocolo IEEE 802.1Q se encarga del etiquetado de las tramas que itches unidos con enlaces trunk que tienen el mismo nombre de dominio VTP.
Los switches pueden estar en uno de los siguientes modos: servidor, cliente o transparente. El servidor es el modo por defecto, anuncia su configuración al resto de equipos y se sincroniza con otros servidores VTP. Un switch cliente no puede modificar la configuración VLAN, simplemente sincroniza la configuración con base en la información que le envían los servidores. Por último, un switch está en modo transparente cuando sólo se puede configurar localmente pues ignora el contenido de los mensajes VTP.
VTP también permite «podar» (función VTP prunning), lo que significa dirigir tráfico VLAN específico sólo a los conmutadores que tienen puertos en la VLAN destino. Con lo que se ahorra ancho de banda en los posiblemente saturados enlaces trunk.

Gestión de la pertenencia a una VLAN

Las dos aproximaciones más habituales para la asignación de miembros de una VLAN son las siguientes: VLAN estáticas y VLAN dinámicas.
Las VLAN estáticas también se denominan VLAN basadas en el puerto. Las asignaciones en una VLAN estática se crean mediante la asignación de los puertos de un switch o conmutador a dicha VLAN. Cuando un dispositivo entra en la red, automáticamente asume su pertenencia a la VLAN a la que ha sido asignado el puerto. Si el usuario cambia de puerto de entrada y necesita acceder a la misma VLAN, el administrador de la red debe cambiar manualmente la asignación a la VLAN del nuevo puerto de conexión en el switch.
En las VLAN dinámicas, la asignación se realiza mediante paquetes de software tales como el CiscoWorks 2000. Con el VMPS (acrónimo en inglés de VLAN Management Policy Server o Servidor de Gestión de Directivas de la VLAN), el administrador de la red puede asignar los puertos que pertenecen a una VLAN de manera automática basándose en información tal como la dirección MAC del dispositivo que se conecta al puerto o el nombre de usuario utilizado para acceder al dispositivo. En este procedimiento, el dispositivo que accede a la red, hace una consulta a la base de datos de miembros de la VLAN. Se puede consultar el software FreeNAC para ver un ejemplo de implementación de un servidor VMPS.

VLAN basadas en el puerto de conexión

Con las VLAN de nivel 1 (basadas en puertos), el puerto asignado a la VLAN es independiente del usuario o dispositivo conectado en el puerto. Esto significa que todos los usuarios que se conectan al puerto serán miembros de la misma VLAN. Habitualmente es el administrador de la red el que realiza las asignaciones a la VLAN. Después de que un puerto ha sido asignado a una VLAN, a través de ese puerto no se puede enviar ni recibir datos desde dispositivos incluidos en otra VLAN sin la intervención de algún dispositivo de capa 3.
Los puertos de un switch pueden ser de dos tipos, en lo que respecta a las características VLAN: puertos de acceso y puertos trunk. Un puerto de acceso (switchport mode access) pertenece únicamente a una VLAN asignada de forma estática (VLAN nativa). La configuración por defecto suele ser que todos los puertos sean de acceso de la VLAN 1. En cambio, un puerto trunk (switchport mode trunk) puede ser miembro de múltiples VLANs. Por defecto es miembro de todas, pero la lista de VLANs permitidas es configurable.
El dispositivo que se conecta a un puerto, posiblemente no tenga conocimiento de la existencia de la VLAN a la que pertenece dicho puerto. El dispositivo simplemente sabe que es miembro de una subred y que puede ser capaz de hablar con otros miembros de la subred simplemente enviando información al segmento cableado. El switch es responsable de identificar que la información viene de una VLAN determinada y de asegurarse de que esa información llega a todos los demás miembros de la VLAN. El switch también se asegura de que el resto de puertos que no están en dicha VLAN no reciben dicha información.
Este planteamiento es sencillo, rápido y fácil de administrar, dado que no hay complejas tablas en las que mirar para configurar la segmentación de la VLAN. Si la asociación de puerto a VLAN se hace con un ASIC (acrónimo en inglés de Application-Specific Integrated Circuit o Circuito integrado para una aplicación específica), el rendimiento es muy bueno. Un ASIC permite el mapeo de puerto a VLAN sea hecho a nivel hardware.

Diseño de VLANs

Los primeros diseñadores de redes solían configurar las VLANs con el objetivo de reducir el tamaño del dominio de colisión en un segmento Ethernet y mejorar su rendimiento. Cuando los switches lograron esto, porque cada puerto es un dominio de colisión, su prioridad fue reducir el tamaño del dominio de difusión. Ya que, si aumenta el número de terminales, aumenta el tráfico difusión y el consumo de CPU por procesado de tráfico broadcast no deseado. Una de las maneras más eficientes de lograr reducir el domino de difusión es con la división de una red grande en varias VLANs.

Red institucional
Actualmente, las redes institucionales y corporativas modernas suelen estar configuradas de forma jerárquica dividiéndose en varios grupos de trabajo. Razones de seguridad y confidencialidad aconsejan también limitar el ámbito del tráfico de difusión para que un usuario no autorizado no pueda acceder a recursos o a información que no le corresponde. Por ejemplo, la red institucional de un campus universitario suele separar los usuarios en tres grupos: alumnos, profesores y administración. Cada uno de estos grupos constituye un dominio de difusión, una VLAN, y se suele corresponder asimismo con una subred IPdiferente. De esta manera la comunicación entre miembros del mismo grupo se puede hacer en nivel 2, y los grupos están aislados entre sí, sólo se pueden comunicar a través de un router.
La definición de múltiples VLANs y el uso de enlaces trunk, frente a las redes LAN interconectadas con un router, es una solución escalable. Si se deciden crear nuevos grupos se pueden acomodar fácilmente las nuevas VLANs haciendo una redistribución de los puertos de los switches. Además, la pertenencia de un miembro de la comunidad universitaria a una VLAN es independiente de su ubicación física. E incluso se puede lograr que un equipo pertenezca a varias VLANs (mediante el uso de una tarjeta de red que soporte trunk).
Imagine que la universidad tiene una red con un rango de direcciones IP del tipo 172.16.XXX.0/24, cada VLAN, definida en la capa de enlace de datos (nivel 2 de OSI), se corresponderá con una subred IP distinta: VLAN 10. Administración. Subred IP 172.16.10.0/24 VLAN 20. Profesores. Subred IP 172.16.20.0/24 VLAN 30. Alumnos. Subred IP 172.16.30.0/24
En cada edificio de la universidad hay un switch denominado de acceso, porque a él se conectan directamente los sistemas finales. Los switches de acceso están conectados con enlaces trunk (enlace que transporta tráfico de las tres VLANs) a un switch troncal, de grandes prestaciones, típicamente Gigabit Ethernet o 10-Gigabit Ethernet. Este switch está unido a un router también con un enlace trunk, el router es el encargado de llevar el tráfico de una VLAN a otra.

Comandos IOS

A continuación se presentan a modo de ejemplo los comandos IOS para configurar los switches y routeres del escenario anterior.
Creamos las VLANs en el switch troncal, suponemos que este switch actúa de servidor y se sincroniza con el resto:
Switch-troncal> enable 
Switch-troncal# configure terminal
Switch-troncal(config)# vlan database
Switch-troncal(config-vlan)# vlan 10 name administracion
Switch-troncal(config-vlan)# vlan 20 name profesores
Switch-troncal(config-vlan)# vlan 30 name alumnos
Switch-troncal(config-vlan)# exit 
Definimos como puertos trunk los cuatro del switch troncal:
Switch-troncal(config)# interface range g0/0 -3
Switch-troncal(config-if-range)# switchport
Switch-troncal(config-if-range)# switchport mode trunk 
Switch-troncal(config-if-range)# switchport trunk native vlan 10
Switch-troncal(config-if-range)# switchport trunk allowed vlan 20, 30
Switch-troncal(config-if-range)# exit
Ahora habría que definir en cada switch de acceso qué rango de puertos dedicamos a cada VLAN. Vamos a suponer que se utilizan las interfaces f0/0-15 para la vlan adminstracion, f0/16,31 para vlan profesores y f0/32-47 para la vlan alumnos.
Switch-1(config)# interface range f0/0 -15
Switch-1(config-if-range)# switchport
Switch-1(config-if-range)# switchport mode access
Switch-1(config-if-range)# switchport mode access
Switch-1(config-if-range)# switchport  access vlan 10
Switch-1(config-if-range)# exit
Switch-1(config)# interface range f0/16 -31
Switch-1(config-if-range)# switchport
Switch-1(config-if-range)# switchport mode access
Switch-1(config-if-range)# switchport  access vlan 20
Switch-1(config-if-range)# exit
Switch-1(config)# interface range f0/32 -47
Switch-1(config-if-range)# switchport
Switch-1(config-if-range)# switchport mode access
Switch-1(config-if-range)# switchport  access vlan 30
Switch-1(config-if-range)# exit
Definimos como trunk el puerto que conecta cada switch de acceso con el troncal:
Switch-1(config)# interface g0/0
Switch-1(config-if)# switchport
Switch-1(config-if)# switchport mode trunk
Switch-1(config-if)# switchport trunk native vlan 10
Switch-1(config-if)# switchport trunk allowed vlan 20,30
Switch-1(config-if)# exit
En el router creamos una subinterfaz por cada VLAN transportada en el enlace trunk:
Router(config)# interface f2
Router(config-if)# no ip address
Router(config-if)# exit 
Router(config)# interface f2.1
Router(config-if)# encapsulation dot1q 10 native
Router(config-if)# ip address 172.16.10.1 255.255.255.0
Router(config-if)# exit 
Router(config)# interface f2.2
Router(config-if)# encapsulation dot1q 20
Router(config-if)# ip address 172.16.20.1 255.255.255.0
Router(config-if)# exit 
Router(config)# interface f2.3
Router(config-if)# encapsulation dot1q 30
Router(config-if)# ip address 172.16.30.1 255.255.255.0
Router(config-if)# exit 
Esta sería la configuración relativa a la creación de las VLANs, se omite la configuración de otros elementos como los hosts, routers y otros dispositivos de red.

No hay comentarios:

Publicar un comentario

Mi lista de blogs