mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-12-06 19:41:15 +01:00
Describe summary algorithm in more detail, based on prototype
svn:r16514
This commit is contained in:
@@ -216,11 +216,21 @@ Status: Draft
|
||||
addresses.
|
||||
|
||||
A summary should claim a router exits to a specific TCP port if,
|
||||
ignoring private IP addresses (link and site local per RFC3300), the
|
||||
exit policy indicates that the router would exit to this port to any
|
||||
IP address with the exception of at most 2^25 single addresses (That's
|
||||
either two /8 netblocks, or one /8 and a couple of /12s or any other
|
||||
combination).
|
||||
ignoring private IP addresses, the exit policy indicates that the
|
||||
router would exit to this port to most IP address. either two /8
|
||||
netblocks, or one /8 and a couple of /12s or any other combination).
|
||||
The exact algorith used is this: Going through all exit policy items
|
||||
- ignore any accept that is not for all IP addresses ("*"),
|
||||
- ignore rejects for these netblocks (exactly, no subnetting):
|
||||
0.0.0.0/8, 169.254.0.0/16, 127.0.0.0/8, 192.168.0.0/16, 10.0.0.0/8,
|
||||
and 172.16.0.0/12m
|
||||
- for each reject count the number of IP addresses rejected against
|
||||
the affected ports,
|
||||
- once we hit an accept for all IP addresses ("*") add the ports in
|
||||
that policy item to the list of accepted ports, if they don't have
|
||||
more than 2^25 IP addresses (that's two /8 networks) counted
|
||||
against them (i.e. if the router exits to a port to everywhere but
|
||||
at most two /8 networks).
|
||||
|
||||
An exit policy summary will be included in votes and consensus as a
|
||||
new line attached to each exit node. A lack of policy should indicate
|
||||
@@ -230,7 +240,10 @@ Status: Draft
|
||||
portranges (e.g. "22,80-88,1024-6000,6667"). Whether the summary
|
||||
shows the list of accepted ports or the list of rejected ports depends
|
||||
on which list is shorter (has a shorter string representation). In case of
|
||||
ties we choose the list of accepted ports.
|
||||
ties we choose the list of accepted ports. Summary items are
|
||||
compressed, that is instead of "80-88,89-100" there only is a single
|
||||
item of "80-100", similarly instead of "20,21" a summary will say
|
||||
"20-21".
|
||||
|
||||
Similarly to IP address, ports, and timestamp a consensus should list
|
||||
the exit policy matching the descriptor digest referenced in the
|
||||
|
||||
Reference in New Issue
Block a user