> Op 9 november 2017 om 19:59 schreef Nux! <n...@li.nux.ro>:
> 
> 
> Wido,
> 
> Excellent suggestion with the "transparent proxy", I was not aware of that.
> I think that would be a great idea and wouldn't require too many 
> modifications, especially as Haproxy comes already with the VR.
> 

It's indeed just a matter of a HAProxy config setting. We could make it 
configurable per backend in HAProxy. Regular HTTP, TCP or PROXY for example.

That way your problem would be solved.

Wido

> To Paul:
> - imho the LB solution ACS ships now is a bit handicaped since you do not 
> know the remote host ip. You're flying blind unless you use google analytics 
> (and these things have gotten more and more aggressively filtered by 
> adblocks).
> Enhancing Haproxy as Wido suggested would go a long way, it wouldn't break 
> existing functionality and would also keep SSL processing off the VR.
> 
> --
> Sent from the Delta quadrant using Borg technology!
> 
> Nux!
> www.nux.ro
> 
> ----- Original Message -----
> > From: "Andrija Panic" <andrija.pa...@gmail.com>
> > To: "users" <us...@cloudstack.apache.org>
> > Cc: "Khosrow Moossavi" <kmooss...@cloudops.com>, "Will Stevens" 
> > <wstev...@cloudops.com>, "dev"
> > <dev@cloudstack.apache.org>, "Pierre-Luc Dion" <pd...@cloudops.com>
> > Sent: Thursday, 9 November, 2017 13:10:58
> > Subject: Re: HTTPS LB and x-forwarded-for
> 
> > Wido,
> > 
> > backend servers are not Linux only, for example we have a ton of Windows
> > customers, some WEB solutions / IIS etc...
> > 
> > @all - If we try to please/solve everyone's proxying solution/requirement -
> > this is impossible IMHO - I'm thinking more about some "do it as you like"
> > solution, to let customer write his own haproxy config and upoad it (for
> > example, or something better?).
> > 
> > We can support newer version of haproxy (1.5+) which also implement
> > "transarent proxy" (integrate with kernel so to speak)  to allow TCP-level
> > connections to backend (TCP mode, not HTTP mode) but to still "preserve"
> > remote IP by faking it (fake soruce IP = transarent proxy).
> > 
> > For the rest of configuration options,  I would leave it to the customer
> > how he/she wants to configure rest of haproxy configuration, inlcuding
> > custom checks, etc. Haproxy configuration is never-ending story, and we
> > probably should allow custom sripts/configuration instead of trying to
> > provide GUI/API way to configure everything (which is impossible...)
> > 
> > Just my 2 cents...
> > 
> > On 9 November 2017 at 08:13, Wido den Hollander <w...@widodh.nl> wrote:
> > 
> >>
> >> > Op 8 november 2017 om 14:59 schreef Pierre-Luc Dion <pd...@cloudops.com
> >> >:
> >> >
> >> >
> >> > Same challenge here too!
> >> >
> >> > Let's look at improving Load-balancing offering from cloudstack, I guest
> >> we
> >> > should do a feature spec draft soon..,  from my perspective, doing SSL
> >> > offload on the VR could be problematic if the VR spec if too small, and
> >> the
> >> > default spec of the VR being 1vcpu@256MB, considering it can be the
> >> router
> >> > of a VPC, doing VPN termination, adding HTTPS  is a bit ish... What would
> >> > be your thought about this ?
> >> >
> >> > I'd be curious to have a LB offering in ACS where it would deploy a
> >> > redundant traefik[1] beside the VR for doing http and https
> >> Load-balancing.
> >> > I think it would also be useful if the API of that traefik instance would
> >> > be available from within the VPC or LBnetwork so is API would be
> >> accessible
> >> > to other apps orchestration tools such as  kubernetes or rancher.
> >> >
> >> > traefik or not, here is what I think is needed by cloudstack in the LB
> >> > improvement:
> >> >
> >> > - support http, https (X-Forwarded-For)
> >>
> >> HAProxy also supports the PROXY protocol towards the backends. Apache
> >> 2.4.22 supports this natively and Varnish for example can also talk PROXY.
> >>
> >> It adds a littlebit of metadata to the connection so that the backend
> >> knows the original IP the connection came from for example:
> >> https://www.haproxy.org/download/1.8/doc/proxy-protocol.txt
> >>
> >> Wido
> >>
> >> > - basic persistence tuning (API already exist)
> >> > - better backend monitoring, currently only a tcp connect validate if the
> >> > webserver is up.
> >> > - ssl offload
> >> > - metric collection, more stats, maybe just export the tool status page
> >> to
> >> > the private network.
> >> > - Container world support, right now if you have Rancher or kubernetes
> >> > cluster, you need to deploy your own LB solution behing mostlikely a
> >> static
> >> > nat., If cloudstack would deploy a traefik instance, Kub or Rancher could
> >> > reuse this instance and managed it to properly do LB between containers.
> >> >
> >> >
> >> > What would be your prefered LB tool:
> >> > haproxy, traefik or nginx?
> >> >
> >> > CloudStack already have to code to handle SSL certs per projects and
> >> > accounts if not mistaking because that code was added to support
> >> NetScaler
> >> > as Load-balancer in the past. so one less thing to think about :-)
> >> >
> >> >
> >> > [1] https://traefik.io/
> >> >
> >> >
> >> > PL,
> >> >
> >> >
> >> >
> >> > On Mon, Nov 6, 2017 at 7:10 AM, Nux! <n...@li.nux.ro> wrote:
> >> >
> >> > > Thanks Andrija,
> >> > >
> >> > > LB outside of the VR sounds like a good idea. An appliance based on,
> >> say
> >> > > cloud-init + ansible and so on could do the trick; alas it'd need to be
> >> > > outside ACS.
> >> > > I guess as users we could maybe come up with a spec for an
> >> improvement, at
> >> > > least we'd have something the devs could look at whenever it is
> >> possible.
> >> > >
> >> > > Regards,
> >> > > Lucian
> >> > >
> >> > > --
> >> > > Sent from the Delta quadrant using Borg technology!
> >> > >
> >> > > Nux!
> >> > > www.nux.ro
> >> > >
> >> > > ----- Original Message -----
> >> > > > From: "Andrija Panic" <andrija.pa...@gmail.com>
> >> > > > To: "dev" <dev@cloudstack.apache.org>
> >> > > > Cc: "users" <us...@cloudstack.apache.org>
> >> > > > Sent: Thursday, 2 November, 2017 23:21:37
> >> > > > Subject: Re: HTTPS LB and x-forwarded-for
> >> > >
> >> > > > We used to make some special stuff for one of the clients, where all
> >> LB
> >> > > > configuration work is done from outside of the ACS, i.e. python
> >> script to
> >> > > > feed/configure VR - install latest haproxy 1.5.x for transparent
> >> proxy,
> >> > > > since client insisted on SSL termination done on backend web SSL
> >> > > servers....
> >> > > > Not good idea, that is all I can say (custom configuration thing) -
> >> but
> >> > > the
> >> > > > LB setup is actually good - transparent mode haproxy, works on TCP
> >> level,
> >> > > > so you can see "real client IP" on the backend servers (which must
> >> use VR
> >> > > > as the default gtw, as per default, so the whole setup works
> >> properly).
> >> > > >
> >> > > > I'm still looking forward to see some special support of LB inside
> >> VR via
> >> > > > ACS - proper LB setup inside VR via GUI/API -  i.e. to enable LB
> >> > > > provisioning SCRIPT (bash, or whatever),  where all needed
> >> > > > install+configure can be done from client side  - otherwise covering
> >> all
> >> > > > user cases, with proper HTTP checks and similar....is impossible to
> >> do
> >> > > > IMHO.
> >> > > >
> >> > > > Some other clients, actually have internal FW appliance (i.e.
> >> multihomed
> >> > > > VM, acting as gtw for all VMs in all networks), and haproxy instaled
> >> on
> >> > > > this device (with NAT configured from VR to this internal FW/VM, so
> >> > > remote
> >> > > > IP can be seen properly) - this setup is fully under customer
> >> control,
> >> > > and
> >> > > > can provide any kind of special haproxy config...
> >> > > >
> >> > > >
> >> > > >
> >> > > >
> >> > > >
> >> > > >
> >> > > > On 31 October 2017 at 19:54, Nux! <n...@li.nux.ro> wrote:
> >> > > >
> >> > > >> Hello,
> >> > > >>
> >> > > >> Of the people running an LB (VR) with https backends, how do you
> >> deal
> >> > > with
> >> > > >> the lack of x-forwarded-for since for port 443 there's just simple
> >> TCP
> >> > > >> balancing?
> >> > > >>
> >> > > >> Has anyone thought of terminating SSL in the VR instead? Ideas?
> >> > > >>
> >> > > >> Cheers
> >> > > >>
> >> > > >> --
> >> > > >> Sent from the Delta quadrant using Borg technology!
> >> > > >>
> >> > > >> Nux!
> >> > > >> www.nux.ro
> >> > > >>
> >> > > >
> >> > > >
> >> > > >
> >> > > > --
> >> > > >
> >> > > > Andrija Panić
> >> > >
> >>
> > 
> > 
> > 
> > --
> > 
> > Andrija Panić

Reply via email to