wiki:org/roadmaps/Tor/IPv6Features

Version 10 (modified by teor, 22 months ago) (diff)

Fill in the structure of the rest of the page

IPv6 Feature Matrix

This is a list of core tor network features, and their support for IPv6.

Statuses:

  • Auto: this works automatically in the default configuration.
  • Manual: this requires manual config on the client or relay.
  • Workaround: this works, but we could make it work much better.
  • Broken: this should work, but it doesn't.
  • Never: this can't work, or we won't implement it any time soon.

Each manual, workaround, or broken feature should also have a ticket.

Entry Nodes

What does an entry node need to do to use each IP version for its ORPort? (There are no IPv6 DirPorts.)

Entry Node IPv4 Only Dual-Stack IPv6 Only
Publicly Routable IPv4 Publicly Routable IPv6 Publicly Routable Publicly Routable
Authority Manual (Address IPv4) Manual (Address IPv4) Manual (ORPort IPv6) Needs Research #4565
Relay Auto, Static or Dynamic Auto, Static or Dynamic Manual (ORPort IPv6) #5940 Needs Research #4565
Bridge Auto, Static or Dynamic Auto, Static or Dynamic Manual (ORPort IPv6) #5940, Private/NAT IPv4 #4847 Broken #23824

Client Connection to Entry Nodes

What does a client need to do to bootstrap off or connect to an entry node?

Entry Node IPv4 Only Dual-Stack IPv6 Only
IPv4 IPv6
Authority Dir Auto Auto Manual (ClientPreferIPv6 1) #17835 Manual (ClientUseIPv4 0) #17835
Fallback Dir Auto Auto Manual (ClientPreferIPv6 1) #17835 Manual (ClientUseIPv4 0) #17835
Guard Dir Auto Auto Manual (ClientPreferIPv6 1) #17835 Manual (ClientUseIPv4 0) #17835
Guard microdesc Auto Auto Workaround #19610, #20916 Workaround #19610, #20916
Guard OR Auto Auto Manual (ClientPreferIPv6 1) #17835, #17217 Manual (ClientUseIPv4 0) #17835, #17217

Bridge clients set UseBridges 1, and configure bridge lines using Bridge ....

Entry Node IPv4 Only Dual-Stack IPv6 Only
IPv4 IPv6
Bridge Auth Dir Auto (Bridge IPv4) Auto (Bridge IPv4) Unknown Unknown
Bridge Dir Auto (Bridge IPv4) Auto (Bridge IPv4) Auto (Bridge IPv6 or ClientPreferIPv6ORPort) Auto (Bridge IPv6 or ClientPreferIPv6ORPort)
Bridge OR Auto (Bridge IPv4) Auto (Bridge IPv4) Auto (Bridge IPv6 or ClientPreferIPv6ORPort) Auto (Bridge IPv6 or ClientPreferIPv6ORPort)
Bridge PT Auto (Bridge IPv4) Auto (Bridge IPv4) Workaround (Bridge IPv6 or ClientPreferIPv6ORPort), #7961 Workaround (Bridge IPv6 or ClientPreferIPv6ORPort) #7961

Reachability Checks

Exit Connections

Onion Service Protocol

Related Tickets

This is a list of all open IPv6 tickets:

Ticket Summary Keywords Status Owner Type Priority
#4565 Enable relays to talk to other relays via IPv6 ipv6 tor-relay needs-design assigned ln5 project Medium
#4806 Detect and warn when running IPv6-using client without IPv6 address privacy ipv6, tor-client, nickm-patch, intro, privacy needs_revision enhancement High
#4847 Fix IPv6 bridges with a private/dynamic IPv4 address ipv6, tor-bridge assigned ln5 defect Medium
#5298 Relay does not pick the right IP addr of local node when multiple interfaces are available tor-relay, ipv6, reachability, 034-triage-20180328, 034-removed-20180328 new defect Medium
#5532 Reconstruct and merge 4561 leftover code that adds wrappers for address-access functions tor-relay ipv6 multihome addressing needs_revision task Medium
#5788 Add support for relays without an IPv4 address ipv6, tor-relay non-clique new ln5 enhancement Medium
#5940 Figure out own IPv6 address ipv6, tor-relay, lorax new enhancement Medium
#6772 Fall back to alternative OR or Dir port if the current fails ipv6 tor-client tor-hs single-onion robustness address-handling new enhancement Medium
#6878 Make outbound DNS requests honor IPv6 OutboundBindAddress ipv6, exit, tor-relay dns needs-libevent-change new enhancement Medium
#6939 Missing IPv6 ORPort reachability check ipv6, tor-relay, ipv6-relay, self-test, 034-triage-20180328, 034-removed-20180328 needs_revision defect High
#7193 Tor's sybil protection doesn't consider IPv6 ipv6, intro, tor-dirauth security sybil new enhancement Medium
#7478 Allow routersets to include/exclude nodes by IPv6 address tor-client, ipv6 needs_revision enhancement High
#7482 Discard nonsense in address.c about v4-mapped addresses tor-client, ipv6 refactor code-removal needs_revision defect Medium
#7961 Publish transports that bind on IPv6 addresses tor-bridge, pt, ipv6 anticensorship needs-spec refactor needs_information defect Medium
#11211 Multiple ServerTransportListenAddr entries should be allowed per transport. tor-bridge, pt, needs-spec, tor-pt, bridgedb-parsers, ipv6, triaged-out-20170124 assigned enhancement Medium
#11360 Listen on IPv6 by default for SocksPort *:Port tor-client, ipv6, torrc, ui, intro new enhancement Medium
#11625 Tor DNSPORT returns NXDOMAIN for AAAA records? tor-client, dns, exit-node-choice, ipv6 new defect Medium
#12138 No IPv6 support when suggesting a bindaddr to a PT tor-pt, tor-bridge ipv6 new enhancement Medium
#13112 Some things are probably broken when we advertise multiple ORPorts and only some are reachable tor-relay, reachability, self-testing, needs-design, ipv6, tor-bridge, 034-triage-20180328, 034-removed-20180328, teor-unreached-2019-03-08, teor-backlog-revise needs_revision defect Medium
#17011 chutney doesn't verify using IPv6 addresses SponsorS, testing, ipv6, tor-tests-integration new defect High
#17013 Does chutney need to test various rare IPv6/IPv4 combinations? testing, SponsorS, tor-tests-integration, ipv6 new enhancement Medium
#17217 Change clients to automatically use IPv6 if they can bootstrap over it ipv6 tor-client robustness censorship-resistance assigned neel enhancement Low
#17230 Local DNS resolver will not resolve AAAA records with fc00::/8 prefixes. tor-client tor-relay cjdns ipv6 needs-insight maybe-bad-idea new defect Medium
#17636 Can a single IPv6 bridge failure stop Tor connecting? tor-client tor-bridges, ipv6 needs-diagnosis new defect Medium
#17787 Improve address detection on multihomed relays tor-relay ipv6 multihome address-detection new defect Low
#17811 Tor Clients on IPv6 ipv6 tor-client master-ticket new task High
#17835 Make ClientPreferIPv6ORPort smarter tor-client, ipv6, 040-deferred-201915 assigned neel enhancement Medium
#17845 Add unit tests for IPv6 relay descriptors ipv6, tor-tests-coverage, tor-tests-unit, tor-relay new enhancement Medium
#17952 Make address family search via ioctl more accurate on obscure platforms ipv6, easy, lorax tor-relay address-detection new enhancement Very Low
#18674 Tor rejects [::]/8 and [::]/127 explicitly, but the latter is sometimes eliminated tor-relay exit-policy ipv6 new defect Low
#19487 Meek and ReachableAddresses ipv6, bridges, pluggable-transports, regression, 032-unreached, meek needs_revision dcf defect Medium
#20067 Chutney should verify IPv6 SOCKSPorts testing, ipv6 new enhancement Medium
#20068 Chutney tests for IPv6-only bridge clients ipv6 new defect Medium
#20071 Tor clients need 4 routers when connecting via IPv6, but only 3 using IPv4 testing, ipv6, chutney, tiny-network, tor-client, needs-diagnosis new defect Low
#20218 Fix and refactor and redocument routerstatus_has_changed ipv6, 029-proposed, tor-control, easy, spec-conformance, review-group-31, 034-triage-20180328, 034-removed-20180328 needs_revision defect Medium
#21003 extend_info_describe should list IPv6 address (if present) easy, intro, ipv6, logging, fast-fix, no-backport needs_review enhancement Medium
#21043 Make ClientUseIPv4 and ClientUseIPv6 equivalent to ReachableAddresses ipv6, tor-client reachableaddresses torrc configuration new defect Medium
#21310 Exits should tell clients when they are connecting to an IPv6-only hostname ipv6, 034-triage-20180328, 034-removed-20180328 needs_revision defect Medium
#21311 Exits should resolve IPv6 addresses, regardless of IPv6Exit ipv6, 031-deferred-20170425, 033-triage-20180320, 033-removed-20180320 needs_information defect Medium
#21355 Warn when IPv6Exits have no ipv6-policy line in their descriptor ipv6 easy intro log tor-relay tor-dirauth new defect Medium
#21397 Tor TransparentProxy documentation: add IPv6 support / port to nftables tor-doc wiki nftables ipv6 transproxy tor-client new enhancement Medium
#21499 client_dns_incr_failures while passing not hostname but only IP tor-client, ipv6, triaged-out-20170308, annoying dns new defect Medium
#21524 private:* contains valid IPv6 addresses ipv6 exit-policies tor-relay new defect Medium
#21902 evdns adds default DNS servers, but chutney wants a consistent environment chutney-wants, ipv6, tor-relay dns exit testing new defect Medium
#22469 tor should probably reject "0x00" in port range specifications tor-relay torrc configuration intro ipv6 new defect Medium
#22697 Tor should mandatory require brackets around ipv6 address tor-client tor-relay parsing ipv6 compatibility-issues new enhancement Medium
#23493 IPv6 v3 Onion Services support v3-onion-service-feature-parity-can, prop224, tor-hs, single-onion, ipv6, network-team-roadmap-august new defect Medium
#23507 Handle unreachable addresses on v3 single onion services by using a 3 hop path v3-onion-service-feature-parity, prop224, tor-hs, single-onion, ipv6, network-team-roadmap-august assigned teor defect Medium
#23818 Make v3 single onion services retry failed connections with a 3-hop path v3-onion-service-feature-parity, prop224, tor-hs, single-onion, ipv6, network-team-roadmap-august assigned teor defect Medium
#23819 Support IPv6 link-local interface addresses ipv6, link-local, 034-triage-20180328, 034-removed-20180328 needs_revision enhancement Medium
#23824 Make IPv6-only bridges work ipv6, tor-bridge new enhancement Medium
#23975 Make node_get_pref_ipv6_orport() check addresses in the right order ipv6, review-group-29, 034-triage-20180328, 034-removed-20180328 assigned defect Medium
#24000 circuit_send_intermediate_onion_skin() and extend_cell_format() should check for IPv6 ipv6, 034-triage-20180328, merge-deferred, 035-triaged-in-20180711, 040-deferred-20190220 needs_revision defect Medium
#24181 Put IPv6 and unrecognised link specifiers in onion service EXTEND cells prop224, tor-hs, single-onion, ipv6, 034-triage-20180328, 034-removed-20180328 assigned defect Medium
#24264 Enable IPv6 reachability testing for the Bridge Authority dirauth, bridgeauth, ipv6, 040-deferred-201915 assigned task High
#24344 Add an "UnreachableIPv6" flag to relays in consensus health IPv6 new tom enhancement Medium
#24403 Propose and implement IPv6 ORPort reachability checks on relays ipv6, tor-relay, 034-triage-20180328, 034-removed-20180328 assigned task Medium
#24404 Propose a relay protover that allows IPv6 extends needs-proposal, ipv6, tor-relay, 034-triage-20180328, 034-removed-20180328 new enhancement Medium
#24405 Implement relay IPv6 extends with proposed protover needs-proposal, ipv6, tor-relay, 034-triage-20180328, 034-removed-20180328 new enhancement Medium
#24406 Implement IPv6 ORPort reachability fallback ipv6, tor-relay, 034-triage-20180328, 034-removed-20180328 new enhancement Medium
#24451 Put IPv6 link specifiers in client EXTEND cells ipv6, tor-client, 034-triage-20180328, 034-removed-20180328 assigned enhancement Medium
#24535 Document which address functions we should use, and when ipv6, doc, 034-triage-20180328, 034-removed-20180328 new defect Medium
#24546 Use tor_addr_is_v4() rather than family, or reject all v6-mapped IPv4 addresses tor-dirauth, ipv6, 033-triage-20180320, 033-removed-20180320, 035-triaged-in-20180711, 040-deferred-20190220 needs_revision defect Medium
#24603 Update control spec to allow decorated IPv6 addresses in reachability events ipv6, tor-relay, tor-spec, 034-triage-20180328, 035-removed-20180711 needs_information defect Medium
#24604 Decorate IPv6 addresses in connection_t->address to avoid ambiguity ipv6, tor-relay, 034-triage-20180328, 034-removed-20180328 new defect Medium
#24731 Stop checking routerinfos for addresses when we use microdescs for circuits ipv6, tor-relay, 034-triage-20180328, 034-removed-20180328 new defect Medium
#24732 Remove unused IPv6 DirPort code ipv6, tor-relay, 034-triage-20180328, 035-triaged-in-20180711, 040-deferred-20190220 needs_revision enhancement Medium
#24735 Always check for the null address when calling address functions ipv6, tor-relay, 034-triage-20180328, 034-removed-20180328 needs_revision defect Medium
#24777 Make relays try IPv6 ORPorts for directory uploads and downloads ipv6, tor-relay, 034-triage-20180328, 034-removed-20180328 new defect Low
#24833 DNS not reliably returning AAAA records ipv6, tor-client, tor-exit, tor-dns, 034-triage-20180328, 034-removed-20180328 new enhancement Medium
#24867 Do relays keep more than one canonical connection when they extend over IPv6? ipv6, tor-relay, 034-triage-20180328, 034-removed-20180328 new defect Medium
#25784 Misleading error message when asking for IPv6 in a network with no IPv6-capable exits easy, ipv6 new defect Medium
#26436 Check uses of CMP_SEMANTIC for IP addresses tor-dirauth, ipv6, 033-triage-20180320, 033-removed-20180320 new defect Medium
#26646 add support for multiple OutboundBindAddressExit IP(ranges) needs-proposal, tor-exit, ipv6, censorship new enhancement Medium
#26664 When an exit tells a client about an IPv6-only hostname, the client should choose another IPv6 exit ipv6 tor-client tor-exit new defect Medium
#27284 Check IPv6 exit policies on microdescs ipv6, 040-deferred-20190220, teor-unreached-2019-03-08 assigned defect Medium
#27491 Prefer IPv4 or IPv6 based on the number of failures needs-proposal, ipv6 assigned neel enhancement Medium
#27647 When randomly choosing IPv4 or IPv6, set IPv6 probability based on IPv6 weight tor-client ipv6 assigned neel enhancement Medium
#27648 Stop setting the IPv6 preferred flag on nodes tor-client ipv6 assigned neel enhancement Medium
#27736 Make sure that Tor doesn't build an IPv4 and an IPv6 connection to the same relay tor-client ipv6 assigned defect Medium
#27753 Improve visibility of IPv6 related settings ipv6, tor-relay assigned enhancement Low
#28057 When randomly choosing IPv4 or IPv6, log better IPv6 preference info tor-client, ipv6, postfreeze-ok, 040-deferred-20190220 new enhancement Medium
#28653 Specify IPv4 and IPv6 weight calculations in dir-spec.txt tor-client ipv6 tor-spec new enhancement Medium
#28919 Log IPv4 and IPv6 connections in Tor's heartbeat message ipv6, easy, intro new defect Medium
#29113 Add IPv4/IPv6 connections to the heartbeat ipv6, tor-relay, tor-dirauh new enhancement Medium
#29570 Enforce mutually exclusive logic for IPv6 ORPort flags tor-relay, ipv6, reachability, needs-proposal-or-tor-dev-email new defect Medium
#29801 Write a proposal for IPv6 "Happy Eyeballs" on Tor clients ipv6, prop299 needs_review neel enhancement Medium
#30134 reEnable IPv6 routing by Orbot add back Route to handle IPv6 Orbot IPv6 new n8fr8 defect High
#30182 IPv6 Exits succeed on Travis Linux, but Travis Linux doesn't support IPv6 chutney-ci, ipv6 new defect Medium
#30279 Test IPv6-only v3 onion services in Chutney's CI, once homebrew tor stable supports them merge-after-041-stable-in-homebrew, tor-hs, ipv6, single-onion, fast-fix, chutney-ci, network-team-roadmap-2019-Q1Q2, 041-deferred-20190530 needs_review teor enhancement Low
#30409 Some of our tests require internet connectivity / an IPv4 stack tor-ipv6, tor-hs, tor-tests, tor-ci needs_information defect Medium
#30954 Address torrc option is ignored if set second time for the IPv6 address ipv6 new enhancement Low
#30968 Refactor unit test asserts so they log context refactor, technical-debt, ipv6, tor-dns, sponsor-31-maybe new enhancement Medium
#31039 Review proposal 306: IPv6 "Happy Eyeballs" for Tor clients ipv6, prop299 needs_revision task Medium
#31088 Check IPv4 and IPv6 private addresses in descriptors, first hops, and extends ipv6, tor-relay, tor-client, tor-dirauth needs_review neel defect Medium
#31413 Check for null IPv6 addresses/extends in circuit_extend() ipv6, tor-relay new defect Medium