06/07/07 Roaming indotto Non essendoci standard a riguardo (come precedentemente accennato), non si può predire facilmente il meccanismo di innesco ed esecuzione del roaming. Questo ci porta a chiederci chi effettivamente da il reale comando di "riassociazione" ad un'altro AP. Tra le varie proposte cercate e studiate, ci siamo imbattuti nella possibilità di lasciare fare gran parte delle operazioni all'AP tentando di far sembrare il roaming totalmente trasparente alla STA.Questo potrebbe essere possibile grazie ad un meccanismo di gestione e comunicazione direttamente tra gli AP di uno stesso ESS. Si rende cosi totalmente localizzata l'implementazione di roaming semplicemente facendo capire alla STA, che c'è stato un cambio di MAC address da parte dell'AP. Malgrado questo meccanismo sia ideale per rendere tutto trasparente, è difficile che sia realmente implementato a causa della difficoltà di implementazione e per le violazioni allo standard IEEE 802.11 (infatti ogni AP ha sempre e solo un MAC address, e non può essere cambiato senza un riavvio totale del dispositivo). Tuttavia, dobbiamo rendere noto che il roaming esiste a più livelli, quindi oltre che al livello MAC (di cui noi ci occupiamo) abbiamo anche una sorta di roaming a livello IP.Il roaming a livello IP è una sorta di passaggio tra più AP facenti parti dello stesso ESS o addirittura facenti parte di ESS diversi (ma comunque nella stessa sottorete), mantenendo inalterato il proprio IP, rendendo cosi trasparente il roaming alle applicazioni sovrastanti. L'implementazione di questo tipo di roaming e quasi totalmente localizzata sugli AP (e sui router) e richiede il supporto di alcuni servizi (vedi Mobile IP), ma l'approfondimento di tale tipologia di roaming astrae quasi completamente dal nostro studio, poichè è ad un livello talmente alto che renderebbe inconsistente qualsiasi tipo di valutazione e giudizio. --------------------------------------------------------------------------------------------------------------------- 07/07/07 Accenni ad 802.11r In questo paragrafo non ci dilungheremo troppo sull'esposizione di questo nuovo protocollo poichè per ora non è nulla di più di un semplice draft e quindi non è ancora rintracciabile in nessuna reale implementazione. L'idea del protocollo 802.11r, fast roaming, è nata sopratutto per tentare di adattare la mobilità della wireless a pesanti applicazioni come il VoIP e videoconferenze. Per poter ottenere telefoni wireless o dispositivi connessi ad una rete, anche in viaggio su veicoli a grande velocità, si è dovuti pensare ad un qualche stratagemma per ridurre il tempo necessario per il passaggio del dispositivo da una rete all'altra (quindi portare dagli attuali decimi di secondo a meno di 50 ms, massima sensibilità dell'orecchio umano). Nell'idea di fondo, il fast roaming sarà costituito da una fase di handshaking poco più complessa dell'attuale, in cui verranno aggiunte informazioni riguardo agli ulteriori AP connessi nello stesso ESS e ad una stima di risorse disponibili (QoS) per ogniuno di essi. Questo farà si che la stazione possa preventivamente configurarsi per il prossimo AP. Oltre a velocizzare, i meccanismi di 802.11r renderanno anche più sicure le operazioni di roaming, fornendo supporto a protocolli come WPA e WPA2, cercando comunque di rimanere il più possibile flessibili e "retro"-compatibili con gli standard attualmente più diffusi (802.11a, b e g), ma sopratutto darà agli implementatori uno standard da seguire per poter mantenere interoperabilità tra dispositivi di costruttori diversi e dare cosi una mano alla diffusione del roaming nel mondo. --------------------------------------------------------------------------------------------------------------------- 09/07/07 Approfondimento e ricerca di informazioni utili sugli standard 802.11f (Inter-Access Point Protocol) e 802.11u ( Cellular interworking) --------------------------------------------------------------------------------------------------------------------- 26/07/07 Sembra non esserci un valore preciso (o almeno approssimato) del tempo necessario per l'autenticazione con RADIUS (802.1X), però sembra che possa essere calcolata a "run-time" per ogni singola autenticazione grazie ad un campo chiamato Acct-Delay-Time che indica il momento in cui è arrivato il messaggio di avvenuta autenticazione (o meglio di accounting) --------------------------------------------------------------------------------------------------------------------- 27/07/07 Trovata piccola e forse irrilevante informazione riguardo alle tempistiche di autenticazione con RADIUS: esiste un tempo di timeout per i router che stanno aspettando una risposta dal server RADIUS. Questo campo varia da 1 a 15 (si parla di secondi) e come default sembra che molti usino metterlo a 3. Gratuitous ARP Un Gratuitoud ARP (GARP) è una particolare forma di AddressResolutionProtocol, ovvero un pacchetto di ARP response senza che ci sia stata nessuna richiesta. Non è normalmente richiesto dalle specifiche ARP (RFC 826) ma può essere usato in alcuni casi. Nel GARP, i campi IP sorgente e destinatario contengono l'IP della Macchina/Stazione/Client che lo sta effettuando, e come MAC di destinazione, il codice di broadcast (ff:ff:ff:ff:ff:ff). Essendo il GARP una sorta di "risposta", non richiede conferme ulteriori dopo essere stato inviato. L'utilità del GARP può essere riassunta in 4 maggiori mansioni: - Aiuta a rilevare conflitti di IP: quando un client riceve un GARP contenente il suo stesso IP ne deduce che c'è stato un conflitto; - Aiutano a completare e aggiornare più velocemente le tabelle ARP degli altri client. Soluzioni di clustering utilizzano questo metodo quando devono muovere un IP da un NIC (Network Interface Card) ad un'altro. Che sia esso situato sulla stessa macchina o su un'altra, dopo essere stato propriamente riconfigurato, il NIC manda un GARP per aggiornare l'intero cluster del cambiamento di MAC da parte dell'IP in questione; - Informano gli Switch dell'indirizzo MAC di una determinata macchina su una determinata porta, semplificando cosi il sistema di aggiornamento della tabella di routing; - Ogni volta che un'interfaccia IP, un qualche collegamento viene attivato, il driver dell'interfaccia tipicamente manda un GARP per pre-caricare le tabelle ARP degli altri client connessi. In oltre, il GARP informa se quel client si è appena attaccato alla rete (esempio se ha appena attaccato il doppino LAN), se la macchina ha subito un riavvio o se l'amministratore di sistema sta configurando l'interfaccia. Se vengono rilevati diversi GARP provenienti dallo stesso client, si può ipotizzare che quest'ultimo sia soggetto a pesanti disturbi di livello hardware (assenza di segnale wireless o malfunzionamento del cavo di rete). Esempi: Lo stack di rete in molti sistemi operativi esegue un GARP se l'IP o l'indirizzo MAC di una interfaccia di rete cambia, per informare le altre macchine nella rete del cambiamento cosi che possano rilevare possibili conflitti di indirizzi IP, per consentire l'aggiornamento delle varie tabelle ARP e per informare gli Switch del MAC address della macchina. Molti sistemi operativi inoltre, eseguono un GARP su un'interfaccia ogni volta che la connessione ad essa viene attivata.Il GARP quindi viene poi usato per pre-caricare la tabella ARP su tutti i client locali e segnalare il nuovo possibile abbinamento tra MAC e IP, o solo per segnalare di nuovo allo switch l'attuale porta su cui è connesso. Il progetto "High-Availability Linux" utilizza un'applicazione a linea di comando chiamata send_arp che esegue il GARP necessario per il processo di "failover". Un tipico scenario di rete può essere il seguente: Due nodi di una rete sono configurati per condividere l'IP comune 192.168.1.1. Il nodo A ha come indirizzo hardware (MAC) 01:01:01:01:01:01 e il nodo B ha come indirizzo 02:02:02:02:02:02. Assumiamo che il NIC del nodo A sia già configurato con l'IP 192.168.1.1. A questo punto, i dispositivi vicini sanno che il contatto 192.168.1.1 usa il MAC 01:01:01:01:01:01. Utilizzando il protocollo a battito (heartbeat protocol) il nodo B determina che il nodo A è morto. Il nodo B configura un IP secondario su un'interfaccia con ifconfig eth0:1 192.168.1.1. Il nodo B esegue un GARP con send_arp eth0 192.168.1.1 02:02:02:02:02:02 192.168.1.255. Tutti i dispositivi ricevono questo ARP e aggiornano la propria tabella con il MAC 02:02:02:02:02:02 abbinato all'IP 192.168.1.1. Esempio di pacchetto: {{{ Ethernet II, Src: 02:02:02:02:02:02, Dst: ff:ff:ff:ff:ff:ff Destination: ff:ff:ff:ff:ff:ff (Broadcast) Source: 02:02:02:02:02:02 (02:02:02:02:02:02) Type: ARP (0x0806) Trailer: 000000000000000000000000000000000000 Address Resolution Protocol (request/gratuitous ARP) Hardware type: Ethernet (0x0001) Protocol type: IP (0x0800) Hardware size: 6 Protocol size: 4 Opcode: request (0x0001) Sender MAC address: 02:02:02:02:02:02 (02:02:02:02:02:02) Sender IP address: 192.168.1.1 (192.168.1.1) Target MAC address: ff:ff:ff:ff:ff:ff (Broadcast) Target IP address: 192.168.1.1 (192.168.1.1) 0000 ff ff ff ff ff ff 02 02 02 02 02 02 08 06 00 01 ................ 0010 08 00 06 04 00 01 02 02 02 02 02 02 c0 a8 01 01 ................ 0020 ff ff ff ff ff ff c0 a8 01 01 00 00 00 00 00 00 ................ 0030 00 00 00 00 00 00 00 00 00 00 00 00 ............ }}}