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

Proxy can be used in a hosted datacenter environment with limitations such as SNAT #62

Open
scalablecory opened this issue Apr 15, 2020 · 1 comment
Assignees
Labels
Priority:1 Used for divisional .NET planning User Story Used for divisional .NET planning
Milestone

Comments

@scalablecory
Copy link

scalablecory commented Apr 15, 2020

Customers behind certain firewalls or load balancers, such as Azure's SNAT, have a limit on the number of connections they can make per ip/port endpoint.

HttpClient has a MaxConnectionsPerServer setting, but the limit is not actually applied per-server, but rather per-pool, with each pool being partitioned by a number of connection properties:

  • Kind, describing the type of connection (HTTP, HTTPS, Proxied HTTPS, etc.)
  • Host, the hostname in the request URI.
  • Port, the port in the request URI.
  • SslHostName, the SNI value associated with the connection (might be hostname from URI, might be Host header)
  • ProxyUri, the proxy that is being used to transport the connection.
  • Identity, the user the connection was authenticated over.

It is unreasonable to apply a meaningful SNAT limit on top of HttpClient because the client will pool connections and does not expose connection lifetime events to the user.

@analogrelay analogrelay added this to the 1.0.0-preview1 milestone Apr 16, 2020
@karelz karelz modified the milestones: 1.0.0-preview1, 1.0.0 May 7, 2020
@samsp-msft samsp-msft changed the title [Investigation] Living with SNAT limitations Proxy can be used in a hosted datacenter environment with limitations such as SNAT Oct 21, 2020
@samsp-msft samsp-msft added the User Story Used for divisional .NET planning label Oct 21, 2020
@samsp-msft samsp-msft added the Priority:1 Used for divisional .NET planning label Jan 20, 2021
@karelz
Copy link
Member

karelz commented Mar 24, 2021

Triage: We expect that LLHTTP will help with the policy decisions to adhere to SNAT limits.

@karelz karelz modified the milestones: YARP 1.0.0, Backlog Mar 24, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Priority:1 Used for divisional .NET planning User Story Used for divisional .NET planning
Projects
None yet
Development

No branches or pull requests

4 participants