CCNA 3 – Layer 2: data link layer

  Cisco CCNA

Panoramica

Il layer 2 controlla le comunicazioni tra un dispositivo e quello immediatamente connesso.

A layer 1 i dati sono semplicemente impulsi elettrici.

A layer 2 i dati sono strutturati e seguono il PDU (Protocol Data Unit). A layer 2 il PDU è il frame. Il frame ha bisogno del mittente e del destinatario. Generalmente questi indirizzi (mittente e destinatario) sono dei MAC Address (Media Access Control Address)

Il MAC Address

Il MAC Address è lungo 48 bit ed è scritto in esadecimale (hex).

Esempio:

002A.ABCD.1234

Ogni cifra rappresenta 4 bit (12×4=48). Ad esempio la A corrisponde al decimale 10 ed al binario 1010.

I primi 24 bit (fino alla B in questo esempio) sono gli OUI Field (Organization Unique ID) assegnati alle fabbriche. I secondi 24 sono utilizzabili a piacere dal vendor.

Il 7° bit più significativo (più significativo=settimo contando da sinistra), che in questo caso è contenuto nel secondo 0, è chiamato UL bit (Universal Local bit).

Se questo bit è OFF significa che questo address è (o meglio dovrebbe essere) universalmente unico. Se possiamo modificare il MAC Address manualmente, il 7° bit viene posto ad ON.

Il Frame

Il PDU, nel Layer 2, si chiama frame.

data frame

I primi due pezzi contengono il MAC Address di destinazione e quello del mittente. Il terzo pezzo contiene i dati che si vogliono trasmettere.

Il Dest MAC viene trasmesso per primo così da evitare un controllo sul resto del frame se esso non coincide con quello del ricevente.

L’ultimo pezzo del frame è il FCS (Frame Check Sequence) che contiene il CRC (Ciclic Redundancy Check).

Prima dell’invio del frame viene operato un calcolo, secondo un algoritmo, basato sul contenuto del frame. Il risultato viene scritto nel FCS. Il ricevente riopera lo stesso calcolo sul frame ricevuto e lo confronta con il numero contenuto nell’FCS. Se il calcolo restituisce lo stesso numero allora il frame viene accettato, altrimenti viene scartato.

Il dispositivo che lavora al Layer 2 (Data Link Layer) è lo switch.

MAC Address Table

Lo Switch in figura (switch 1) è connesso a 4 PC. Per semplificare diciamo che il MAC Address di PC1=AAAA, quello di PC2=BBBB e così via. Ovviamente i MAC Address sono molto più lunghi come abbiamo già visto. Diciamo che lo switch ha solo 4 porte che si chiamano P1,P2,P3,P4.

All’interno della memoria dello switch c’è una tabella chiamata MAC Address Table in cui lo switch salverà i MAC Address dei PC ad esso connessi. Ogni volta che una porta riceverà un frame ne estrarrà il Source MAC e lo inserirà nella MAC Table abbinandolo alla porta corrispondente.

Gli switch popolano la MAC Address Table leggendo esclusivamente il contenuto Source MAC del frame.

Diciamo che lo switch riceve un frame da PC1. Ne legge dunque il Source MAC e popola la riga P1 della MAC Table. A questo punto dovrà decidere dove inoltrarlo.

Lo switch decide dove inoltrare il frame basandosi sul contenuto del Dest MAC.

In questo caso lo switch non trova nella MAC Table un MAC corrispondente a quello scritto nella Dest MAC. Lo switch invia dunque il frame a tutte le porte (flood), e quindi a tutti i PC, esclusa la P1 del mittente.

Diciamo che il Dest MAC è DDDD. Il frame verrà quindi scartato (drop) da PC2 e PC3 dopo che questi avranno confrontato il Dest MAC con il proprio MAC.
Il PC4 invece accetterà il frame e risponderà a PC1. Il frame di risposta entrerà nello Switch attraverso la P1 e a questo punto lo switch leggerà il Source MAC in esso contenuto e lo inserirà nella MAC Table alla riga P4.

A questo punto lo switch legge il Dest MAC e lo ritrova nella MAC Table. Invia dunque il frame direttamente alla porta P1 evitando il flood.

N.B. non confondere il flood con il broadcast. Il broadcast riguarda frame che hanno il Dest MAC = FFFF.FFFF.FFFF (in binario tutti 1).

Un broadcast viene inviato a tutte le porte eccetto quella del mittente. Questo accade perché il MAC FFFF.FFFF.FFFF non è mai utilizzato da nessun dispositivo e quindi è impossibile che sia contenuto nella MAC Table.

Il frame che P1 ha inviato a P2 è invece un unicast: trasmissione 1 a 1.

Per visualizzare la MAC Table da command line:

enable
show mac address-table

Type Dynamic significa che la riga è stata compilata automaticamente perché rilevata.

Se vogliamo controllare il MAC Address di un dispositivo

show interfaces f

Tra le righe troviamo bia che significa burned-in address ovvero indica l’effettivo MAC Address scritto sull’interfaccia dal produttore. Generalmente dovrebbe essere uguale a quello rilevato.

Data Link

Abbiamo detto che il Data Link Layer comprende i link tra due dispositivi.

Ammettiamo di avere uno Switch1 con due PC, PC1 e PC2.

La connessione tra lo Switch1 e PC1 non è un Data Link, ma lo Switch stesso è un Data Link.

Uno Switch è un Data Link, tutti i dispositivi connessi a quello switch sono sullo stesso Data Link. I link tra PC1 e PC2 sono sullo stesso Data Link.

Proprio per questo motivo la funzione effettuata dallo switch è chiamata transparent bridging.

Nella rappresentazione logica gli switch non si disegnano.

Dominio di broadcast

Un dominio di broadcast è la porzione di rete verso la quale un segnale emesso da un dispositivo viene diffuso.

Per definizione uno switch è un broadcast domain. Un router interrompe il broadcast domain.

Dominio di collisione

Il dominio di collisione è un’area della rete dove possono avvenire collisioni.

Ogni porta su un router ed ogni porta su uno switch costituisce un dominio di collisione.

Un hub è un grosso dominio di collisione ed un grosso dominio di broadcast.

Le collisioni possono avvenire solo se utilizziamo Ethernet half-duplex.

Half-duplex significa che le connessioni sono possibili in entrambe le direzioni ma solo una alla volta (ex. le ricetrasmittenti).

Full-duplex significa invece che le connessioni possono essere in entrambe le direzioni contemporaneamente (ex. il telefono).

Su una connessione half-duplex possono avvenire collisioni se due o più dispositivi cercano di inviare segnali contemporaneamente.

Interviene dunque un sistema chiamato CSMA/CD (Carrier Sense Multiple Access with Collision Detection). Se il CSMDA/CD rileva una collisione mette le comunicazioni in pausa per un tempo random diverso per ogni dispositivo. La pausa di un dispositivo sarà ad ex. di 5ms, dell’altro di 15ms. Le probabilità che dopo la pausa si riverifichi la collisione sono a questo punto molto basse.

Le porte di uno switch funzionano in full-duplex, quindi non sono possibili collisioni. Gli HUB funzionano in half-duplex, sono quindi probabili le collisioni. Un HUB è un dominio di collisione.

In questo esempio abbiamo per definizione sei domini di collisione (segnati con le X rosse) e 2 domini di broadcast (segnati da quadrati blu)

Virtual Local Area Network (VLAN)

Le VLAN si possono considerare degli switch virtuali all’interno degli switch.

Le VLAN ci permettono di risparmiare denaro: grazie alle VLAN è possibile configurare indirizzamenti (e quindi reti separate logicamente) sullo stesso switch. Se non fosse possibile utilizzare le VLAN sarebbe necessario uno switch per ogni indirizzamento.

Le VLAN possono essere propagate attraverso switch fisici: una VLAN può in questo modo arrivare anche a piani diversi dello stesso edificio o ad edifici distinti permettendo ai PC di lavorare come se fossero fisicamente vicini.

Le VLAN 1 e le VLAN 1002, 1003, 1004, 1005, esistono di default sugli switch e non possono essere cancellate.

Per default tutte le porte su uno switch appartengono alla VLAN1.

Il numero totale di VLAN che possiamo avere su uno switch è da 1 a 4094 (a seconda del sistema operativo dello switch).

Le VLAN dalla VLAN1 alla VLAN1005 sono chiamate Normal Range VLAN. Da 1006 a 4096 sono considerate extended range VLAN.

Configurazione delle VLAN

Esistono due modi per configurare le VLAN: quello “vecchio” e quello “nuovo”. Quello vecchio può essere utile su vecchi apparati che girano con vecchie versioni di OS.

Il vecchio modo:

Switch#vlan database
Switch(vlan)#vlan 50 name test
Switch(vlan)#exit
Switch#show vlan brief

Il nuovo modo:

Switch#conf t
Switch(config)#vlan 100
Switch(config-vlan)#name nomevlan
Switch(config-vlan)#exit
Switch(config)#do show vlan brief

Le VLAN sono salvate nella memoria flash dello switch nel file vlan.dat.

Switch(config)#show flash

Per cancellare una VLAN

Switch(config)#no vlan 100

Altro modo di cancellare le VLAN è quello di cancellare il file vlan.dat contenuto nella flash:

Switch#delete vlan.dat

Si può anche usare:

Switch#delete flash:vlan.dat

ma questo comando è potenzialmente rischioso: infatti se scriviamo solo flash dimenticando di farlo seguire da vlan.dat cancelliamo tutta la flash compreso il sistema operativo.

Comunque è prevista una doppia conferma prima della cancellazione definitiva.

Utilizzando questo metodo è necessario inviare un comando di reload allo switch prima di rendere effettive le modifiche.

Attenzione: quando si usa il comando delete vlan.dat NON bisogna inserire nessun carattere di risposta alle richieste di conferma. Si rischia altrimenti di cancellare l’intera flash !!! Per confermare premere esclusivamente ENTER.

 

LEAVE A COMMENT