Revista Do Linux
EDIÇÃO DO MÊS
 Hardware
 Comandos Avançados
 Tecnologia

 Capa
 Entrevista
 CD
 Corporativo
 Sistema
 Evento
 Segurança
 Internet
 Programação

 

Linux para IPv6
O IPv6 permite atribuir um IP para cada m2 da terra

Algumas das distribuições Linux atuais vem completamente despreparada para funcionar com IPv6, embora os programas básicos já tenham código para isso.

Para verificar se seu kernel tem suporte, verifique se existe o arquivo /proc/net/if_inet6. Se ele existir, seu kernel já tem suporte. Se não existir, tente ver se o módulo ipv6.o está presente e pode ser carregado.

Caso seu kernel não tenha suporte, você precisará recompilá-lo. Arranje o código fonte da versão mais nova e configure-o como faria normalmente. Fora isso, você deverá ativar as seguintes opções no menu Networking, Options:


·The IPv6 protocol 
·IPv6: Enable EUI-64 token format 
·IPv6: disable provider based address 

Se desejar, você poderá colocar o protocolo IPv6 como módulo. Nesse caso, você precisará carregar o módulo antes de usá-lo ou adicionar a seguinte linha a seu /etc/conf.modules (ou /etc/modules.conf):


alias net-pf-10 ipv6a

Depois de recompilar e instalar seu kernel, você já poderá brincar com IPv6. No entanto, para poder continuar a configuração de sua máquina para IPv6, você precisará adicionalmente de outro pacote: net-tools.

As distribuições mais recentes já trazem o net-tools compilado com suporte a IPv6. Para ter certeza, rode /sbin/route —help. Se, na saída, na listagem de protocolos, aparecer "inet6 (IPv6)", então você já está pronto. Se não aparecer, você precisará obter os fontes desse pacote e recompilá-lo, lembrando-se de ativar as opções para IPv6 (rede Inet6 [AF_INET6] e dispositivos SIT [IPv6-sobre-IPv4]). Em: www.tazenda.demon.co.uk/phil/net-tools/

Feito isso, e com o módulo IPv6 ligado, você já deverá encontrar pelo menos um endereço IPv6 configurado em cada interface, como em:



# /sbin/ifconfig
eth0 Encapsulamento do Link: Ethernet  Endereço de HW 00:D0:09:3D:A5:A8
inet end.: 172.26.0.2  Bcast:172.26.255.255  Masc:255.255.0.0
endereço inet6: fe80::2d0:9ff:fe3d:a5a8/10 Escopo:Link
UP BROADCASTRUNNING MULTICAST  MTU:1500  Métrica:1
Pacotes RX:40303 erros:0 descartados:0 sobreposições:0 frame:0
Pacotes TX:40164 erros:0 descartados:0 sobreposições:0 portadora:0
colisões:401 txqueuelen:100
IRQ:11 Endereço de E/S:0xda00
 lo Encapsulamento do Link: Loopback Local
inet end.: 127.0.0.1  Masc:255.0.0.0
endereço inet6: ::1/128 Escopo:Máquina
UP LOOPBACKRUNNING  MTU:16144  Métrica:1
Pacotes RX:5732 erros:0 descartados:0 sobreposições:0 frame:0
Pacotes TX:5732 erros:0 descartados:0 sobreposições:0 portadora:0
colisões:0 txqueuelen:0

ote a presença do endereço fe80::2d0:9ff:fe3d:a5a8 na interface eth0, que é um endereço link-local e do endereço ::1 na interface lo. O endereço ::1 é o endereço de loopback, então nada mais lógico que colocá-lo na interface lo. Já o outro endereço é o endereço atribuído automaticamente pelo sistema e serve para comunicar-se com as outras máquinas na mesma rede. Note a semelhança entre o final desse endereço com o endereço de hardware da placa de rede (o endereço MAC). Esse é um identificador global daquela interface, seguindo as especificações EUI-64 (que você habilitou no kernel). Você pode agora adicionar e remover endereços das interfaces, quantos quiser, usando o comando ifconfig:



# /sbin/ifconfig eth0 add 1000::1
# /sbin/ifconfig eth0
...
endereço inet6: 1000::1/0 Escopo:Global
...
# /sbin/ifconfig eth0 del 1000::1
# /sbin/ifconfig eth0 add fec0::1/64
# /sbin/ifconfig
...
endereço inet6: fec0::1/64 Escopo:Site
...
#


ping e traceroute — Para testar o funcionamento da sua configuração IPv6, use os utilitários ping e traceroute para IPv6. O RedHat 6.2, no pacote iputils, já traz ambos, sob os nomes ping6 e traceroute6. Se você não tem o pacote, busque em: ftp://ftp.inr.ac.ru/ip-routing/

Com isso, você já pode tentar "pingar" os endereços das suas interfaces. Eles deverão responder.

Configurando uma rede — A segunda etapa agora é configurar uma outra máquina na mesma rede para conversar com a primeira. Refaça os mesmos passos que fez para configurar a primeira maquina, desta vez adicionando um endereço a cada máquina que pertença à mesma rede. A sugestão é já seguir os padrões e escolher dois endereços site-local, como fec0::1/64 e fec0::2/64.

Quando tiver feito isso, tente, em uma das máquinas, "pingar" a outra. Se isso acontecer, sua primeira rede IPv6 já estará funcionando. Você pode tentar, também, "pingar" os endereços link-local das máquinas. Uma outra dica é tentar "pingar" o endereço de multicast ff02::1. Esse endereço significa que "todos os nós" e outras as máquinas deverão responder ao ping.

Se você fizer o mesmo para uma terceira ou mais máquinas, configurando-as na mesma rede (fec0::/64), elas deverão conversar entre si automaticamente. No entanto, note que a configuração que foi feita até agora é manual, já que não existe nenhum roteador na rede.

Configuração automática — A configuração automática ocorre para todas as máquinas da rede, com exceção de uma, que será o roteador. Analisando sua rede, você deverá encontrar qual delas é o roteador atual, como, por exemplo, um servidor ou aquela que possui um modem, compartilhando a conexão. Você deverá decidir se irá usar uma configuração automática simples ou mais sofisticada, como DHCP. Se decidir pela configuração mais simples, você deverá instalar o pacote radvd (Routing Advertise Daemon).

Uma vez instalado o pacote, você deverá configurá-lo através do arquivo /etc/radvd.conf. Mais informações poderão ser encontradas no manual do programa e do arquivo de configuração. Uma configuração básica poderia ser:


interface eth0
{
  AdvSendAdvert on;
   prefix fec0:0:0:1::0/64
  {
    AdvAutonomous off;
  };
};

O que se lê desse arquivo de configuração é que o programa radvd irá funcionar na interface eth0, enviando avisos periodicamente. Ele incluirá nos avisos que o prefixo fec0:0:0:1::/64 poderá ser usado pelos nós para configuração automática. Dois efeitos colaterais interessantes resultantes da presença do radvd na rede são os seguintes: em primeiro lugar, a máquina roteadora irá automaticamente responder no endereço ff02::2, que significa "todos os roteadores"; o outro é que os nós, além de configurarem o endereço, já irão configurar também o roteador nas suas rotas-padrão.

Quaisquer máquinas que suportem IPv6, ao entrarem na rede, já irão configurar-se automaticamente na rede, usando o prefixo informado. Note, no entanto, que a identificação da máquina será o identificador global EUI-64, se os endereços forem configurados nessa forma, quando o prefixo informado tiver comprimento de 64 bits. Ou seja, o endereço tem o final igual ao do endereço link-local automático. Esse é o único comprimento de prefixo que o Linux irá suportar na configuração que fizemos. Isto é, o Linux com o EUI-64 ativado, que é o padrão adotado na Internet, só irá configurar automaticamente endereços se o prefixo informado pelo roteador tiver comprimento de 64 bits.

Você poderia também optar por utilizar uma configuração DHCP. No entanto, essa opção ainda não está disponível, devido ao fato de que os servidores de DHCP disponíveis no momento não suportam ainda IPv6.

Toda a configuração automática não exclui a possibilidade de configuração manual. Se você quiser, poderá configurar sua rede de modo inteiramente manual, como uma rede IPv4 comum (sem DHCP). Ou também poderá fazer uma configuração mista, entre manual e automática.

De fato, seria interessante uma configuração mista nos servidores. Ao contrário de estações de trabalho, servidores e roteadores precisam de endereços fixos, especialmente os roteadores. Ainda que os endereços automáticos possam ser relativamente estáticos, em certas situações eles podem mudar, como, por exemplo, na substituição de uma placa de rede ou de um computador todo. Por isso, seria importante a atribuição de endereços estáticos mais simples a algumas tarefas. Por exemplo, o roteador deverá ter o endereço terminado em ::, o servidor de Web poderia ter a terminação ::1, o servidor de e-mail teria ::2, e assim por diante.

Configurando DNS — A etapa seguinte da configuração de sua rede é configurar um servidor de nomes para resolver os endereços para IPs. Você precisará do BIND versão 8. Caso você não o tenha, poderá encontrá-lo www.isc.org/

A configuração normal do DNS é bastante simples. Assumindo que você já tem um servidor de DNS funcionando e que ele já resolve para o seu domínio, tudo que você tem de fazer é adicionar algumas novas entradas para os nomes que deseja resolver.

Quando se configura um endereço IPv4, usa-se uma entrada tipo "A". No caso do IPv6, usa-se o "AAAA".

Veja, por exemplo, o box nesta coluna.

Atualize o serial do domínio e mande o BIND recarregar o arquivo. Agora você poderá testar se sua configuração funcionou, usando os comandos nslookup e host:


# host -t aaaa maquina1
maquina1.exemplo.com IPv6 address fec0::1:2c0:dfff:fee5:a6ac

Já a configuração do reverso é um pouco mais complicada. Por exemplo, para resolver o endereço fec0:0:0:1:2c0:dfff:fee5:a6ac, um programa deverá consultar a resolução para o seguinte nome:



c.a.6.a.5.e.e.f.f.f.f.d.0.c.2.0.1.0.0.0.0.0.0.0.0.0.0.0.0.c.e.f.ip6.int

Então, adicione ao seu /etc/named.conf:



zone "1.0.0.0.0.0.0.0.0.0.0.0.0.c.e.f.ip6.int" {
type master;
file "net1.reverse.ZONEINFO";
};

A seguir crie o arquivo /var/named/net1.reverse.ZONEINFO como qualquer outro arquivo de zona. No seu conteúdo, adicione entradas do tipo:


c.a.6.a.5.e.e.f.f.f.f.d.0.c.2.0         1d      IN      PTR     maquina1.exemplo.com.
1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0         1d      IN      PTR     www.exemplo.com.

No entanto, embora seja assim que todos os programas da atualidade funcionem com IPv6, as autoridades já decidiram que, mesmo antes de entrar em operação, esse sistema já está obsoleto. Foi criada uma nova técnica, mais flexível e simples para o usuário, embora sua carga nos servidores de DNS seja um pouco maior. Mas, para efeito de teste, você terá de usar as técnicas atuais (AAAA e resolução pelo domínio IP6.INT), ou os programas não funcionarão.

Configurando endereços IPV6


roteador1	1d	IN	AAAA	fec0:0:0:1::
www	1d	IN	AAAA	fec0:0:0:1::1
ftp	1d	IN	AAAA	fec0:0:0:1::1
mail	1d	IN	AAAA	fec0:0:0:1::2
smtp	1d	IN	AAAA	fec0:0:0:1::2
pop3	1d	IN	AAAA	fec0:0:0:1::2
maquina1	1d	IN	AAAA	fec0:0:0:1:2c0:dfff:fee5:a6ac
maquina2	1d	IN	AAAA	fec0:0:0:1:2d0:9ff:fe3d:a5a8


A Revista do Linux é editada pela Conectiva S/A
Todos os Direitos Reservados.

Política de Privacidade
Anuncie na Revista do Linux