
タイトルで正しい用語を使用しているかどうか 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