Opened 8 months ago

Last modified 4 months ago

#33220 assigned enhancement

Prop 311: 3. Allow Relay IPv6 Extends

Reported by: teor Owned by: teor
Priority: Medium Milestone:
Component: Core Tor/Tor Version:
Severity: Normal Keywords: ipv6, prop311, network-team-roadmap-2020Q2, 044-deferred
Cc: Actual Points:
Parent ID: #33048 Points: 3
Reviewer: Sponsor: Sponsor55-must

Description

Relays may make a new connection over IPv6 when:

  • they have an IPv6 ORPort,
  • there is no existing authenticated connection to the requested relay, and
  • the extend cell contains an IPv6 ORPort.

If these conditions are satisfied, and the extend cell also contains an
IPv4 ORPort, we propose that the relay choose between an IPv4 and an IPv6
connection at random.

If the extend cell does not contain an IPv4 ORPort, we propose that the
relay connects over IPv6. (Relays should support IPv6-only extend cells,
even though they are not used to test relay reachability in this proposal.)

A successful IPv6 connection also requires that:

  • the requested relay has an IPv6 ORPort.

But extending relays must not check the consensus for other relays' IPv6
information. Consensuses may be out of date, particularly when relays are
doing reachability checks for new IPv6 ORPorts.

From proposal 311, section 3:
https://gitweb.torproject.org/torspec.git/tree/proposals/311-relay-ipv6-reachability.txt#n112

Child Tickets

TicketTypeStatusOwnerSummary
#33816taskneeds_reviewneelFill in missing IPv6 addresses in extend cells
#33819tasknewMake clients and bridges send IPv6 extends by default in Tor 0.4.5

Change History (5)

comment:1 Changed 7 months ago by teor

To make these changes, we will need to modify:

  • Most functions in circuitbuild_relay.c (a new file introduced by #33633)
  • check_extend_cell() in onion.c

We should also modify the legacy EXTEND cell code:

  • extend_cell_from_extend2_cell_body() in onion.c

Even though all relays that support IPv6 extends should be using extend2 cells.

comment:2 Changed 7 months ago by gaba

Keywords: network-team-roadmap-2020Q2 added

comment:3 Changed 7 months ago by gaba

Add s55 tickets to the 2020 Q2 roadmap for the network team.

comment:4 Changed 4 months ago by nickm

Keywords: 044-deferred added
Milestone: Tor: 0.4.4.x-finalTor: unspecified

Bulk-remove tickets from 0.4.4. Add the 044-deferred label to them.

comment:5 Changed 4 months ago by nickm

Milestone: Tor: unspecified

Bulk-move prop311 and prop312 to 0.4.5

Note: See TracTickets for help on using tickets.