Sophie

Sophie

distrib > Mandriva > 9.1 > i586 > by-pkgid > f1098342ec4a2b28475e34123ce17201 > files > 822

howto-html-it-9.1-0.5mdk.noarch.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
 <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
 <TITLE>Linux PPP HOWTO: Dopo che la connessione &egrave; attiva: lo script /etc/ppp/ip-up</TITLE>
 <LINK HREF="PPP-HOWTO-24.html" REL=next>
 <LINK HREF="PPP-HOWTO-22.html" REL=previous>
 <LINK HREF="PPP-HOWTO.html#toc23" REL=contents>
</HEAD>
<BODY>
<A HREF="PPP-HOWTO-24.html">Avanti</A>
<A HREF="PPP-HOWTO-22.html">Indietro</A>
<A HREF="PPP-HOWTO.html#toc23">Indice</A>
<HR>
<H2><A NAME="ip-up"></A> <A NAME="s23">23. Dopo che la connessione &egrave; attiva: lo script <CODE>/etc/ppp/ip-up</CODE></A></H2>

<P>Una volta che la connessione PPP &egrave; attiva, pppd cerca il file
<CODE>/etc/ppp/ip-up</CODE>. Se questo script esiste ed &egrave; eseguibile, il
demone PPP lo esegue. Ci&ograve; permette di automatizzare qualsiasi comando
di instradamento che possa risultare utile, e qualsiasi altra azione
che si vuole avvenga ogni volta che la connessione PPP viene attivata.
<P>
<P>Questo &egrave; semplicemente uno script shell e pu&ograve; fare qualsiasi cosa che
uno script shell pu&ograve; fare (ovvero virtualmente qualsiasi cosa si
vuole).
<P>
<P>Per esempio, si pu&ograve; fare in modo che sendmail invii qualsiasi
messaggio in attesa d'uscita nella coda di posta.
<P>
<P>Similmente, si pu&ograve; inserire in ip-up il comando per collezionare
(usando pop) qualsiasi email in attesa nel proprio ISP.
<P>
<P>Ci sono delle restrizioni su <CODE>/etc/ppp/ip-up</CODE>:
<P>
<UL>
<LI>&Egrave; eseguito in un ambiente deliberatamente ristretto per
aumentare la sicurezza. Ci&ograve; significa che si devono specificare i
percorsi completi per gli eseguibili, ecc.</LI>
<LI>Tecnicamente, <CODE>/etc/ppp/ip-up</CODE> &egrave; un <EM>programma</EM> non
uno script. Ci&ograve; significa che pu&ograve; essere eseguito direttamemente, e
quindi richiede il file magic standard (<CODE>#!/bin/bash</CODE>)
all'inizio della prima riga e dev'essere leggibile ed eseguibile da
root.</LI>
</UL>
<P>
<H2><A NAME="ss23.1">23.1 Instradamenti speciali</A>
</H2>

<P>Se si stanno connettendo due LAN, si dovranno impostare instradamenti
specifici per le LAN 'straniere'. Questo &egrave; facile da fare usando lo
script <CODE>/etc/ppp/ip-up</CODE>. La sola difficolt&agrave; nasce se la propria
macchina gestisce pi&ugrave; connessioni PPP.
<P>
<P>Questo perch&eacute; <CODE>/etc/ppp/ip-up</CODE> &egrave; eseguito per OGNUNA delle
connessioni PPP che si fanno, e quindi &egrave; necessario far eseguire i
comandi di instradamento corretti per la connessione particolare che
si fa in quel momento, e solo in quel caso e non quando si fa un
qualsiasi altro collegamento!
<P>
<H2><A NAME="ss23.2">23.2 Gestione delle code di posta</A>
</H2>

<P>Quando la connessione tra due LAN &egrave; attiva, ci si vorr&agrave; assicurare che
le email in coda ad entrambi gli estremi siano <EM>scaricate</EM>
(flushed), ovvero inviate a destinazione. Ci&ograve; &egrave; fatto aggiungendo la
chiamata appostita a <CODE>sendmail</CODE>.
<P>
<P>Si pu&ograve; fare usando il costrutto 'case' della bash su un parametro
appropriato che pppd passa allo script. Ad esempio, questo &egrave; lo script
<CODE>/etc/ppp/ip-up</CODE> che uso per gestire le nostre connessioni WAN
e le connessioni alla mia Ethernet di casa (gestita sempre dallo
stesso server PPP).
<P>
<H2><A NAME="ss23.3">23.3 Un esempio di script <CODE>/etc/ppp/ip-up</CODE></A>
</H2>

<P>L'esempio che segue gestisce una variet&agrave; di usi tipici.
<P>
<HR>
<PRE>
#!/bin/bash
#
# Script che gestisce le questioni di instradamento necessarie per
# pppd. Solo la connessione a Newman richiede questa gestione.
#
# Quando la connessione ppp &egrave; attiva, questo script viene chiamato con
# i seguenti parametri
#       $1      il nome dell'interfaccia usata da pppd (p.es. ppp3)
#       $2      il nome del dispositivo tty
#       $3      la velocit&agrave; del dispositivo tty
#       $4      l'indirizzo IP locale per l'interfaccia
#       $5      l'indirizzo IP remoto
#       $6      il parametro specificato dall'opzione 'ipparam' di pppd
#
case "$5" in
# Gestisce gli instradamenti al server del Campus Newman
        202.12.126.1)
                /sbin/route add -net 202.12.126.0 gw 202.12.126.1
# e scarica la mail queue per spedire l&agrave; le loro email il prima possibile!
                /usr/sbin/sendmail -q &amp;
                ;;
        139.130.177.2)
# La nostra connessione ad Internet
# Quando la connessione &egrave; attiva, avvia il time server (se non &egrave; gi&agrave;
# attivo) e si sincronizza con il mondo
                if [ ! -f /var/lock/subsys/xntpd ]; then
                        /etc/rc.d/init.d/xntpd.init start &amp;
                fi
# Avvia il news server (se non &egrave; gi&agrave; attivo)
                if [ ! -f /var/lock/subsys/news ]; then
                        /etc/rc.d/init.d/news start &amp;
                fi
                ;;
        203.18.8.104)
# Spedisce la mail in attesa nella mia macchina non appena il link &egrave;
# attivo.
# Non &egrave; richiesto nessun instradamento in quanto la mia Ethernet di
# casa &egrave; gestita da un instradamento di IP masquerade e proxyarp.
                /usr/sbin/sendmail -q &amp;
                ;;
        *)
esac
exit 0
</PRE>
<HR>
<P>
<P>Come risultato della connessione ppp al nostro Campus Newman e di
questo script, si ottengono le seguenti voci nella tabella di routing
(questa macchina &egrave; pure il nostro server PPP e gestisce le nostre
connessioni a Internet -- ho aggiunto dei commenti nell'output per
spiegare a cosa corrisponde ognuna delle voci):
<P>
<HR>
<PRE>
[root@kepler /root]# route -n
Kernel routing table
Destination     Gateway         Genmask         Flags MSS    Window Use Iface
# l'instradamento HOST al nostro gateway Internet remoto
139.130.177.2   *               255.255.255.255 UH    1500   0      134 ppp4
# l'instradamento HOST al server del nostro campus Newman
202.12.126.1    *               255.255.255.255 UH    1500   0       82 ppp5
# l'instradamento HOST alla mia ethernet casalinga
203.18.8.104    *               255.255.255.255 UH    1500   0       74 ppp3
# due delle nostre linee PPP di dial up
203.18.8.64     *               255.255.255.255 UH    552    0        0 ppp2
203.18.8.62     *               255.255.255.255 UH    552    0        1 ppp1
# l'instradamento di rete specifico per la LAN del campus Newman
202.12.126.0    202.12.126.1    255.255.255.0   UG    1500   0        0 ppp5
# l'instradamento alla nostra Ethernet locale (una "super rete"
# formata da due reti di classe C adiacenti)
203.18.8.0      *               255.255.254.0   U     1500   0     1683 eth0
# l'instradamento al dispositivo di loop back
127.0.0.0       *               255.0.0.0       U     3584   0      483 lo
# l'instradamento predefinito a Internet
default         139.130.177.2   *               UG    1500   0     3633 ppp4
</PRE>
<HR>
<P>
<H2><A NAME="ss23.4">23.4 Gestione delle email</A>
</H2>

<P>Il paragrafo precedente ha mostrato come gestire la posta in uscita,
semplicemente svuotando la code delle mail una volta che la
connessione &egrave; attiva.
<P>
<P>Se si sta usando una connessione WAN, ci si pu&ograve; accordare con
l'amministratore della LAN remota per fare esattamente le stesse
cose. Per esempio, all'estremo del Campus Newman  della nostra
connessione WAN, lo script <CODE>/etc/ppp/ip-up</CODE> assomiglia a:
<P>
<HR>
<PRE>
#!/bin/bash
#
# Script che gestisce le problematiche di instradamento come richiesto
# per dal pppd.
# Solo la connessione a Hedland necessita questa gestione.
#
# Quando la connessione ppp &egrave; attiva, questo script viene chiamato con
# i seguenti parametri
#       $1      il nome dell'interfaccia usata da pppd (p.es. ppp3)
#       $2      il nome del dispositivo tty
#       $3      la velocit&agrave; del dispositivo tty
#       $4      l'indirizzo IP locale per l'interfaccia
#       $5      l'indirizzo IP remoto
#       $6      il parametro specificato dall'opzione 'ipparam' di pppd
#
case "$5" in
        203.18.8.4)
                /usr/sbin/sendmail -q
                ;;
        *)
esac
exit 0
</PRE>
<HR>
<P>
<P>Comunque se si il proprio ISP fornisce solamente un aconnessione PPP ad
IP dinamico, &egrave; necessario scaricarsi la propria email dal proprio
account nella macchina del provider. Ci&ograve; solitamente viene fatto
usando il POP (Post Office Protocol). Questo processo pu&ograve; essere
gestito usando il programma 'popclient', oltre allo script ip-up utile
per automatizzare anche questo processo!
<P>
<P>Si crei semplicemente uno script <CODE>/etc/ppp/ip-up</CODE> che contenga
la chiamata appropriata di popclient. Per il mio portatile su cui &egrave;
installata la Red Hat (e che mi porto dietro nei miei viaggi), uso:
<P>
<HR>
<PRE>
popclient -3 -c -u hartr -p &lt;password> kepler.hedland.edu.au |formail -s procmail
</PRE>
<HR>
<P>
<P>Si pu&ograve; usare slurp o quant'altro per fare la stessa cosa per le news,
e cos&igrave; via. Si ricordi che lo script ip-up &egrave; uno script bash standard
e quindi pu&ograve; essere usato per automatizzare QUALSIASI cosa che
dev'essere svolta ogni volta che una certa connessione PPP viene
fatta.
<P>
<HR>
<A HREF="PPP-HOWTO-24.html">Avanti</A>
<A HREF="PPP-HOWTO-22.html">Indietro</A>
<A HREF="PPP-HOWTO.html#toc23">Indice</A>
</BODY>
</HTML>