Next Previous Contents

6. Configurazione sotto Linux

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.

6.1 Installazione dei drivers

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".

6.2 Configurare il file /etc/dvbd.conf

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.

6.3 Applicativo Dvbd

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.

6.4 Come configurare il servizio EON

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

6.5 Come usare il servizio Netsystem

Netsystem é un pò più complesso da configurare rispetto a EON, sotto Linux. Seguono i passi principali:

  1. connessione VPN
  2. patch per pppd (solo nel caso si utilizzi pppd versione <= 2.4.0)
  3. patch per dvbd.c
  4. test
  5. migliorare le performances
  6. condividere Netsystem con molti altri utenti.

Connessione VPN

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.

Patch per pppd

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:

  1. scaricare una versione recente di pppd
  2. scaricare e scompattare la corrispondente patch per pppd
  3. scompattare pppd in una directory
  4. digitare "patch -p0 < patch_name", per applicare la patch
  5. entrare nella directory pppd
  6. digitare "make" e "make install"

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:

  1. dare "ifconfig ppp1" e ricavare l'indirizzo IP (che chiamerò IP) a destra di "P-t-P:".
  2. cancellarlo dalla tabella di routing con "route del IP"
  3. aggiungerla sull'interfaccia ppp0 con "route add IP dev ppp0"
  4. cancellare il default gateway da ppp0 con "route del default"
  5. aggiungere il default gateway su ppp1 con "route add default dev ppp1"

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.

Patch per dvbd.c

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à.

Test

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:

  1. aprire lo sniffer di rete preferito (per esempio Ethereal) e analizzare l'interfaccia "ppp0" (ppp0, non ppp1!!)
  2. diamo un ping

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.

Migliorare le performances

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.

Condividere Netsystem tra più utenti

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:

  1. essere sicuri di aver installato i comandi "iproute2" (per esempio digitare "ip" sulla shell e controllare se viene stampato il manuale dell'applicativo): si veda il documento Linux 2.4 Advanced Routing HOWTO.
  2. essere sicuri di aver lanciato il servizio Netsystem e annotare l'indirizzo IP dell'interfaccia ppp1 che chiameremo LOCALIP.
  3. digitare: "echo "210 sat" >> /etc/iproute2/rt_tables", per associare comodamente la regola 210 con il nome "sat"
  4. digitare: "ip rule add from LOCALIP table sat", per creare la tabella "sat" relativa a tutte le richieste provenienti dall'indirizzo LOCALIP.
  5. digitare: "ip route add default dev ppp1 table sat", per redirigere TUTTE le richieste "sat" verso l'interfaccia ppp1 (si veda sopra).
  6. Se si usa Socks settare, nel file sockd.conf, "external" su LOCALIP.
  7. Se si usa Squid settare, nel file squid.conf, "tcp_outgoing_address" al valore di LOCALIP.

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).

6.6 Come configurare il servizio Sat Node

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.

6.7 Il servizio OpenSky sotto Linux

  1. Devi registrarti su http://www.opensky.it/cc/index.asp?f=registrazione.htm
  2. Riceverai un'email con login e password in pochi giorni.
  3. Vai sul sito https://sdr.eutelsat.net e connettiti utilizzando login e password.
  4. Setta il proxy: ''proxy.eutelsat.net: 8080''

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:


Next Previous Contents