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.

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.

Patch for 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.

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.


Next Previous Contents