118-multiple-orports.txt 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. Filename: 118-multiple-orports.txt
  2. Title: Advertising multiple ORPorts at once
  3. Version: $Revision$
  4. Last-Modified: $Date$
  5. Author: Nick Mathewson
  6. Created: 09-Jul-2007
  7. Status: Accepted
  8. Target: 0.2.1.x
  9. Overview:
  10. This document is a proposal for servers to advertise multiple
  11. address/port combinations for their ORPort.
  12. Motivation:
  13. Sometimes servers want to support multiple ports for incoming
  14. connections, either in order to support multiple address families, to
  15. better use multiple interfaces, or to support a variety of
  16. FascistFirewallPorts settings. This is easy to set up now, but
  17. there's no way to advertise it to clients.
  18. New descriptor syntax:
  19. We add a new line in the router descriptor, "or-address". This line
  20. can occur zero, one, or multiple times. Its format is:
  21. or-address SP ADDRESS ":" PORTLIST NL
  22. ADDRESS = IP6ADDR / IP4ADDR
  23. IPV6ADDR = an ipv6 address, surrounded by square brackets.
  24. IPV4ADDR = an ipv4 address, represented as a dotted quad.
  25. PORTLIST = PORTSPEC | PORTSPEC "," PORTLIST
  26. PORTSPEC = PORT | PORT "-" PORT
  27. [This is the regular format for specifying sets of addresses and
  28. ports in Tor.]
  29. New OR behavior:
  30. We add two more options to supplement ORListenAddress:
  31. ORPublishedListenAddress, and ORPublishAddressSet. The former
  32. listens on an address-port combination and publishes it in addition
  33. to the regular address. The latter advertises a set of address-port
  34. combinations, but does not listen on them. [To use this option, the
  35. server operator should set up port forwarding to the regular ORPort,
  36. as for example with firewall rules.]
  37. Servers should extend their testing to include advertised addresses
  38. and ports. No address or port should be advertised until it's been
  39. tested. [This might get expensive in practice.]
  40. New authority behavior:
  41. Authorities should spot-test descriptors, and reject any where a
  42. substantial part of the addresses can't be reached.
  43. New client behavior:
  44. When connecting to another server, clients SHOULD pick an
  45. address-port ocmbination at random as supported by their
  46. reachableaddresses. If a client has a connection to a server at one
  47. address, it SHOULD use that address for any simultaneous connections
  48. to that server. Clients SHOULD use the canonical address for any
  49. server when generating extend cells.
  50. Not addressed here:
  51. * There's no reason to listen on multiple dirports; current Tors
  52. mostly don't connect directly to the dirport anyway.
  53. * It could be advantageous to list something about extra addresses in
  54. the network-status document. This would, however, eat space there.
  55. More analysis is needed, particularly in light of proposal 141
  56. ("Download server descriptors on demand")
  57. Dependencies:
  58. Testing for canonical connections needs to be implemented before it's
  59. safe to use this proposal.
  60. Notes 3 July:
  61. - Write up the simple version of this. No ranges needed yet. No
  62. networkstatus chagnes yet.