libp2p / libp2p/go-libp2p

autonat: provide different reachability states and callbacks for IPv6 and IPv4

Open
#2,466 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

kind/enhancement status/blocked
Dominant language
Go
Stars
6.9k
Forks
1.3k
Avg merge
13d 21h
Merged PRs (30d)
1

Description

The default IPv6 setup on buisness and home ISP is to have a statefull NAT preventing non solicited inbound IPv6 packets.
However a good share of them also support upnp but only for ipv4.

This lead to missleading autonat results that tell us:
> I'm reachable !!

Even tho you are only really reachable on IPv4. This is an issue because I'm trying to get Kubo working on IPv6 networks, because the sad reality is that right now things are quite broken if you do not have an ipv4 uplink.
Likely we are gonna have to split the current DHT in an IPv4 and IPv6 section.

Contributor guide

No contributing guide indexed for this repository

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 autonat's current reachability result and callback flow, focusing on how IPv4 and IPv6 addresses are handled. Define what separate per-family states and callbacks should report, then verify that results distinguish IPv4-only reachability from IPv6 reachability and remain usable by Kubo and the DHT.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
networking
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
32/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.