Giter Site home page Giter Site logo

Virtual host with port redirect about pilot HOT 3 CLOSED

istio avatar istio commented on July 22, 2024
Virtual host with port redirect

from pilot.

Comments (3)

enricoschiattarella avatar enricoschiattarella commented on July 22, 2024

I am not sure what is the issue here and why port redirect matters.

My understanding is that the host header is intended to be consumed by the final destination server.
It is ok for the proxy to make decisions based on that, and we may add the logic to the proxy if we need it and it is not there.

Consider, however, the case in which the client tries to open a connection to a webserver on port 80 and specifies service1:80 in the host header. The proxy will see the incoming connection on port 80. I think the correct behavior for the proxy would still be to try to connect to the final webserver on port 80 and pass the host header unchanged. Basically the behavior, as observed by the receiving webserver, is unchanged (source IP address might be different in the per-node case).

The discussion above ignores port redirect. If you add port-redirect to the mix, now what might happen is that the proxy is actually listening on port 12345 and the connection destined to port 80 gets picked up by the listener listening on port 12345. However, the listener on port 12345 understands that the connection should be handled by the listener for port 80 (which may or may not listen) and hands it off. From this point on, everything proceeds as described in the paragraph above.

What is wrong/missing ?

from pilot.

kyessenov avatar kyessenov commented on July 22, 2024

It seems there might be a bug in that Envoy does not route virtual host "host:80" the same way as "host" with iptables port redirection. I'll investigate.

from pilot.

kyessenov avatar kyessenov commented on July 22, 2024

So it sounds like Envoy is just taking literal host value with no processing...

from pilot.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.