envoyproxy/envoy

FR: nested network filter chains

Open

#18.035 aperta il 9 set 2021

Vedi su GitHub
 (11 commenti) (2 reazioni) (0 assegnatari)C++ (5373 fork)batch import
area/listenerdesign proposalhelp wanted

Metriche repository

Star
 (27.997 star)
Metriche merge PR
 (Merge medio 8g) (378 PR mergiate in 30 g)

Descrizione

Currently, listener inspectors and transport sockets are forced to reside at one-level: first inspect, then match, then use a transport socket. This is quite inflexible, and leads to situations where a whole expensive listener is needed (e.g. https://github.com/envoyproxy/envoy/issues/4076). The proposal is to add a oneof that allows (inspectors + filter chains) to reside within the filter chains next to filters. The semantics is that processing is staged where once a filter chain is selected, transport socket is applied, and then inspector + filter chain matching restart.

This solves a bunch of issues:

  1. Proxy protocol can be placed within TLS on server-side.
  2. TLS-within-TLS can be matched provided outer TLS is prior knowledge.
  3. HTTP-within-TLS can be sniffed provided outer TLS is prior knowledge.

Guida contributor