-
-
Notifications
You must be signed in to change notification settings - Fork 2.2k
Closed
Description
Brief description
Cannot send an IPv6 packet on a specific interface using iface argument of send
Environment
- Scapy version: 2.4.4
- Python version: 3.8.5
- Operating System: Manjaro (up-to-date)
How to reproduce
Install vmware, vmnet1 should be up. enp42s0 is the default interface. Fire up wireshark and sniff on enp42s0.
Actual result
>>> send(IPv6(dst="fe80::2d85:c733:b1:eaf9"), iface="enp42s0")
WARNING: Mac address to reach destination not found. Using broadcast.
.
Sent 1 packets.Works, wireshark reports an IPv6 packet.
>>> send(IPv6(dst="fe80::2d85:c733:b1:eaf9"), iface="vmnet1")
WARNING: Mac address to reach destination not found. Using broadcast.
.
Sent 1 packets.Doesn't work, the packet is actually sent to enp42s0, we can see it in wireshark.
Expected result
The packet should be sent to vmnet1.
Related resources
If you remove enp42s0 and try again, it works, and the packet is sent to vmnet1 correctly and appears in wireshark.
>>> conf.route6.remove_ipv6_iface("enp42s0")
>>> send(IPv6(dst="fe80::2d85:c733:b1:eaf9"), iface="vmnet1")
WARNING: The conf.iface interface (enp42s0) does not support IPv6! Using vmnet1 instead for routing!
WARNING: The conf.iface interface (enp42s0) does not support IPv6! Using vmnet1 instead for routing!
WARNING: more The conf.iface interface (enp42s0) does not support IPv6! Using vmnet1 instead for routing!
WARNING: Mac address to reach destination not found. Using broadcast.
.
Sent 1 packets.It seems that the packet is always sent to the default route6, even when iface is specified. Is it a bug or am I doing something wrong 🤔 ?
I can't find a way to create a default scapy internal route6...
Thanks 👍