PREMESSA

So che il titolo può suonare abbastanza strano, ma d'altra parte è questo quello che riporta il messaggio di errore su Windows ("the semaphore has expired"). Ecco quindi il perchè di questo termine a dir poco curioso.

SITUAZIONE

Può capitare che, collegando il PC ad uno switch Cisco, la macchina non riesca subito a prendere l'IP dal DHCP; in alternativa, se la macchina già aveva un indirizzo IP, non riesce ad effettuare il rinnovo, lamentandosi del fatto che il "semaforo" è scaduto.

SPIEGAZIONE

Il tutto deriva dalla corretta impostazione dello switch: se si va a guardare bene le specifiche dello spanning tree (vedi sezione VARIE) si scopre che uno switch deve attendere qualche secondo, dopo aver stabilito il link fisico, prima di abilitare una porta al forwarding dei pacchetti: questo tempo è necessario allo switch per verificare la configurazione dello spanning tree in modo da non creare un loop.

Tra l'altro questa situazione è verificabile anche visivamente: quando si collega la porta, in alcune macchine il led corrispondente diventa prima arancione e poi, dopo circa 30 secondi, diventa verde. Durante la fase "arancione" l'apparato sta verificando la presenza di eventuali loop, mentre quando la luce è verde lo switch sta operando normalmente (ovvero forwarda i pacchetti da e per quella porta)

Naturalmente al PC non importa molto di tutto ciò per cui, non riuscendo a contattare il DHCP, si limita a dare un errore.

SOLUZIONE

Molto semplice: sulle porte di uno switch è possibile attivare una funzione che Cisco denomina PortFast e che in pratica abilita immediatamente il forwarding sulla porta senza aspettare i controlli dello Spanning Tree.

I comandi per attivare questa funzione dipendono da apparato ad apparato (in quelli più semplici è sufficiente un spanning-tree portfast ): conviene comunque visitare il link http://www.cisco.com/en/US/products/hw/switches/ps700/products_tech_note09186a00800b1500.shtml#bkg dove sono riportati tutti i dettagli per le varie versione di switch

ATTENZIONE! Com'è facile immaginare questo comando deve essere attivato SOLO SULLE PORTE DOVE SI COLLEGANO I CLIENT e non su quelle dove potenzialmente potreste collegare altri switch in cascata, pena il rischio di creare un bel loop e bloccare tutta la rete!