gateway: CDN-Loop
lidel opened this issue · 0 comments
lidel commented
Problem
- ipfs.io backed by saturn looping to itself
- saturn looping to itself to the same L1 and always failing due to gaulty L1 and the internal ring hashing
- any two gateway operators multiplexing on top of each other
Solution
Find and document a way for gateway operators and CDNs to avoid loops.
Prior Art
CDN-Loop
seems to be the best candidate?
Ref.
- https://datatracker.ietf.org/doc/html/rfc8586
- https://blog.cloudflare.com/preventing-request-loops-using-cdn-loop/
- https://developer.fastly.com/reference/http/http-headers/CDN-Loop/
Example
Request that was sent to ipfs.io, then hit saturn backend, and then hit one of Saturn L1s would have:
CDN-Loop: saturn-l1-id, saturn.tech; ipfs.io;
This allows:
- ipfs.io to detect and drop requests that loop to itself
- saturn to either detect drop requests that loop to itself or route request to a DIFFERENT L1