Virtual Local Area Networks - VLANs

Descrizione e configurazione delle VLAN, dell porte di accesso, delle porte di trunk, del DTP e VTP.

CCNA

2/13/20239 min read

Per spiegare le VLAN facciamo finta di dover creare una rete per un campus formato da due edifici.
Questa rete dovrebbe venir progettata già pensando alla scalabilità, alle performance e alla sicurezza.
Per facilitare il processo di design, la rete viene divisa in tre parti: livello d'accesso, livello di distribuzione e livello centrale.
Ognuno di questi livelli hanno le loro caratteristiche e principi da seguire per rendere il tutto più efficiente.

Livello d'Accesso

Gli end-host come i computer desktop, server e i telefoni IP si connettono alla rete locale tramite questo livello.
Viene pensato per avere un alto numero di porte con un costo contenuto.
I desktop di solito hanno solo una NIC (Network Interface Card) per connettersi ad uno switch o WAP (Wireless Access Point).
I server, invece, spesso hanno due NIC e si connettono ad un paio di switch ridondanti.
Le misure di sicurezza per l'accesso dei client sono abilitate a questo livello.

Livello di Distribuzione

Gli switch del livello d'accesso sono connessi agli switch del livello di distribuzione, i quali servono come punto d'aggregazione per il livello sottostante e forniscono scalabilità.
Vengono anche impiegati in coppia per offrire ridondanza, e gli switch del livello sottostante sono quindi collegati ad entrambi gli switch di questo livello, nel quale non si trovano switch del livello d'accesso.
La maggior parte della politica del software come QoS si trova a questo livello.

Livello Centrale

Gli switch del livello di distribuzione sono connessi agli switch del livello centrale.
Anche questi sono impiegati in coppie per offrire ridondanza, e anche qui gli switch del livello sottostante sono connessi ad entrambi.
Il traffico che attraversa le differenti parti del campus attraversano questo livello, che è progettato soprattutto per la velocità e resilienza.
La politica del software rallenta gli switch e quindi non dovrebbe venire impiegata a questo livello.

Nei campus più piccoli (come nell'immagine sovrastante in cui è presente un solo edificio) non c'è il bisogno della scalabilità offerta dai tre livelli separati: si possono, quindi, unire i livelli di distribuzione e centrale e come risultato si ottiene che le funzioni di questi due livelli (normalmente separati) vengono eseguiti dagli stessi dispositivi.

Architettura Spine-Leaf

Prima di poter spiegare questa architettura (che può sembrare molto simile a quella tradizionale vista prima), bisogna capire la differenza tra il traffico Nord-Sud ed il traffico Est-Ovest.
Nel caso del traffico Nord-Sud, il traffico parte dai client per andare verso l'alto, uscire dalla rete locale per andare su Internet, ed il traffico di ritorno arriva da Internet e si dirige verso Sud per ritornare dai client.
Tuttavia, nei datacenter moderni è comune che due o più server debbano comunicare tra di loro e quindi il traffico, in questo caso, si dirige da un server all'altro andando da Ovest a Est e viceversa.
Ad esempio, potremmo avere un'applicazione che ha un sito front-end su un server, il quale comunica con un database backend che si trova in un altro server (dello stesso datacenter).
La differenza fondamentale di quest'architettura rispetto a quella tradizionale, è che qui risulta più facile aumentare la scalabilità aggiungendo semplicemente switch nella direzione Est-Ovest, ma non solo: aumenta anche le performance perché se un server qualsiasi deve comunicare con un altro server, c'è un solo salto verso il livello Spine ed un solo salto per il livello Leaf.

Perché abbiamo le VLAN?

Per poter rispondere a questa domanda, dobbiamo prima capire il problema che le VLAN vanno a risolvere.
I router operano al livello 3 dell'OSI.
Affinché due host che si trovano in sottoreti IP diverse possano comunicare, devono inviare il traffico attraverso un router.
Si possono usare delle "regole di sicurezza" sui router o firewall per controllare facilmente quale traffico possa passare tra le sottoreti differenti al livello 3.
I router non inoltrano il traffico di broadcast per default, e forniscono sicurezza e un aumento delle performance dividendo una rete in sottoreti più piccole, sempre al terzo livello dell'OSI.
Gli switch, invece, operano al livello 2 dell'OSI.
Questi, al contrario dei router, inoltrano il traffico di broadcast per default e lo fanno inviandolo ovunque: questo influenza le performance e la sicurezza.

Prendiamo in considerazione la rete nell'immagine sovrastante.
Abbiamo due sottoreti, una per i PC del reparto d'ingegneria e una per i PC del reparto delle vendite.
Immaginiamo che il PC2 delle vendite voglia comunicare con il PC1 dello stesso reparto.

Traffico Unicast nella stessa Sottorete

In questo caso si ha del traffico Unicast nella stessa sottorete IP, quindi, immaginando che lo switch abbia già l'indirizzo MAC di destinazione nella sua cache ARP, questo invia semplicemente il traffico al destinatario.
Tutto ciò va molto bene per le performance e la sicurezza, perché il traffico va solo dove deve andare.

Traffico Unicast tra Sottoreti differenti

Nel caso in cui il PC2 delle vendite volesse comunicare con il PC1 dell'ingegneria, avremmo del traffico unicast tra diverse sottoreti IP.
Ora il PC2 delle vendite invia il traffico allo switch, il quale lo inoltra al router (perché nonostante l'indirizzo IP di destinazione sia quello del PC1 ING, l'indirizzo MAC è quello del default gateway delle vendite a 10.10.20.1).
Il router, a sua volta, inoltra il traffico verso la sottorete d'ingegneria allo switch, il quale inoltra il traffico al PC di destinazione (ovviamente nel caso in cui lo switch abbia già l'indirizzo MAC di PC1 ING nella sua cache ARP.
Di nuovo, questa è una situazione ottimale perché il traffico viene diretto solo dove deve andare, aumentando le performance e la sicurezza della rete.
Inoltre si può implementare delle politiche di sicurezza sul router per limitare il traffico tra le sottoreti IP.

Traffico di Broadcast

In questo nuovo esempio, il PC2 delle Vendite invia del traffico broadcast (come può essere una richiesta ARP).
Lo switch, ricevendo il traffico di broacast, lo inoltra a tutte le porte tranne quella da cui è arrivato.
Il traffico viene quindi inviato ovunque, incluse nelle sottoreti con IP diverso.
Questo porta a problemi di sicurezza perché il traffico bypassa le politiche di sicurezza di livello 3 impostate sul router o sul firewall.
Inoltra influenza in due modi le performance:

  1. Ogni host deve processare per forza il traffico ricevuto

  2. Il traffico usa della larghezza di banda sui collegamenti dove quel traffico non è richiesto.


Possiamo facilmente capire come la situazione peggiorerebbe ulteriormente se decidessimo di aggiungere un altro switch per poter connettere un altro dipartimento.

Finalmente possiamo rispondere alla domanda iniziale.
Le VLAN ci permettono di aumentare la sicurezza e le performance della LAN, segmentando quest'ultima in domini broadcast separati al livello 2.
Solitamente c'è una relazione di 1:1 tra una sottorete IP e una VLAN.

Traffico di Broadcast con VLANs.

Non vediamo il funzionamento del traffico Unicast con delle VLANs perché non cambia rispetto a quando non ci sono VLANs impostate.
La vera differenza, così come i benefici, li possiamo vedere con il traffico di broadcast quando abbiamo impostato delle VLANs.
In questo caso, quando lo switch riceve del traffico di broadcast, lo inoltra in tutte le interfacce che si trovano nella stessa VLAN, aumentando la sicurezza e le performance.

Porte di Accesso VLAN

Queste porte di accesso sono configurate sulle interfacce dello switch a cui sono collegati gli end-host e vengono configurate con una VLAN specifica.
La configurazione è tutta sulla switch (che permettono il traffico solo nella stessa VLAN): gli end-host non sono a conoscenza di trovarsi in una VLAN.
Attenzione quando si configurano le VLAN: tutti gli host della stessa sottorete IP dovrebbero trovarsi nella stessa VLAN.
Nel caso in cui, per sbaglio, avessimo inserito il PC1 delle vendite nella VLAN del reparto d'ingegneria, il PC2 delle vendite non potrebbe comunicare con il PC1 dello stesso reparto: i traffico dovrebbe per forza passare attraverso il router.

Se non si impostano le VLAN su di uno switch, di default questo ha tutte le interfacce nella VLAN predefinita (VLAN 1)e, quindi, la nostra rete si trova tutta in un unico grande dominio broadcast.

Configurazione:

SW1(config)#vlan 10
SW1(config-vlan)#name Ing
SW1(config)#interface FastEthernet 0/1
SW1(config-if)#switchport mode access
SW1(config-if)#switchport access vlan 10
SW1(config)#interface range FastEthernet 0/3-5
SW1(config-if)#switchport mode access
SW1(config-if)#switchport access vlan 10
SW1(config)#vlan 20
SS1(config-vlan)#name Sales
SW1(config)#interface FastEthernet 0/2
SW1(config-if)#switchport mode access
SW1(config-if)#switchport access vlan 20
SW1(config)#interface range FastEthernet 0/6 - 7
SW1(config-if)#switchport mode access
SW1(config-if)#switchport access vlan 20

Per verificare che le modifiche siano state eseguite correttamente si può usare il comando "show vlan brief"

Porte di Trunk

Come abbiamo visto, le porte di accesso fanno passare il traffico per una VLAN specifica.
Grazie al protocollo Dot1Q le porte di trunk vengono configurate nei collegamenti tra gli switch dove deve passare del traffico per diverse VLANs.
Questo protocollo ha sostituito l'ISL (Inter-Switch Link), che è un protocollo propretario di Cisco per il trunking, che ora è obsoleto.
Quando uno switch inoltra il traffico ad un altro switch, inserisce nell'header Dot1Q di livello 2, la corretta VLAN.
Lo switch ricevente inoltrerà il traffico solo sulle porte che si trovano in quella VLAN, poi rimuove il tag Dot1Q dal frame Ethernet quando lo invia all'end-host.

Attenzione: gli end-host solitamente fanno parte di una sola VLAN e non sono VLAN-aware.
Un'eccezione a questa regola viene data dagli host virtuali, dove si trovano macchine virtuali in sottoreti IP differenti sullo stesso host. In questo caso abbiamo, comunque, bisogno di fare trunking fino all'host.
Un'altra eccezione è composta dai telefoni IP: questi vengono connessi allo switch ed i desktop vengono connessi al telefono.
Qui abbiamo bisogno di creare due VLAN: una per i dati voce per il telefono ed una per i dati del PC.

Configurazione:

SW1(config)#interface FastEthernet 0/24
SW1(config-if)#description Trunk to SW2
SW1(config-if)#switchport trunk encapsulation dot1q
SW1(config-if)#switchport mode trunk

Configurazione per la VLAN voce:

SW1(config)#interface FastEthernet 0/10
SW1(config-if)#description IP Phone
SW1(config-if)#switchport mode access
SW1(config-if)#switchport access vlan 10
SW1(config-if)#switchport access vlan 10
SW1(config-if)#switchport voice vlan 20

VLAN Nativa

Lo switch deve sapere quale VLAN assegnare al traffico che arriva non taggato su una porta di trunk.
Questo era necessario quando uno switch era connesso ad un hub (dispositivo di livello 1, quindi non VLAN-aware).
Per questo motivo viene usata la VLAN nativa, che di default è VLAN 1.
Ci sono alcuni problemi di sicurezza usando VLAN 1 come VLAN nativa, quindi è consigliato cambiarla in una VLAN non usata.
La VLAN nativa deve essere configurata su entrambi i lati della porta di trunk affinché sia attiva.

Configurazione:

SW1(config)#vlan 199
SW1(config-vlan)#name Nativa
SW1(config)#interface GigabitEthernet 0/1
SW1(config-if)#description Trunk a SW2
SW1(config-if)#switchport trunk encapsulation dot1q
SW1(config-if)#switchport mode trunk
SW1(config-if)#switchport trunk native vlan 199

Per la verifica delle corrette modifiche possiamo utilizzare il comando "show interface switchport".

E' possibile limitare le VLAN permesse:

SW1(config)#interface GigabitEthernet 0/1
SW1(config-if)#switchport trunk allowed vlan 10,30

Protocollo di Trunk Dinamico (Dynamic Trunking Protocol - DTP)

Se due switch Cisco sono collegati, possono negoziare una connessione di trunk usando il protocollo di Cisco chiamato DTP, tuttavia si consiglia comunque di configurare manualmente le porte degli switch.


Configurazione manuale:

switchport mode access
switchport mode trunk

Configurazione DTP:

  • Switchport mode dynamic auto: Forma un trunk se la porta dello switch vicino è impostata su trunk o desirable. Non si formano trunk se entrambi i lati sono impostati su auto. Impostazione predefinita sugli switch più nuovi.

  • Switchport mode dynamic desirable: Forma un trunk se la porta dello switch vicino è impostata su trunk, desirable o auto. Di default sugli switch più vecchi.

  • Switchport nonegotiate: Disattiva il DTP.

Protocollo di trunking VLAN (VLAN Trunking Protocol - VTP)

Il VTP permette di aggiungere, modificare o eliminare le VLAN sugli switch configurati come server VTP, e permettere ad altri switch (configurati come client VTP) di sincronizzare il database VLAN.
Questo è molto utile se si deve gestire una rete molto grande, tuttavia si ha comunque bisogno di eseguire una configurazione VLAN sulle porte dello switch.
ATTENZIONE: Se, per sbaglio, si aggiunge uno switch con un numero di revisione di database VLAN più alto nel dominio, questo può cancellare tutte le VLAN.
Quando si usa sia DTP sia VTP, il nome del dominio VTP deve combaciare con gli switch vicini affinché DTP possa formare delle porte di trunk.
Vediamo ora le varie modalità che può assumere un dispositivo VTP:

  • Server VTP: Può aggiungere, modificare o cancellare le VLAN. Un server VTP sincronizzerà il suo database VLAN da un altro server con un numero di revisione più alto.

  • Client VTP: Non può aggiungere, modificare o cancellare le VLAN. Un client VTP sincronizzerà il suo database VLAN dal server con il numero di revisione maggiore.

  • VTP Transparent: Non partecipa al dominio VTP. Non pubblicizza né acquisisce informazioni sulla VLAN, ma le trasferisce. Può aggiungere, modificare o cancellare le VLAN nel suo database VLAN locale.

Configurazione:
SW1(config)#vtp domain Hayden
SW1(config)#vtp mode server

oppure
SW1(config)#vtp mode client
oppure
SW1(config)#vtp mode transparent

SW1(config)#vlan 20
SW1(config-vlan)#name vendite
(Non si possono aggiungere VLAN se si ha un client VTP)

Per la verifica: show vtp status