In questa sezione assumeremo di usare una scheda DVB compatibile Siemens, come la Hauppage WinTV DVB, i cui drivers sotto Linux sono disponibili su LinuxTV o su DVB-s PCI cards under Linux.
Purtroppo per la scheda Netsystem (SkyStar2, B2C2inc.) non esistono drivers sotto Linux.
Una volta scaricati, basta scompattarli (tar zxvf file.tgz) su una directory, entrarvi e digitare "make " e "make insmod": per fare ciò é necessario avere i sorgenti del kernel di Linux su /usr/src/linux (altrimenti, bisognerà scaricarli da http://www.kernel.org e recompilarli).
Dopo aver digitato "make insmod", il nostro sistema dovrebbe avere i moduli attivi e funzionanti (si controlli con "lsmod"). Per scaricare i drivers basta digitare "make rmmod".
Il file /etc/dvbd.conf viene usato per configurare i parametri a livello data-link (livello 2 ISO OSI) della scheda DVB. Seguono i settaggi principali:
Esempio
------------------------------------------
# DVB receiver configuration file, (c) 2000 data planet international
# standard location in /etc
# LNB power on=1/off=0
power 1
# symbol rate [symbol/sec]
symbolrate 22000000
# ASTRA TR 114
frequency 12640000
# 22 kHz signal on=1/off=0
ttk 1
# diseqc on=1/off=0
diseqc 0
# AFC on=1/off=0
AFC 1
# polarisation H=1/V=0
polarisation 1
# settings for MPE filter, PID and MAC filtering, valid MAC bytes
filter_0 512
filter_1 785 00:D0:5C:1E:96:01 48
filter_2 786 00:D0:5C:1E:96:01 48
filter_3 1041 00:D0:5C:1E:96:01 48
-----------------------------------------
filter_0 non ha ne' MAC ne' BITFILTER perché il MAC é già calcolato dall'indirizzo IP dinamico (si veda la solita Appendice A). Vedremo che questo settaggio andrà bene per alcuni ISP, mentre per altri dovremo apportare delle modifiche sul file dvbd.c.
Una volta configurato correttamente il file /etc/dvbd.conf, si può lanciare il programma dvbd, che, se eseguito senza l'opzione "-d", scriverà sullo stdout il livello del segnale:
altrimenti vorrà dire che non si stà ricevendo segnale (si consiglia di controllare il cavo e/o il puntamento della parabola).
Nota:
E' possibile che ci sia da cambiare, nel file dvbd.h, la linea:
#define network_device "eth0"
in
#define network_device "ppp0"
a seconda dell'interfaccia con cui ci si connette ad Internet, eth0 o ppp0: si digiti "make" per aggiornare il file binario e si rilanci dvbd.
Adesso che si ha un buon segnale, possiamo finalmente provare il servizio Satellitare.
Per EON, si vada nei settaggi del "proxy" nelle preferenze di Netscape e si imposti, sotto proxy HTTP and FTP:
proxy.xxx.europeonline.net
dove xxx é il numero del transponder usato (103,113,114 or 115, si veda l'Appendice B).
e, su "port" 8080 relativamente ad HTTP e 8090 per FTP
Adesso dovrebbe essere possibile usare il browser. Buona navigazione!!
Per condividere EON tra più utenti si può utilizzare il proxy Squid abilitando la cascata verso il proxy EON.
Per una configurazione più complessa di EON si veda il link EON Linux Masquering FAQ Page
Netsystem é un pò più complesso da configurare rispetto a EON, sotto Linux. Seguono i passi principali:
Prima di tutto bisogna scaricare il client VPN PPTP.
Dopo averlo scompattato, compilato e installato, si aggiunge una riga sui files /etc/ppp/pap-secrets e /etc/ppp/chap-secrets, con la seguente sintassi:
"login" * "password" *
dove "login" e "password" sono le stesse della registrazione Netsystem.
Come descritto sulla pagina PPTP, é necessario applicare la patch per il pppd per farlo funzionare con alcuni VPN server, tra cui quello di Netsystem.
Attenzione: in caso si utilizzi una versione di pppd superiore alla 2.4.0 non e' necessario l'aggiornamento del demone pppd.
Bisogna quindi:
Adesso il pppd sarà compatibile con il server VPN Netsystem e potremo collaudarlo dando:
"pptp vpn.netsystem.com debug user <login>"
dove <login> é la login dell'account di Netsystem: nel file di log (/var/log/messages) dovrebbe comparire il debug dell'interfaccia VPN
Se tutto é andato per il verso giusto dovrebbe essere visibile l'interfaccia ppp1 (tramite comando "ifconfig").
In caso di problemi sull'autenticazione si consiglia di aggiungere la seguente riga:
"noauth"
in fondo al file /etc/ppp/options.
Una volta che l'interfaccia é stata caricata bisogna ancora:
I punti 1,2,3 sono necessari in quanto, le connessioni punto-punto sotto Linux tendono ad aggiungere il gateway sull'interfaccia stessa (cosa non corretta nel nostro caso): senza questi comandi si avrebbe un ciclo in cui il pacchetto spedito si incapsula su se stesso all'infinito.
I punti 4,5 sono usati per dirigere tutte le richieste Internet sull'interfaccia ppp1 e in definitiva sulla connessione VPN: questo potrebbe non essere ottimale, per esempio nel casi di richieste DNS, che verrebbero spedite inutilmente (senza miglioramenti, anzi con un peggioramento delle prestazioni) via VPN.
Invece di configurare i parametri manualmente, si possono utilizzare i seguenti scripts:
"netsystem.on" script
______________________________________________________________________
route add IP_DNS1 dev ppp0
route add IP_DNS2 dev ppp0
route add -net 212.31.242.0 netmask 255.255.255.0 dev ppp0
pptp vpn.netsystem.com user <login>
/bin/sleep 5
route add default dev ppp1
______________________________________________________________________
"netsystem.off" script
______________________________________________________________________
route del IP_DNS1 dev ppp0
route del IP_DNS2 dev ppp0
route del -net 212.31.242.0 netmask 255.255.255.0 dev ppp0
kill -9 `ps x|grep "pppd"|grep "<login>"|grep -v "ps"|tr " " "\n"|head -n 2`
rm --force /var/lock/LCK..tty*
rm --force /var/run/pptp/*
rm --force /var/run/ppp1.pid
killall -9 pptp
______________________________________________________________________
IP_DNS1 e IP_DNS2 sono gli indirizzi IP dei servers dns servers (primario e secondario).
<login> e' la userID dell'account Netsystem.
Gli scripts sono stati provati con il kernel 2.4.6 e RedHat 7.1 e funzionano bene (senza problemi di loop sull'interfaccia ppp1).
La seguente linea:
kill -9 `ps x|grep "pppd"|grep "<login>"|grep -v "ps"|tr " " "\n"|head -n 2`
server per calcolare il process identifier (PID) del processo pppd che gestisce l'interfaccia VPN: e' infatti necessario distinguerlo dall'altro processo pppd che gestisce la linea commutata, onde evitare di far cadere la linea telefonica in caso si voglia disattivare la connessione VPN.
Dopo aver risolto i problemi relativi alla VPN bisognerà cambiare alcune linee nel file dvbd.c, attorno alla fine:
if (strcmp (v, "filter_0") == 0) { if (s != NULL) { unsigned char ip[4]; dvbcfg[0].status = ON ; dvbcfg[0].filter.data[0] = 0x3eff ; dvbcfg[0].filter.pid = (__u16) atoi (s) ; dvbcfg[0].filter.mode = 0x0c ; if (ipget (ip, network_device)) { fprintf(stderr,"Can't get local ip address. Stop.\n") ; return -1 ; } syslog (LOG_NOTICE, "Local ip is %u:%u:%u:%u\n", ip[0], ip[1], ip[2], ip[3]); dvbcfg[0].filter.data[1] = (ip[3] << 8) | 0x00ff ; dvbcfg[0].filter.data[2] = (ip[2] << 8) | 0x00ff ; dvbcfg[0].filter.data[6] = (ip[1] << 8) | 0x00ff ; dvbcfg[0].filter.data[7] = (ip[0] << 8) | 0x00ff ; dvbcfg[0].filter.data[8] = (0x02 << 8) | 0x00ff ; dvbcfg[0].filter.data[9] = (0x00 << 8) | 0x00ff ; setmac (ip) ; } else { dvbcfg[1].status = OFF ; } }
Le linee seguenti:
dvbcfg[0].filter.data[1] = (ip[3] << 8) | 0x00ff ;
dvbcfg[0].filter.data[2] = (ip[2] << 8) | 0x00ff ;
dvbcfg[0].filter.data[6] = (ip[1] << 8) | 0x00ff ;
dvbcfg[0].filter.data[7] = (ip[0] << 8) | 0x00ff ;
dvbcfg[0].filter.data[8] = (0x02 << 8) | 0x00ff ;
dvbcfg[0].filter.data[9] = (0x00 << 8) | 0x00ff ;
diventano:
dvbcfg[0].filter.data[1] = (MAC[5] << 8) | 0x00ff ;
dvbcfg[0].filter.data[2] = (MAC[4] << 8) | 0x00ff;
dvbcfg[0].filter.data[6] = (MAC[3] << 8) | 0x00ff ;
dvbcfg[0].filter.data[7] = (MAC[2] << 8) | 0x00ff ;
dvbcfg[0].filter.data[8] = (MAC[1] << 8) | 0x00ff ;
dvbcfg[0].filter.data[9] = (MAC[0] << 8) | 0x00ff ;
Dove MAC[0]:MAC[1]:MAC[2]:MAC[3]:MAC[4]:MAC[5] é il nostro indirizzo MAC (nativo) relativo alla registrazione Netsystem.
Per esempio con l'indirizzo 00:d0:d0:d0:d0:d0 si avrà:
dvbcfg[0].filter.data[1] = (0xd0 << 8) | 0x00ff ;
dvbcfg[0].filter.data[2] = (0xd0 << 8) | 0x00ff;
dvbcfg[0].filter.data[6] = (0xd0 << 8) | 0x00ff ;
dvbcfg[0].filter.data[7] = (0xd0 << 8) | 0x00ff ;
dvbcfg[0].filter.data[8] = (0xd0 << 8) | 0x00ff ;
dvbcfg[0].filter.data[9] = (0x00 << 8) | 0x00ff ;
si noti la notazione esadecimale 0x??
Dopo, basterà digitare make e utilizzare il nuovo file dvbd così aggiornato.
Nota: perché tale patch abbia successo, é necessario che la versione del driver DVB (nel caso Hauppage) sia >= 0.8.2: le versioni più vecchie hanno problemi di stabilità.
Finalmente, possiamo testare Netsystem sotto Linux. Diamo un "ping www.somehostpingable.com" e controlliamo il tempo di risposta: dovrebbe aggirarsi intorno ai 400-2000 ms e rimanere stabile.
Se i problemi persistono conviene controllare l'interfaccia VPN:
Se la VPN é settata correttamente dovremmo vedere 2 (o 1) pacchetti di tipo GRE-Encapsulated ogni secondo, in modo ininterrotto. Se non appare nulla allora bisognerà rivedere la configurazione della VPN, provando a rilanciarla.
Una volta seguite tutte le istruzioni é ancora NECESSARIO usare (particolarmente con Netsystem) uno qualunque dei "download accelerator" per migliorare le prestazioni: si veda l'Appendice A a riguardo.
Per condividere Netsystem tra più utenti bisogna prima di tutto attivare l'"IP Masquering", permettendo agli utenti in rete di utilizzare la VPN come una normale interfaccia Internet per la navigazione; il problema principale però è che la connessione Satellitare risulta essere molto buona per i downloads, mentre per la "semplice navigazione" è piuttosto scadente (a causa dei tempi d'accesso).
Si potrebbe pensare di utilizzare un proxy come Squid o Socks, ma le cose non migliorerebbero, poiché TUTTE le richieste verrebbero comunque inoltrate all'interfaccia VPN.
La soluzione allora consiste nell'utilizzare 2 tabelle d'instradamento, una connessa direttamente ad Internet, mentre l'altra in grado di attraversare l'interfaccia VPN. Bisogna, quindi:
Una volta fatto tutto ciò, si avranno 2 tipi di funzionamento: senza nessun proxy i clients della LAN chiederanno direttamente ad Internet, mentre utilizzando il proxy prescelto (squid o sockd) le richieste verranno instradate sull'interfaccia VPN, e in definitiva, via Satellite.
Si noti, infine, che sarebbe meglio usare sockd al posto di squid, in quanto le richieste Satellitari sono tipicamente convenienti in download (mentre squid é normalmente utilizzato per la navigazione).
Quel che succede con i comandi iproute2 é che, quando si chiede un sito al proxy, questo (che utilizza l'indirizzo LOCALIP per fare la richiesta) entra nello stack TCP/IP dove il kernel lo manda (grazie al punto 4 di prima) alla tabella "sat" e, quindi (in base al punto 5) sull'interfaccia ppp1. Tutte le altre richieste verranno instradate con la classica "default route" (quindi direttamente su Internet senza Sat, sia essa su ppp0 o su qualunque altra interfaccia che porta sulla grande rete).
Per la maggiorparte della configurazione basta seguire le istruzioni relative a Netsystem.
Prima di attivare la connessione VPN bisogna dare:
* ''route del default'', per cancellare la vecchia default route
* ''route add 212.56.224.36 dev ppp0'', per far raggiungere il server VPN attraverso l'interfaccia ppp0
* ''pptp 212.56.224.36 user user-name'', per creare la VPN
* ''route add default dev ppp1'', per instradare tutto verso l'interfaccia ppp1.
Quello che cambia dalla configurazione di Netsystem e' che non forziamo il gateway VPN (212.56.224.34, che si puo' leggere a destra di ''P-t-P'' nell'interfaccia ppp1) sull'interfaccia ppp0, ma forziamo l'indirizzo 212.56.224.36. Tutto il resto dovrebbe rimanere uguale.
Rigraziamenti a Ricardo Santiago Mozos e Norberto Garcia Prieto.
E' fortemente consigliato l'utilizzo di un Download Accelerator (vedi Appendice A) per migliorare le performances.
OpenSky e' l'ultimo servizio satellite reso disponibile (estate 2001) ed offre 300 MB di scaricamento e navigazione al mese (gratis).
La configurazione e' molto simile a quella di EON, bisogna utilizzare i drivers 0.8.2 siemens scaricabili da LinuxTV, poi e' NECESSARIO eseguire la patch per il dvbd.
Per applicare la patch e testare OpenSky puoi trovare informazioni preziose su: