jump to navigation

Profili di rete automatici per laptop giugno 13, 2007

Posted by linuxiano in connessione, Debian, Linux, Note su Linux.
trackback

Guida di: ntropia
fonte: debianitalia

I n t r o d u z i o n e

Questa guida è stata scritta per fornire un’indicazione su come installare un servizio di profili di rete automatici per tutti coloro che usano un portatile per connettersi a più reti diverse (casa, università, ufficio). Una volta messo a punto, il sistema sarà in grado di configurare automaticamente le interfacce di rete all’avvio o al semplice inserimento del cavo di rete, riconoscendo la rete presso la quale si è collegati, selezionando i parametri opportuni (IP, gateway, ecc…), nonchè eseguire compiti specifici, come il montaggio di dischi remoti con samba piuttosto che nfs, eccetera.

In rete ho trovato molto materiale relativo all’argomento, ma nessuno comprendeva tutto quello di cui avevo bisogno. Così questo mini-howto è un riassunto derivato dai vari tutorial, howto e dalle pagine stesse di Guessnet, nonché dai tentativi (e dagli errori!) da me fatti. In qualche punto potrà essere carente di dettagli, ma sono certo che l’utente curioso potrà facilmente colmare le lacune tramite le pagine di manuale dei singoli comandi e i link di riferimento in fondo alla guida.

Guessnet non è l’unico programma disponibile per il l’identificazione automatica delle reti, ne esistono molti altri: whereami, intuitively, laptop-net, divine… Personalmente ho scelto questo perchè oltre ad essere configurabile tramite un apposito apposito file di descrizione, può utilizzare direttamente il file /etc/network/interfaces di Debian, con poche opportune modifiche.

1. Installazione dei pacchetti necessari

Il primo passo sarà l’installazione dei pacchetti che contengono le applicazioni che serviranno per la messa a punto dei profili:

# apt-get install ifplugd resolvconf iputils-arping guessnet

Una breve descrizione dei pacchetti:
ifplugd: è un demone in grado di rilevare ed effettuare operazioni quando viene connesso e disconnesso un cavo di rete.
resolvconf:gestisce i nomi dei nameserver (DNS). In genere è installato di default nella Debian
iputils-arping: fornisce i comandi necessari per effettuare il ping per MAC address.
guessnet: è in grado effettuare dei test per identificare la rete alla quale si è connessi e selezionare da un file di configurazione i parametri corrispondenti a ciascuna rete.

2. Configurazione

Cominciamo a sporcarci le mani. Prima di tutto tiriamo giù tutte le interfacce di rete (tranne lo, ovviamente) che ci sono:

# ifdown eth0
# ifdown eth1
# ifdown wlan0
# ifdown …
Una volta fatto questo, bisogna assicurarsi che l’interfaccia che ci interessa controllare (eth0, nel caso più probabile) sia compresa nel file di configurazione/etc/default/ifplugd, che dovrebbe contenere righe simili a queste:
INTERFACES=”eth0″
HOTPLUG_INTERFACES=””

Se vogliamo che vengano rilevate anche interfacce collegate a caldo (PCMCIA, WiFi usb) basterà aggiungere il corrispondente device anche nella riga inferiore.
Tutto questo non dovrebbe essere necessario, perchè in teoria al momento dell’installazione del pacchetto vengono automaticamente aggiunte tutte le interfacce rilevate con le relative opzioni. Volendo è possibile riconfigurare ifplugd con dpkg-reconfigure ma attenzione perchè in questo caso le eventuali personalizzazioni fatte nel file verrebbero perdute.
Da questo momento in po’ ogni volta che verrà inserito o disinserito il cavo di rete, ifplugd notificherà l’evento con un bip.
Rimando al manuale di ifplugd per le ulteriori impostazioni relative alla gestione della sospensione del computer, la soppressione degli avvisi eccetera…

3. Creazione dei profili

A questo punto non resta che definire i profili di rete, e le operazioni che vogliamo che vengano eseguite per ciascuno di essi.
Per la ricognizione della rete sono disponibili diverse scelte (rimando al man di guessnet per i dettagli). In questo caso verrà usato il comando “peer” che è in grado di verificare se sia raggiungibile un dato indirizzo IP associato ad un MAC address, il codice hardware univoco di ogni interfaccia di rete. La scelta dei computer di riferimento nelle diverse reti dovrebbe prediligere computer che fungano da gateway, DNS interni o un router piuttosto che desktop che potrebbero essere frequentemente off-line.

Il MAC address è un valore esadecimale a 12 cifre nella forma XX:XX:XX:XX:XX e si ottiene con il comando arping -I interfaccia host:

# arping -I eth0 192.168.0.1
ARPING 192.168.0.1
60 bytes from XX:XX:XX:XX:XX:XX (192.168.0.1): index=0 time=165.939 usec

Una volta raccolti tutti gli IP e i MAC address che servono, è possibile passare alla compilazione del file di configurazione.
Quello che segue è il contenuto di /etc/network/interfaces “truccato” per includere i comandi da impartire a guessnet, ovviamente da correggere inserendo i vostri dati:

# The loopback network interface
auto lo
iface lo inet loopback

# auto non essenziale perché gestito da ifplugd
auto eth0
mapping eth0
script guessnet-ifupdown
map timeout: 10
map default: nonet
map verbose: true

# PROFILO HOME
iface home inet static
address 192.168.0.5
netmask 255.255.255.0
gateway 192.168.0.1
broadcast 192.168.0.255
up sh /etc/scrippete_personale.sh
pre-up echo -e “nameserver 192.168.0.1\nsearch neutrinet” | resolvconf -a eth0
up mount /mnt/gargantua
test peer address 192.168.0.1 mac XX:XX:XX:XX:XX:XX

# PROFILO UNIVERSITA’
iface uni inet static
address 172.16.xx.xx
netmask 255.255.252.0
gateway 172.16.xx.xx
pre-up echo -e “nameserver 193.xxx.xx.xx\nsearch xxx.unisi.it xxx.unisi.it” | resolvconf -a eth0
up mount /mnt/disk2
up /etc/init.d/samba start
down /etc/init.d/samba stop
up hostname entropia
test1 peer address 172.16.xx.xx mac XX:XX:XX:XX:XX:XX source 172.16.xx.xx
test2 peer address 172.16.xx.xx mac XX:XX:XX:XX:XX:XX source 172.16.xx.xx

# PROFILO DEFAULT
iface nonet inet dhcp

# PROFILO SENZA CONNESSIONE
#iface disconnected inet static
# test missing-cable

Nell’intestazione è definito che il mapping di eth0 è gestito da guessnet, che ha 10 secondi per riconoscere in quale rete si trova, altrimenti, in caso di fallimento, sceglierà il profilo predefinito nonet, ripiegando sul DHCP. Adesso ogni interfaccia ifacecorrisponde ad un profilo.
Per il profilo home, nel caso in cui sia raggiungibile il computer con 192.168.0.1 con il MAC address specificato, verranno assegnati IP, netmask e gli altri parametri corrispondenti alla lan domestica. Il DNS viene impostato tramite resolvconf prima di attivare l’interfaccia, altrimenti gli eventuali comandi successivi (il mount, ad esempio) non saranno in grado di risolvere correttamente i nomi. Quindi verrà eseguito uno script personalizzato e montato il disco /mnt/gargantua.

Un andamento del tutto analogo verrò seguito per il profilo uni. Prima di avviare la rete viene attivato il servizio samba, che viene automaticamente fermato quando la rete stessa verrà disattivata. Dal momento che questa rete richiede esplicitamente la definizione del nome dell’host, verrà eseguito il comando hostname.

test1 peer address 172.16.xx.xx mac XX:XX:XX:XX:XX:XX source 172.16.xx.xx

Dato che il computer non ha ancora un suo indirizzo, tutte le sue richieste proverranno dall’indirizzo inesistente 0.0.0.0. A seguito di scelte di sicurezza è possibile che alcuni server non rispondano ad interrogazioni anonime con il protocollo ARP, e per ovviare a questo inconveniente viene simulato un indirizzo che sia plausibile. Niente di meglio dell’indirizzo che il portatile dovrebbe avere in questa rete.
Per praticità nella gestione, tutte le operazioni possono essere incluse in uno script specifico per ciascun profilo, ma in questo caso è stata lasciata la notazione esplicita nel file interfaces per rendere più chiaro ogni passaggio.

4. La prova del fuoco

Se tutto è andato come si deve, riavviando i servizi ifplugd e network

# /etc/init.d/ifplugd restart
# /etc/init.d/network restart
…con una zaffata di zolfo e un ghigno satanico (nonchè un bip di ifplugd), il vostro portatile sarà perfettamente configurato per la rete.

5. Estensioni & miglioramenti

Come già detto, questa non è una guida esaustiva, e le possibilità di configurazione e di personalizzazione sono tante quante sono le esigenze di ciascuno.

-Per esempio un semplice script come quello che segue, lanciato con il comando “up” potrebbe curarsi di connettersi ad una wlan:

#!/bin/sh
iwconfig wlan0 essid nome_essid
iwconfig wlan0 key xxxx-xxxx-xx

-Nel caso in cui siano presenti più possibilità di scelta contemporanee (wifi e lan nello stesso posto) è possibile gestirne automaticamente le rispettive priorità con il pacchetto ifmetric (vedi i link) per far sì che nel momento in cui venga staccato il cavo ethernet, venga attivata immediatamente la connessione senza fili, e viceversa.

Link utili

Riporto alcuni dei link che ho consultato e dai quali ho attinto per mettere su questa guida. Ne consiglio la lettura per la gestione della wlan, la discussione delle alternative a Guessnet e per un approfondimento sulle operazioni possibili.

La guida Debian: configurare la rete

La homepage di Guessnet (inglese)

Roaming Ethernet configuration with Guessnet (inglese)

Profili di rete con WiFi su Debian Administration (inglese)

Howto Set Up Multiple Network Schemes on a Linux Laptop (inglese e un po’ datato ma utile)

Il pacchetto Debian Ifmetric

Commenti»

1. Top Posts « WordPress.com - giugno 14, 2007

[…] Profili di rete automatici per laptop Guida di: ntropia fonte: debianitalia I n t r o d u z i o n e Questa guida è stata scritta per fornire […] […]


Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger cliccano Mi Piace per questo: