我正在尝试使用scapy发送IPv6数据包。我真的不在乎使用什么更高级别的协议,所以我只是发送:
send(IPv6(dst="2001:db9:1::4"))
我有一条通往该目的地的路线,正在运行ip -6 route show
我看到了:
2001:db9:1::4 dev vt0 metric 1024
如果我从命令行发送ping请求,我可以在目标设备的tcpdump中看到它。但是如果我发送带有scapy的IPv6数据包,我会得到这些消息,而且我在tcpdump中看不到任何内容:
WARNING: No route found for IPv6 destination 2001:db9:1::4 (no default route?)
WARNING: No route found for IPv6 destination 2001:db9:1::4 (no default route?)
WARNING: more No route found for IPv6 destination 2001:db9:1::4 (no default route?)
.
Sent 1 packets.
但是如果我使用目标设备的链接本地地址,它就可以工作。我只收到一条警告消息(类似于上面消息中的第一行),我在tcpdump中看到了数据包。
知道为什么会发生这种情况,我该如何解决?
答案 0 :(得分:0)
发送接口需要具有全局IPv6地址。
具有全局目标地址的数据包也必须具有全局源地址,否则将不会转发数据包。