Pagina 1 di 1
[Risolto] Switch automatico configurazione eth
Inviato: lun 9 feb 2009, 11:06
da robertobartola
Ciao a tutti.
Ho una situazione che vorrei risolvere e per la quale vorrei scrivere qualche script, ma mi chiedevo se per caso non esistessa gia' qualche cosa di preconfezionato.
Ecco la situazione:
- Notebook che uso in ufficio (192.168.1.*/24) in maniera wired (eth0) e che ho configurato con un indirizzo IP statico (192.168.1.222)
- Lo stesso notebook in casa (192.168.0.*/24), dove ho un router che funge da server DHCP
Vorrei che al momento dell'attivazione dei daemoni rc.d e dintorni il NB riconoscesse in quale situazione sia ed utilizzasse la corretta configurazione dei parametri di rete.
Ovvero usare due differenti rc.inet1.conf (es. rc.inet1.conf-casa; rc.inet1.conf-uffcio) e switchare tra essi.
E' chiaro che potrei configurare il router domestico ad assumere gli indirizzi in maniera compatibile con quella del mio ufficio, quindi
- indirizzo IP del client
- default gw
ma avrei comunque dei problemi con il server DNS che nel mio ufficio e' un indirizzo della LAN (differente dal gateway) mentre a casa e' il server DNS del provider.
Ho provato con 2 schede ethernet, la prima ad IP statico (ufficio), la seconda IP dinamico (casa), ma poi devo dare a mano il default gw (route add df gateway ...) in almeno una delle due situazioni.
Vorrei che il NB (che poi lancio spesso in modalita' testo) si settasse autonomamente in una delle due configurazioni in maniera autonoma da un intervento umano.
Avete qualche consiglio su qualche sw che faccia tutto cio' ?
Ciao Roberto
Re: Switch automatico configurazione eth
Inviato: lun 9 feb 2009, 12:47
da Ansa89
All'avvio puoi passare al bootloader un parametro (es: lan=casa) e poi creare uno script che controlli la variabile "lan" per impostare correttamente il file "/etc/rc.d/rc.inet1.conf".
I passi sarebbero questi:
1) crei i due file di configurazione "/etc/rc.d/rc.inet1.conf-casa" e "/etc/rc.d/rc.inet1.conf-ufficio" con le impostazioni che ti servono
2) crei uno script "/etc/rc.d/rc.lan" così:
Codice: Seleziona tutto
#!/bin/bash
if [ "$lan" == "casa" ]; then
cp /etc/rc.d/rc.inet1.conf-casa /etc/rc.d/rc.inet1.conf
elif [ "$lan" == "ufficio" ]; then
cp /etc/rc.d/rc.inet1.conf-ufficio /etc/rc.d/rc.inet1.conf
else
echo "ERRORE"
fi
#EOF
3) inserisci lo script dentro il file "/etc/rc.d/rc.M" prima che vengano inizializzate le schede di rete
4) modifichi il file "/etc/lilo.conf" così:
Codice: Seleziona tutto
image = /boot/tuo_kernel
root = /dev/hda3
label = Linux-casa
append = "lan=casa"
read-only
image = /boot/tuo_kernel
root = /dev/hda3
label = Linux-ufficio
append = "lan=ufficio"
read-only
5) esegui il comando "lilo" da utente root
6) al boot potrai scegliere quale kernel usare (in realtà il kernel è lo stesso, cambia il parametro per impostare la scheda di rete)
Re: Switch automatico configurazione eth
Inviato: lun 9 feb 2009, 15:59
da urka58
Oppure usa wicd...puoi memorizzare e preimpostare un gran numero di connessioni.
Ciao
Re: Switch automatico configurazione eth
Inviato: lun 9 feb 2009, 16:17
da urka58
@ Ansa89
Scusa, ma come fai a passare la variabile allo script ""/etc/rc.d/rc.lan"?
L'append nelle sezioni di /etc/lilo.conf viene memorizzato in /proc/cmdline e puoi richiamarlo con un semplice cat...
Dovrebbe essere un parametro passato al kernel, non valido e che il kernel ignora bellamente, quindi nessun problema.
Vuoi dire che resta come variabile globale?
Prima di apprezzare wicd io usavo uno script abbastanza simile che avevo postato qui
viewtopic.php?f=1&t=23041
Ciao
Re: Switch automatico configurazione eth
Inviato: lun 9 feb 2009, 16:25
da Ansa89
Di preciso non so come funziona (sono piuttosto niubbo sull'argomento). Però i dati empirici dicono che se fai l'append di una variabile, la puoi usare negli script d'avvio.
Non credo che la variabile resti come variabile globale (anche se non ci ho mai fatto caso).
EDIT
Ho letto la discussione che mi hai postato e ho notato che come append inserivi solo una parola (invece io faccio un'assegnazione, anche se non so fino a che punto il sistema possa capire che quella è un'assegnazione...).
Re: Switch automatico configurazione eth
Inviato: lun 9 feb 2009, 17:49
da targzeta
Ansa89 ha scritto:Di preciso non so come funziona (sono piuttosto niubbo sull'argomento). Però i dati empirici dicono che se fai l'append di una variabile, la puoi usare negli script d'avvio.
Non credo che la variabile resti come variabile globale (anche se non ci ho mai fatto caso)....
I parametri non riconosciuti dal kernel fanno parte dell'ambiente del processo init, dato che init esegue tutti gli script di avvio, queste variabili sono a disposizione di tali script. Ora bisogna vedere (non sono sotto linux) come viene eseguito il processo login, infatti da login(1):
Codice: Seleziona tutto
-p By default, login discards any previous environment. The -p
option disables this behavior.
indi per cui...
Spina
Re: Switch automatico configurazione eth
Inviato: lun 9 feb 2009, 17:57
da Ansa89
Offtopic: Ok, ho capito.
Però adesso basta OT
.
Re: Switch automatico configurazione eth
Inviato: lun 9 feb 2009, 18:54
da urka58
Ansa89 ha scritto:Offtopic: Ok, ho capito.
Però adesso basta OT

.
Non era, almeno da parte mia, ma credo anche di Spina, un tentativo di metterti alle strette...!!
Non avevo mai valutato la posssibilità di impostare una variabile all'avvio ed ero curioso di capire come ti fosse venuta l'idea.
Aveva ragione il vecchio a non voler morire, ogni giorno se ne impara una nuova.
Ciao
Re: Switch automatico configurazione eth
Inviato: mar 10 feb 2009, 11:33
da robertobartola
Grazie a tutti !
Ora ho ultimato la personalizzazione che prevede un paio di script che vengono avviati in avvio [tramite il parametro passato da lilo (thanx Ansa89)] e verificano lo stato del networking caricando dapprima la configurazione prevista dal lilo e in alternativa l'altra.
Sono un paio di script semplici e probabilmente inefficienti e con alcuni bug, ma li allego cosi' che chi vuole le possa migliorare.
Re: Switch automatico configurazione eth
Inviato: mar 10 feb 2009, 12:54
da Ansa89
Dovresti modificare il titolo del tuo primo post, mettendo il tag "[Risolto]"

.
Felice di esserti stato di aiuto

.