Não tenho 100% de certeza de que estou usando a terminologia correta no título, por isso, se alguém souber melhor do que eu, por favor, faça a alteração.
Estou tentando replicar um script mal-intencionado que vi em estado natural para testar minhas opções para responder a ele. Ele se liga a um monte de 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 vincular-se a endereços diferentes permite ignorar algumas restrições automáticas de nomes de hosts 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 é 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 linha inet6
da listagem eth0 indica que o / 64 inteiro no qual o endereço listado reside é alocado como local de link para essa máquina, mas não tenho 100% de certeza de que isso é verdade. Em qualquer caso, o seguinte comando que estou usando para testar a conectividade está falhando ao funcionar 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 em assumir que o / 64 inteiro está alocado para essa máquina? Se não for, como posso configurar algo que permitirá que isso funcione (uma solução somente de host é adequada, já que isso é apenas para testes)? Caso contrário, o que devo fazer ao invés de vincular corretamente a este endereço?