ARIN ha esaurito gli IPv4

PanettoneARIN ha annunciato di aver esaurito gli IPv4.

Purtroppo ci sono ancora tanti IPv4 disponibili negli USA e le cose potrebbero peggiorare per chi vuole degli indirizzi.

ARIN ha finito gli indirizzi v4 liberi, quindi da ora inserisce le richiesta in una lista d’attesa.

Le nuove richieste di IPv4 verranno evase quando qualcuno restituirà ad ARIN IPv4 inutilizzati. Leggi tutto “ARIN ha esaurito gli IPv4”

Scrivere in IPv6

Dal momento che gli indirizzi IPv6 sono in esadecimale è possibile esercitarse il proprio hexspeak.

Chi vuole uscire dalle solite parole può far lavorare le RegEx al posto della fantasia:

egrep -e "^[a-flos]{4}$" /usr/share/dict/words

Quel comando prende come input una lista di parole separate da un a-capo, considera solamente quelle di 4 lettere e stampa quelle che sono rappresentabili in esadecimale.

Nell’esempio sono state incluse anche la l (1), la o (0) e la s (5), ma si può espandere ulteriormente il range con, ad esempio, la z (2) e la g (6).

Tunnel IPv6 di HE con OpenWRT

OpenWrtDopo l’esperienza di Fabrizio, mi sono deciso ad usare un OpenWRT per il tunnel IPv6 di Hurricane Electic.

Avevo a disposizione un Netgear DG834GT gentilmente donato da Riccardo per questo scopo e ho deciso di metterlo finalmente in pista.

Avevo installato OpenWRT Backfire tanto tempo fa, ma non avevo ancora avuto l’occasione di provarlo seriamente sul campo. Dopo alcuni disservizi della linea ADSL di casa ho riconfigurato la rete casalinga eliminando la VM con pfSense e semplificando un po’ la configurazione. Tuttavia questo mi aveva fatto perdere la possibilità di usare pfSense come gestore del tunnel IPv6. Leggi tutto “Tunnel IPv6 di HE con OpenWRT”

DHCPv6: il DUID

Il DHCPv6 è un chiaro esempio di come IPv4 e IPv6 siano differenti tra loro, non solo nell’ampiezza degli indirizzi.

Una di queste differenze sostanziali è il metodo con cui viene determinata l’univocità di un host ai fini del rilascio di un IPv6.

In IPv4 il DHCP (figlio del bootp) utilizza il MAC address di una scheda di rete per riconoscere univocamente un host. Due conseguenze abbastanza seccanti sono che un host cambia l’identificativo univoco se viene sostituita una scheda di rete (o viene realizzato un team di schede) e che un host ha tanti identificativi univoci quante sono le porte di rete. Alcuni driver permettono di sovrascrivere il MAC Address, ma la cosa esula dalla trattazione.

DHCPv6, descritto in RFC3315, utilizza il DUID (DHCP Unique Identifier), che è univoco per tutte le porte di rete e viene calcolato una volta sola nella vita dell’installazione di un sistema operativo. Va da sé che, essendo memorizzato su un supporto riscrivibile, il DUID può essere alterato.

Leggi tutto “DHCPv6: il DUID”

IPv6 schizofrenico

Chicago mallQuando si comincia ad utilizzare IPv6 in produzione su una configurazione LAN eterogenea iniziano i comportamenti a cui non siamo abituati.

Con IPv4 un host impostato per la configurazione automatica si assegna un indirizzo link-local (169.254.0.0/16, RFC3927) contatta il server DHCP per avere un indirizzo e, quando lo ottiene, scarta l’indirizzo link-local e avrà sempre solamente quell’indirizzo fino alla scadenza dell’affitto dello stesso.

Innanzi tutto, IPv6 mantiene l’indirizzo link-local fe80::/10 di ogni interfaccia diversa dal localhost. Questo è il problema minore perché generalmente i programmi non utilizzano il link-local se non istruiti espressamente per farlo.

Il problema vero e proprio si verifica quando c’è un metodo di configurazione automatica e un host viene configurato con un IPv6 fisso. In questo caso un host si potrebbe prendere sia l’IPv6 fisso sia uno autoconfigurato. Inoltre per default Windows assegna un ulteriore indirizzo IPv6 per sfruttare la privacy della connessione e ridurre la tracciabilità quando si va online (RFC4941).

Il risultato finale è che un host ha una babele di indirizzi. E il SysAdmin invoca le divinità.

Leggi tutto “IPv6 schizofrenico”

Tunnel IPv6 con HE e pfSense

pfSenseHo deciso di cambiare qualcosa nelle configurazione casalinga introducendo un po’ di virtualizzazione, un firewall standalone e un tunnel IPv6 (spero) finalmente stabile.

Seguendo le istruzioni di Fabrizio ho configurato il Linux casalingo di frontiera con KVM e una VM su cui gira la versione 2.1 di pfSense. Alla fine la configurazione è (per scelta di non complicarmi troppo la vita per ora) la più classica e semplice: WAN<->firewall<->LAN con i servizi pubblicati in LAN nattati (per IPv4) 1:1, senza DMZ, per ora.

Questo mi ha permesso di togliere i mezzo dal Linux host la gestione del tunnel e altri servizi legati alla rete (come il DHCP e radvd).

Quello che serve per lo scopo di questo articolo è un tunnel IPv6 gratuito con Hurricane Electric (un solo /64 è sufficiente), una connessione con IP fisso e un firewall pfSense. Negli esempi che seguono gli IP sono ovviamente inventati (per IPv4) o del blocco /32 utilizzabile per la documentazione (per IPv6).

Leggi tutto “Tunnel IPv6 con HE e pfSense”

Postfix: forzare IPv4 o IPv6 con un dominio

Questo articolo spiega come forzare la connessione IPv4 o IPv6 verso un dominio specifico utilizzando Postfix.

Se si imposta inet_protocols = all con un MTA che ha sia un record A sia un record AAAA Postfix sceglie di volta in volta a caso se utilizzare IPv4 o IPv6 per minimizzare i problemi di recapito.

Durante il primo periodo di adozione dell’IPv6 ci possono essere degli MTA con il record AAAA nel DNS ma con dei problemi a ricevere mail via IPv6. Oppure semplicemente si vogliono fare dei test con un dominio specifico senza modificare la configurazione generale di Postfix.

Leggi tutto “Postfix: forzare IPv4 o IPv6 con un dominio”

Rischi dell’implementazione di IPv6

Mentre il conto alla rovescia dell’esaurimento dell’IPv4 continua, è opportuno valutare i rischi correlati all’adozione di IPv6.

Il NIST ha pubblicato un utilissimo documento in cui vengono dettagliate le linee guida per l’adozione sicura dell’IPv6 nelle organizzazioni.

Il documento è molto corposo e la prende veramente alla lontana, ma è utile a tutti perché non dà nulla per scontato; chi conosce già i dettagli dei protocolli IP può saltare i primi capitoli.

Nella guida vengono spiegati i meccanismi di passaggio da v4 a v6 e i rischi correlati.

Leggi tutto “Rischi dell’implementazione di IPv6”

IPv6: attacco RA flood

Scala verso l'acqua / Stairway to waterSam Bowne ha scoperto e verificato sul campo che molti sistemi operativi sono vulnerabili ad un attacco di RA flood.

L’attacco, che si verifica solamente se sono attivi lo stack IPv6 e l’assegnamento automatico dell’indirizzo, consiste nel bombardare la vittima con dei pacchetti RA creati appositamente con un numero tale di informazioni da mandare in crash i sistemi.

I sistemi interessati da questo problema sono moltissimi: Microsft Surface, Android, tutti gli iPad (incluso il mini), Mac OSX, Windows 7, Windows 2008 e Windows 2008 R2.

Se viene installato l’IPv6 Readiness Update su Windows il problema viene leggermente mitigato, anche se il sistema si congela durante l’attacco, per riprendersi una volta che l’invio di pacchetti termina.

Linux Ubuntu ha passato indenne questo tipo di attacco.

Non è la prima volta che viene dimostrata una vulnerabilità dei sistemi di autoconfigurazione di IPv6. Eventuali test in un ambiente non controllato dovrebbero essere condotti per il momento senza attivare questi automatismi sugli host per evitare che qualche buontempone si diverta con uno dei tanti script che sono in circolazione.

IPv6 nei siti della PA

Traffico stradale / Road trafficIl 30 settembre u.s. i siti governativi americani hanno dovuto, salvo eccezioni documentate, essere raggiungibili in IPv6.

Per un ipotetico dispositivo che oggi abbia solamente la connettività IPv6 pura (senza NAT o altro) la Pubblica Amministrazione italiana di fatto non esisterebbe.

In una pagina apposita sono raccolte le statistiche relative all’IPv6 per i siti della PA elaborate da Siamo Geek. La raggiungibilità viene calcolata cercando un record AAAA relativo all’host della home page del sito. Il metodo è grezzo e i risultati ottenuti sono da considerarsi in eccesso rispetto agli host effettivamente raggiungibili via IPv6, ecco i motivi.

Leggi tutto “IPv6 nei siti della PA”

Rete parallela

Tubi / PipesSono sempre di più i prodotti e i sistemi operativi che supportano IPv6.

La quasi totalità di questi host è configurata per default in dual stack con DHCP su IPv4 e SLAAC su IPv6. Chi esegue l’installazione del dispositivo raramente si cura della parte IPv6 e procede solamente alla configurazione di IPv4, lasciando IPv6 attivo in SLAAC.

Purtroppo l’attuale implementazione di SLAAC non prevede alcuna forma di autenticazione o di validazione preventiva, posto che l’IT si sia già posto il problema dell’IPv6 nella sua LAN.

Il risultato è che a tutti gli host IPv6, inclusi i server, può essere assegnato un indirizzo IP da un software come radvd con lo scopo di creare una LAN parallela a quella esistente con delle regole di routing e di accesso completamente diverse. Piazzare una macchina Linux con radvd e un tunnel IPv6 con 2^64 indirizzi pubblici è più semplice di quello che sembra; una volta attivato il gateway, gli host con un IPv6 sarebbero accessibili da qualsiasi parte di Internet.

In questa fase transitoria è bene configurare correttamente gli host, disabilitando IPv6 (o lo SLAAC) dove non è ancora necessario. Agire solamente sul firewall di frontiera non è sufficiente perché nel caso indicato sopra il Linux potrebbe avere un punto di uscita diverso verso Internet.

Come e quando passare a IPv6

Voglio segnalarvi una guida gratuita pubblicata da 01net.it su IPv6.

Alcuni argomenti sono condivisibili, altri meno ma l’importante è che se ne parli.

01net.it: Come e quando passare a IPv6

Ovviamente non si discute “SE passare a IPv6” ma del “COME passare a IPv6” essendo un passaggio obbligatorio e scontato. Quando? Prima possibile…

Virtual host di Apache in IPv6

Disco di Festo / Disc of Phiastos

La prima versione di questo articolo spiegava in maniera onestamente un po’ cervellotica come abilitare su un server CentOS 6 la gestione degli host virtuali di Apache 2.2 basati sugli indirizzi (IP-based virtual host) per IPv6 e basati sul nome (name-based virtual host) per IPv4.

Questa revisione si propone lo stesso scopo, ma con un metodo molto più rapido e meno invasivo.

Nella documentazione di Apache viene detto esplicitamente che la gestione degli host virtuali basati sul nome è una tecnologia creata per far fronte alla scarsità degli indirizzi IPv4; dal momento che questo non è un problema di IPv6, possiamo usare tranquillamente gli host virtuali basati sugli IP. Questa tecnologia permette, tra le altre cose, di avere più certificati HTTPS caricati sul medesimo server.

Se viene mantenuto da tutti i fornitori di servizi il metodo scelto dal fornitore di Siamo Geek, ad ogni server in hosting viene fornito un sostanzioso blocco di IPv6 (un /64 nel nostro caso), la qual cosa permette di avere una messe di IPv6 a disposizione per farci quello che si vuole.

In questa procedura viene utilizzata la modalità mista di host virtuali di Apache 2.2 duplicando le definizioni nella configurazione. Ovviamente le directory con i siti non devono essere duplicate.

Leggi tutto “Virtual host di Apache in IPv6”

Mail server in IPv6

Cabina da distribuziunQuesto articolo spiega come passare in IPv6 un mail server Linux con Postfix, Amavisd-new e Dovecot.

Il sistema di partenza è un Linux con il dual stack IPv4/IPv6 attivo e funzionante con un indirizzo pubblico IPv4 e uno IPv6. Anche il sistema di posta elettronica è perfettamente funzionante in IPv4 con le ultime versioni dei programmi indicati sopra installati da sorgente, non da pacchetto della distribuzione Linux. Ciò perché con IPv6 è sempre meglio avere le ultime versioni, anche se la maggior parte delle istruzioni che seguono dovrebbero funzionare anche con le versioni distribuite nei pacchetti standard.

Leggi tutto “Mail server in IPv6”

Esaurimento dell’IPv4

PanettoneDa giorni cercavo una fonte di dati che mi permettesse di elaborare il numero degli IPv4 rimasti in modo analogo alla pagina del RIPE.

Avevo contattato il RIPE che mi aveva dato il permesso di rielaborare i dati che loro pubblicano ogni giorno, ma l’impresa si è rivelata più difficile del previsto, dal momento che non trovavo dei dati da aggregare che mi dessero come risultato un numero paragonabile a quello della loro pagina degli IPv4 disponibili.

Cercando in rete, ho trovato il sito di Geoff Huston con un sacco di informazioni e statistiche.

Elaborando un file specifico, sono riuscito ad ottenere un risultato con una grandezza comparabile a quella della pagina del RIPE, il mio benchmark, il risultato delle elaborazioni è mostrato qui a fianco, in cima alla colonna di destra. I dati elaborati vengono pubblicati con il permesso di Geoff.

Chiunque voglia avere questi risultati può utilizzare delle semplicissime API che ho approntato e ottenere con un HTTP GET i singoli numeri oppure la tabella intera. Contattatemi a lrosa(*)siamogeek.com per i dettagli.

Tunneling IPv6 di HE con Linux CentOS

Nota aggiunta il 30/9/2013: a questa soluzione è da preferire quella descritta in un articolo successivo con pfSense e KVM.

(alcune parti sono state modificate dopo la pubblicazione)

Questo articolo spiega come impostare un tunnel IPv6 con Linux CentOS 5 configurato come gateway, NAT e firewall di una LAN.

Lo scenario è il seguente: un router ADSL con IPv4 pubblico collegato ad un Linux che fa da NAT/firewall per la LAN. In questo esempio eth0 è l’interfaccia WAN con un IPv4 pubblico /29 e eth1 è l’interfaccia LAN con un IPv4 /24.

Alla fine della procedura la classe /64 di IPv6 pubblici con reverse DNS potrà essere utilizzata per assegnare indirizzi pubblici ai dispositivi IPv6 in LAN, incluso il gateway Linux.

Leggi tutto “Tunneling IPv6 di HE con Linux CentOS”

IPV6 a casa e in ufficio con OpenWRT

(Disclaimer: seguite questo tutorial a vostro rischio e pericolo. Potreste incorrere in danni hardware come il brick del dispositivo, intrusioni di hacker nel vostro sistema o sviluppare dipendenza da IPV6. In nessun caso l’autore potrà esserne ritenuto responsabile)

Nel nostro paese è molto difficile ottenere una connessione con IPV6 nativo per la casa o l’ufficio.

La soluzione di seguito proposta consentirà di portare IPV6 sulla vostra LAN in maniera trasparente.

Il dispositivo che renderà possibile questo risultato è un router un po’ particolare, ma facilissimo da procurare. Probabilmente se siete informatici per professione o diletto lo avete già nella cassetta del materiale di scarto :-).

Nel mio caso ne ho reperiti un paio, ma la mia scelta è caduta sul più potente router/access point Dlink DIR-600.

DIR-600

Leggi tutto “IPV6 a casa e in ufficio con OpenWRT”

IPv6 su un host CentOS

Questo articolo inaugura una (spero) nutrita serie di articoli sull’IPv6 per cui è stata creata una tassonomia specifica.

L’idea è che tutti gli autori del blog condividano le proprie esperienze con IPv6 e le mettano a disposizione degli altri, che le possono consultare utilizzando le categorie nella colonna a sinistra.

Se qualcuno vuole contribuire come guest blogger oppure come autore ricorrente, per questo tema (o anche per altri) mi scriva pure a lrosa()siamogeek.com.

Scenario: abbiamo un server CentOS headless in hosting con un IPv4 fisso e configurato, che utilizziamo per fare amministrazione via ssh e dobbiamo aggiungere un indirizzo IPv6 che ci ha assegnato il fornitore.

La prima differenza rispetto ad un IPv4 è che non ci vengono assegnati, generalmente, uno o due indirizzi, ma un blocco. Nel mio caso mi hanno dato 2a01:4f8:d15:1c00::/64; dal momento che IPv6 ha 128 bit di indirizzo, un /64 significa che ho 64 bit di indirizzo fisso (2a01:4f8:d15:1c00) e altrettanti disponibili per il mio server. Un sogno, se ragioniamo con il razionamento di IPv4.

Leggi tutto “IPv6 su un host CentOS”

IPv6: è ora di fare le cose seriamente

Anche questa Deepcon è finitaIl RIPE ha iniziato a distribuire gli indirizzi dell’ultimo blocco /8 (16.777.216 indirizzi) IPv4 che ha ricevuto da IANA.

Le richieste giornaliere di IPv4 soddisfatte dal RIPE possono essere monitorate da tutti. In questo momento il RIPE assegna ai LIR solamente blocchi /22 (1.024 indirizzi) per volta.

Al momento di scrivere, il RIPE ha un serbatoio di 17,30 milioni di indirizzi; sono più dei 16 milioni di un /8 perché includono anche quelli appartenenti ai blocchi restituiti.

È ora di mettere da parte la pigrizia e iniziare a implementare il doppio stack IPv4/IPv6 sulle nuove installazioni. Quando questo blog ha cambiato casa a fine luglio si è dotato di un doppio stack e in questo momento i suoi indirizzi sono 78.47.70.164 e 2a01:4f8:d15:1c00::badd:ecaf (il primissimo IP che avevo assegnato era 2a01:4f8:d15:1c00::b16b:00b5).

Con IPv6 bisogna imparare tutto daccapo, la conoscenza di IPv4 che abbiamo accumulato diventerà pian piano storica, ma non per questo si può impedire che i nuovi utenti utilizzino la Rete. Sarebbe stupido, arrogante e autolesionista.

Leggi tutto “IPv6: è ora di fare le cose seriamente”