Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Origin set definition (and port interaction with Alt-Svc) #331

Closed
enygren opened this issue Apr 21, 2017 · 8 comments
Closed

Origin set definition (and port interaction with Alt-Svc) #331

enygren opened this issue Apr 21, 2017 · 8 comments

Comments

@enygren
Copy link
Contributor

enygren commented Apr 21, 2017

Some potential (editorial?) issues with the Origin Set definition (Section 2.3):

  • For Host we may wish to use a better term than "the value sent in Server Name Indication". In particular, this could cause problems in the future for any SNI-masking work. This also has potentially weird interactions with DANE as it specifies that the SNI should be the terminal CNAME or SRV record target.

  • For Port, there is a weird interaction with Alt-Svc. In particular, the server's port may be different than the port of Origin. For example, an Alt-Svc for https://www.example.com to alt.example.com:8443 still has the origin of https://www.example.com:443 but given the current wording would have the incorrect initial origins set of https://www.example.com:8443

Would it be better to have the implicit initial Origin Set from a client's perspective (when an ORIGIN frame is first received) be "the origin (as per [RFC6454]) that resulted in the successful establishment of the connection" ?

This is ambiguous from the servers' perspective but perhaps much cleaner and simpler from the client's perspective.

Another ambiguity: if a 421 is received for the last origin in the Origin Set, does it become empty or return to uninitialized? (Should we clarify the former, and that clients may wish to soon close out the connection if no new origin additions are received soon?)

@enygren
Copy link
Contributor Author

enygren commented Apr 22, 2017

Thinking about Host more, leaving it as the SNI value may make the most sense, especially as some load balancers may be using the SNI to route to the proper backend server or connection handling context. (Although this is still "the origin (as per [RFC6454]) that resulted in the successful establishment of the connection".)

This is also an area where #214 could still use some clarifications. For example, take the case of:

  • origin1 returns "Alt-Svc: h2=origin2:443"
  • origin1 and origin2 are both covered by the cert at the IP address of origin2
  • The server at origin2 receives a connection with SNI=origin1 so the default Origin Set would be "origin1"
  • If a client intended to coalesce requests directly to origin2 onto the connection with SNI=origin1, these (origin2) would not be covered by the default Origin Set.

It's not clear that the text from #214 is enough to clarify this case.

That also still leaves the Port issue as a little odd with the Alt-Svc interactions in the current text.

@mnot
Copy link
Member

mnot commented Apr 26, 2017

I'm starting to think it might be best to have the initial origin set be empty, so that all origins added need to be explicit; making the first member "what I think you think it is" is needlessly ambiguous.

The only downside AFAICT is that the common use case "limit it just to the initial origin" now can't be served by sending an empty set; it needs to be explicitly sent.

@mcmanus thoughts?

@mcmanus
Copy link
Contributor

mcmanus commented Apr 26, 2017 via email

@mcmanus
Copy link
Contributor

mcmanus commented Apr 26, 2017 via email

@mnot
Copy link
Member

mnot commented May 1, 2017

@enygren any further thoughts?

I see what you're saying about future SNI masking potentially being an issue; not so sure about DANE, since it's effectively dead in the water. Still, it'd be nice not to have a layer violation here. How about something like

the hostname that the connection was established for, converted to lower case; typically the value sent in Server Name Indication ([RFC6066] Section 3)

WRT the port, I don't see a problem; alt-svc does not change the origin port.

@mnot mnot changed the title Origin set definition (and port interaction with Alt-Svc) [origin-frame] Origin set definition (and port interaction with Alt-Svc) May 11, 2017
@mnot
Copy link
Member

mnot commented May 11, 2017

This seems to have turned editorial (as Erik originally suggested).

Erik, if you can make specific proposals on what needs to be changed, that would be helpful.

@mnot mnot added editorial and removed design labels May 11, 2017
@martinthomson
Copy link
Contributor

Take a look at #348 for my take on this.

@mnot
Copy link
Member

mnot commented Jul 31, 2017

That worked out well - thx mt.

@mnot mnot closed this as completed Jul 31, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

No branches or pull requests

4 participants