support rfc8950 nexthop in Linux routing table
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 12.6k
- Forks
- 2.2k
- Avg merge
- 1d 4h
- Merged PRs (30d)
- 56
Description
Brief description
An IPv6 only link can transparently transport IPv4 packets (no IPv4 configured on link) using a IPv6 nexthop's MAC
example setup https://ungleich.ch/u/blog/how-to-route-ipv4-via-ipv6/
$ ip route
default via inet6 fe80::21b:21ff:febb:6934 dev wlp0s20f3 src 169.265.0.30
Environment
- Scapy version:
2.4.4 - Python version:
3.8.6 - Operating System:
Centos 8
How to reproduce
send IPv4 packet at L3 with sr()
Actual result
scapy doesn't properly set up L2, packets never got sent (silent failure)
Expected result
based on routing table, scapy automatically sets Ether()
Related resources
https://tools.ietf.org/html/rfc8950
https://ungleich.ch/u/blog/how-to-route-ipv4-via-ipv6/
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start at Scapy's sr() path for sending an IPv4 packet at layer 3, then inspect how the Linux routing table and Ether() setup determine the layer-2 destination. Reproduce the IPv4-over-IPv6 nexthop example from RFC 8950 and confirm that packets are sent with the expected Ethernet setup instead of failing silently.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- linux, python
- Domain
- networking
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100