Una panoramica sul mondo della Sicurezza Informatica, del Networking, della Virtualizzazione e non solo. Blog particolarmente indicato per i reparti IT che comunque alterna articoli scritti per specialisti con articoli formulati con linguaggio semplice e comprensibile a tutti.

Ogni articolo di questo blog è stato integralmente scritto dall'autore. Il contenuto è completamente originale e la riproduzione, anche parziale, è vietata salvo autorizzazione.

sabato 13 giugno 2015

Cosa sono e come si utilizzano le VLAN

Non è inusuale che l'utilizzo delle VLAN 802.11q sfugga anche agli addetti ai lavori o ai responsabili IT. Proviamo a semplificare i concetti in maniera banale ma immediata.



Cos'è una VLAN?


Uno degli errori più comuni consiste nel pensare che la suddivisione del traffico possa essere effettuata semplicemente agendo sulle classi IP delle macchine.


Questo scenario, se lo switch non viene opportunamente istruito ad utilizzare le vlan, è errato per vari motivi:
  • A livello di sicurezza, una macchina in grado di variare il proprio indirizzo IP si può ritrovare facilmente sull'altra rete
  • Il traffico di broadcast non è stato limitato (con 6 macchine, questo non è un problema, ma dalle 5-600 in su è tangibile una riduzione delle performance di rete e un carico eccessivo sulle macchine impegnate a scartare frame e pacchetti non a loro destinati)
  • Un eventuale server DHCP non è facilmente utilizzabile, perchè non ha elementi per assegnare indirizzi a macchine sconosciute (e comunque effettuare una reservation per ogni macchina non è affatto banale in reti voluminose)
  • Svariati altri motivi

La VLAN nasce per suddividere il traffico. Nel nostro scenario, creare due VLAN, significa aver creato due "compartimenti stagno" in grado di non entrare in contatto l'uno con l'altro (salvo realizzare eccezioni e punti di routing, ma lo vedremo più avanti).


Possiamo dire, quindi, che l'aver creato due VLAN ha trasformato il nostro switch in "due switch distinti". Al pari di averne utilizzati due. E' una terribile banalizzazione, intendiamoci, ma necessaria a spiegare in maniera basilare il meccanismo. Non me ne vogliano i puristi.


A questo punto dell'architettura, la situazione di cui sopra è, tutto sommato, simile a questa:


Abbiamo ottenuto una suddivisione "reale" del traffico delle due sottoreti. Due host appartenenti a due vlan diverse, in questo scenario, non si potranno mai parlare. Non solo sono due domini di broadcast distinti, ma il traffico realmente non arriva nelle reti adiacenti.



Tag, Untag, (cisco) Trunk e Uplink


Partiamo con il dire che le VLAN si gestiscono a livello di porte o generando interfacce virtuali. Le due modalità primarie delle vlan sono "untagged" e "tagged".

Una porta classificata come vlan untagged è una porta su cui è collegata una NIC che non conosce lo stato delle vlan, semplicemente vi si ritrova dentro. Per capirci, tutti gli switch non configurati hanno le porte untagged nella vlan1. Tipicamente si tratta di  host e server a servizio di una singola rete.

Una porta classificata come vlan tagged, trasferisce tutto il traffico di tutte le vlan taggate sulla porta (pur mantenendole separate, ovviamente). Si tratta di porte dedicate al collegamento tra apparati di rete (switch to switch, switch to firewall, access point to switch, etc.) oppure tra lo switch ed un server che eroga servizi a più vlan (reti).


Nel nostro caso, presupponendo si tratti di uno switch HP, la configurazione sarebbe stata semplicemente la seguente:

vlan 10 untagged 1-12
vlan 20 untagged 13-24


Adesso abbiamo un problema... immaginiamo di avere due switch su cui propagare le due vlan create, ma abbiamo a disposizione un solo link (di qualsiasi natura, fibra ottica, rame, radio, etc..).



A questo servono le porte tagged, ovvero a trasferire il traffico di più vlan utilizzando uno stesso mezzo trasmissivo. Il traffico rimarrà diviso ed entrambi gli apparati saranno in grado di ripropagare alle porte untagged il relativo traffico di appartenenza.

La configurazione, in questo secondo scenario e presupponendo sempre di trovarci su switch HP in cli, è questa:

vlan 10 untagged 1-12
vlan 10 tagged 25,26
vlan 20 untagged 13-24
vlan 20 tagged 25,26




Si noti come siano state taggate entrambe le porte di uplink. Non è obbligatorio nè necessario, ma in uno scenario simile è la norma.

In caso di LACP, la porta trk va trattata come una porta fisica e non è necessario agire sulle porte singole.

Le porte "trunk" (cisco) o uplink (allied telesis), non sono altro che porte che trasferiscono tutte le vlan automaticamente, senza preoccuparsi di specificare i tag. Personalmente uso solo untag e tag gestendo manualmente le propagazioni, ma è una scelta personale e che per alcuni può apparire meno comoda.

NB: Quando utilizzo una porta per trasferire il traffico di due o più VLAN, a differenza di quanto indicato nell'esempio di cui sopra, alcuni apparati non consentono l'utilizzo di una modalità "full tag", ma necessitano comunque di avere almeno una VLAN che sia untagged.


VID


Il VLAN ID è il numero identificativo, da 1 a 4096, della VLAN. Tutti gli apparati 802.11q compliant comunicano con il VID. Il nome della vlan è solo una convenzione e non ha alcuna valenza nel trasferimento delle informazioni.

Nella progettazione di un'infrastruttura di rete con le vlan è opportuno, inoltre, stabilire un VID di management, ovvero una vlan diversa da tutte le altre dove si trovano nativamente tutti gli apparati. Sarebbe inopportuno settorializzare ma consentire l'accesso agli switch da una vlan tradizionale. In caso di problemi, operazioni di manomissione degli switch vanificano, in un attimo, il lavoro di suddivisione.

Per convenzione (anche qui, non obbligatoria), quando possibile è opportuno associare il VID all'indirizzo di rete. Ad esempio: 192.168.45.0/24 avrà il VID 45. 172.16.99.0/24 avrà il 99, e così via.



Punti di routing ed eccezioni, gli switch di livello 2 e 3


Non sempre mantenere tutte le vlan divise è un bene, a volte uno stesso server deve essere consultato da più vlan pur trovandosi all'interno di una sola, e così via per una serie di altri servizi che possiamo considerare "intravlan". Immaginiamo un Comune con vlan divise tra Ufficio Tributi, Ufficio Anagrafica, Ufficio Personale... ma con l'esigenza di accedere ad uno stesso server interno per consultare un database unico. 

Ricordando che le vlan devono avere subnet diverse, un punto di routing (il gateway della vlan) può opportunamente gestire queste eccezioni (oppure semplicemente far ruotare le vlan verso un router di connettività internet). Ci sono diverse scuole di pensiero, c'è chi adopera switch di livello 3 (il cui unico scopo è quello di gestire il routing L3 del traffico delle vlan) e chi preferisce demandare il routing ad un firewall, in grado di "maneggiare" meglio e con più semplicità il traffico proveniente da tutte le sottoreti create.

Ad ogni modo, se non volete far gestire allo switch di centro stella il routing delle vlan, gli switch di livello 3 sono del tutto inutili (la funzionalità rimane spenta) ed in alcuni casi persino pericolosi.

Ho visto, inoltre, tantissimi progetti con tutti gli switch di livello 3. Nel 99,999% dei casi (sono generoso) sono del tutto inutili perchè, al massimo, il routing delle vlan si demanda al Centro Stella. E' del tutto inutile, quindi, che uno switch di distribuzione orizzontale possa fare Layer 3. Salvo non trovarsi in un campus di 10.000 host, ovviamente (ma in questo caso parleremmo di altre dinamiche e delle funzioni avanzate di routing degli switch, delle licenze OSPF e RIP ...e così via... insomma, non staremmo qui a leggere questo articolo).

Una nota sul forward va fatta: attenzione a tutti gli apparati che consentono la gestione dei tag vlan. E' frequentissimo che server con NIC multivlan abbiano erroneamente attivato il forward (personalmente trovo questa casistica persino superiore a quella "tradizionale"). In questo caso per un client sarà sufficiente cambiare il proprio gateway (inserendo l'ip del server erroneamente configurato) per attraversare le vlan (seppur con alcuni limiti dovuti al percorso di risposta).



Le vlan sul wireless


Con lo stesso principio, possiamo avere un access point che propaga 4 reti diverse, e sulla porta LAN comunica allo switch che il traffico delle rete wireless 1 appartiene alla vlan 1, il traffico della rete wireless 2 alla vlan 2 e così via. A voi intuirne le potenzialità.


Maggiori dettagli

Maggiori dettagli sono reperibili sul mio libro in cui vengono approfonditi argomenti riguardanti gli switch nel primo capitolo: CyberSecurity Creativa.

Il libro è reperibile su amazon a questo link anche in formato kindle:  >> qui <<.

Mentre l'elenco degli argomenti del primo capitolo è il seguente:

Capitolo 1 – Lo switch è tuo amico!

Cosa sono e come si utilizzano le VLAN 802.1q?

Tag, Untag, Trunk e Uplink e Private VLAN

Le vlan sul wireless (come suddividere correttamente le reti)

La compartimentazione e la DMZ

Chi deve fare routing?

Forwarding abusivi

SNMP: suvvia... Ma c’è qualcuno che se ne preoccupa?

Non buttate quegli hub! L’antenato del mirroring

Spanning Tree manipulation attack (e un caso concreto)

Port Security, MAC LockOUT e learning

DHCP Snooping: evitare il rilascio non autorizzato di IP





Discaimer: Ogni articolo di questo blog è stato integralmente scritto dall'autore. Il contenuto è completamente originale e la riproduzione è vietata salvo autorizzazione.