Gen 212011
 

Ho sempre avuto l’hobby del “fai da te informatico”.

Cercando ispirazione per costruire un piccolo storage di rete, mi sono imbattuto in questo
interessante articolo


storage

Nell’articolo viene spiegato in dettaglio come Backblaze (internet backup) abbia risolto il problema dello storage con una soluzione autocostruita utilizzando hardware comune e realizzando un notevole risparmio.
Per chi volesse cimentarsi nella costruzione di un “ferro” simile  mi permetto di consigliare come piattaforma software l’ottimo Openfiler.

Gen 172011
 

L’Autorità per le Garanzie nelle Comunicazioni (AGCOM) ha messo a disposizione un sito che contiene gli strumenti necessari per testare la qualità della propria connessione, nonchè una serie di informazioni che possono supportare l’utente nell’arduo compito di far valere i suoi diritti con l’operatore che fornisce il servizio.

Le misure effettuate sono “certificate” e costituiscono prova sufficiente per  inoltrare reclamo e, nel caso non venga ripristinata la giusta qualità del servizio, per recedere immediatamente senza penale dal contratto.

Mah!

Dic 212010
 

..in anticipo di un anno sui maya, internet come la conosciamo  potrebbe collassare a causa dell’annunciata fine degli indirizzi IP disponibili.

Come si può vedere in vari countdown (p. es http://ipv6.he.net/statistics/) mancherebbero meno di due mesi al nefasto evento.

Sarà vero?

In realtà lavoro con internet da 15 anni e già ai tempi annunciavano la fine dello spazio di indirizzamento entro i successivi 5 anni.

Lo stesso contatore di HE circa 2 anni fa ne annunciava l’esaurimento entro 300 giorni….

Questo fa pensare che il tempo mancante  sia una specie di funzione asintotica!

Scherzi a parte, gli indirizzi stanno effettivamente finendo anche se probabilmente ci vorranno più di 2 mesi.

Cosa cambia?

Inizialmente nulla.

Tutti i provider ne hanno una scorta più che abbondante, ma diventerà più difficile per nuovi operatori farsi assegnare delle sottoreti nuove.

E col mondo IPV6?

Il nuovo standard dovrebbe garantire uno spazio di indirizzamento talmente vasto da poter fornire un indirizzo IP ad ogni atomo presente nell’universo  e quindi risolvere definitivamente il problema.

Peccato che ancora quasi nessuno lo usi.

Non più tardi di un anno fa ho litigato nientepopodimeno che con la nostra registration authority perchè il check automatico del nameserver necessario alla registrazione di un dominio nel TLD .IT falliva a causa del fatto che uno dei miei DNS era configurato anche per gestire domini V6.

I provider che offrono connettivita IPV6 nativa sono ancora pochissimi.

Molti dei prodotti software più diffusi non supportano appieno gli indirizzi “lunghi” (si anche Thunderbird ha problemi, anche se con i nomi funziona…).

Quelli che come me vogliono iniziare a sperimentare la “nuova” tecnologia sono obbligati ad usare un tunnelbroker o altre diavolerie simili.

Insomma, sembra che il nuovo standard si stia avviando molto lentamente.

Forse gli annunci mediatici che seguiranno l’esaurimento del mondo V4 daranno la scossa necessaria per avviare (con calma…non c’è una reale fretta!) la transizione?

Io ho fatto un bel po’ di sperimentazione ed effettivamente il V6 funziona ed offre notevoli vantaggi.

Per chi non lo avesse già fatto e volesse approfondire e mettere alla prova le sue conoscenze tecniche sull’argomento, consiglio la certificazione IPV6 online di Hurricane Electric ( http://ipv6.he.net/certification/).

Copre vari step dal più semplice (strumenti come ping6) al più complicato (configurazione DNS glue per domini V6) in maniera ordinata e completa.

Se riuscitrete ad ottenere la certificazione di livello “sage” sarete sicuramente in grado di configurare i vostri spazi di nomi e le vostre reti  per gestire anche IPV6.

Per il momento non serve quasi a nulla, ma prima o poi…..

Set 112009
 

Sulle riviste del settore l’argomento IPV6 è sempre più popolare.

Anche se sono state disatettese le più catastrofiche stime che, a partire dalla fine degli anni ’80, davano come prossimo l’esaurimento degli indirizzi IP liberi con il sistema attuale (V4),  è anche vero che con il ritmo attuale delle assegnazioni i netblock liberi si esauriranno entro 3 anni.

Pertanto è verosimile prevedere che l’interesse della comunità informatica per il nuovo spazio V6 crescerà molto nei prossimi mesi.

Poco tempo fa, spinto più da curiosità personale, che da reale necessità lavorativa, ho incominciato a sperimentare questo mondo nuovo.

Ho scoperto due cose interessanti:

1) il nuovo spazio di indirizzi è già attivo e frequentato

2) Non è così difficile accedervi.

Per chi si avvicina per la prima volta a questo mondo, essendo ancora molto difficile ottenere una connessione nativa IPV6 nel nostro paese, l’accesso alla rete  è possibile in diversi modi.

Il più semplice è quello di utilizzare un “tunnel broker” che, sfruttando come veicolo di trasporto il normale protocollo V4, consente di collegare il vostro computer (o la vostra rete) ad un provider IPV6 attraverso un tunnel.

Il vostro computer manterrà anche la normale connettività V4 lavorando in una modalità definita “dual stack”.

I pacchetti V6 usciranno dal tunnel, mentre gli altri continueranno a fluire attraverso il vostro gateway predefinito. Nel caso l’host da raggiungere abbia contemporaneamente un indirizzo V4 e V6 lo stack V6 prende il sopravvento.

Ci si aspetta che, quando la connettività V6 prenderà piede, i computer connessi ad internet manterranno la modalità dual stack per essere in grado di raggiungere i “vecchi” indirizzi.

I tempi per un totale abbandono del V4 su internet non sono al momento prevedibili. Alcune stime parlano di 15/20 anni…quindi non sarà una transizione improvvisa ed avremo tutto il tempo di prepararci.

I sistemi utilizzati dai tunnel broker sono diversi. Io consiglio di sperimentare uno dei seguenti:

  • Protocollo TSP autenticato, utile soprattutto se si dispone di un IP dinamico o connessione dial-up
  • tunnel 6 in 4, soprattutto se si dispone di un IP statico pubblico, ma anche con indirizzo dinamico può funzionare con qualche accorgimento.

Con entrambi i sistemi, anche se possedete solo una connessione con IP dinamico, è possibile ottenere l’assegnazione di una subnet /64 statica, corrispondente a qualche milione di indirrizzi IP.

Connessione con protocollo TSP

E’ necessario installare un software TSP e collegarsi ad un provider compatibile.
Di solito funziona anche dietro firewall e NAT.

Un buon provider gratuto è freenet6. Potete registrarvi ed ottenere il vostro account.

Sempre dal sito dovete scaricare il client.

Ho effettuato la prova su una distro LINUX CentOS 5.3 compilando il codice sorgente. Su altre versioni di LINUX dovrebbe funzionare con poche variazioni.

Una volta effettuato il download, decomprimete il file ed entrate nella cartella creata.

A questo punto, se il vostro computer dispone dei normali strumenti di sviluppo:

make target=linux

make target=linux installdir=/usr/local/gw6c

Otterrete così l’eseguibile.

cd /usr/local/gw6c/bin

vi trovate nella cartella dell’eseguibile.

E’ presente anche un’esempio del file di configurazione.

cp gw6c.conf.sample gw6c.conf

Avete così un file di configurazione valido, che dovete però editare.

Lasciatelo inalterato tranne i seguenti valori:

userid=

passwd=

server=amsterdam.freenet6.net

auth_method=passdss-3des-1

prefixlen=64

log_filename=/var/log/gw6c.log

Questa è una configurazione semplice che consente una connessione autenticata che provoca l’assegnazione di un solo indirizzo V6 statico dal vostro lato del tunnel. Sono possibili configurazioni più complesse che prevedono l’assegnazione di una subnet totalmente gestibile dal vostro lato, utilizzando come router il PC che attiva la connessione.

E’ possibile persino la delega del DNS reverse.

Tali configurazioni complesse esulano da questo articolo.

Ok ci siamo!

./gw6c

Dovrebbe uscire una serie di messaggi che vi conferma l’attivazione del tunnel

digitando (da root)

ifconfig

dovreste visualizzare insieme alle altre un interfaccia di tipo tun con parametri simili a questi:

tun       Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00

-00

          inet6 addr: 2001:5c0:1400:b::3811/128 Scope:Global

          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1280  Metric:1

          RX packets:9 errors:0 dropped:0 overruns:0 frame:0

          TX packets:3 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:500

          RX bytes:688 (688.0 b)  TX bytes:272 (272.0 b)

l’inet6 address è il vostro indirizzo IPV6 (in questo caso 2001:5c0:1400:b::3811)

Per testare la connessione provate a pingare qualche indirizzo IPV6

[fvettore@fvettore ~]$ ping6 -c3n ipv6.google.com

PING ipv6.google.com(fx-in-x68.google.com) 56 data bytes

64 bytes from fx-in-x68.google.com: icmp_seq=0 ttl=57 time=280 ms

64 bytes from fx-in-x68.google.com: icmp_seq=1 ttl=57 time=322 ms

64 bytes from fx-in-x68.google.com: icmp_seq=2 ttl=57 time=239 ms

— ipv6.google.com ping statistics —

3 packets transmitted, 3 received, 0% packet loss, time 1998ms

rtt min/avg/max/mdev = 239.472/280.930/322.749/33.998 ms, pipe 2

Se il ping va a buon fine va a buon fine significa che la connessione funziona.

Potete collegarvi col browser a www.kame.net e, se la tartarughina si muove, siete connessi tramite V6.

Bene ora disconnettetevi immediatamente!

Un brutale

killall gw6c

dovrebbe sortire lo scopo.

State infatti navigando utilizzando un IPV6 pubblico raggiungibile direttamente dall’esterno. Pertanto è consigliabile configurare un firewall.

Gli hacker hanno da tempo scoperto il V6….

Sotto LINUX Centos c’è il pacchetto ip6tables che funziona in maniera molto simile a iptables.

Il file di configurazione è /etc/sysconfig/ip6tables

Sulla CentOS, nell’installazione di default, trovate già qualcosa di simile:

:INPUT ACCEPT [0:0]

:FORWARD ACCEPT [0:0]

:OUTPUT ACCEPT [0:0]

:RH-Firewall-1-INPUT – [0:0]

-A INPUT -j RH-Firewall-1-INPUT

-A FORWARD -j RH-Firewall-1-INPUT

-A RH-Firewall-1-INPUT -i lo -j ACCEPT

-A RH-Firewall-1-INPUT -i eth0 -j ACCEPT

-A RH-Firewall-1-INPUT -p icmpv6 -j ACCEPT

-A RH-Firewall-1-INPUT -p 50 -j ACCEPT

-A RH-Firewall-1-INPUT -p 51 -j ACCEPT

-A RH-Firewall-1-INPUT -p udp –dport 5353 -d ff02::fb -j ACCEPT

-A RH-Firewall-1-INPUT -p udp -m udp –dport 631 -j ACCEPT

-A RH-Firewall-1-INPUT -p tcp -m tcp –dport 631 -j ACCEPT

-A RH-Firewall-1-INPUT -p udp -m udp –dport 32768:61000 -j ACCEPT

-A RH-Firewall-1-INPUT -p tcp -m tcp –dport 32768:61000 -j ACCEPT

#-A RH-Firewall-1-INPUT -m tcp -p tcp –dport 22 -j ACCEPT

-A RH-Firewall-1-INPUT -j REJECT –reject-with icmp6-port-unreachable

COMMIT

Decommentate la penultima riga se desiderate che la vostra macchina sia accessibile tramite SSH.

service ip6tables start

Il firewall dovrebbe partire.

Per rendere permanente la protezione del firewall al prossimo avvio:

chkconfig ip6tables on

Ora se volete potete far ripartire il vostro client TSP e navigare con IPV6!

Con un ulteriore piccolo sforzo potete creare uno script di avvio da mettere in /etc/init.d ed utilizzare gw6c come un normale servizio.

Connessione con tunnel 6in4

Avviene senza l’installazione di un software specifico.
Essendo un tipo di connessione non autenticato, è necessario comunicare al provider l’indirizzo IPV4 da cui si attiva il tunnel.

Di solito si può fare attraverso un normale form http, rendendo possibile la modifica del vostro “enpoint V4” con un semplice script, anche se avete un IP dinamico.

Un ottimo provider che fornisce il servizio gratuitamente è Hurricane Electric.

Potete registrarvi su www.tunnelbroker.net ed attivare fino a 4 tunnel.

Potete anche scegliere il vostro PoP (point of presence) cioè il punto di accesso più vicino alla vostra connessione in modo da limitare la latenza. Io ho ottenuto prestazioni migliori utilizzando quello tedesco.

Dal vostro pannello di controllo potete attivare il tunnel, avendo l’accortezza, se siete dietro NAT, di specificare come vostro endpoint V4, l’indirizzo pubblico del vostro router.

Dovrebbe funzionare con qualsiasi firewall che lascia passare il protocollo 41.

Nella parte inferiore della schermata trovate le istruzioni per configurare il tunnel sul vostro computer, disponibili per varie versioni di sistema operativo.

Prima di attivarlo vale la pena configurare il firewall come spiegato in precedenza….

Sul sito trovate parecchie risorse utili nel caso vogliate approfondire la vostra conoscenza sull’argomento.

Vi consiglio di iscrivervi per la certificazione.

Non è difficile all’inizio, ma vi invoglierà a sperimentare configurazioni sempre più complesse.

Altri metodi, provider…e SIXXs

Ci sono diversi altri servizi disponibili su internet. Alcuni sono basati su tecnologie differenti.
Vale una segnalazione SIXXs che è uno dei più quotati.

Lo staff è formato da persone molto competenti.

Purtroppo ho avuto l’impressione che alla loro genialità corrisponda un’uguale dose di arroganza.

A seguito della registrazione, otterrete un certo numero di “crediti”, che dovrete usare con la massima parsimonia per compiere le operazioni più semplici, come aprire un tunnel. Non è ammesso alcun errore, altrimenti verrete penalizzati.

Dopo aver cambiato un paio di endpoint perchè non riuscivo ad alzare il tunnel a causa (ho scoperto dopo…) di una poco aggiornata versione del sistema operativo, mi sono trovato con il credito sotto zero.

Quasto mi impedirà di richiedere l’assegnazione di una subnet ancora per qualche settimana, cioè fino a quando il credito sarà ritornato sufficiente. Ho provato a richiedere un credito ulteriore, come spiegato nelle FAQ, ma non ho ottenuto neppure una risposta.

Per concludere, pur apprezzando un servizio così professionale, non vedo motivo di utilizzarlo quando altri provider offrono prestazioni analoghe senza tante limitazioni e/o imposizioni.

Quale usare?

Per la sola navigazione la soluzione TSP ha numerosi vantaggi. Potete attivarla in maniera semplice anche da un computer portatile.

Se volete provare a configurare una rete più complessa e permanente, la soluzione 6in4 dà maggiori garanzie di stabilità e configurabilità.

Ho provato a configurare la mia rete domestica utilizzando la subnet statica assegnata. Con poco sforzo, attraverso la delega del DNS reverse, ho definito gli  hostname di tutti i PC della rete.

Ora sono raggiungibili dall’esterno (attraverso un firewall opportunamente settato) con indirizzi statici.

Per i PC non è solitamente necessario configurare nulla, basta attivare l’interfaccia V6 e, attraverso l'”autoconf” troveranno il loro IP statico che non cambierà ai riavvii successivi. 

La feature del DNS reverse è offerta da molti, ma non sono riuscito a farla funzionare con freenet6, anche se è prevista dal TSP. Probabilmente la colpa è mia, riproverò con più calma.

Con HE, invece, è possibile una delega RDNS per oguno dei tunnel attivati e funziona molto bene.

Con SIXXs, in teoria, è possibile, ma non ho avuto modo di testarla viste le difficoltà di cui sopra.

Dove iniziare?

su wikipedia i concetti di base http://it.wikipedia.org/wiki/IPv6

IPV6 Mini Howto http://www.mrball.net/tutorials/ipv6-go6.html

Huurricane Electric tunnelbroker http://tunnelbroker.net/

Freenet6 http://freenet6.net

SIXXs http://sixxs.net

IPV6 Knoledge Center su freenet6 http://wiki.go6.net/index.php?title=Main_Page

Dic 112008
 

Ecco una semplice implementazione di un fileserver da inserire in un dominio AD attivo. 

Effettivamente l’amministrazione di SAMBA è un argomento estremamente complesso.
La complessità cresce se invece di un semplice server per workgroup si ha la necessità di inserire il server in un dominio AD.
Purtoppo la documentazione disponibile in rete è molto frammentata.
Analizzando un buon numero di esempi e sperimentando varie soluzioni ho creato questa configurazione. Nei commenti iniziali sono inserite un certo numero di istruzioni aggiuntive utili per l’amministrazione.
La distro di riferimento è CENTOS, ma dovrebbe funzionare anche su altre.

#   FILESERVER SAMBA membro del dominio XXXXX.LOC
#
#
# Distro CENTOS 5.2 pacchetti di default  e samba*
# Gli share sono in base agli utenti del dominio (non locali)
#
# Azioni preliminari:
#
#
# Aggiungere la macchina al dominio:
# net join -U Administrator
# (l’utente deve essere amministratore di dominio)
#
# verificare /etc/nsswitch.conf:
#       passwd:     files winbind
#       shadow:     files winbind
#       group:      files winbind
#
# verificare i gruppi e gli utenti:
# wbinfo -u
# wbinfo -g
#
# l’utente ed il gruppo dovrebbero essere separati dal dominio dal segno +
# grazie ai settaggi sottostanti (meglio evitare lo standard “backslash” che
# viene interpretato come escape)
#
# server01 è il controller di dominio (W2003 server)
#

[global]
workgroup = XXXXX
realm = XXXXX
server string = Fabrizio Vettore (linux)
security = ADS
password server = server01
passdb backend = tdbsam
acl compatibility = winnt
server signing = auto
printcap name = /etc/printcap
preferred master = No
domain master = No
ldap ssl = no
idmap uid = 16777216-33554431
idmap gid = 16777216-33554431
template shell = /bin/bash
winbind separator = +
winbind enum users = Yes
winbind enum groups = Yes
winbind offline logon = Yes
cups options = raw

[share per dominio XXXXX]
comment = accesso consentito agli utenti di dominio
path = /var/share
;       valid users = XXXXX+fvettore
;       write list = XXXXX+fvettore
valid users = “@XXXXX+domain users”
;       write list = “@XXXXX+domain users”
read only = No
browseable = Yes
case sensitive = No

[share per ufficio INF]
comment = accesso riservato a sistemi informativi
path = /var/share1
;       valid users = XXXXX+fvettore
;       write list = XXXXX+fvettore
valid users = “@XXXXX+uff inf”
;       write list = “@XXXXX+uff inf”
read only = No
browseable = Yes
case sensitive = No

Ott 012008
 

Come implementare un sistema di sintesi vocale per dare una voce al vostro sito. 

In un progetto che ho affrontato di recente, mi si richiedeva di creare un personaggio animato parlante in lingua italiana.
Questo portava ovviamente a dover risolvere una serie di problematiche:

  1. trovare un sistema di sintesi vocale in Italiano.
  2. trovare un metodo per “servire” i file audio sintetizzati, possibilmente utilizzando una quantità di banda molto limitata.
  3. Integrare i sottosistemi.

1) La sintesi vocale

Partendo da una piattaforma LINUX la scelta di sistemi TTS (true time speech) è abbastanza ampia.
Purtroppo tale scelta si riduce notevolmente ricercando TTS che supportino in maniera decente la lingua italiana.
Dopo alcune ricerche sono approdato su un progetto italiano del CNR il cui scopo era fornire voci italiane al popolare “festival”.
Il sito è il seguente : http://www2.pd.istc.cnr.it/TTS/It-FESTIVAL.htm
Purtroppo tale progetto non sembra più mantenuto, ma dopo numerose vicissitudini (la piattaforma di riferimento originale era windows) sono riuscito ad installare quanto proposto e dare una voce italiana a festival.
La qualità non e la stessa dei prodotti commerciali (cfr loquendo), ma è più che sufficiente a rendere intelligibile il testo sintetizzato.
Purtroppo il modulo MBROLA non è free, ma può essere utilizzato per usi non commerciali.

2) La parte WEB

Come si possono servire i file audio in una pagina HTML in maniera più “cross browser” possibile ed utilizzando poca banda?
Dopo vari deludenti tentativi atti a conglobare l’oggetto audio nel codice html, mi sono imbattuto nel progetto open source SoundManager.
Tale progetto fornisce un’iterfaccia Javascript che consente di eseguire file audio attraverso un piccolo file Flash.
La libreria fornita è molto completa e permette di utilizzare metodi asincroni. In tal modo è persino possibile creare eventi legati temporalmente all’esecuzione del file audio.
Questo mi è stato utile per creare l’animazione del viso del personaggio sincronizzata con le parole pronunciate.
SoundManager è compatibile con il formato mp3 e questo permette il raggiungimento dell’ultimo requisito richiesto cioè la riduzione della banda utilizzata.

3) L’integrazione

Sorge ora il problema di come integrare i due sottosistemi.
Per cominciare Festival fornisce un singolo file audio in formato .wav per ogni singola frase pronunciata.
Assumendo che le frasi da dire vengano inserite in un form web e passate con metodo POST, con un semplice script è possibile raccogliere il testo e passarlo a Festival per la sintesi.
Il risultato è una serie di file .wav numerati con numerazione crescente.
Pensando ad un ambiente “trafficato” con più utenti collegati al servizio ho deciso di creare dinamicamente delle cartelle nel cui nome era presente l’identificativo della sessione per evitare che un personaggio andasse a pronunciare le frasi postate da un altro utente.
A questo punto è necessario convertire tutti i file in mp3.
In LINUX questo risultato può essere ottenuto con varie utiliti tra cui LAME.
Dopo la conversione non resta che passare il tutto alla pagina HTML ed al SoundManager.

Riassumendo i passaggi sono i seguenti:
________     ________     ________     _________________
|Form Web|–>|Festival|–>|Lame mp3|–>|SoundManager Web |
———-   ———-   ———    ——————

Per vedere (ed ascoltare) il sistema funzionante potete provare l’esempio nell’apposita sezione.

Nella realtà il progetto comprendeva anche l’interfacciametno con un sistema di intelligenza artificiale per far si che il personaggio virtuale desse risposte “intelligenti”, ma questa è un’altra storia e… con ogni probabilità un altro articolo!