I'm trying to send IPv6 packets with scapy. I don't really care what higher-level protocol is used, so I simply send:
send(IPv6(dst="2001:db9:1::4"))
I have a route toward that destination, running ip -6 route show
I see:
2001:db9:1::4 dev vt0 metric 1024
If I send a ping request from the command line, I can see it in tcpdump in the destination device. But if I send the IPv6 packet with scapy, I get these messages, and I don't see anything in 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.
But it works if I use the link-local address of the destination device. I only get one warning message (similar to the first line in the messages above), and I see the packet in tcpdump.
Any idea why this happens, and how can I fix it?