IPv6 introducer updates

This commit is contained in:
zzz
2021-03-20 11:25:06 -04:00
parent a12bc80671
commit 706d18da8e
2 changed files with 24 additions and 6 deletions

View File

@ -583,11 +583,15 @@ the presence or absense of the 'B' capability in an IPv6 address
indicates actual support (or lack of support).
</dd>
<dt>C</dt>
<dd>{% trans -%}
<dd>
If the peer address contains the 'C' capability, that means
they are willing and able to serve as an introducer - serving
as a Bob for an otherwise unreachable Alice.
{%- endtrans %}</dd>
they are willing and able to serve as an introducer via that address - serving
as an introducer Bob for an otherwise unreachable Charlie.
Prior to release 0.9.50, Java routers incorrectly published the 'C'
capability for IPv6 addresses, even though IPv6 introducers was not fully implemented.
Therefore, routers should assume that versions prior to 0.9.50 cannot act as an introducer
over IPv6, even if the 'C' capability is advertised.
</dd>
<dt>4</dt><dd>
As of 0.9.50, indicates outbound IPv4 capability.
If an IP is published in the host field, this capability is not necessary.

View File

@ -144,6 +144,8 @@ Specification
4/6 Caps
--------
This was originally implemented without a formal proposal, but it is required for
IPv6 introductions, so we include it here.
See also [CAPS]_.
@ -210,17 +212,22 @@ IPv6 Introducers for IPv4
----------------------------
The following changes are required to correct errors and inconsistencies in the specs.
We have also described this as "part 1" of the proposal.
Spec Changes
~~~~~~~~~~~~~~~~
[SSU}_ currently says (IPv6 notes):
[SSU]_ currently says (IPv6 notes):
IPv6 is supported as of version 0.9.8. Published relay addresses may be IPv4 or IPv6, and Alice-Bob communication may be via IPv4 or IPv6.
Add the following:
While the specification was changed as of version 0.9.8, Alice-Bob communication via IPv6 was not actually supported until version 0.9.50.
Earlier versions of Java routers erroneously published the 'C' capability for IPv6 addresses,
even though they did not actually act as an introducer via IPv6.
Therefore, routers should only trust the 'C' capability on an IPv6 address if the router version is 0.9.50 or higher.
[SSU-SPEC]_ currently says (Relay Request):
@ -246,6 +253,9 @@ to indicate the length of the (Alice, Bob, or Charlie) IP address to follow.
Therefore, no change to the format of the messages is required.
Only textual changes to the specifications, indicating that 16-byte IP addresses are allowed.
The following changes are required to the specs.
We have also described this as "part 2" of the proposal.
Spec Changes
~~~~~~~~~~~~~~~~
@ -288,7 +298,9 @@ For IPv4, this message must be sent via an established IPv4 connection,
as that's the only way that Bob knows Charlie's IPv4 address to return to Alice in the RelayResponse.
As of release 0.9.xx, IPv6 is supported, and this message may be sent via an established IPv6 connection.
Also add:
As of release 0.9.xx, any SSU address published with introducers must contain "4" or "6" in the "caps" option.
Migration
@ -296,7 +308,9 @@ Migration
All old routers should ignore the caps property in NTCP2, and unknown capability characters in the SSU caps property.
TODO add introducer info
Any SSU address with introducers that does not contain a "4" or "6" cap is assumed to be for IPv4 introduction.