デフォルト以外の特定のリンク ローカル IPv6 アドレスにバインドするにはどうすればよいですか?

デフォルト以外の特定のリンク ローカル IPv6 アドレスにバインドするにはどうすればよいですか?

タイトルで正しい用語を使用しているかどうか 100% 確信が持てないので、私よりも詳しい方がいらっしゃいましたら修正してください。

私は、実際に見かけた悪意のあるスクリプトを再現して、それに対する対応方法をテストしようとしています。このスクリプトは、IPv6 /64 上の多数の IP アドレスにバインドし、数百または数千の異なる IP アドレスから IRC をフラッドするために使用されます。異なるアドレスにバインドできるため、ホスト名ごとの自動スロットリングを回避でき、既存の対策にもかかわらず問題を引き起こす可能性があります。

基本的に、私が解決しようとしている問題は、次のようになります。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)

eth0 リストの行inet6を見ると、リストされているアドレスが存在する /64 全体がこのマシンにリンク ローカルとして割り当てられていることがわかりますが、これが 100% 正しいかどうかはわかりません。いずれにしても、接続をテストするために使用している次のコマンドは、期待どおりに動作しません。

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

/64 全体がこの 1 台のマシンに割り当てられていると想定するのは間違いでしょうか? そうでない場合、これを機能させるにはどうしたらよいですか (これはテスト目的のみなので、ホストのみのソリューションで問題ありません)? それ以外の場合、このアドレスに正しくバインドするには、代わりに何をすればよいでしょうか?

答え1

fe80::/64 は、eth0 が接続されている Ethernet LAN 全体のリンク ローカル プレフィックスです。マシンにそのネットワーク上の別のアドレスを割り当てるには、バインドするifconfig前に、IPv6 スタックにそのアドレスを使用するように指示するなどして、何かを使用する必要があります。telnet

ifconfig正確な構文はすぐには思い出せませんが、マニュアル ページのaddおよびサブコマンドを参照してください。alias

関連情報