oxidecomputer / oxidecomputer/opte

Make sure we can deal with ICMP DUs and TEs

Open
#272 0 comments 0 reactions 0 assignees View on GitHub

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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.