如何綁定到預設鏈路本地 IPv6 位址以外的特定鏈路本地 IPv6 位址?

如何綁定到預設鏈路本地 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

fe80::/64 是 eth0 連接到的整個乙太網路 LAN 的連結本地前綴。要為您的電腦提供該網路上的另一個位址,您需要使用類似的方法ifconfig來告訴您的 IPv6 堆疊使用該位址,然後才能告訴telnet它綁定到它。

我不記得確切的ifconfig語法,但請查看手冊頁中的add和子命令。alias

相關內容