Para o IPv6 poder trabalhar plenamente deveriam ser atualizados, pelo menos, todos os hosts de uma rede - uma mudança radical a ser feita por administradores de redes com milhares ou, as vezes, dezenas de milhares de hosts. Entretanto, este não é o caso: as pessoas que trabalham na transição de IPv4 para IPv6 têm trabalhado duro para criar mecanismos que suportem de forma gradual a atualização. As atualizações das redes atuais, pode ser feita com um baixo impacto, caso sejam feitas de forma metodológica e inteligente. A seguir são mostradas estratégias para esta transição.
A transição de IPv4 para IPv6 deve ser feita de forma gradual. Uma atualização de forma radical faria com que administradores de redes tivessem que encontrar e instalar novas versões para softwares de rede para cada host e roteador na internet - nada fácil, imaginando o número de diferentes plataformas rodando IPv4.
Mais realisticamente falando, a transição para IPv6 continuará a ser feita de maneira mais lenta, com vendedores e desenvolvedores gradualmente introduzindo versões de aplicações IPv6 para as diferentes plataformas, e administradores de redes determinando se são ou não necessários, no momento, os novos recursos disponíveis para IPv6. É esperado que o IPv4 e o IPv6 devam coexistir por um bom período de tempo, mas não para sempre. Muitas estratégias para transmissão falam em tunelamento, com o intuito de aproximar duas redes distantes, onde pacotes IPv6 são encapsulados dentro de pacotes IPv4. Isto faria com que ilhas IPv6 pudessem se comunicar utilizando oceanos IPv4. Após certo período de tempo, a população IPv6 tenderia a crescer, sendo que cada vez mais e mais redes começariam a utilizar este protocolo, fazendo com que as ilhas começassem a se juntar, não necessitando mais de tunelamento. Outro ponto da aproximação seria o dual-stack, onde hosts e roteadores teriam rodando em uma mesma interface, tanto pilhas IPv4, quanto IPv6. Desta maneira, um nodo dual-stack pode receber e transmitir pacotes dos dois protocolos, fazendo com que eles coexistam em uma mesma rede.
A figura abaixo mostra um exemplo de uma interface ethernet, configurada com dual-stack, no sistema operacional Linux. A figura a seguir mostra um exemplo de uma interface também configurada com dual-stack, porém com o sistema operacional Solaris.
eth0 Link encap:Ethernet HWaddr 00:C0:DF:E9:2B:26
inet6 addr: fe80::2c0:dfff:fee9:2b26/10 Scope:Link
iprb0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2 inet 192.168.1.1 netmask ffff0000 broadcast 192.168.1.255
lo0: flags=2000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv6> mtu 8252 index 1 inet6 ::1/128
iprb0: flags=2000841<UP,RUNNING,MULTICAST,IPv6> mtu 1500 index 2 inet6 fe80::2c0:dfff:fee9:2b26/10
No caso das figuras acima, as interfaces ethernet estão com o endereço IPv4 192.168.1.1 e o endereço IPv6 fe80::2c0:dfff:fee9:2b26, o que caracteriza este nodo como dual-stack.