Una volta che hai recuperato il materiale e hai ricompilato tutto il necessario sei pronto per seguire i 3 passi per la configurazione di una rete Wireless.
N.B.: passi 1, 2 e 3 corrispondono ai livelli 1, 2 and 3 dello standard ISO/OSI, mentre il passo 4 é un addendum per risolvere alcune problematiche, tra cui quelle generate dall'adozione della maschera 255.255.255.255. Infatti la maschera 32 bit viola lo standard TCP/IP forzando una rete ad usare lo stesso indirizzo per il broadcast e per l'host, mentre l'indirizzo di rete non esiste.
Qualcuno potrebbe criticare questo punto di vista, ma se seguissimo alla lettera lo standard inizieremmo a perdere una marea di indirizzi IP (sempre più preziosi); per ogni sottorete 2 indirizzi sono riservati (network and broadcast) e comunque, seguendo lo standard, non si avrebbe certamente la necessaria flessibilità sull'assegnazione di indirizzi IP alle interfacce richiesta dai sistemi Wireless (allocazione di tipo geografica!). Per maggiori informazioni vedi Appendix A.
Si può infine notare come il passo 2 non sia presente nelle schede Wired, in quanto non vi sono particolari settaggi da operare.
E' il classico problema dell'amministratore del sistema: far riconoscere al PC il proprio hardware.
Le schede Wireless sono più complesse sotto questo punto di vista, perché molte hanno il plug Pcmcia e quindi prima di tutto é necessario "far vedere" al kernel il proprio adattare Pcmcia, in seguito sarà possibile provare ad installare il driver specifico per la scheda Wireless Pcmcia.
Quindi nelle configurazioni Pcmcia é necessario:
mentre per la configurazione senza Pcmcia:
Una volta che conosci il nome del driver é il momento di caricarlo: nel caso di Pcmcia ci penserà il demone relativo (attivabile tramite /etc/rc.d/init.d/pcmcia start per le distribuzioni RedHat), mentre per le altre schede basterà dare "modprobe module_name options". Tra le opzioni vi sono ioport, irq e i settaggi data-link relativi al driver Wireless (vedi Par 5.3). Ad ogni modo ci sono una serie di strumenti molto comodi per controllare il riconoscimento a basso livello del driver:
Cosa significa?
Le reti classiche hanno bisogno solo di essere fisicamente connesse le une con le altre e di avere i giusti settaggi TCP/IP. Al contrario le reti Wireless networks richiedono settaggi Data-link che indicanti:
Ci sono quindi una serie di settaggi da configurare, la ragione di ciò deriva dall'architettura Wireless: potrebbe esserci qualcuno, nel raggio di copertura Wireless, che potrebbe intercettare dei pacchetti e usare servizi relativi ad un altra rete wireless solamente puntanto la propria antenna nella giusta direzione e settando gli opportuni parametri TCP/IP.
Inoltre più reti Wireless (magari ognuna relativa ad un piano di un edificio) potrebbero interferire una con l'altra.
Ecco allora:
Questo é il terzo problema che dobbiamo affrontare. Qui i problemi arrivano quando ci si evolve verso una rete più grossa.
Ricordati che la rete Wireless non ti stressa se non sei tu a stressarla!
Tutti gli hosts si "vedono" A - - - - - C \ / | \ / | /\ | / \ | / \ B - - - - - D
Una configurazione come questa é molto semplice e non richiede particolari attenzioni (almeno a livello IP): hai soltanto bisogno di assegnare un indirizzo IP ad ogni host e una maschera generale coerente con tutte le altre macchine.
A non vede B direttamente A <- - - - NO\ | TALK\ C \ | B <- - - -
In questo caso A e B possono comunicare tra loro soltanto tramite C.
Se la rete é in infrastructure mode e C é l'Access Point allora tutto ok. In Adhoc mode é invece designare un host per essere un "master" (so che il termine non é molto formale, ma l'importante é capirsi!), un host che sia cioé in grado di creare un BSS e a cui gli altri possano collegarsi specificando il relativo BSSID.
In questo caso la connettività globale viene raggiunta a livello IP: A e B usando la stessa interfaccia di C, quindi se provi anche solo a fare ping da A verso B riceverai una marea di pacchetti ICMP REDIRECT da C, con cui C t'informa che la destinazione é già sulla rete da cui proviene la richiesta.
Soluzione: digita "echo 0 > /proc/sys/net/ipv4/conf/ethx/send_redirects" (dove ethx é l'interfaccia su C verso A e B) per annullare il problema.
Un altro problema: che maschera assegnare ad A, B e C? Se si da una maschera ad A che includa B non funziona nulla, perché A non utilizzerà C come gateway ma farà la richiesta ARP con indirizzo MAC destinazione sconosciuto.
Potresti dire: uso il proxy arp! Peccato che il proxy arp serva per rispondere al sorgente solamente nel caso in cui il destinatario appartenga ad una diversa interfaccia rispetto al sorgente e questo non é il caso.
Conviene quindi settare la più piccola maschera possibile (Win9x permette 255.255.255.254, WinNT invece 255.255.255.248), e devi essere sicuro che A and B non appartengano alla stessa sottorete.
Esempi:
In generale, con una maschera 255.255.255.254, il giochetto funziona tra 2 IP che NON differiscono soltanto per l'ultimo bit.
Mi rendo conto che tutto ciò é una forzatura del TCP/IP, ma é l'unico metodo per ottenere un elevato livello di flessibilità.
Nota: Usando un Access Point (rete in Infrastructure mode) non esiste più il problema dei pacchetti ICMP REDIRECT perché il problema viene già risolto a livello data-link (praticamente tutti gli Access Point sono dei bridge...). Ma gli Access Points sono costosi (qualche milione o più) ed é più economico usare un P133, 32MB Ram per forwardare i pacchetti, anche con 2 o più schede di rete.
A - - - - - C - - Internet \ / | \ / | /\ | / \ | / \ B - - - - - D Ci sono una serie di possibilità:
Internet \ \ E \ / \ / Wireless A - - - - - C - - F \ / \ | \ / | \ Wired /\ G | / \ | / \ B - - - - - D
Adesso C unisce 2 reti: a destra Wireless e a sinistra Wired.
In aggiunta puoi avere l'accesso ad Internet ed in totale hai bisogno di 3 schede di rete su C.
Che indirizzi devi assegnare alle macchine? 2 soluzioni possibili:
Esaminiamo ora la soluzione 2
Ad esempio considera di avere una sottorete pubblica su Internet del tipo x.y.z.0/24.
Le interfacce sono:
Le routes statiche su eth2:
Queste route servono per indirizzare tutto Internet verso il nostra Default GW: come puoi notare é necessario prima dire a Linux che il router é sull'interfaccia eth2, poi mandare la default route verso di esso.
Routes statiche su eth0:
Hosts A,B e D sulla rete Wired
Routes statiche su eth1:
Hosts E,F e G sulla rete Wireless.
Nota che la flessibilità é molto elevata, però devi settare manualmente ogni hosts (al limite puoi destinare un micro-classe su un'interfaccia).