Piero V.

Prosody, strophe.js e websocket

XMPP (Extensible Messaging and Presence Protocol), è uno standard nato nel 1999 per l’instant messaging col nome di Jabber. È stato usato ed è tuttora usato da moltissime compagnie: Google Talk non era che un servizio jabber, Facebook lo usava come API per la sua chat, Whatsapp usa un server jabber (ejabberd) notevolmente modificato.

Oggi questo protocollo può essere utilissimo alle app per smartphone e tablet: è stato disegnato apposta per l’uso in tempo reale e per essere esteso e i server XMPP sono testati moltissimo, quindi sono ottimi per il concetto di “Don’t reinvent the wheel”.

Inoltre, dopo l’introduzione delle websocket, è stato anche creato uno standard per usarle come canale per XMPP.

Lato server ho testato il server Prosody. L’idea con cui è sviluppato è la semplicità e la leggerezza: è altamente modulare, quindi si possono abilitare solo le funzionalità necessarie, ed è scritto in Lua, un linguaggio molto leggero e performante. … [Leggi il resto]

OpenWRT su DGN2200v1

Il mio firmware preferito per i router è OpenWRT: è estremamente versatile, in quanto trasforma un router in una Linux box, e molto molto stabile. Basti pensare che il mio router principale, il TP-Link TD-W8970, ha fatto più di 100 giorni di uptime senza mai dare problemi.

Questa volta il router su cui ho cercato di installarlo è il Netgear DGN2200 prima versione. Può essere riconosciuto dall’assenza di versioni nel nome del modello dell’eticheta posta sul fondo.

Questo device è basato su piattaforma Broadcom brcm63xx, quindi su OpenWRT l’ADSL non sarà più disponibile poiché richiede dei blob proprietari compatibili solo con un kernel di 10 anni fa. Se vi serve ma volete comunque potenziare il vostro dispositivo, dovrete per forza ricorrere a ModFS, un firmware basato su quello stock che rende possibile l’aggiuntà di funzionalità tramite una memoria USB.

Un’altra cosa che può far desistere dal cambio è che per flashare OpenWRT è necessario utilizzare l’interfaccia seriale. Il formato dell’interfaccia originale è proprietario e aggiunge al filesystem squash e al kernel compresso con LZMA un header proprietario. Ci sarebbero anche i tool per creare quell’immagine, basterebbe scaricare il pacchetto GPL dal sito ufficiale Netgear. Ci ho anche provato, portando al brick il router a causa di un’incompatibilità tra la versione di JFFS2 dei tool e del kernel di OpenWRT. … [Leggi il resto]

Script shell per ottenere l'IP

Spesso ho bisogno di conoscere il mio indirizzo IP, quindi ho deciso di creare uno script shell (molto semplice) che rilascio sotto il pubblico dominio. Ha bisogno del comando wget, ma penso che possa essere adattato facilmente anche a curl o simili. Lo script vi dà sia l’IPv4 che l’IPv6, se disponibile.

#!/bin/bash
IP4=$(wget -q -O- -4 http://wtfismyip.com/text)
IP6=$(wget -q -O- -6 http://wtfismyip.com/text)
if [ $? -eq 0 ]; then
	echo "IPv4: $IP4"
	echo "IPv6: $IP6"
else
	echo "IP: $IP4"
fi

D-Link DHP-308AV (poweline)

Spesso si parla di internet delle cose, ma la maggior parte delle case non è stata ideata per avere reti ethernet.

Certo, i dispositivi che supportano il wireless sono moltissimi, ma a volte il cavo risulta più comodo: è più economico da implementare, più diffuso, ha certe funzionalità ancora non disponibili con la wireless, come Wake On Lan.

Un’idea è quella di un bridge wireless, ne avevo già parlato, tuttavia la mia soluzione, per farlo sembrare uguale a un collegamento tramite cavo, era molto dirty (questa volta neanche quick). Avevo già previsto non sarebbe durata per sempre, e così è stato: c’erano lungi tempi e quando il client era disattivo il server mandava molti pacchetti ARP, cosa fastidiosa al pensiero.

La soluzione più vantaggiosa ed economica sarebbe un buon vecchio cavo, ma era difficile nel mio caso: avrei dovuto attraversare una parete di 25cm, perché per la rete non si possono usare i corrugati della corrente.

Visto che in questi anni sono scese molto di prezzo, ho deciso di valutare la soluzione delle powerline, così ho comprato il kit D-Link DHP-309AV, che contiene due adattatori DHP-308AV. Mi è venuto il doppio del cavo (27€ su Amazon), ma almeno ho verificato questa tecnologia. … [Leggi il resto]

Bridge, OpenVPN e DHCP

OpenVPN è un’ottima soluzione per creare una VPN, ovvero una Virtual Private Network.

Volevo utilizzare questo software per permettermi di accedere alla rete di casa quando sono via, quindi ho scelto l’approccio bridge, quindi con interfaccia tap.

Di suo OpenVPN non è così Plug&Play, bisogna lavorare un po’ sui file di configurazione e con un’utility chiamata easy-rsa per creare un po’ di chiavi e certificati per crittografare il traffico, cosa di cui non tratterò, perché ci sono siti molto più dettagliati.

Con IPv4 è molto comodo usare DHCP per la configurazione automatica dell’interfaccia di rete, anche quella virtuale. OpenVPN lo sa, infatti implementa un server DHCP.

Per la modalità routed è abbastanza sensato usarlo, ma va utilizzato per forza anche per la modalità bridged, indicando un range di IP che può utilizzare.

Io tuttavia pensavo che sarebbe bello poter usare il server DHCP del resto della LAN.

Ero sicuro fosse possibile, perché mi era già capitato di farlo, tuttavia l’avevo fatto con Windows ed era andato tutto tranquillamente.

Anche su Linux (client) riuscivo a farlo andare, ma solo manualmente con la CLI di OpenVPN e dhclient tap0, mentre avevo alcuni problemi con NetworkManager. Precisamente: … [Leggi il resto]