Opened 16 months ago

#3426 new feature-request

Implement support for IPv6 only networks

Reported by: nicoschottelius Owned by:
Priority: minor Milestone: needs verified
Component: Unknown Version: 2.0.0
Keywords: Cc:

Description

Hello,

deluge in IPv6 only environments usually stops working, as many trackers are IPv4 only. Deluge "correctly" fails to connect to the trackers and thus does not find any peers.

This could (and in my opinion) should be easily solved: many, if not most, IPv6 only networks have a NAT64 service deployed that allows access to the IPv4 world via IPv6.

For instance in the network I am right now, 2a0a:e5c0:2:10::/96 maps the whole IPv4 Internet.

This NAT64 prefix could easily be dectected using the ipv4only.arpa domain [0] as follows:

  • Detect if deluge is currently running IPv6 only (get addresses, if no IPv4 -> IPv6 only)
  • Resolve ipv4only.arpa AAAA record -> if there is an answer, DNS64 is present
  • Extract the prefix from it (some custom code, probably just subnetting a /96)
  • Reach out to trackers via IPv4 and IPv6 in parallel (happy eyeballs) - remember which answered first and re-use next time until a timeout

At the last step, one might need to construct the IPv6 address using the detected NAT64 prefix + IPv4 address of the tracker, if the tracker is not a DNS name.

In a later stage the returned addresses from the tracker(s) should be modified similarly.

I think the patches/changes required to deluge would not be very big change, something on the line of 1 method to get the prefix, 1 method to do happy eyeballs, a state somewhere and 1 method to do the ip address modifications.

Would you be open for such a patch and/or what are the guidelines / thoughts for IPv6 only support in deluge?

[0] https://tools.ietf.org/html/draft-ietf-behave-nat64-discovery-heuristic-05

Change History (0)

Note: See TracTickets for help on using tickets.