oxidecomputer / oxidecomputer/opte
Make sure we can deal with ICMP DUs and TEs
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 77
- Forks
- 11
- Avg merge
- 9d 20h
- Merged PRs (30d)
- 8
Description
Make sure we can deal with ICMP Destination Unreachable and Time Exceeded coming back to the guest. We need to make sure this works both for 1:1 NAT and SNAT.
This could be tricky because the ICMP DU/TE could come back for all types of traffic, not just ICMP Echo/Reply. For example, I believe a TCP SYN to an unreachable destination would result in a DU and we need to make sure that can make it through the inbound path (unless the firewall is explicitly configured to drop inbound ICMP). This could actually be tricky to do because we might want to make sure the DU is in response to a valid flow, which means we might want the Rule to be able to predicate against the TCP flows table or predicate against the UFT. Furthermore, we need to rewrite the ICMP DU body so that its IP matches that of the expected VPC (private) IP, otherwise the guest will see its external IP and have no idea what this DU is in relation to. This also means that for SNAT we need to remap the port as well.
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 by tracing the inbound ICMP path and the existing 1:1 NAT and SNAT handling; inspect how TCP flows and the UFT could validate related traffic. Done means ICMP Destination Unreachable and Time Exceeded messages for relevant traffic reach the guest, with embedded IP and port information rewritten correctly and firewall drops respected.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- networking
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100