P2/6 VLANs

6.0 Introduzione

6.0.1 benvenuto

6.0.1.1 capitolo 6: VLANs.

6.0.1.2. attività - stazione di vacanza.

6.1 segmentazione in VLAN

6.1.1 panoramica riguardo le VLANs

6.1.1.1 definizioni di VLAN. Sono un modo per raggruppare gli end device presenti nella LAN.

Nell’ambito di una LAN formata da switch, ogni VLAN è una rete dati logicamente separata. Una VLAN crea un dominio logico di broadcast, che si può estendere attraverso più segmenti fisici della LAN.

Una porta di uno switch può appartenere a una singola LAN. Salvo le porte che interconnettono gli switch (dette trunk) e quelle su cui insistono i telefoni IP.

Ogni VLAN è un dominio di broadcast. Di conseguenza per routare il traffico da una VLAN all’altra è necessario ricorrere ai router di livello 3, o a switch dotati di funzionalità di routing a livello 3.

6.1.1.2 benefici delle VLAN. Sono i seguenti:

  • maggiore sicurezza;

  • riduzione dei costi;

  • migliori performance;

  • domini di brodcast di dimensioni inferiori;

  • maggiore efficienza dello staff IT;

  • maggiore efficienza di gestione;

  • migliore supporto all’organizzazione dell’azienda.

Ogni VLAN corrisponde ad una sottorete IP.

6.1.1.3 tipi di VLAN. Sono i seguenti:

  • data (user);

  • default (initial, all ports);

  • native (trunk: tagged and untagged traffic);

  • management;

Visualizza la situazione generale delle VLANs:

S# show vlan brief

6.1.1.4 voice VLAN. Le VLAN voce hanno appositi requisiti per supportare il voice over IP:

  • banda passante garantita;

  • priorità di trasmissione rispetto i dati utente;

  • capacità di aggirare le aree congestionate;

  • ritardi inferiori ai 150 msec.

6.1.1.5 packet tracer - chi ascolta i broadcast?

6.1.2 VLANs in un ambiente multi-switch

6.1.2.1 VLAN trunks sono collegamenti tra switch che supportano il passaggio di dati di più VLAN.

Il protocollo è il IEEE 802.1Q per i trunk in Fast Ethernet, Gigabit Eth, 10 -Gigabit Eth.

Esistono NIC in grado di seguire il protocollo IEEE 802.1Q, ad esempio per server che devono essere in grado di interfacciare più VLAN.

6.1.2.2 controllare i domini di broadcast con le VLAN

6.1.2.3 tagging Ethernet frames per l’identificazione di VLAN. La frame Ethernet modificata secondo IEEE 802.1Q, ha un nuovo campo, detto tag. lungo 4 byte, tra il campo source MAC address e il campo Type/Length:

DST MAC

SRC MAC

TAG

Type/Length

Data

FCS

tag è formato da:

  • type; lungo 2 byte; tag protocol ID (TPID) ; per Ethernet è 0x8100;

  • Pri; lungo 3 bits; User priority; supporta l’implementazione del livello di servizio;

  • CFI, 1 bit; Canonical Format Identifier; abilitazione al trasporto di frame Token Ring tramite Ethernet;

  • VID, 12 bits; VLAN ID; valore max 4096.

Il tag è inserito dallo switch. Questo quando riceve una frame Ethernet su una porta assegnata a una VLAN, inserisce nell’header il tag, quindi ricalcola il FCS e lo inserisce nella coda della nuova frame.

6.1.2.4 VLAN native e tagging 802.1Q. Una frame nativa è il formato, senza VLAN tag, inviato dal end device. Anche il traffico di controllo tra switch è privo di VLAN tag. La native VLAN trasporta frame in formato nativo, senza VLAN tag.

Di conseguenza Cisco elimina eventuali frame inviate tramite native VLAN che presentino il VLAN tag. Questo può creare incompatibilità con apparati di altri produttori. Nel caso di LAN Cisco, gli apparati non devono taggare il traffico che inviano allo switch.

Quando uno switch Cisco riceve frame non taggate su una porta trunk, le inoltra alla VLAN nativa. Se non vi sono device associati alla VLAN nativa e non vi sono altre porte trunk, queste frame vengono eliminate.

La VLAN nativa di default è la VLAN 1.

Quando si configura una porta trunk, si assegna un default port VLAN ID (PVID) come identificativo della VLAN nativa. Se questa operazione non viene effettuata, la VLAN nativa è quella di default: la VLAN 1.

6.1.2.5 voice VLAN tagging. Una porta di switch può essere usata per connettere un Cisco IP phone, che a sua volta può collegare un PC. In questo caso la porta dello switch è analoga ad un trunk che accetta due VLAN: quella del telefono IP e quella del PC.

Il flusso voce può essere gestito dallo switch in tre modi:

  • voice VLAN (tagged) con Class of Service (CoS) di layer 2;

  • data VLAN (tagged) con CoS di layer 2;

  • data VLAN (untagged) senza CoS di layer 2.

6.1.2.6 attività - predire il comportamento dello switch

6.1.2.7 packet tracer * investigare l’implementazione di una VLAN

6.2 implementazione di VLAN

6.2.1 assegnazione della VLAN

6.2.1.1 range delle VLAN negli switch Catalyst variano a seconda del modello di switch.

Nei 2960 e 3560 si possono configurare oltre 4000 VLAN.

Ci sono:

  • normal range VLANs numerate da 1 a 1005. I numeri da 1003 a 1005 sono pre-assegnati (fibra ottica e token ring); la loro configurazione viene salvata nel file permanente in flash RAM di nome vlan.dat; gestite dal VLAN trunking protocol (VTP);

  • extendend range VLANs da 1006 a 4094; configurazione nel file running-config; sono più limitate; VTP non le gestisce.

6.2.1.2 creare una VLAN con i comandi:

S# configure terminal
S(config)# vlan vlan-id
S(config-vlan)# name vlan-name
S(config-vlan)# end

dove vlan-id e vlan-name sono parameti assegnati dall’utente.

Si può inserire un elenco di VLAN separando gli identificativi con virgole, e/o un range, indicando primo e ultimo id separati da trattino.

6.2.1.3 assegnare le porte alle VLAN con questi comandi:

S# configure terminal
S(config)# interface intf-id
S(config-if)# switchport mode access
S(config-if)# switchport access vlan vlan-id
S(config-if)# end

Un porta è assegnabile ad una sola VLAN, a meno che non sia un trunk o sia connessa a un telefono IP, che a sua volta collega un end device.

Per assegnare una VLAN dati + VLAN voce, ad esempio possiamo fare come segue:

S(config)# vlan 20
S(config-vlan)# name STUDENT
S(config-vlan)# vlan 150
S(config-vlan)# name VOICE
S(config-vlan)# exit
S(config)#
S(config)# interface fa0/18
S(config-if)# switchport mode access
S(config-if)# switchport access vlan 20
S(config-if)#
S(config-if)# mls qos trust cos
S(config-if)# switchport voice vlan 150
S(config-if)# end

Dove mls quos trust cos abilita la classificazione QoS basata sulla classe di servizio (CoS) assegnata dal telefono IP.

6.2.1.4 cambiare assegazione della porta alla VLAN. Per resettare l’assegnazione riportandola a VLAN1 (il default):

S(config)# interface intf-id
S(config-if)# no switchport access vlan

Per cambiare assegnazione (ad es. passando la porta da VLAN 20 a 30):

S(config)# interface intf-id
S(config-if)# switchport mode access
S(config-if)# switchport access vlan 30

6.2.1.5 cancellare VLAN dopo avere disasseganto le relative porte:

S(config)# no vlan vlan-id

Si può cancellare tutta la configurazione delle VLAN eliminando il relativo file vlan.dat:

delete flash:vlan.dat

Attenzione alla eventuale necessità di cancellare anche 1 lo startup-config:

erase startup-config

6.2.1.6 verificare le VLAN sono utili i comandi di visualizzazione della vlan:

S# show vlan [brief | id vlan-id | name vlan-name | summary]

oppure il dettaglio delle caratteristiche di una porta [#]:

S# show interfaces [intf-id | vlan vlan-id] | switchport

6.2.2 trunk di VLAN

6.2.2.1 configurare trunk link IEEEE 802.1Q. Un trunk veicola il traffico di più VLAN, ususlmente collegando due switch. Si configurano in modo analogo le due porte degli switch coinvolti, come segue:

S(config)# interface intf-id
S(config-if)# switchport mode trunk
S(config-if)# switchport trunk native vlan vlan-id
S(config-if)# switchport trunk allowed vlan vlan-list
S(config-if)# end

Dove intf-id, vlan-id* e vlan-list sono argomenti forniti dall’utente.

Attenzione al fatto che le native VLAN devono essere identificate dallo stesso identificativo in entrambi gli switch.

Il comando switchport mode trunk attiva il Dynamic Tranking Protocl (DTP).

L’esempio di configurazione si riferisce ad uno switch 2960. Questo utilizza automaticamente l’incapsulamento IEEE 802.1Q per i trunk. Altri switch possono richiedere di indicare esplicitamente l’incasulamento da utilizzare nel trunk.

6.2.2.2 resettare il trunk a default si devono eliminare le configurazioni del trunk:

S(config)# interface intf-id
S(config-if)# no switchport trunk allowed vlan
S(config-if)# no switchport trunk native vlan
S(config-if)# end

Nota: non è necessario indicare gli identificativi delle VLAN permesse e nativa.

Per controllare:

S# show interfaces intf-id switchport

dove intf-id è l’dentificativo della porta, indicato dall’utente.

Per togliere la porta dalla modalità trunk la si deve mettere in access:

S(config)# interface f0/1
S(config-if)# switchport mode access
S(config-if)# end

6.2.2.3 verificare la configurazione del trunk si usa il comando:

S# show interfaces intf-id switchport

dove intf-id è l’identificativo della porta da controllare.

6.2.2.4 packet tracer - configuring trunks

6.2.2.5 lab - configuring VLANs and trunking

6.2.3 Troubleshoot VLAN e trunk

6.2.3.1 problemi di indirizza mento IP con le VLAN. Ogni VLAN deve avere una subnet univoca. Se nella stessa VLAN vi sono due PC con subnet diverse non riusciranno a comunicare.

L’errore più comune consiste nell’assegnzione di indirizzi IP errati.

6.2.3.2 VLAN mancanti se gli indirizzi IP sono corretti, e perdura il mancato dialogo tra componenti della stessa VLAN, si deve seguire il seguente giagramma logico:

mancata connessione           la porta è assegnata            la VLAN esiste            verificare la connessione
tra device nella stessa  -->  alla VLAN corretta?   -- si -->  in vlan.dat?  -- si -->  della rete dati
VLAN                      ^           |                   ^         |
                          |          no                   |         no
                          |           |                   |         |
                          |           V                   |         V
                          +-  assegnare la porta          |    creare la VLAN
                              alla VLAN corretta          +--- in vlan.dat

Per il primo step, si usa:

S# show vlan

e:

S# show mac address-table

Per il secondo step (cancellata la VLAN associata alla porta):

S# show vlan

non visualizzerà la VLAN. E con:

S# show interfaces fa0/1 switchport

si verifica se la VLAN in questione è associata alla porta ed è inattiva.

6.2.3.3. introduzione al troubleshooting di trunk. Si parla di VLAN leaking quando una porta accetta frame di VLAN diverse dalla propria, ovverro tende a comportarsi come se fosse un trunk.

Nel caso di trunk si segue la sequente logica per controllarlo:

troubleshoot           le VLAN native della               le modalità di
di trunks     ------>  della porta locale    -- si ---->  trunk delle porte    -- si -->  trunk operativo
                 ^     e la corrispondente          ^     sono compatibili?
                 |     sono uguali?                 |         |
                 |           |                      |         |
                 |          no                      |         no
                 |           |                      |         |
                 |           V                      |         V
                 |     modificare le native         |    configurare staticamente
                 +---  VLAN in modo che             +--- le porte su entrambi i
                       corrispondano                     devicice del trunk

Sia per il primo step che per il secondo step si usa:

S# show interfaces fa0/1 trunk

Se le VLAN native non coincidono si hanno fenomeni di leak. Perciò il CDP segnala con messaggi di errore questi casi.

6.2.3.4 problemi comuni con i trunk sono i seguenti:

problem

result

native VLAN mismatch

risk security & result unintended

trunk mode mismatch

loss of connectivity

VLAN permesse nei trunk

unexpected trafic or no traffic

In caso di problemi con i trunk effettuare i troubleshooting seguendo la tabella dalll’alto in basso.

6.2.3.5 incorrect port mode. Usando:

S# shoew interfaces trunk

si osserva l’elenco dei trunk nello switch. Se manca la porta voluta, con:

S# show interfaces fa0/1 switchport

si possono osservare nel dettaglio le caratteristiche della porta indagata.

I controlli predetti vanno effettuati in entrambi gli switch alle estremtà del trunk.

6.2.3.6 elenco VLAN non corretto. Anche gli elenchi delle VLAN permesse devono collimare.

Sono visualizzati dal comando:

S# show interfaces trunk

6.2.3.7 packet tracer - troubleshooting a VLAN implementation - scenario 1

6.2.3.8 packet tracer - troubleshooting a VLAN implementation - scenario 2

6.2.3.9 lab - troubleshooting VLAN configurations

6.3 Inter-VLAN routing utilizzando Routers

6.3.1 Operazioni di Inter-VLAN routing

6.3.1.1 cosa è inter-VLAN routing? Il traffico in una VLAN rimane separato dalle altre perchè ogni VLAN è un dominio di broadcast.

Per far comunicare end device appartenenti a VLAN diverse è necessario effettuare una operazione di routing tra le due VLAN, utilizzando funzioni del layer 3. Questo processo è detto inter-VLAN routing.

I classici switch layer 2, al massimo possono effettuare routing statico a layer 3. Ma ciò è insufficiente per supportare un elevato numeri di sistemi e VLAN.

Per questo motivo è necessario utilizzare switch multilayer o dei router veri e propri. Vi sono tre possibilità:

  • legacy inter-VLAN routing;

  • router-on-a-stick;

  • layer 3 switching usando interfacce SVI.

Qui si considerano solo le prime due possibilità.

6.3.1.2 legacy Inter-VLAN routing. Si utilizza un router con una interfaccia per ogni VLAN che si deve mettere in comunicazione.

Questo metodo ha costi elevati, sia d’impianto che di espansione. Per questo motivo è poco utilizzato.

6.3.1.3 router-on-a-stick Inter-VLAN routing. Router moderni permettono di configurare una interfaccia verso la rete switchata come un trunk link.

In tal modo serve una sola interfaccia fisica tra router e LAN per effettuare il routing di più VLAN.

A sua volta la porta dello switch verso il router deve essere in trunk mode.

Il router separa il traffico delle diverse vlan utilizzando delle sottointerfacce. Queste sono interfacce virtuali software, associate ad una sola interfaccia fisica.

6.3.1.4 attività - identificare i tipi di Inter-VLAN routing

6.3.2 configurare Legacy Inter-VLAN routing

6.3.2.1 configurare Inter-VLAN routing: preparazione. Il router deve avere una interfaccia fisica per ogni VLAN da gestire. Ogni interfaccia ha un indirizzo IPv4 della stessa subnet della VLAN.

6.3.2.2 configurare Inter-VLAN routing: configurazione dello switch. È la prima attività da effettuare. le porte cui sarà attestato il router devono essere assegnate alle VLAN previste. Ricordarsi di copiare la configurazione corrente in quella di startup.

6.3.2.3 configurare Inter-VLAN routing: configurazione del router. Dopo avere configurato lo switch, si prosegue con il router assegnando gli indirizzi IPv4 alle interfaccie fisiche. Ricordarsi di attivare l’interfaccia.

6.3.2.4 Lab - configurare Inter-VLAN routing.

6.3.3.1 configurare router-on-a-stick: preparazione. Qui utilizziamo il VLAN trunking, e, nel router, il concetto di sottointerfaccia: ovvero più interfaccie software che insistono su una singola interfaccia fisica.

L’interfaccia fisica è collegata a una porta trunk dello switch. E ogni sottointerfaccia ha un indirizzo IPv4 appartenente alla sottorete della VLAN cui deve essere connessa.

6.3.3.2 configurare router-on-a-stick: configurazione dello switch. Si configura la porta verso il router in trunk mode:

S(config)# interface fa0/1
S(config-if)# switchport mode trunk
S(config-if)# end

6.3.3.3 configurare router-on-a-stick: configurazione delle sottointerfacce del router. Ad esempio come segue:

R(config)# interface g0/0.10
R(config-subif)# encapsulantion dot1q 10
R(config-subif)# ip address 172.17.10.1 255.255.255.0
R(config-subif)# interface g0/0.30
R(config-subif)# encapsulantion dot1q 30
R(config-subif)# ip address 172.17.30.1 255.255.255.0
R(config-subif)# interface g0/0
R(config-if)# no shutdown

Il comando interface g0/0.10 passa alla configurazione della sottointerfaccia 10 della interfaccia fisica g0/0 2.

Il comando encapsulantion dot1q 10 configura la sottointerfaccia per gestire la VLAN 10 tramite trunk con protocollo IEEE 802.1Q. Questo comando deve precedere l’assegnazione dell’indirizzo IPv4.

È possibile utilizzare il comando encapsulantion dot1q 99 native (si noti il native finale) per configurare la gestione di una VLAN nativa.

L’abilitazione dell’interfaccia fisica vale per tutte le sue sottointerfacce configurate. È possibile abilitare separatamente le singole sottointerfacce.

6.3.3.4 configurare router-on-a-stick: verificare le sottointerfacce. Nel router il comando:

R# show vlan

permette di valutare la configurazione delle sottointerfacce. È bene controllare anche la tabella di routing:

R# show ip route

6.3.3.5 configurare router-on-a-stick: verificare il routing. Effettuate le configurazioni predette, verificare che gli end device di VLAN diverse riescano a pingarsi a vicenda. Eventualmente si può utilizzare il comando tracert (traceroute).

6.3.3.6 packet tracer - configurare router-on-a-stick per Inter-VLAN routing

6.3.3.7 Lab - configurare Inter-VLAN routing basato su trunk 802.1Q

6.3.3.8 packet tracer - Inter-VLAN routing challenge

6.4 Sommario

6.1.4 conclusioni

6.4.1.1 class activity - inside track

6.4.1.2 packet tracer - skills integration challenge

6.4.1.3 capitolo 6: VLAN


1

si noti la differenza dei comandi: delete per la flash RAM, ed erase per la nvram.

2

si noti l’uso del plurale: ineterfaces

3

di solito si usa per la sottointerfaccia lo stesso identificativo della VLAN che deve gestire. È una convenzione per semplificare la memorizzazione, non è obbligatorio.