We are designing a solution in gngr here: https://github.com/UprootLabs/gngr/issues/219
In essence, the resolved address of a request will be checked if it lies in a reserved block. If so, further policy checks will be made for the resolved address, and the IP address will be pinned for that HTTP request.
Would appreciate feedback here, or on the issue.