AdguardTeam / AdguardTeam/AdGuardHome

TTL=0 responses are cached and rewritten to cache_ttl_min

Đang mở
#8,310 1 bình luận 3 reaction 0 người được giao Xem trên GitHub
Ngôn ngữ chính
TypeScript
Star
36.9k
Fork
2.5k
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Mô tả

### Prerequisites

- [x] I have checked the [Wiki](https://github.com/AdguardTeam/AdGuardHome/wiki) and [Discussions](https://github.com/AdguardTeam/AdGuardHome/discussions/categories/q-a) and found no answer

- [x] I have searched other issues and found no duplicates

- [x] I want to report a bug and not [ask a question or ask for help](https://github.com/AdguardTeam/AdGuardHome/discussions/categories/q-a)

- [x] I have set up AdGuard Home correctly and [configured clients to use it](https://github.com/AdguardTeam/AdGuardHome/wiki/Clients). (Use the [Discussions](https://github.com/AdguardTeam/AdGuardHome/discussions/categories/q-a) for help with installing and configuring clients.)

### Platform (OS and CPU architecture)

Darwin (aka macOS), AMD64 (aka x86_64)

### Installation

GitHub releases or script from README

### Setup

On one machine

### AdGuard Home version

v0.107.73

### Action

According to RFC 1035, resource records with TTL=0 must not be cached. They may only be used for the current transaction.

However, in my setup AdGuard Home appears to cache upstream responses with TTL=0 and then rewrites the returned TTL to `cache_ttl_min`. This seems incorrect for two reasons:

1. TTL=0 responses should not be cached.
2. Rewriting TTL=0 to `cache_ttl_min` changes the caching semantics defined by RFC 1035.

### Expected result

+ A response with TTL=0 should not be inserted into cache.
+ cache_ttl_min should not be applied to TTL=0 responses, unless this behavior is explicitly documented as an intentional standards deviation.

### Actual result

+ Repeated queries appear to be served from cache.
+ The returned TTL is rewritten to the configured cache_ttl_min instead of remaining non-cacheable.

### Additional information and/or screenshots

+ RFC 1035 says TTL=0 records "should not be cached".
+ Current dnsproxy cache logic also appears to treat computed TTL=0 as non-cacheable.
+ If this behavior is intentional, the documentation for cache_ttl_min should explicitly mention that TTL=0 is overridden and cached despite RFC semantics.

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.