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

0

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?

    
por Wug 03.12.2013 / 21:14

1 resposta

0

fe80 :: / 64 é o prefixo link-local para toda a LAN Ethernet à qual a eth0 está conectada. Para dar à sua máquina outro endereço nessa rede, você precisa usar algo como ifconfig para informar à pilha do IPv6 para usar esse endereço antes de poder informar telnet para vincular a ela.

Não me lembro da sintaxe exata de ifconfig da minha cabeça, mas veja os subcomandos add e alias na página man.

    
por 03.12.2013 / 21:27