====== Switches y VLANs ====== Configuración inicial: * PC1: ''192.168.10.10/24'' * PC2: ''192.168.10.20/24'' * PC3: ''192.168.10.30/24'' En la configuración del "Ethernet switch" podemos indicar qué VLAN tendrá cada puerto. Por ejemplo, el puerto en el que conectemos PC3: * Modo: Access * VLAN ID: ''20'' Quedando: SWITCH ┌─────┴─────┐ │ │ VLAN 1 VLAN 20 │ │ │ PC1 PC2 PC3 No hemos creado físicamente otro switch, tampoco hemos creado otra interfaz. La separación es **lógica**. Si ahora hacemos un ping desde PC1 o PC2 a PC3: host (192.168.10.30) not reachable Lo que está sucediendo es que hemos limitado el dominio de broadcast. PC1 sabe, por su máscara ''/24'', que ''192.168.10.30'' está en su misma red IP. Pero el switch no permite que ese broadcast atraviese hacia VLAN 20. LA VLAN controla el dominio de broadcast, independientemente de que las IP que hemos puesto coincidan en la misma subred. El switch mantiene separado el dominio de broadcast de las VLANs configuradas. ===== Comunicar VLANs: trunk ===== El switch no hace routing entre VLANs. El router será la frontera de capa 3 que permita pasar de una VLAN a otra: VLAN 10 VLAN 20 192.168.10.0/24 192.168.20.0/24 │ │ │ │ └──────── ROUTER ───────────┘ Un **trunk** es un enlace que puede transportar tráfico perteneciente a múltiples VLANs. Antes de conocer **trunk** podríamos conectar dos VLANs con dos routers, de tal manera que ponemos un cable para VLAN 10 y otro para VLAN 20: SWITCH / \ / \ VLAN 10 VLAN 20 │ │ │ │ ▼ ▼ ROUTER ROUTER interfaz 1 interfaz 2 Físicamente serían dos enlaces ("cables"): SWITCH ═════════ ROUTER enlace 1 SWITCH ═════════ ROUTER enlace 2 Cada enlace podría estar dedicado a una VLAN. Sin embargo, con un **trunk** podemos hacer que tanto el tráfico de VLAN 10 como el de VLAN 20 vayan por un único sitio. Así que el **trunk** permite que un único cable conecte muchas VLANs. Lo único que necesita saber el router es a qué VLAN pertenece cada trama. Esto lo veremos más adelante con **802.1Q** (mecanismo que permite identificar VLANs). El concepto de **trunk** lo veremos: * Switch ↔ Switch: permite extender varias VLANs a través de un enlace. * Switch ↔ Router * Switch ↔ servidor * Switch ↔ otro dispositivo compatible con VLANs La idea general es: múltiples VLANs │ ▼ ┌───────────┐ │ │ │ TRUNK │ │ │ └───────────┘ │ ▼ dispositivo compatible con VLANs ===== Etiquetado de VLAN: IEEE 802.1Q ===== En Ethernet existe un mecanismo llamado IEEE 802.1Q. 802.1Q permite añadir a la trama Ethernet información que identifica la VLAN a la que pertenece. Conceptualmente, una trama normal: ┌───────────────┬──────────────┬─────────────┐ │ MAC destino │ MAC origen │ datos │ └───────────────┴──────────────┴─────────────┘ Con una etiqueta VLAN: ┌───────────────┬──────────────┬──────────┬─────────────┐ │ MAC destino │ MAC origen │ VLAN 10 │ datos │ └───────────────┴──────────────┴──────────┴─────────────┘ 802.1Q permite añadir a la trama Ethernet información que identifica la VLAN a la que pertenece. ===== Switches y VLANs ===== ==== Solo una VLAN ==== Topología que construiremos: PC1 ───── SW1 ═════════ SW2 ────── PC2 Access Trunk Access VLAN 10 VLAN 10 * PC1: 192.168.10.10/24 * PC2: 192.168.10.20/24 Los dos switches serán los "Ethernet switch" de GNS3. Establecemos la VLAN 10 para el puerto al que está conectado PC1 a SW1 y también para el puerto que está conectado de SW1 a SW2, pero en este caso indicamos que **Type** sea ''dot1q'', en lugar de "Access". Es decir: ^ Port ^ VLAN ^ Type ^ | 0 | 10 | Access | | 1 | 1 | Dot1Q | Para este tipo de switch, GNS3 indica que un puerto ''dot1q'' usa el campo como //native VLAN//, así que no podemos poner la misma VLAN 10. Al decir que el puerto 1 sea de tipo **Dot1Q** le estamos diciendo que este enlace puede transportar tramas identificadas mediante 802.1Q. Este es nuestro **trunk**. Ahora, en el SW2: ^ Port ^ VLAN ^ Type ^ | 0 | 1 | Dot1Q | | 1 | 10 | Access | Quedando conceptualmente: VLAN 10 │ PC1 ── Access ── SW1 ═══════ SW2 ── Access ── PC2 TRUNK El puerto **Access** presenta al host una Ethernet sin etiqueta, mientras que el enlace **Dot1Q** entre switches transporta la información de VLAN mediante 802.1Q. Los switches son los que añaden las etiquetas de VLAN a las tramas Ethernet: PC1 │ │ Ethernet │ sin 802.1Q ▼ SW1 │ │ Ethernet + 802.1Q │ VLAN ID = 10 ▼ SW2 │ │ Ethernet │ sin 802.1Q ▼ PC2 ==== Dos VLANs y dos switches ==== Topología: PC1 ── Access VLAN 10 ── SW1 ═════════ SW2 ── Access VLAN 10 ── PC2 │ │ │ trunk │ │ │ PC3 ── Access VLAN 20 ─────┘ └──── Access VLAN 20 ── PC4 En SW1, abrimos la configuración del switch y buscamos un puerto libre para configurarlo como: * VLAN: 20 * Type: Access Quedando: SW1 Port 0 → VLAN 10 → Access Port 1 → VLAN 1 → Dot1Q Port 2 → VLAN 20 → Access En SW2, haz lo equivalente: SW2 Port 0 → VLAN 1 → Dot1Q Port 1 → VLAN 10 → Access Port 2 → VLAN 20 → Access