ipfs / ipfs/specs

gateway: CDN-Loop (RFC 8586)

Open
#426 0 comments 0 reactions 0 assignees View on GitHub
need/triage
Dominant language
HTML
Stars
1.2k
Forks
247
Avg merge
5d 21h
Merged PRs (30d)
4

Description

### 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:
1. ipfs.io to detect and drop requests that loop to itself
1. saturn to either detect drop requests that loop to itself or route request to a DIFFERENT L1

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.