[GTER] ipv6 roteamento

Henrique de Moraes Holschuh hmh at hmh.eng.br
Fri Apr 25 11:58:37 -03 2014


On Thu, 24 Apr 2014, Rodrigo Augusto wrote:
> Ola bons dias!
> Poderia eu estabelecer um roteamento de um bloco v6 tendo como next-hop um V4?! Vi uma documentacao(http://ipv6.br/entenda/enderecamento/) mas fiquei na duvida se poderia :
> Ip route add 2001:db8::/64 via 10.1.1.1

Não.  IPv6 é IPv6, IPv4 é IPv4.

Agora, você *pode* tunelar IPv6 em IPv4... mas o túnel tem que ter duas
pontas, então algo do outro lado tem que "destunelar" de IPv4 para IPv6.

Você pode traduzir IPv6 para IPv4 e vice-versa (NAT64).

Mas não dá para rotear um pacote IPv6 para um nó IPv4.

> Nao entendi direito o trecho que fala:
> 
> "Endereços IPv4-mapeado: representado por0:0:0:0:0:FFFF:wxyz ou
> ::FFFF:wxyz, é usado para mapear um endereço IPv4 em um endereço IPv6 de
> ::128-bit, onde wxyz representa os 32 bits do endereço IPv4, utilizando
> ::dígitos decimais. É aplicado em técnicas de transição para que nós IPv6
> ::e IPv4 se comuniquem. Ex. ::FFFF:192.168.100.1."

Essa é a representação de um endereço IPv4 dentro de uma pilha dupla, que
processa IPv4 e IPv6 ao mesmo tempo.  Os BSDs e Linux funcionam dessa forma.

Dentro do *dual-stack* da caixa, os endereços IPv4 são representados por
::ffff:aa.bb.cc.dd nas APIs nativas dual-stack, tanto para o kernel quanto
para a libc e outras bibliotecas de sistema.

Se seu programa utiliza as APIs novas do dual-stack, ele pode internamente
trabalhar com todas as estruturas de dados para IPv6, e simbolizar IPv4
usando o range ::ffff:0:0/96, que o dual-stack vai comunicar-se em IPv4
de/para esses endereços.  Assim mesmo código vai lidar transparentemente com
IPv4 e IPv6.

Só não pode fazer algo maluco como tentar enviar um pacote de
::ffff:xx.yy.zz.kk para um endereço IPv6 ou vice-versa, porque isso iria
requerer NAT64 para funcionar.  Num casso desses, qualquer pilha dupla que
se preze deveria descartar o pacote (recebeu um pacote desses da rede para
enviar para a aplicação) ou retornar erro (recebeu um pacotes desse da
aplicação para transmitir para a rede).

Tenta usar no Linux com alguma coisa que não seja específica do IPv4/IPv6
(ou seja, não vai funcionar com ping/ping6 porque exigiria NAT64).  Por
exemplo, ssh, telnet, ftp, web (http/https), e olha o que passa no cabo de
rede usando algum sniffer.

Esses endereços são um problema para programas que tem listas de acesso via
IP, e fazem a coisa errada... eles tem que tratar ::ffff:a.b.c.d da mesma
forma que tratam a.b.c.d na hora de pesquisar as ACLs...

-- 
  "One disk to rule them all, One disk to find them. One disk to bring
  them all and in the darkness grind them. In the Land of Redmond
  where the shadows lie." -- The Silicon Valley Tarot
  Henrique Holschuh



More information about the gter mailing list