Como faço para vincular um endereço IPv6 local de link específico diferente do padrão?

Como faço para vincular um endereço IPv6 local de link específico diferente do padrão?

Não tenho 100% de certeza se estou usando a terminologia correta no título, então, se alguém souber melhor do que eu, altere-o.

Estou tentando replicar um script malicioso que vi à solta com o propósito de testar minhas opções de resposta a ele. Ele se liga a vários endereços IP em um IPv6/64 e é então usado para inundar o IRC de centenas ou milhares de endereços IP diferentes. O fato de ser capaz de se vincular a endereços diferentes permite ignorar algumas limitações automáticas por nome de host e causar problemas, apesar das medidas existentes em vigor.

Basicamente, o problema que estou tentando resolver se resume a isso. Estou usando uma máquina de teste executando o Ubuntu Server 13.10:

$ uname -a
Linux sandbox 3.11.0-12-generic #19-Ubuntu SMP Wed Oct 9 16:12:00 UTC 2013 i686 i686 i686 GNU/Linux

Minha rede está configurada da seguinte maneira:

$ ifconfig
eth0      Link encap:Ethernet  HWaddr 00:18:f8:0d:c0:d5
          inet addr:192.168.2.100  Bcast:192.168.2.255  Mask:255.255.255.0
          inet6 addr: fe80::218:f8ff:fe0d:c0d5/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:9184009 errors:0 dropped:751 overruns:0 frame:57518
          TX packets:1143073 errors:12057087 dropped:0 overruns:0 carrier:23942906
          collisions:0 txqueuelen:1000
          RX bytes:1475317803 (1.4 GB)  TX bytes:287318593 (287.3 MB)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:4007947 errors:0 dropped:0 overruns:0 frame:0
          TX packets:4007947 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:663390993 (663.3 MB)  TX bytes:663390993 (663.3 MB)

A inet6linha da listagem eth0 indica que todo o /64 no qual reside o endereço listado está alocado como link local para esta máquina, mas não tenho 100% de certeza de que isso seja verdade. De qualquer forma, o seguinte comando que estou usando para testar a conectividade não está funcionando como esperado:

$ telnet -6 -b fe80::1234:1234:1234:1234%eth0 fe80::218:f8ff:fe0d:c0d5%eth0 6667
telnet: bind: Cannot assign requested address

Estou incorreto ao assumir que todo o /64 está alocado para esta máquina? Caso contrário, como posso configurar algo que permitirá que isso funcione (uma solução somente Host é adequada, pois é apenas para teste)? Caso contrário, o que devo fazer para vincular corretamente a esse endereço?

Responder1

fe80::/64 é o prefixo link-local para toda a LAN Ethernet à qual eth0 está conectado. Para fornecer outro endereço à sua máquina nessa rede, você precisa usar algo como ifconfiginformar à sua pilha IPv6 para usar esse endereço antes de poder telnetvincular-se a ele.

Não me lembro da ifconfigsintaxe exata de cara, mas observe os subcomandos adde aliasna página de manual.

informação relacionada