Sophie

Sophie

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

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

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
<TITLE>Linux AX25-HOWTO, Amateur Radio.: Alcune semplici configurazioni.</TITLE>
<LINK HREF="AX25-HOWTO-23.html" REL=next>
<LINK HREF="AX25-HOWTO-21.html" REL=previous>
<LINK HREF="AX25-HOWTO.html#toc22" REL=contents>
</HEAD>
<BODY>
<A HREF="AX25-HOWTO-23.html">Avanti</A>
<A HREF="AX25-HOWTO-21.html">Indietro</A>
<A HREF="AX25-HOWTO.html#toc22">Indice</A>
<HR>
<H2><A NAME="s22">22. Alcune semplici configurazioni.</A></H2>

<P>Vengono ora presentati esempi delle configurazioni pi&ugrave; tipiche.
Devono essere prese come spunto, visto che ci sono tanti modi di
configurare reti, quanto il numero di reti stesso, ma possono
comunque essere d'ispirazione.
<P>
<H2><A NAME="ss22.1">22.1 Piccola LAN Ethernet con macchina Linux che fa da router verso una LAN radio.</A>
</H2>

<P>Molti hanno delle piccole reti locali a casa e vogliono connettere le
macchine di quella rete alla rete radio. Questa &egrave; il tipo di
configurazione che uso a casa. Ho fatto in modo di avere un blocco di
indirizzi a me allocato che per comodit&agrave; posso catturare in una
singola route e che uso per la mia LAN domestica. Il vostro
numeratore IP per la vostra zona vi assister&agrave; in questo se volete
farlo anche voi. Gli indirizzi per la rete locale Ethernet formano un
sottoinsieme degli indirizzi della LAN radio; quella che segue &egrave; la
configurazione che adotto:
<P>
<BLOCKQUOTE><CODE>
<PRE>
                                          .      .   .    .    . .
  ---                                .
   | Rete          /---------\     .    Rete
   | 44.136.8.96/29|         |    .     44.136.8/24        \ | /
   |               | Router  |   .                          \|/
   |               |         |  .                            |
   |          eth0 | Linux   |  .  /-----\    /----------\   |
   |---------------|         |-----| TNC |----| Radio    |---/
   |   44.136.8.97 |    e    |  .  \-----/    \----------/
   |               |         | sl0
   |               | Server  | 44.136.8.5
   |               |         |    .
   |               |         |     .
   |               \_________/       .
  ---                                     .      .   .    .    . .
</PRE>
</CODE></BLOCKQUOTE>

<BLOCKQUOTE><CODE>
<PRE>
#!/bin/sh
# /etc/rc.net
# Questa configurazione rende disponibile una porta KISS AX.25
# e un device Ethernet.

echo "/etc/rc.net"
echo "  Sto configurando:"

echo -n "    loopback:"
/sbin/ifconfig lo 127.0.0.1
/sbin/route add 127.0.0.1
echo " fatto."

echo -n "    ethernet:"
/sbin/ifconfig eth0 44.136.8.97 netmask 255.255.255.248 \
                broadcast 44.136.8.103 up
/sbin/route add 44.136.8.97 eth0
/sbin/route add -net 44.136.8.96 netmask 255.255.255.248 eth0
echo " fatto."

echo -n "    AX.25: "
kissattach -i 44.136.8.5 -m 512 /dev/ttyS1 4800
ifconfig sl0 netmask 255.255.255.0 broadcast 44.136.8.255
route add -host 44.136.8.5 sl0
route add -net 44.136.8.0 window 1024 sl0

echo -n "    Netrom: "
nrattach -i 44.136.8.5 netrom

echo "  Routing:"
/sbin/route add default gw 44.136.8.68 window 1024 sl0
echo "    default route."
echo done.

# end
</PRE>
</CODE></BLOCKQUOTE>
<P><CODE>/etc/ax25/axports</CODE>
<BLOCKQUOTE><CODE>
<PRE>
# nome  nominativo     velocit&agrave; paclen  window  descrizione
4800    VK2KTJ-0        4800    256     2       144.800 MHz
</PRE>
</CODE></BLOCKQUOTE>
<P><CODE>/etc/ax25/nrports</CODE>
<BLOCKQUOTE><CODE>
<PRE>
# name  nominativo      alias   paclen  descrizione
netrom  VK2KTJ-9        LINUX   235     Linux Switch Port
</PRE>
</CODE></BLOCKQUOTE>
<P><CODE>/etc/ax25/nrbroadcast</CODE>
<BLOCKQUOTE><CODE>
<PRE>
# ax25_name     min_obs def_qual        worst_qual      verbose
4800            1       120             10              1
</PRE>
</CODE></BLOCKQUOTE>
<P>
<UL>
<LI>Occorre che IP_FORWARDING sia abilitato nel vostro
kernel.</LI>
<LI>Quando necessario fare riferimento ai file di configurazione
AX.25 presentati nelle sezioni precedenti.</LI>
<LI>Ho scelto di usare un indirizzo IP per la mia porta radio che
non fa parte del blocco usato per la mia rete. Ci&ograve; non &egrave;
obbligatorio, per quella porta si sarebbe potuto tranquillamente
usare anche <CODE>44.136.8.97</CODE></LI>
<LI><CODE>44.136.8.68</CODE> &egrave; il mio gateway locale di incapsulamento
IPIP, e per questo vi punto la mia route di default.</LI>
<LI>Ogni macchina sulla mia rete Ethernet ha una route:
<BLOCKQUOTE><CODE>
<PRE>
route add -net 44.0.0.0 netmask 255.0.0.0 \
        gw 44.136.8.97 window 512 mss 512 eth0
</PRE>
</CODE></BLOCKQUOTE>

L'uso dei parametri <EM>mss</EM> e <EM>window</EM> permette di
ottimizzare le connessioni sia dal lato radio che da quallo Ethernet.</LI>
<LI>Sulla macchina router vengono fatti girare smail, http, ftp ed
altri demoni in modo che questi servizi vengano resi disponibili ad
entrambe le reti.</LI>
<LI>La macchina che funge da router &egrave; un piccolo 386DX20 con un
disco fisso da 20Mb ed una installazione di Linux minimale.</LI>
</UL>
<P>
<H2><A NAME="ss22.2">22.2 Configurazione del gateway di incapsulamento IPIP.</A>
</H2>

<P>Linux oggi &egrave; utilizzato spessissimo per i gateway di incapsulamento
TCP/IP in tutto il mondo. Il driver per il tunnelling supporta route
di incapsulamento multiple rendendo obsoleto il vecchio demone
<EM>ipip</EM>.
Una configurazione tipica &egrave; la seguente:
<P>
<BLOCKQUOTE><CODE>
<PRE>
                                          .      .   .    .    . .
  ---                                .
   | Rete          /---------\     .    Rete
   | 154.27.3/24   |         |    .     44.136.16/24       \ | /
   |               | Gateway |   .                          \|/
   |               |         |  .                            |
   |          eth0 | Linux   |  .  /-----\    /----------\   |
---|---------------|         |-----| TNC |----| Radio    |---/
   |   154.27.3.20 | IPIP    |  .  \-----/    \----------/
   |               |         | sl0
   |               |         | 44.136.16.1
   |               |         |    .
   |               |         |     .
   |               \_________/       .
  ---                                     .      .   .    .    . .
</PRE>
</CODE></BLOCKQUOTE>
<P>I file di configurazione che si usano sono:
<P>
<BLOCKQUOTE><CODE>
<PRE>
# /etc/rc.net
# Questa &egrave; una semplice configurazione che rende disponibile una
# porta radio KISS AX.25, un device Ethernet e sfrutta il tunnel
# driver del kernel per effettuare l'incapsulamento/deincapsulamento
# IPIP
#
echo "/etc/rc.net"
echo "  Configurazione:"
#
echo -n "    loopback:"
/sbin/ifconfig lo 127.0.0.1
/sbin/route add 127.0.0.1
echo " fatto."
#
echo -n "    ethernet:"
/sbin/ifconfig eth0 154.27.3.20 netmask 255.255.255.0 \
                broadcast 154.27.3.255 up
/sbin/route add 154.27.3.20 eth0
/sbin/route add -net 154.27.3.0 netmask 255.255.255.0 eth0
echo " fatto."
#
echo -n "    AX.25: "
kissattach -i 44.136.16.1 -m 512 /dev/ttyS1 4800
/sbin/ifconfig sl0 netmask 255.255.255.0 broadcast 44.136.16.255
/sbin/route add -host 44.136.16.1 sl0
/sbin/route add -net 44.136.16.0 netmask 255.255.255.0 window 1024
sl0
#
echo -n "    tunnel:"
/sbin/ifconfig tunl0 44.136.16.1 mtu 512 up
#
echo fatto.
#
echo -n "Routing ... "
source /etc/ipip.routes
echo fatto.
#
# end.
</PRE>
</CODE></BLOCKQUOTE>
<P>e:
<P>
<BLOCKQUOTE><CODE>
<PRE>
# /etc/ipip.routes
# Questo file &egrave; generato dallo script munge
#
/sbin/route add -net 44.134.8.0 netmask 255.255.255.0 tunl0 gw
134.43.26.1
/sbin/route add -net 44.34.9.0 netmask 255.255.255.0 tunl0 gw
174.84.6.17
/sbin/route add -net 44.13.28.0 netmask 255.255.255.0 tunl0 gw
212.37.126.3
   ...
   ...
   ...
</PRE>
</CODE></BLOCKQUOTE>
<P><CODE>/etc/ax25/axports</CODE>
<BLOCKQUOTE><CODE>
<PRE>
# nome  nominativo     velocit&agrave; paclen  window  descrizione
4800    VK2KTJ-0        4800    256     2       144.800 MHz
</PRE>
</CODE></BLOCKQUOTE>
<P>Alcuni punti su cui soffermarsi:
<P>
<UL>
<LI> Il nuovo tunnel driver usa il campo <EM>gw</EM> nella tabella
di routing al posto del parametro <EM>pointopoint</EM> per
specificare l'indirizzo del gateway IPIP remoto. Questo &egrave; il motivo
per cui ora sono supportate route multiple per ciascun'interfaccia.</LI>
<LI>Si <B>possono</B> configurare due device di rete con lo
stesso indirizzo. In quest'esempio sia <CODE>sl0</CODE> che
<CODE>tunl0</CODE> sono stati configurati con l'indirizzo IP della porta
radio; in questo modo il gateway remoto vede l'indirizzo corretto nei
datagrammi incapsulati che il gateway locale gli invia.</LI>
<LI>I comandi di routing usati per generare le route incapsulate
possono essere generate da una versione modificata dello script
<EM>munge</EM> che viene riportato pi&ugrave; sotto. I comandi di routing
vengono scritti in un file separato e letto usando il comando
<EM>bash</EM> <CODE>source/etc/ipip.routes</CODE> (supponendo di aver
chiamato <CODE>/etc/ipip.routes</CODE> il file in questione). Il file
deve essere nel formato delle route di NOS.</LI>
<LI>Si noti l'uso dell'argomento <EM>window</EM> nel comando
<EM>route</EM>. Settando opportunamente questo parametro si
migliorano le prestazioni del collegamento radio.</LI>
</UL>
<P>
<P>Ecco il nuovo script tunnel-munge:
<P>
<BLOCKQUOTE><CODE>
<PRE>
#!/bin/sh
#
# Da: Ron Atkinson &lt;n8fow@hamgate.cc.wayne.edu>
#
#  Questo script &egrave; basato sullo script 'munge' scritto da Bdale N3EUA
#  per il demone IPIP, modificato da Ron Atkinson N8FOW. Il suo scopo
#  &egrave; quello di convertire un file di gateway nel formato NOS di KA9Q
#  (chiamato di solito 'encap.txt') nel formato delle tabelle di
#  routing di Linux per il tunnel driver IP
#
#       Uso: File dei gateway su stdin, file nel formato Linux su stdout.
#             esempio:  tunnel-munge &lt; encap.txt > ampr-routes
#
# NOTA: Prima di usare questo script assicurarsi di controllare ed
#       eventualmente cambiare i seguenti parametri:
#
#     1) Cambiare le sezioni 'Route locali e 'Altre route
#        dell'utente' con le route presenti nella vostra area
#        (rimuovete le mie!)
#     2) Sulla riga di fgrep assicurarsi di cambiare l'indirizzo IP
#        con il VOSTRO indirizzo di gateway internet. Se non si
#        effettua questa operazione si rischiano seri routing loop.
#     3) L'interfaccia ha nome di default 'tunl0'. Assicurarsi che
#        questa assunzione  sia corretta sul vostro sistema.

echo "#"
echo "# Tabella di routing con IP tunnelling generata da $LOGNAME il
`date`"
echo "# dallo script tunnel-munge v960307."
echo "#"
echo "# Route locali"
echo "route add -net 44.xxx.xxx.xxx netmask 255.mmm.mmm.mmm dev sl0"
echo "#"
echo "# Altre route dell'utente"
echo "#"
echo "# route remote"

fgrep encap | grep "^route" | grep -v " XXX.XXX.XXX.XXX" | \
awk '{
        split($3, s, "/")
        split(s[1], n,".")
        if      (n[1] == "")    n[1]="0"
        if      (n[2] == "")    n[2]="0"
        if      (n[3] == "")    n[3]="0"
        if      (n[4] == "")    n[4]="0"
        if      (s[2] == "1")   mask="128.0.0.0"
        else if (s[2] == "2")   mask="192.0.0.0"
        else if (s[2] == "3")   mask="224.0.0.0"
        else if (s[2] == "4")   mask="240.0.0.0"
        else if (s[2] == "5")   mask="248.0.0.0"
        else if (s[2] == "6")   mask="252.0.0.0"
        else if (s[2] == "7")   mask="254.0.0.0"
        else if (s[2] == "8")   mask="255.0.0.0"
        else if (s[2] == "9")   mask="255.128.0.0"
        else if (s[2] == "10")  mask="255.192.0.0"
        else if (s[2] == "11")  mask="255.224.0.0"
        else if (s[2] == "12")  mask="255.240.0.0"
        else if (s[2] == "13")  mask="255.248.0.0"
        else if (s[2] == "14")  mask="255.252.0.0"
        else if (s[2] == "15")  mask="255.254.0.0"
        else if (s[2] == "16")  mask="255.255.0.0"
        else if (s[2] == "17")  mask="255.255.128.0"
        else if (s[2] == "18")  mask="255.255.192.0"
        else if (s[2] == "19")  mask="255.255.224.0"
        else if (s[2] == "20")  mask="255.255.240.0"
        else if (s[2] == "21")  mask="255.255.248.0"
        else if (s[2] == "22")  mask="255.255.252.0"
        else if (s[2] == "23")  mask="255.255.254.0"
        else if (s[2] == "24")  mask="255.255.255.0"
        else if (s[2] == "25")  mask="255.255.255.128"
        else if (s[2] == "26")  mask="255.255.255.192"
        else if (s[2] == "27")  mask="255.255.255.224"
        else if (s[2] == "28")  mask="255.255.255.240"
        else if (s[2] == "29")  mask="255.255.255.248"
        else if (s[2] == "30")  mask="255.255.255.252"
        else if (s[2] == "31")  mask="255.255.255.254"
        else                    mask="255.255.255.255"

if (mask == "255.255.255.255")  
        printf "route add -host %s.%s.%s.%s gw %s dev tunl0\n"\
                ,n[1],n[2],n[3],n[4],$5
else                            
        printf "route add -net %s.%s.%s.%s gw %s netmask %s dev tunl0\n"\
                ,n[1],n[2],n[3],n[4],$5,mask
 }'

echo "#"
echo "# default the rest of amprnet via mirrorshades.ucsd.edu"
echo "route add -net 44.0.0.0 gw 128.54.16.18 netmask 255.0.0.0 dev
tunl0"
echo "#"
echo "# fine"
</PRE>
</CODE></BLOCKQUOTE>
<P>
<H2><A NAME="ss22.3">22.3 Configurazione del gateway di incapsulamento AXIP</A>
</H2>

<P>Molti gateway radioamatoriali per Internet incapsulano l'AX.25,
NetRom e Rose oltre che il tcp/ip. L'incapsulamento di frame AX.25 in
datagrammi IP viene descritta nell'RFC-1226 da Brian Kantor. Nel 1991
Mike Westerhof ha scritto un'implementazione del demone di
incapsulamento dell'AX.25 per Unix, che viene proposta per Linux
nelle ax25-utils in una versione leggermente migliorata.
<P>Un geteway di incapsulamento AXIP prende i frame AX.25, ne ricava
l'indirizzo AX.25 di destinazione e in base a questo determina a
quale indirizzo IP inviarli, dopo averli incapsulati in datagrammi
tcp/ip, che vengono mandati all'indirizzo  di destinazione. Inoltre
permette anche il percorso inverso, accettando datagrammi tcp/ip che
contengono frame AX.25. Questi vengono estratti e trattati come se
fossero pervenuti direttamente da una porta AX.25. Per distinguere i
datagrammi che contengono frame AX.25, li si marca con un protocol id
uguale a 4 (o 94 anche se questo &egrave; ora sconsigliato), come descritto
dalla RFC-1226.
<P>Il programma <EM>ax25ipd</EM> incluso nelle ax-25utils gestisce
un'interfaccia KISS sulla quale si possono far transitare pacchetti
AX.25 ed un'interfaccia tcp/ip. Viene configurato tramite il file di
configurazione <CODE>/etc/ax25/ax25ipd.conf</CODE>.
<P>
<H3>Opzioni di configurazione di AXIP.</H3>

<P>Il programma <EM>ax25ipd</EM> possiede due modi principali di
funzionamento: il modo "digipeater" e il modo "tnc". Nel modo "tnc" il
demone viene considerato come un tnc KISS, gli si passano frames KISS
incapsulati in modo che li trasmetta, mentre nel modo "digipeater" si
comporta, appunto, come un digipeater AX.25. Tra questi due modi vi
sono delle sottili differenze.
<P>Nel file di configurazione si stabiliscono le "route" o le
corrispondenze tra i nominativi AX.25 e gli indirizzi IP degli host
ai quali si vogliono mandare i pacchetti AX.25. Ogni route possiede
delle opzioni che verranno spegate pi&ugrave; avanti.
<P>Altre opzioni che vengono configurate sono:
<LI>la tty che il demone <EM>ax25ipd</EM> apre e la sua velocit&agrave; (di
solito &egrave; un'estremit&agrave; di una pipe)</LI>
<LI>che nominativo usare in modo "digipeater"</LI>
<LI>l'intervallo di emissione e il testo trasmesso dal beacon.</LI>
<LI>se si vuole incapsulare i frame AX.25 in datagrammi IP oppure
UDP/IP. Quasi tutti i gateway AXIP usano l'IP encapsulation, ma
alcuni sono dietro a firewall che non permettono il passaggio a
datagrammi col protocol id dell'AXIP, costringendoli ad usare UDP/IP.
Quale che sia la scelta, deve essere uguale a quella dell'host TCP/IP
dall'altra parte del collegamento.</LI>
<P>
<H3>Un tipico esempio di <CODE>/etc/ax25/ax25ipd.conf</CODE>.</H3>

<P>
<BLOCKQUOTE><CODE>
<PRE>
#
# file di configurazioen ax25ipd per la stazione floyd.vk5xxx.ampr.org
#
# Selezione del tipo di trasporto. 'ip' permette la compatibilit&agrave;
# con la maggior parte dei gateway
#
socket ip
#
# Indicazione del tipo di modalit&agrave; (digi or tnc)
#
mode tnc
#
# Se si &egrave; scelta la modalit&agrave; digi, occorre definire un nominativo.
# Se si &egrave; in modo tnc, il nominativo &egrave; attualmente opzionale, ma ci&ograve;
# pu&ograve; cambiare in future (2 nominativi se si usano due porte kiss)
#
#mycall vk5xxx-4
#mycall2 vk5xxx-5
#
# In modalit&agrave; digi si pu&ograve; indicare un alias. (2 se si usano due porte
# kiss)
#
#myalias svwdns
#myalias2 svwdn2
#
# Si manda l'identificativo ogni 540 secondi ...
#
#beacon after 540
#btext ax25ip -- tncmode rob/vk5xxx -- Gateway sperimentale AXIP
#
# Porta seriale, o pipe connessa a kissattach in questo caso.
#
device /dev/ttyq0
#
# Velocit&agrave; del device
#
speed 9600
#
# loglevel 0 - nessun output
# loglevel 1 - solo informazioni di configurazione
# loglevel 2 - principali eventi ed errori
# loglevel 3 - principali eventi ed errori, nonch&egrave; la traccia dei
#              frame AX.25
# loglevel 4 - tutti gli eventi
# log 0 per il momento, con syslog ancora non fuziona ....
#
loglevel 2
#
# Se siamo in modalit&agrave; digi, ci dev'essere un vero tnc, 
# quindi uso param per settare i suoi parametri ....
#
#param 1 20
#
# Definizione degli indirizzi di broadcast. Ognuno degli indirizzi
# indicati sar&agrave; inoltrato ad ogni route in grado di effettuare il 
# broadcast.
broadcast QST-0 NODES-0
#
# definizione delle route ax.25
# il formato &egrave; route (nominativo/carattere jolly) (ip dell'host di
# destinazione) Se il ssid &egrave; zero la regola si applica a tutti i ssid.
#
# route &lt;destcall> &lt;destaddr> [flags]
#
# I flag validi sono
#         b  - permette il transito dei broadcast attraverso questa
#              route
#         d  - indica che questa &egrave; la route di default
#
route vk2sut-0 44.136.8.68 b
route vk5xxx 44.136.188.221 b
route vk2abc 44.1.1.1
#
#
</PRE>
</CODE></BLOCKQUOTE>
<P>
<H3>Uso di <EM>ax25ipd</EM></H3>

<P>
<DL>
<DT><B>Occorre creare le voci opportune nel file
<CODE>/etc/ax25/axports</CODE>:</B><DD><P>
<BLOCKQUOTE><CODE>
<PRE>
# /etc/ax25/axports
#
axip    VK2KTJ-13       9600    256     AXIP port
#
</PRE>
</CODE></BLOCKQUOTE>
<P>
<DT><B>Va usato il comando <EM>kissattach</EM> per creare la porta da
utilizzare:</B><DD><P>
<BLOCKQUOTE><CODE>
<PRE>
/usr/sbin/kissattach /dev/ptyq0 axip
</PRE>
</CODE></BLOCKQUOTE>
<P>
<DT><B>Si lancia il programma <EM>ax25ipd</EM>:</B><DD><P>
<BLOCKQUOTE><CODE>
<PRE>
/usr/sbin/ax25ipd &amp;
</PRE>
</CODE></BLOCKQUOTE>
<P>
<DT><B>Per testare il link AXIP link:</B><DD><P>
<BLOCKQUOTE><CODE>
<PRE>
call axip vk5xxx
</PRE>
</CODE></BLOCKQUOTE>
</DL>
<P>
<H3>Alcune note riguardo le route e i loro flag</H3>

<P>Col comando "<CODE>route</CODE>" si specifica dove si vuole inoltrare i
propri pacchetti incapsulati. Quando il demone <EM>ax25ipd</EM> riceve un
pacchetto dalla sua interfaccia, confronta il nominativo di
destinazione con tutti quelli presenti nella tabella di routing. Se
lo trova, il pacchetto AX.25 viene incapsulato in un datagramma IP e
poi trasmesso all'indirizzo IP indicato.
<P>Ci sono due flag che si possono aggiungere ad ogni comando di route
nel file <CODE>ax25ipd.conf</CODE>:
<DL>
<DT><B>b</B><DD><P>il traffico che ha come destinazione gli indirizzi
definiti dalla parola chiave "<CODE>broadcast</CODE>" devono essere trasmessi
attraverso questa route.
<DT><B>d</B><DD><P>ogni pacchetto il cui indirizzo non compare in alcuna
route deve essere trasmessa attraverso questa route.
</DL>
<P>Il flag di broadcast &egrave; molto utile, poich&eacute; permette di inviare
informazioni destinate a tutte le stazioni, a molte destinazioni
AXIP. Normalmente le route AXIP sono di tipo punto-punto ed incapaci
di gestire pacchetti di tipo 'broadcast'.
<P>
<H2><A NAME="ss22.4">22.4 Collegare NOS e Linux con un pipe device.</A>
</H2>

<P>Molti radioamatori utilizzano alcune versioni di NOS sotto Linux,
poich&eacute; hanno a disposizione tutte le funzionalit&agrave; a cui sono
abituati; a molti di questi piacerebbe che il loro NOS potesse
colloquiare col kernel di Linux in modo di poter mettere a
disposizione le funzionalit&agrave; del sistema operativo agli utenti che si
collegano via radio con NOS.
<P>Brandon S. Allbery, KF8NH, ha fornito queste informazioni, che
consentono di interconnettere il NOS con Linux tramite il device
pipe.
<P>Poich&eacute; sia Linux che NOS supportano il protocollo slip, &egrave; possibile
connettere i due creando un link di tipo slip. E' possibile
realizzare questo collegamento realizzando in collegamento tra due
porte seriali della stessa macchina collegate in loopback con un
cavo, ma questa realizzazione risulterebbe lenta e costosa. Linux, al
contrario, fornisce una funzionalit&agrave; tipica dei sistemi Unix
chiamata 'pipe'. I pipe sono degli 'pseudo-device' che sono visti dai
programmi come normali device tty, ma che in realt&agrave; fungono da
collegamento verso un altro pipe. Per usare i pipe il programma
chiamante deve attivare il pipe <B>master</B> e, successivamente,
il programma chiamato deve fare lo stesso col pipe <B>slave</B>.
Una volta aperte le due porte, i programmi possono comunicare tra
loro semplicemente scrivendo caratteri sul device pipe, esattamente
come se fossero normali terminali seriali.
<P>Per usare questa funzionalit&agrave; per connettere il kernel di Linux con
una copia di NOS od altri programmi, occorre per prima cosa scegliere
il pipe da usare. I pipe trovano nella directory <CODE>/dev</CODE>; le
parti master del pipe sono chiamate <CODE>ptyq[1-f]</CODE>, mentre quelle
slave sono <CODE>ttyq[1-f]</CODE>. Si ricordi che vanno sempre in coppia,
per cui se si sceglie <CODE>/dev/ptyqf</CODE> come parte master, occorre
scegliere <CODE>/dev/ttyqf</CODE> come parte slave.
<P>Una volta scelta una coppia di device pipe da usare, la parte master
va allocata al kernel Linux, mentre la parte slave va assegnata a
NOS; occorre quindi allocare un indirizzo unico per NOS, se non si &egrave;
gi&agrave; provveduto a farlo.
<P>I pipe si configurano come se fossero device seriali, per cui per
creare il collegamento slip dal kernel Linux, si possono usare i
seguenti comandi:
<P>
<BLOCKQUOTE><CODE>
<PRE>
# /sbin/slattach -s 38400 -p slip /dev/ptyqf &amp;
# /sbin/ifconfig sl0 broadcast 44.255.255.255 pointopoint 44.70.248.67 /
        mtu 1536 44.70.4.88
# /sbin/route add 44.70.248.67 sl0
# /sbin/route add -net 44.0.0.0 netmask 255.0.0.0 gw 44.70.248.67
</PRE>
</CODE></BLOCKQUOTE>
<P>In questo esempio al kernel Linux &egrave; stato assegnato l'indirizzo IP 
<CODE>44.70.4.88</CODE>, mentre NOS usa l'indirizzo
<CODE>44.70.248.67</CODE>.
Il comando <EM>route</EM> nell'ultima riga indica al kernel Linux di
instradare, attraverso il collegamento slip creato dal comando
<EM>slattach</EM>, tutti i datagrammi indirizzati verso amprnet.
Normalmente questi comandi vanno messi nel file
<CODE>/etc/rc.d/rc.inet2</CODE> immediatamente dopo tutti gli altri
comandi di configurazione della rete, in modo che il collegamento
slip sia creato alla partenza del sistema.
Nota: non c'&egrave; alcun vantaggio nell'uso del comando <EM>cslip</EM> al
posto di <EM>slip</EM>, anzi , con cslip si avverte un calo di
prestazioni poich&eacute;, essendo un collegamento virtuale, il tempo
impiegato per comprimere gli header &egrave; superiore di quello che viene
impiegato per trasmettere i datagrammi non compressi.
<P>Per configurare la parte NOS dall'altra parte del collegamento si pu&ograve;
usare la seguente configurazione:
<P>
<BLOCKQUOTE><CODE>
<PRE>
# si pu&ograve; chiamare l'interfaccia come si vuole, in questo caso la si &egrave;
# chiamata "linux" per comodit&agrave;
attach asy ttyqf - slip linux 1024 1024 38400
route addprivate 44.70.4.88 linux
</PRE>
</CODE></BLOCKQUOTE>
<P>Questi comandi creano una porta slip chiamata `linux' attraverso la
parte slave del pipe che lo collega al kernel di Linux, ed un comando
di route per farla funzionare. Una volta fatto partire NOS, si deve
essere in grado di eseguire ping e telnet da Linux a NOS e viceversa.
Se ci&ograve; non si verificasse, controllare con attenzione soprattutto la
corretta configurazione degli indirizzi e del pipe.
<P>
<P>
<HR>
<A HREF="AX25-HOWTO-23.html">Avanti</A>
<A HREF="AX25-HOWTO-21.html">Indietro</A>
<A HREF="AX25-HOWTO.html#toc22">Indice</A>
</BODY>
</HTML>