¿Cómo me vinculo a una dirección IPv6 local de enlace específica que no sea la predeterminada?

¿Cómo me vinculo a una dirección IPv6 local de enlace específica que no sea la predeterminada?

No estoy 100% seguro de estar usando la terminología correcta en el título, así que si alguien sabe mejor que yo, modifíquelo.

Estoy intentando replicar un script malicioso que he visto en la naturaleza con el fin de probar mis opciones para responder. Se vincula a un montón de direcciones IP en un IPv6/64 y luego se usa para inundar IRC desde cientos o miles de direcciones IP diferentes. El hecho de que sea capaz de vincularse a diferentes direcciones le permite evitar algunas limitaciones automáticas por nombre de host y causar problemas a pesar de las medidas existentes.

Básicamente, el problema que intento resolver se reduce a esto. Estoy usando una máquina de prueba que ejecuta 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

Mi red está configurada de la siguiente manera:

$ 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)

La inet6línea del listado eth0 me indica que todo el /64 en el que reside la dirección indicada está asignado como enlace local a esta máquina, pero no estoy 100% seguro de que esto sea cierto. En cualquier caso, el siguiente comando que estoy usando para probar la conectividad no funciona como esperaba:

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

¿Me equivoco al suponer que todo el /64 está asignado a esta máquina? Si no es así, ¿cómo puedo configurar algo que permita que esto funcione (una solución de solo host está bien ya que es solo para pruebas)? De lo contrario, ¿qué debería hacer para vincularme correctamente a esta dirección?

Respuesta1

fe80::/64 es el prefijo de enlace local para toda la LAN Ethernet a la que está conectado eth0. Para darle a su máquina otra dirección en esa red, necesita usar algo como ifconfigdecirle a su pila IPv6 que use esa dirección antes de que pueda decirle telnetque se vincule a ella.

No recuerdo la ifconfigsintaxis exacta que se me viene a la cabeza, pero miro los subcomandos addy aliasen la página de manual.

información relacionada