IPv6 – Dual Stack Lite (DS-Lite)
Serão analisadas agora algumas técnicas bastante pertinentes ao momento atual da transição para o IPv6, num cenário em que não há mais IPv4 disponíveis, mas a base de usuários do provedor continua a crescer e ainda há muitos serviços exclusivamente disponíveis em IPv4 na Internet. Desta forma, o provedor não pode oferecer exclusivamente conectividade IPv6 ao usuário final, sendo forçado a oferecer também conectividade IPv4, mas com IPs de alguma forma compartilhados.
A primeira técnica a ser analisada será o Dual Stack Lite (Pilha dupla simplificada), padronizada na RFC 6333. Ela pode ser aplicada em situações em que o provedor já oferece IPv6 nativo para seus usuários. Sua implementação necessita de um equipamento denominado AFTR (Address Family Transition Router), que implementa um CGN (Carrier Grade NAT), que é um NAT de grande porte, na rede do provedor. Entre o AFTR e o CPE do usuário utiliza-se um túnel IPv4 sobre IPv6 para transportar o tráfego IPv4. No contexto do DS-Lite, o CPE do usuário é chamado de B4, abreviação para DS-Lite Basic Bridging BroadBand. Nas extremidades desses túneis são usados endereços da faixa 192.0.0.0/29, especialmente reservada para este fim. Para o CPE do usuário e os demais equipamentos da rede do usuário são utilizados IPs da RFC 1918 e não há problema se diferentes usuários utilizarem faixas de IPs repetidas, dado que o AFTR identifica os diferentes túneis com base no IPv6 de origem dos pacotes encapsulados. Na CPE do usuário deve existir um DHCP v4 para a distribuição dos endereços na rede interna. Deve existir também um proxy DNS, que permita consultas via IPv4, mas faça essas consultas ao DNS recursivo do provedor via IPv6, evitando traduções desnecessárias no AFTR.
É importante frisar alguns pontos:
- O AFTR usa CGN, mas não força o usuário a utilizar duplo NAT. Ou seja, AFTR realiza a função de NAT, de forma concentrada, para cada um dos dispositivos de cada usuário.
- O DS-Lite utiliza endereços privados na faixa 192.0.0.0/29 para as extremidades dos túneis v4 sobre v6, evitando a utilização desnecessária de endereços IPv4 na infraestrutura do provedor.
A figura 19 mostra um exemplo de topologia.
Figura 19: Exemplo topologia DS-Lite
Uma alternativa para implantar o DS-Lite é a utilização do software AFTR desenvolvido pelo ISC (Internet Systems Consortium), inicialmente por solicitação e com financiamento da Comcast, um grande provedor que opera com cabo nos Estados Unidos. O software está disponível no URL http://www.isc.org/software/aftr e pode ser utilizado em servidores GNU/Linux no provedor, permitindo uma implementação de baixo custo, robusta e escalável. Para o B4 (CPE) podem ser utilizados também dispositivos rodando Linux. Em especial, é possível utilizar roteadores Linksys WRT54GL e outros compatíveis com o firmware OpenWRT disponível no URL:
http://www.kangaroo.comcast.net/wiki/doku.php?id=wrt54gl:wrt54gl.
A configuração desta topologia é bastante simples. Para configurar o AFTR, basta criar um arquivo chamado aftr-script, contendo:
aftr_start() {
set -x
ip link set tun0 up
ip addr add 192.0.0.1 peer 192.0.0.2 dev tun0
ip route add 203.0.113.1/32 dev tun0
ip -6 addr add fe80::1 dev tun0
ip -6 route add 2001:db8:c::1/64 dev tun0
arp -i eth0 -s 203.0.113.131 0a:0b:0c:0d:0e:f0 pub
}
aftr_stop() {
set -x
ip link set tun0 down
}
case “$1” in
start)
aftr_start
;;
stop)
aftr_stop
;;
*)
echo “Usage: $0 start|stop””
exit 1
;;
esac
exit 0
E um arquivo de configuração chamado aftr.conf, contendo:
default tunnel mss ondefmtu 1450
address endpoint 2001:db8:c::1
address icmp 203.0.113.1
pool 203.0.113.1
acl6 ::0/0
E então iniciar o serviço.
Para o B4 (CPE), basta criar o túnel IPv4 sobre IPv6:
modprobe ip6_tunnelip -6 tunnel add dsltun mode ipip6 remote 2001:db8:c::1 local 2001:db8:0:b::1 dev eth1
ip addr add 192.0.0.2 peer 192.0.0.1 dev dsltun
ip link set dev dsltun up
ip route add default dev dsltun
Além disso, deve-se configurar o DHCPv4 e o proxy DNS no B4.
Esse exemplo de configuração usa apenas um endereço para o pool de NAT, mas poderiam ser utilizados mais. Note que o endereço IPv4 da interface física do servidor AFTR não está na mesma rede dos endereços usados no pool. O endereço IPv6 da extremidade AFTR do túnel não é o endereço físico da interface, mas outro, numa rede diferente. Os pacotes direcionados para os endereços do Pool IPv4 e para o endereço IPv6 da extremidade do túnel são roteados para a interface de túnel e tratados pelo software AFTR. Por fim, é importante notar que os mesmos endereços 192.0.0.1 e 192.0.0.2 são usados para múltiplos clientes e que a detecção de novos túneis de clientes é feita automaticamente pelo AFTR, com base no endereço IPv6 de origem dos mesmos.
Uma variação desta técnica, que tenta resolver o mesmo problema, é a combinação do DS Lite com o Address Plus Port (A+P) e é conhecida como DS Lite A+P. O A+P será apresentado com mais detalhes no item 17 deste texto. O funcionamento do DS Lite A+P é similar ao DS Lite, mas ao invés de ser um endereço IPv4 privado, o CPE do usuário recebe um endereço IPv4 público. As portas disponíveis para utilização, contudo, são limitadas, pois este IP público é compartilhado com outros nós. O CPE deve então realizar a função de tradução de endereços (NAT), oferecendo IPs privados (RFC 1918) para os demais nós na rede, mas obedecendo à restrição das portas imposta pelo A+P na tradução.
Com a utilização do DS-Lite com A+P, a escalabilidade é melhor, dado que o NAT é feito de forma distribuida, nos CPEs. O usuário pode também realizar o mapeamento de portas no NAT e receber conexões entrantes, numa situação muito próxima a que existiria sem o compartilhamento de endereços.
O DS Lite com A+P é ilustrado na figura a[a] seguir. Na figura, o CPE recebe o endereço IPv4 restrito das portas 1024 a 2047, à guisa de exemplo, mas tanto as portas disponíveis, quanto a quantidade das mesmas, poderiam ser outras.
Figura 20: Exemplo topologia DS-Lite com A+P
Deve-se notar que o DS-Lite e o DS-Lite com A+P usam IPv4 sobre IPv6, mas utilizam-se de técnicas stateful para o compartilhamento dos endereços IPv4.