arduino / arduino/Arduino

Arduino IDE cannot download board definitions on IPv6-only network (NAT64 / DNS64)

Open
#11,179 0 comments 1 reaction 0 assignees View on GitHub
Component: Board/Lib Manager Type: Bug
Dominant language
Java
Stars
14.6k
Forks
7k
PR merge metrics
No merged PRs in 30d

Description

Arduino IDE cannot download board definitions on IPv6-only network (NAT64 / DNS64) on Windows. I will test Linux when I have more time and will update you on Linux. This IPv6-only network works for all applications which support proper networking API calls. It provides access to IPv4 services by synthesising an AAAA record for all domain names without one, and then using the NAT64 to exchange IPv6 <-> IPv4 packets on the network boundary. If I move it onto a different network segment with dual-stack IPv4 / IPv6, then the downloads work using native IPv4.

This can be for a couple of reasons:
- IPv4 hardcoded literals will fail on IPv6-only network - should always use DNS to resolve addresses
- Legacy networking API calls which cannot handle any address family

This is a ticking time bomb, as IPv6 adoption grows. https://www.google.com/intl/en/ipv6/statistics.html
ISPs which offer IPv6-only will grow from being rare to becoming common. You will alienate these users, and for what? Holding onto legacy API calls?

Please strongly consider testing the Arduino IDE out on an IPv6-only network, and fix any issues which arise from network connectivity.

You can get an IPv6-only network with which to test:
- Using an Apple Mac to simulate one: https://developer.apple.com/library/archive/documentation/NetworkingInternetWeb/Conceptual/NetworkingOverview/UnderstandingandPreparingfortheIPv6Transition/UnderstandingandPreparingfortheIPv6Transition.html
- Get a dual-stack IPv4 / IPv6 connection (very common, particularly on cellular networks), disable IPv4 in the network adapter, and set the IPv6 DNS to one of the server addresses obtained from https://nat64.net/

Thank you!

Contributor guide

Open the contributing guide

Research direction

Reproduce the Arduino IDE 1.x board-definition download on Windows using an IPv6-only NAT64/DNS64 network, then compare it with the reported working dual-stack setup. Trace the board-definition download path and networking behavior; done means downloads work without requiring native IPv4. No source files or tests are named in the issue.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
desktop, networking
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.