[gl-como] engarde
Valerio Talora
valerio.talora@gmx.com
Sab 27 Lug 2019 16:03:49 CEST
Davvero interessante... attualmente sto usando openvpn su un raspberry
pi b+ per mantenere una vpn con un server virtuale con ip pubblico (il
rasperry è collegato ad internet attraverso un router 4G via Iliad,
dunque non si può raggiungere direttamente dall'esterno).
Riesco a vedere decentemente le 4 videocamere di videosorveglianza
collegate al raspberry da remoto su android con root (tra l'altro
attraverso port forwarding SSH sulla VPN, matrioska style...), ma
effettivamente il demone OpenVPN a volte termina ed ho dovuto creare un
loop con controlli di connessione...
Fastd e WireGuard non li conoscevo: chissà se riesco a farli girare sul
frutto di bosco (che gira con kernel serie 3) e con quali possibili
miglioramenti!
Ho i compiti per le vacanze!
Saluti.
On 7/22/19 12:41 AM, Alessandro Rinaldi wrote:
> Ciao Diego, grazie mille anche a te per l'interessamento!
>
> Personalmente in passato ho usato fastd, che fa le stesse cose, e il
> routing fra nodi non direttamente connessi e' automatico:
>
> Bella storia! Non lo conoscevo, lo proverò sicuramente. L'unico "limite"
> (che però in determinati casi d'uso può non esserlo) è che è una
> soluzione Linux-only, mentre WIreGuard è cross-platform (è comodo
> collegarsi pure dal cellulare).
>
>
> Vero, ma solo se ti servono velocita' molto elevate. Tu hai fatto
> dei benchmark per confrontare le velocita' con altre soluzioni?
> Soprattutto perche' di solito e' l'algoritmo di crittografia che
> limita la velocita'.
>
> Come termine di paragone ho solamente OpenVPN e PPTP (tramite pptpd).
> Non ho fatto benchmark, ma ci sono dei miglioramenti prestazionali
> tangibili, soprattutto per quanto riguarda la latenza.
>
>
> In compenso averlo in userspace puo' avere vantaggi, puoi modificare
> il tuo router casalingo e aggiungere un semplice client, senza dover
> installare un kernel nuovo, che comunque potrebbe non funzionare.
>
> Vero, ma in verità ci sono anche implementazioni userspace di WireGuard
> (vedi l'app per Android, non tocca il kernel e la usi anche senza root).
>
> Anche qui mi sembra fastd :) (Ognuno hai suo protocolli preferiti :) )
>
> Leggendo la doc mi sembrano molto simili, sì: mi riprometto di provarlo
> asap.
>
>
> Ma a parte ssh, che comunque fare tunneling non e' il suo mestiere
> principale, quali altri tunnel usano tcp? Che io sappia e' da almeno
> 20 anni che si usano per lo piu' ipsec, ipip o udp per le vpn, e
> quindi non vedo niente di nuovo.
>
> Beh, un esempio che nel mio caso d'uso è molto classico riguarda
> ShoutCast e IceCast: i source creano una connessione TCP e, se quella va
> giù, la riconnessione causa inevitabilmente un "buco" nel flusso
> d'audio, dato che lato ascoltatore lo stream finisce e il client deve
> riconnettersi. Anche VNC, ad esempio, va tramite TCP. Ma anche un
> classico download di un file da browser.
>
> Inoltre le connessioni tcp non si invalidano neanche se il
> protocollo sotto e' stateful. Di solito si invalidano, o se sparisce
> l'interfaccia di rete o se scadono i timeout di ritrasmissione, che
> si solito sono di un paio di minuti.
>
> A me con OpenVPN (e ancor più con pptpd) capitava che in caso di
> interruzione della connessione ero costretto a riavviare il servizio per
> farlo riprendere. Mi ero ridotto a mettere dei check automatici che
> pingassero l'endpoint e riavviassero la connessione. In questi casi, le
> connessioni sottostanti solitamente si perdevano.
>
>
> A layer 2 saresti limitato alla rete locale. Altrimenti dovresti
> reinventare l'internet protocol, che c'e' gia' :)
>
> A me è capitato spesso di fare VPN layer 2 con OpenVPN, in modo da poter
> fare il bridge della scheda virtuale (tun0, tipicamente) con quella
> fisica. Questo mi permetteva di avere due sedi remote collegate di fatto
> alla stessa rete, con i client che prendevano gli indirizzi dal DHCP
> remoto come se ci fosse un cavo Ethernet passante. Era questo che
> intendevo, poi non son sicuro di essermi espresso al meglio :)
>
>
> In questo caso basterebbe avere la possibilita' di definire dei
> multicast.
>
> Devi comunque gestire il caso in cui ti arrivano due pacchetti uguali
> però ,o sbaglio io?
>
>
> Assomiglia a quello che fanno gli switch ethernet (almeno quelli
> stupidi). Ma voi avete un protocollo tipo spanning tree, per evitare
> loop? Come l'hai spiegato fa un po' paura.
>
> Niente di tutto ciò, perché WireGuard se riceve due pacchetti uguali il
> secondo lo scarta senza nemmeno dare indietro una risposta di errore. Il
> rischio di loop non c'è.
> Se invece lo usi con altri software, probabilmente potrebbe essere
> utile, così come potrebbe essere utile gestire internamente la deduplica
> ecc (vedi sopra :D).
> Ma proprio per il principio di non reinventarsi la ruota, ho preferito
> lasciare questo sporco lavoro a WireGuard che già lo fa gran bene.
>
>
> Beh gli sprechi sono accettabili se hai molte piu' risorse di quelle
> che ti servono. E quindi magari spendi risorse per te economiche,
> per avere piu' affidabilita'.
>
> Concordo, soprattutto perché oramai come dicevo molti operatori 50GB di
> traffico te li tiran dietro a meno di 10€ (è un periodo meraviglioso a
> riguardo, grazie Iliad! :P)
>
>
> Per questo esistono le finestre di trasmissione :) A parte che se si
> tratta di flussi multimediali, di solito non vuoi ritrasmettere i
> dati. Di solito preferisci che rimanga il buco, piuttosto che
> aspettare 0.5 secondi. A meno di non avere un buffering elevato sul
> client.
>
> A questo punto magari vuoi usare trasmissioni con Forward Error
> Correction, oppure algoritmi che creano pacchetti extra, che possano
> funzionare come una sorta di raid5 sulla connessione. Per cui se
> perdi un pacchetto, i pacchetti extra aggiunti contengono abbastanza
> informazioni per ricostruire quello perso.
>
> Beh di tecniche ce ne sono molte, ma essendo purtroppo che non sono
> l'unico a decidere spesso il requisito è di utilizzare ShoutCast, che fa
> tutto tramite TCP.
>
> Grazie ancora, a presto! :)
>
>
--
Valerio Talora
-------------- parte successiva --------------
Un allegato non testuale è stato rimosso....
Nome: signature.asc
Tipo: application/pgp-signature
Dimensione: 833 bytes
Descrizione: OpenPGP digital signature
URL: <http://lists.linux.it/pipermail/gl-como/attachments/20190727/2b8a479e/attachment.sig>
Maggiori informazioni sulla lista
gl-como