On Wed, Dec 13, 2017 at 7:50 PM, Daniel Ruggeri <drugg...@primary.net> wrote: > Aye, I had originally added the support for PROXY in remoteip since... > well... it's used to extract remote IP info. The funny part is that I had > committed my additions within an hour of the third party code being donated > and incorporated without realizing it... so I removed my changes and added > this code into remoteip with some small fixes. > > I'm a bit confused. I don't recall so much opposition to this being in > remoteip. It seems reasonable to me since it's just another way to get remote > client IP information from the connection versus an HTTP header. Worth > pointing out is that it can be argued that both are operating at layer 7 > since there doesn't seem to be universal agreement as to whether TLS is layer > 6 or 7... one method of IP extraction just happens to be layer 7 data that > proceeds TLS while the other is layer 7 data wrapped in TLS inside an HTTP > request. Academic discussion of OSI layers aside, it still feels "right" to > me as a user and server admin to expect mod_remoteip to be the one place I > would go to enable extraction of remote IP info. I'm not exactly firm on > this... I would rather just see the functionality in the server... but > hopefully that at least clarifies how we wound up in this neighborhood to > begin with.
I agree. While I didn't push back on copyright statements as much as I should have (and this applies as well to confusing copyright statements in h2 sources hosted @ASF), I didn't care that the code had landed at mod_remoteip. Now, I do, but strictly as a matter of protocol vs protocol. Someone who enables PROXY support absolutely does not care which of the interfaces the request arrived at, they entirely trust their edge routers to inform them of the next-hop. It is not expressed as HTTP and isn't even an HTTP module, it is a rabbit-mq style annotation. People who choose to enable mod_remoteip (legacy) are interested in how the request arrived, and who those intermediaries suggest had initiated the request. It is rarely authoritative, except on the user's own infrastructure. It is idempotent from request-to-request (thanks in large part to additional contributors to the module.) It follows HTTP protocol. As much as the two pieces seem to do the same thing, they are both entirely dissimilar from a protocol perspective, from thye request vs. connection-based scope, and from web-of-trust perspectives. > As for the whitelist/blacklist thoughts, I don't completely follow the > preference for enabling specific ranges and also having a blacklist rather > than the current "enable for everything except these ranges". Bill, can you > add a bit more color here? We're probably closer in thought process than > not... I just can't connect the dots. To my knowledge, we are the only server > even evaluating something more than just on or off... which I think is pretty > cool and a sign of innovation. We made a big jump when we all acknowledged that you can't 'optionally' enable PROXY, it's a binary toggle. Too easy to fuzz the input to trick that code into wrong assumptions. So we had agreed to drop the recognition part and let the admin define which ports are local/not PROXY and which come from the edge router. But it is often easier to define the list of edge routers and presume all other requests are in raw HTTP form, so the enablement directive can be expressed as the list of IP/subnets that should be treated exclusively as PROXY protocol connections to httpd. The blacklist is still very handy for naming a couple of test/heartbeat clients to avoid PROXY handling. > Personally, I want to see this in the server... It appears we have either > silent opposition to the patch or just a lack of interest from other > committers, so I appreciate that Stefan is pointing these things out. I > *hope* I can spend some time on it in the coming weeks, but I've been poking > at this particular patch for about a year now and have a short attention > span. Hopefully enough feedback and work can be done soon to get *someone* > comfortable enough for another +1. Me too, and I'm not trying to overly complicate things. Reading such hostile accusations on our list doesn't motivate me to complete that feature myself, even as all of us had agreed that expressing the PROXY clients as a positive whitelist was a grand idea. I hope I didn't come across so hostile toward your contribution or to Stefan's plea for additional eyeballs. I myself am trying not to be that jerk. In an offhanded aside, it was suggested this might be a distinct mod from remoteip. That might actually be a really great idea, from the perspective that people who need remoteip and people who need PROXY support are often two different audiences, and it is generally unwise to enable functionality that doesn't serve a purpose for any given deployment. I'm not nixing the current combination; I don't personally have time to refactor this into two modules, and won't dive again into the copyright header complaints I have with remoteip as it stands now. I think it would be lovely to introduce whitelist support of PROXY before it is rolled into a GA release. I'm sad that the biggest detractor of releasing 2.5.next-gen is boycotting any evolution, and that code base is little closer than a year ago due to some very stupid fears and arguments expressed on this list. I won't infect 2.4 with my vote for or against any enhancements again. But so long as the 2.4.x supporters want to leave their branch unstable, there is no reason this code shouldn't have its day in the next release, I'm just in no mood anymore to enhance it until the copyright claims are fixed on trunk, considering most of the original code is mine/employers. This could be similarly resolved by my attaching author tags to every file I've written or similarly improved, if that is how we want to play ball at httpd. >From Jim's observations... On Thu, Dec 14, 2017 at 7:55 AM, Jim Jagielski <j...@jagunet.com> wrote: > My own 2c is that I don't really care that much *where* the functionality > exists, just that we actually ship it. It's been almost a year since I > reached out to the orig author and asked about moving/donating the > code to the ASF, and they readily agreed. To have it just sit > around, un-released, for all this time is kind of bad. It is good to see you share my concern about unreleased code for a change. It might be worthwhile, if you are negotiating contributions, to work out the copyright claim policy of httpd before bringing the parties all together.