Scapy 不发送具有全局范围目标地址的 IPv6 数据包
Scapy not sending IPv6 packets with global scope destination address
我正在尝试使用 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.
但如果我使用目标设备的 link-本地地址,它就可以工作。我只收到一条警告消息(类似于上面消息中的第一行),并且我在 tcpdump 中看到了数据包。
知道为什么会这样吗?我该如何解决?
发送接口需要有一个全球 IPv6 地址。
具有全局目标地址的数据包也必须具有全局源地址,否则数据包将不会被转发。
我正在尝试使用 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.
但如果我使用目标设备的 link-本地地址,它就可以工作。我只收到一条警告消息(类似于上面消息中的第一行),并且我在 tcpdump 中看到了数据包。
知道为什么会这样吗?我该如何解决?
发送接口需要有一个全球 IPv6 地址。
具有全局目标地址的数据包也必须具有全局源地址,否则数据包将不会被转发。