Oh for dumb... I actually do have an: option forwardfor except 127.0.0.0/8
in the defaults section, despite the fact that I'd defined it in all of the frontends that we have. Big oversight! My apologies :) So, removing that line from the defaults section actually did fix the issue, but I'll probably still take your suggestion and use "http-request set-header", since it can be set conditionally by acl. Thanks much, Bryan! -- Andy Walker System Administrator FBS - creators of flexmls 3415 39th St S Fargo, ND 58104 701-235-7300 On Tue, Jun 3, 2014 at 2:25 PM, Bryan Talbot <[email protected]> wrote: > On Tue, Jun 3, 2014 at 8:57 AM, Andy Walker <[email protected]> wrote: > >> Quick question (after writing the email, I realized that there's nothing >> quick about it) about the order of processing for "reqidel" and "option >> forwardfor" options. First and foremost, we're running HA-Proxy version >> 1.5-dev24-8860dcd 2014/04/26 >> >> >> > >> There were no problems with that, AFAIK. Now, we have some traffic coming >> through Distil, as a test. These, of course, have client IPs that we don't >> really care about, but we'd like to trust the X-Forwarded-For header that >> Distil is tacking on. I tried using an acl to only remove X-Forwarded-For >> if the request isn't coming from Distil, and then use "if-none" for option >> forwardfor: >> >> capture request header X-Forwarded-For len 49 >> acl from-distil hdr(X-Distil) some_string_that_we_can_trust >> reqidel ^X-Forwarded-For:.* unless from-distil >> option forwardfor if-none >> >> At first glance, this seemed to do the trick -- in all cases, it looks >> like Distil is sending X-Forwarded-For headers with only one single IP >> address in them, as seen in the haproxy logs: (I redacted the client IP, >> and it's shown as 11.22.33.44) >> > > > I have a similar setup and it's working well and doesn't add the client-ip > if "from-distil" is set -- maybe another "option forwardfor" without the > "if-none" was left in a default, frontend or backend? > > > Also, if I were do build the config starting with 1.5, I think that the > "http-request set-header" configuration would be the way to go as it should > be simpler and more flexible. Something like > > acl from-distil hdr(X-Distil) some_string_that_we_can_trust > http-request set-header X-Forwarded-For %[src] unless from-distil > > > I've not tried that yet but it seems like it should work. > > > -Bryan > >

