mobile-shell / mobile-shell/mosh
Support roaming between NAT64 and native IPv4 networks
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 14.5k
- Forks
- 865
- PR merge metrics
- No merged PRs in 30d
Description
I've recently noticed that some wifi deployments are now NAT64 with with DNS64, meaning they have no native IPv4 connectivity, and the NAT64 gateway provides the IPv6 to IPv4 translation.
In particular, when roaming between a native IPv4 network to a NAT64 IPv6 network, mosh never is able to reconnect to an IPv4 server, presumably because all of the sendmsg calls get EHOSTUNREACH (No route to host). Similarly, if the mosh session is started on such a network then roamed to a native IPv4 network, the same applies.
Mosh should detect such networks and automatically switch between the native IPv4 address and the NAT64 address. RFC 7050 specifies how to detect such networks: a DNS AAAA query for ipv4only.arpa , which normally points to 192.0.0.170 and 192.0.0.171, lets you discover the NAT64 prefix.
Contributor guide
No contributing guide indexed for this repository
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 reconnect path around the sendmsg calls that fail with EHOSTUNREACH during roaming. Read RFC 7050 and examine how the session currently discovers and selects the server address. Done means a session can switch between the native IPv4 address and the NAT64-derived address when roaming in either direction.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- networking
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100