Sat (Tecnologia Satellitare) HOWTO

Roberto Arcomano berto@bertolinux.com, Florindo Santoro flosan@hack-it.net

v1.82, 23 Agosto 2001
Il Satellite sta iniziando a diventare una risorsa molto rilevante per gli utenti Internet, permettendo di scaricare dati ad alta velocità e di usare molti altri servizi. Questo documento vuole investigare sullo "Stato dell'Arte" delle connessioni satellitari in ambiente Linux, come velocizzarle e come condividerle con più utenti. Puoi trovare l'ultima versione di questo documento su http://www.bertolinux.com e http://www.hack-it.net/How-To/Sat-HOWTO.html.

1. Introduzione

1.1 Introduzione

Questo documento intende illustrare qualcosa riguardo la tecnologia Satellitare, come funziona, che cosa e' necessario, la configurazione e come condividere la connessione Satellitare fra più utenti. Le connessioni satellitari sono molto diverse da quelle terrestri, richiedono molta attenzione nella configurazione come nella loro manutenzione (neve o forte pioggia potrebbero incidere negativamente impedendone la ricezione).

Per qualunque commento o critica scriveteci a: berto@bertolinux.com e flosan@hack-it.net.

1.2 Copyright

Copyright (C) 2000,2001,2002 Roberto Arcomano, Florindo Santoro. This document is free; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This document is distributed in the hope that it will be useful, but

WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You can get a copy of the GNU GPL here

1.3 Traduzioni

Sei libero di tradurre questo documento, devi soltanto rispettare 2 regole:

  1. Controllare che non esista gia' un'altra versione nel tuo LDP locale
  2. Mantenere tutta la sezione 'Introduzione' (inclusi 'Introduzione', 'Copyright', 'Traduzioni', 'Ringraziamenti').

Attenzione! Non bisogna tradurre il file TXT o HTML, bensi' il file LYX, cosicche' sia possibile convertirlo negli altri formati (TXT, HTML, RIFF, ecc.): puoi utilizzare l'applicativo LyX scaricabile da http://www.lyx.org.

Non c'e' bisogno di chiedermi l'autorizzazione! E' sufficiente comunicarmelo.

Grazie per la tua traduzione!

1.4 Ringraziamenti

Grazie a Fatamorgana Computers per l'hardware fornito e per la possibilita' di sperimentazione.

Grazie al Progetto Pluto per la pubblicazione e per l'aggiornamento dei documenti.

Grazie a Pierre Guiral e a Andrei Boros per il loro aiuto.

2. Conoscenze di base

2.1 Informazioni generali sulle connessioni Satellitari

Negli ultimissimi anni sono apparse le prime applicazioni dei Satelliti su Internet, essenzialmente gestiti da medio-grossi ISPs e abbiamo assistito alla loro diffusione. Le connessioni Satellitari determinano un tipo di "reti" molto diverse da quelle terrestri, con diverse tempistiche come ad esempio un maggiore RTT (round trip time), ma anche con diverse velocità, arrivando fino a 2 Mbps o più.

2.2 Come funziona?

Possiamo immaginare un percorso come il seguente:

              |||||| S A T E L L I T E  ||||||||
                   /                       /|\                   
Downl             /                         |      Uploading
load             /                          |      dal
verso           /(4)                        | (3)  server
l'utente       /                            |     
              /                             |     
Scheda Sat(parabola)                        |                                      
             |                              |
            \|/                             |        
      PC Utente ---- richiesta ----> SERVER-SAT <---recupero-dati---> INTERNET
                         (1)                               (2)

Prima di tutto facciamo la richiesta (1) (utilizzando la nostra connessione ad Internet) al Server Satellitare, che a questo punto recupererà i dati per noi da Internet (2) e li manderà al Satellite (3); infine noi riceveremo i dati direttamente dal Satellite (4) a casa utilizzando l'antenna parabolica connessa alla Scheda Sat.

Tipicamente esistono 2 tipi di richieste:

Entrambe richiedono pochissimi bytes di richiesta e gestiscono una risposta molto grande, quindi lavorano molto bene con il Satellite, nonostante un elevato tempo di risposta, problema principale delle connessioni Sat (se consideriamo una tipica distanza Sat, come 36.000 km, avremo un tempo di accesso di [ 36000 km / 300.000 km/s = 0.120 s = ] 120 ms da aggiungere (2 volte, perche' prima il Server manda i dati e poi noi li scarichiamo), al classico tempo di risposta di Internet terrestre).

Recentemente gli ISP permettono ai loro clienti l'utilizzo di ulteriori servizi, quali:

e molti altri.

Esiste, inoltre, una tecnologia chiamata "one-way", che consiste in servizi email, download su richiesta (in cui si fa una "prenotazione" che verrà servita in un certo istante) e download: questi servizi sono assolutamente offline, cioe' non richiedono l'utilizzo del modem o di altra connessione ad Internet.

2.3 Altre tecnologie

Riportiamo qui, per completezza, un ulteriore tecnologia, il 2-way: essa richiede soltanto la parabola per funzionare in quanto gestisce la comunicazione in entrambi i sensi. Il costo é molto più elevato rispetto alla soluzione classica. Ci aspettiamo novità interessanti nell'immediato futuro, per adesso é possibile avere una banda di 4 Mbit/s in download e 256Kbit/s in upload.

2.4 Qual'é la velocità massima?

Dipende da diversi fattori: obiettivo dell'ISP, finestra TCP utilizzata, applicazioni utilizzate dall'utente e, più importante di tutti, la congestione della rete Internet.

In generale ci si può aspettare una banda massima intorno a 1-4 Mbps e una media di circa 10-30 KBytes/s, ma ripeto, dipende da molti fattori.

Comunque molti ISPs annunciano di dare una banda "Massima", mentre quella media potrebbe essere molto più bassa, a causa dell'intasamento intra-ISP.

Alcuni ISPs, invece, garantiscono una Banda "Minima", molto più significativa della precedente in quanto sempre disponibile (Internet permettendo).

Vedi Appendice A per ulteriori informazioni sul miglioramento della prestazioni.

2.5 Quanto costa?

Bisogna distinguere tra i costi hardware e quelli dell'abbonamento, i primi sono noti a priori, mentre i secondi dipendono dal tipo di servizio che si sceglie (garantito / non garantito, banda....).

Costi Hardware

Per installare il nostro sistema Satellitare abbiamo bisogno di:

  1. Scheda Satellitare
  2. Antenna Parabolica
  3. Uno o più fuochi (convertitori o feed)

Si noti che é necessario utilizzare un convertitore digitale per usufruire di Internet via Satellite.

Le schede Satellitari hanno costi che variano a seconda della marca, dalle 400.000 alle 600.000 Lire circa.

L'antenna Parabolica viene intorno alle 100.000 Lire.

Il convertitore intorno alle 100.000 Lire.

Quindi, in sostanza, abbiamo all'incirca 6-800 mila lire di costi hardware (cui bisogna ancora aggiungere i costi di installazione!!).

Nel caso si voglia ricevere dati criptati, saranno necessari:

  1. CI che viene intorno alle 200.000 lire.
  2. CAM che viene dalle 200 alle 500 mila lire.

Costi dell'abbonamento

Qui i prezzi dipendono da quale ISP scegliamo, qual'é la sua banda di picco (massima), se esiste o meno una banda garantita (come detto precedentemente, più importante della banda di picco), che tipo di servizi vengono forniti e così via.

Alcuni ISP danno accesso gratuito, in cambio di un banner pubblicitario sempre "in primo piano", cioé non iconificabile.: in questo caso si pagherà quando si andrà ad acquistare qualche prodotto reclamizzato!!

Tipici costi di abbonamento sono, all'incirca, da 200.000 a 300.000 lire l'anno per i servizi "non garantiti", mentre 800.000 - 1.200.000 lire per quelli a "banda garantita" (che, ricordiamo, può essere utilizzata anche in casi di congestione, ovviamente di tipo Intra-ISP!! Una volta che si esce su Internet nessuno può garantire più nulla).

2.6 Quali Satelliti vengono utilizzati?

Quando parliamo di Satelliti, intendiamo: Astra (19.2 gradi SE), Hotbird (13.2 gradi SE), il nuovo Europestar (45 gradi SE), Eutelsat (8 gradi SW), Astra (26E), ArabSat 3A (26E).

2.7 Quali ISP danno accesso Satellitare ad Internet?

In Europa abbiamo circa 8 ISPs che danno accesso via Satellite per Internet:

  1. EuropeOnLine - EON
  2. Netsystem
  3. Starspeeder
  4. Eliosat
  5. Falcon Stream
  6. SkyDSL
  7. OpenSky
  8. http://www.xanticbroadband.com/
  9. DirecPC che utilizza una scheda Satellite proprietaria (questo è stato anche il primo ISP Satellitare )

EON da accesso a circa 300.000 lire l'anno senza "banda garantita".

Netsystem offre il suo servizio a "costo nullo", viene solo richiesto di guardare un banner pubblicitario.

Starspeeder da accesso ???

Eliosat costa 700.000 l'anno con 128 Kbps di banda garantita (servizio base, vedi sito web per ulteriori informazioni); inoltre da' accesso con tecnologia 2-way, per ricevere e trasmettere soltanto tramite Parabola.

SkyDSL fornisce un servizio base di 30.000 al mese con 128Kbit/s di banda, ma permette un valore maggiore pagando ogni Mb scaricato (si può scegliere da 256Kbit/s fino a 4Mbit/s), per ulteriori informazioni si veda il sito web relativo.

IMPORTANTE: prima di sottoscrivere un abbonamento, verificare che il diametro della parabola sia sufficiente alla ricezione del segnale.

Il servizio OpenSky e' partito prima dell'estate 2001 con il "beta test": permette di navigare e scaricare (tramite Proxy) fino ad un massimo di 300 MB mensili (gratis). Per registrarsi bisogna andare sul sito di registrazione OpenSky (in italiano).

2.8 Altro?

Con qualunque scheda DVB é possibile ricevere canali TV digitali trasmessi in chiaro, mentre alcune schede, grazie al support Common Interface (C.I.), permettono di vedere anche canali criptati: segue lo schema.

Smart-Card -> CAM -> Common Interface -> Scheda Sat (con supporto C.I.)

La scheda CAM (ci sono diversi standards usati per la decriptazione: SECA, IRDETO, VIACCESS e altri) é l' hardware che permette il decriptaggio (per TV, Radio e Dati), mentre il Common Interface o C.I. (ETSI EN 50221) gestisce l'interazione tra CAM e scheda Satellite.

3. Informazioni Tecniche

3.1 Funzionamento generico

Cerchiamo adesso di capire come funziona una connessione satellitare e sotto quali condizioni.

Possiamo immaginare un collegamento via Satellite come un classico link Wireless, intendo un qualunque link tra 2 sistemi che non utilizzano un cavo per scambiare dati.

Il link di tipo Wireless é molto diverso da un link di tipo Wired (cablato) poiché vi sono diversi problemi da risolvere, come la raggiungibilità, la gestione della privacy e così via. Si possono inoltre avere problemi relativi alle condizioni atmosferiche, particolarmente in presenza di neve o forte pioggia.

Comunque il principio più importante da tenere in mente, nelle connessioni Wireless e' la "visibilità senza ostacoli", cioé deve essere possibile "vedere" (o a occhio nudo o con un cannocchiale) l'altra estremità con cui si vuole dialogare: questa é la condizione praticamente NECESSARIA affinché si possa comunicare. Per ulteriori informazioni si veda Wireless-HOWTO.

Nelle connessioni Satellitari, si utilizza un tipo particolare di antenna, la parabola, che possiede un elevatissimo "guadagno" in ricezione, richiesto dal segnale satellitare: infatti il Satellite percorre un'orbita geostazionaria alla distanza di 36.000 km e l'unico tipo di antenna capace di ricevere da una tale distanza é, appunto, la parabola.

3.2 Frequenze

La banda di Frequenza che riceviamo va da circa 11GHz fino a 12.7 GHz (proveniente dal transponder Satellitare, cioé il trasmettitore che ci manda i dati), valori molto elevati, che però il feed (il convertitore di frequenza presente al centro della parabola) trasforma in segnale di 1-2 GHz, rendendolo trasmissibile, così, attraverso il cavo arrivando fino al ricevitore (che normalmente può raggiungere i 40 metri di lunghezza per un cavo a bassa perdita).

3.3 Scheda DVB di ricezione

 
Segnale 1 GHz --> |RX|--> |ADC| --> |Rete a basso livello| --> |TCP/IP Stack del S.O.|--> Dati
                |____________________________________|
                                Scheda DVB

Adesso possiamo immaginare un classico ricevitore ad 1 GHz che filtra il segnale dal cavo (Filtro RX), lo converte in segnale digitale (ADC), passandolo poi ai bassi livelli del protocollo di rete usato (ISO OSI 1,2): qui, il firmware della scheda costruisce un pacchetto a livello 2 (simile a quello ethernet) da mandare al nostro PC con Linux, Windows, o qualunque esso sia, e alla fine, ci rimane solo di trasformarlo in un pacchetto TCP/IP.

3.4 Settaggi DVB a livello Data Link

Qui abbiamo bisogno di configurare la scheda con i giusti settaggi:

  1. Frequenza operativa, dobbiamo impostare la giusta frequenza del transponder (disponibile su qualunque rivista Satellitare): i valori partono da 11.8 GHz e vanno fino a 12.8 GHz, un esempio può essere 12.640.000 KHz
  2. Symbol rate, misurato in simboli al secondo, tipicamente 22 MS/s (Mega Simboli al secondo)
  3. Polarizzazione, un settaggio relativo all'antenna, programmabile via software, valori possibili: H (Orizzontale) o V (Verticale).
  4. PIDs. Il PID viene usato per selezionare una trasmissione tra tutti i segnali possibili relativi ad una data frequenza.
  5. Dobbiamo inoltre configurare il valore di "BitFilter Mask", che ci dice quanto é grande il gruppo di indirizzi MAC di destinazione (simile alla maschera TCP/IP, l'unica differenza é che la BitFilter Mask é di 48 bits mentre quella TCP/IP é grande 32 bits). Tipicamente i dati Internet vengono mandati su PID chiamati "Unicast" (un solo destinatario, quindi BitFilter Mask strettissimo), mentre il video viene spedito su PID di tipo Multicast (quindi BitFilter Mask molto grande).
  6. Calcolo dell'indirizzo MAC: qui specifichiamo quello che sarà il nostro indirizzo MAC (che userà la nostra scheda DVB). Questo dato é necessario poiché alcuni ISPs usano un algoritmo per il calcolo del MAC (si veda l'Appendice A) a partire dall'indirizzo IP, mentre altri ISPs usano il MAC nativo della scheda (come esce dalla casa, che già di per se é unico in tutto il mondo).

3.5 Funzionamento TCP/IP

Come abbiamo accennato nella sezione 2.2, per prima cosa abbiamo bisogno di fare la nostra richiesta usando una interfaccia tipo modem (es. ppp0 o qualunque altra interfaccia usata per raggiungere Internet), dopodiché riceveremo la risposta sulla nostra interfaccia DVB (dvb0).

I Sistemi Operativi moderni permettono di ricevere pacchetti da un interfaccia, nonostante non sia la stessa da cui sono stati precedentemente spediti i pacchetti di richiesta: per fare questo abbiamo bisogno di "disabilitare" eventuali "controlli di flusso" (nati pe proteggere il sistema, ma in questo caso soltanto di ostacolo), tipicamente qualcosa del tipo:

echo "0" > /proc/sys/net/ipv4/conf/dvb0/rp_filter (per Linux).

3.6 Autenticazione

Rimane solo più una cosa per completare la nostra panoramica: il metodo di autenticazione.

Alcuni ISPs usano la cosiddetta "Autenticazione con Proxy": quando si utilizza il loro proxy é necessario fornire i valori corretti di login e password per continuare la richiesta (e' quindi indispensabile essersi iscritti precedentemente al loro servizio!): una volta fatto l'ISP utilizzerà il nostro indirizzo IP per calcolare il MAC address (si veda l'Appendice A) cui mandare i dati.

Altri ISP richiedono l'attivazione di una connessione VPN (con login e password), in seguito alla quale viene ricavato (dalla registrazione) l'indirizzo MAC dell'utente, al quale (e soltanto a lui) mandare i dati.

Tuttavia, e' spesso possibile modificare i settaggi relativi ai filtri satellitari per riuscire a ricevere i pacchetti destinati a TUTTI gli indirizzi MAC (relativi ad una data frequenza).

3.7 Servizi che posso usare con la connessione Satellitare

Tipicamente, i servizi che si possono usare con connessione Internet dipendono (indirettamente) dal metodo di autenticazione utilizzato dall'ISP:

4. Requisiti

Vedremo adesso quello che serve per collaudare un servizio Satellitare.

4.1 Nozioni basilari

A tal fine é necessaria una conoscenza preliminare dell'internetworking in ambiente Linux (si veda il Net-HOWTO) e un minimo di esperienza con le antenne paraboliche e i sistemi Satellitari (puntamento di una parabola, con gli angoli giusti).

4.2 Hardware

Abbiamo bisogno di:

  1. Un'antenna Parabolica, presa anche da un "vecchio" sistema analogico.
  2. Convertitore Digitale da posizionare al centro dell'antenna.
  3. Scheda di ricezione compatibile DVB.
  4. Un PC su cui connettere la scheda.

4.3 Software

Abbiamo bisogno di un:

  1. Driver per la scheda DVB per il S.O che usiamo O.S. (Linux, Windows o altro).
  2. Settaggi corretti per configurarla (frequenza, PID...)
  3. Applicativo "esterno" in alcuni casi (ad esempio gestore VPN-PPTP per ISP tipo Netsystem o Starspeeder).

Per quanto riguarda il software sotto Linux i drivers sono disponibili presso il Linux TV Project.

4.4 Software TV

Vi sono anche applicativi per ricevere i canali televisivi:

Sotto Windows

  1. MultiDec MultiDec 6.6b (free con codice sorgente)
  2. TPREdit TPREdit (per Technotrend)
  3. WinTV DVBs Hauppauge o Technotrend(per schede compatibili Siemens, Hauppauge, Technotrend, Technisat, etc... )
  4. WinDVB2000 WinDVB2000 (circa 40.000 lire).

Sotto Linux

  1. gVideo, applicazione inclusa nei drivers Siemens
  2. Vdr Video Recoder

5. Configurazione di base

5.1 Prima di tutto: il montaggio

La prima cosa che dobbiamo fare é montare il nostro impianto Satellitare; dopodiché dobbiamo puntare la parabola (cercando i giusti gradi in riviste specializzate): i gradi sono sempre intesi da SUD verso EST o verso OVEST, e dal piano orizzontale verso quello verticale. Il classico strumento di puntamento é la bussola.

5.2 Calibrazione

Come faccio a vedere se la parabola é puntata nella giusta direzione?

Dopo aver stabilito un range di angoli, dobbiamo raffinare la misura, cercando il livello di potenza ottimale, Possiamo quindi usare:

  1. Un classico ricevitore analogico (che é comunque compatibile con un convertitore digitale) ed iniziare a cercare l'angolo corretto: una volta trovata l'immagine sul televisore, siamo a posto. Suggerisco di usare un ricevitore analogico invece di uno digitale perché piu' pratico e perché magari, lo si possiede da un'installazione precedente.
  2. Un power meter (circa 40.000 lire) a LED sequenziali: in caso di segnale massimo tutte le spie si accendono.

5.3 Doppio fuoco

E' possibile anche installare sistemi a doppio fuoco (alcune case vendono un kit completo, con staffe già calibrate per posizionare i 2 fuochi per ricevere, per esempio, Astra (19.2 SE) insieme ad Eutelsat (16 SE) o insieme a HotBird (13 SE)).

Per il montaggio occorre inoltre considerare che il satellite é orientato nella direzione "opposta" al convertitore, come in figura:

              SAT1                 SAT2
                 \                 / 
                  \               /
                   \   C1   C2   /  
               \    \    \ /    /     /       
                \    \   / \   /     /
                 \____\ /___\ /_____/
                      
                      Top View  
               
                  C1 riceve da SAT2
                  C2 riceve da SAT1

Inoltre, con 2 fuochi, occorrerà utilizzare un diseq per condividerne l'utilizzo.

5.4 Settaggi a livello Data-link

Una volta che si é riusciti a ricevere il segnale occorre configurare i settaggi di frequenza, PID, symbol rate e così via.

Qui di seguito riporto un esempio di configurazione, per EON (EuropeOnLine), transponder 114 sul Satellite Astra (19.2 SE)

Frequenza: 12640 MHz

Polarizzazione: V (Vertical)

Symbol Rate: 22000 KS/s

PIDs:

Abbiamo ancora bisogno di alcuni dettagli: quale indirizzo MAC assegnare alla nostra scheda DVB?

In questo caso, per EON, si veda l'Appendice A per il calcolo del MAC dall'indirizzo IP dinamico.

Ovviamente dobbiamo anche avere login e password validi.

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:

7. Configurazione sotto Windows

7.1 EON

La scheda Hauppage WinTV utilizza l'applicazione DVB-DATA per modificare i settaggi data-link.

7.2 Netsystem

Prima di tutto bisogna installare le features VPN.

Bisognerà, inoltre, installare il software Netsystem(quello con il banner pubblicitario) e lanciarlo.

7.3 OpenSky

Vedi configurazione su Linux.

8. Appendice A - Note

8.1 Algoritmo di conversione IP Dinamico -> indirizzo MAC

La conversione usata da alcuni ISP per calcolare il MAC (che deve avere la scheda DVB per poter ricevere i dati dal Satellite) é:

00 : 01 : IP[0] : IP[1] : IP[2] : IP[3]

dove

IP[0].IP[1].IP[2].IP[3] é l'indirizzo IP dinamico.

Questo algoritmo é usato, per esempio, da EON.

8.2 Finestra TCP (TCP Window)

Le connessioni Satellitari sono un interessante esempio di link con elevato RTT (round trip time, tempo di accesso): un altro esempio é la comunicazione Marte - Terra o anche quella Luna - Terra.

Queste connessioni hanno una caratteristica molto brutta: bassa interattività.

Le tipiche connessioni di reti (o digitali, in genere) utilizzano la cosiddetta "finestra di trasmissione", che rappresenta la quantità massima di dati che può essere mandata senza dover aspettare per la conferma. Nello stack TCP/IP questa si chiama "Finestra TCP" o "TCP Window".

                  ----------------------
  | - - - - - - - > posso continuare |-|-|-|---->
  |               ----------------------
  |             Dati che posso mandare senza conferma
  |
  | - - - - - - - <----------------------
                          Conferma

Ora, se la nostra comunicazione avesse un elevato tempo di accesso e se avessimo una finestra relativamente piccola (TCP Window), finiremmo per perdere moltissimo tempo ad "aspettare" le conferme (ACKs), quindi la velocità reale crollerebbe (ad esempio, ipotizzando una finestra di 16KB (TCP window), tipica di un client Windows e un RTT di 400 ms, allora la nostra velocità non potrebbe superare 16KB/s / 0.4 s = 40 KB/s).

La soluzione consiste, quindi, nell'aumentare la TCP Window (con valori prossimi a 256 KB o qualche MB).

Sfortunatamente, sotto molti sistemi, é piuttosto difficile aumentare la finestra di trasmissione e, negli ultimi anni, sono comparsi degli applicativi chiamati "download accelerators", (descritti nella sezione che segue) che dividono un file in più pezzi, avviando poi tutti gli scaricamenti nello stesso istante, in una logica multithreading: questo, in sostanza, é equivalente ad utilizzare una TCP Window uguale alla somma delle TCP Window relative ad ogni "pezzo" evitando, così, il problema dell'RTT.

8.3 Download accelerator

Riportiamo qui, brevemente, dei links ai cosiddetti "download accelerator" che sostanzialmente operano in 2 modi:

  1. gestiscono il "recupero della sessione" permettendo di interrompere, in qualunque momento, uno scaricamento, per poi riprenderlo più tardi dallo stesso punto (questo viene fatto grazie alla relativamente recente opzione introdotta nei servers Http e Ftp , che permette di specificare il numero di bytes da cui far ripartire il download).
  2. suddivisione, che divide un file in molti pezzi e lancia le singole sessioni di scaricamento in "parallelo".

Come abbiamo visto nella precedente sessione, un download accelerator può aumentare significativamente la banda Satellitare.

Segue un elenco dei principali links di "Download Accelerator".

Sotto Linux

Sotto Windows

9. Appendice B - Settaggi di Sat-ISP noti

9.1 EuropeOnLine

EON manda dati dal Satellite Astra (19.2 SE).

L'indirizzo MAC viene calcolato dall'indirizzo IP (si veda l'Appendice A).

Utilizza l'"Autenticazione con Proxy".

Seguono i settaggi dei 4 transponders:

Transponder 113

Transponder 114

Transponder 115

Transponder 103

9.2 Netsystem

Netsystem utilizza, anch'esso, il Satellite Astra (19.2 SE) per mandare i suoi dati.

L'indirizzo MAC usato é lo stesso del MAC nativo della scheda DVB (e presente nella registrazione Netsystem).

Utilizza connessione VPN.

Seguono i settaggi:

Transponder 119

9.3 Sat Node

Sat Node usa il satellite Astra (19.2 SE).

9.4 Open Sky

Opensky utilizza il satellite Eutelsat (7 SE).

10. Links

10.1 Free

http://www.linuxtv.org

http://www.bertolinux.com http://www.hack-it.net/How-To/Sat-HOWTO.html

10.2 Commerciale

EuropeOnLine - EON

Netsystem

Starspeeder

Sat Node

Eliosat

Falcon Stream

SkyDSL

OpenSky

DirecPC

http://www.xanticbroadband.com/

http://www.fatamorgana.com