Problema e scopo
Non otteniamo IPv6 dal nostro ISP, quindi ho un tunnel IPv6 che funziona bene ma, ovviamente, non è molto veloce. E non proprio affidabile. Mi piace avere IPv6 disponibile "per ogni evenienza" ma voglio che determinati host (domini) siano connessi solo con IPv4.
Protocollo predefinito
Mi sembra che tutte le applicazioni provino prima IPv6; questa è probabilmente un'impostazione glibc. Starei bene se questo valore predefinito venisse invertito (per tutte le applicazioni).
netfilter
Sarebbe possibile bloccare indirizzi / reti IPv6 con Netfilter ma ci sono due problemi:
- Ciò provocherebbe un ritardo mentre l'app attende un timeout IPv6 prima di provare IPv4?
- Alcuni domini sembrano essere misti che sembrano caos. Separare google.com e youtube.com sembra qualcosa che non vuoi fare se puoi evitarlo.
Ho appena notato che la pagina man per ip route
dice per il tipo di routing unreachable
:
I mittenti locali ricevono un errore EHOSTUNREACH.
Lo stesso succede con DROP o REJECT di Netfilter? Un tale errore non dovrebbe causare un ritardo rilevante.
Filtro DNS
Un'altra soluzione (piuttosto semplice se ciò è possibile) sarebbe quella di filtrare i record AAAA per determinati domini. Se ciò non è (facilmente) possibile: è possibile collegare il server DNS e Netfilter in modo che io sappia che "l'indirizzo IP X appartiene al dominio Y" in modo da poterlo aggiungere a Netfilter? Qualcosa di più elegante che registrare tutto e accedere al registro?
La strada da percorrere?
Quali (altre) possibilità ci sono e qual è la più semplice?