Как привязать к определенной ссылке локальный IPv6-адрес, отличный от адреса по умолчанию?

Как привязать к определенной ссылке локальный IPv6-адрес, отличный от адреса по умолчанию?

Я не на 100% уверен, что использую правильную терминологию в названии, поэтому, если кто-то знает лучше меня, пожалуйста, исправьте ее.

Я пытаюсь воспроизвести вредоносный скрипт, который я видел в дикой природе, чтобы протестировать свои варианты реагирования на него. Он привязывается к куче IP-адресов на IPv6 /64 и затем используется для затопления IRC с сотен или тысяч различных IP-адресов. Тот факт, что он может привязываться к различным адресам, позволяет ему обходить некоторые автоматические ограничения по именам хостов и вызывать проблемы, несмотря на существующие меры.

В принципе, проблема, которую я пытаюсь решить, сводится к следующему. Я использую тестовую машину под управлением 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

Моя сеть настроена следующим образом:

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

Строка inet6листинга eth0 указывает мне, что весь /64, на котором находится указанный адрес, выделен как link-local для этой машины, но я не уверен на 100%, что это правда. В любом случае, следующая команда, которую я использую для проверки подключения, не работает так, как я ожидал:

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

Я не прав, предполагая, что весь /64 выделен этой одной машине? Если это не так, как мне настроить что-то, что позволит этому работать (решение Host-only подойдет, так как это только для тестирования)? В противном случае, что мне следует сделать вместо этого, чтобы правильно привязаться к этому адресу?

решение1

fe80::/64 — это префикс локальной связи для всей локальной сети Ethernet, к которой подключен eth0. Чтобы дать вашей машине другой адрес в этой сети, вам нужно использовать что-то вроде того, ifconfigчтобы указать вашему стеку IPv6 использовать этот адрес, прежде чем вы сможете telnetпривязаться к нему.

Я не помню точный ifconfigсинтаксис наизусть, но посмотрите на подкоманды addи aliasна странице руководства.

Связанный контент