AdguardTeam / AdguardTeam/AdGuardHome

(Some) of bootstrap_dns servers being down can affect use of DoT DNS servers configured as upstream/fallback

Đang mở
#7,931 2 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

Custom package (OpenWrt, HomeAssistant, etc; please mention in the description)

### Setup

On a router, DHCP is handled by the router

### AdGuard Home version

0.107.63

### Action

Today 1.1.1.1 and 1.0.0.1 (and associated DoT) servers went down. I figured its a good time to adjust configuration to make use of the fallback DNS servers, but the DNS resolving would still fail to work:

```
#resolvectl query google.com
google.com: resolve call failed: Could not resolve 'google.com', server or network returned error: SERVFAIL
```

after my relevant configuration was adjusted to read as such:

```diff
dns:
upstream_dns:
- tls://one.one.one.one
upstream_dns_file: ""
bootstrap_dns:
- 1.1.1.1
- 1.0.0.1
+ - 9.9.9.9
+ - 149.112.112.112
+ - 8.8.8.8
fallback_dns:
+ - tls://dns.quad9.net
+ - tls://dns.google
upstream_mode: parallel
fastest_timeout: 1s
upstream_timeout: 10s
```

### Expected result

I had hoped that AGH would:

1. Try the bunch of `bootstrap_dns` servers in quick succession/parallel to resolve `one.one.one.one`;
2. Notice that `one.one.one.one` (resolved to `1.1.1.1`/`1.0.0.1` via one of the working `bootstrap_dns` servers) is down (after `upstream_timeout`);
3. Try the bunch of `bootstrap_dns` servers in quick succession/parallel to resolve `dns.quad9.net`;
4. Use `tls://dns.quad9.net`.

### Actual result

A bunch of

```
2025/07/15 01:19:34.061921 ERROR response received addr=1.1.1.1:53 proto=udp status="exchanging with 1.1.1.1:53 over udp: read udp yesitsme:56372->1.1.1.1:53: i/o timeout"
2025/07/15 01:19:34.061967 ERROR response received addr=1.0.0.1:53 proto=udp status="exchanging with 1.0.0.1:53 over udp: read udp yesitsme:50545->1.0.0.1:53: i/o timeout"
2025/07/15 01:19:34.061969 ERROR response received addr=1.1.1.1:53 proto=udp status="exchanging with 1.1.1.1:53 over udp: read udp yesitsme:48662->1.1.1.1:53: i/o timeout"
```

in the logs and resolution still failed

```
#resolvectl query google.com
google.com: resolve call failed: Could not resolve 'google.com', server or network returned error: SERVFAIL
```

I had to remove both `1.1.1.1` and `1.0.0.1` from the list of `bootstrap_dns` in order to recover DNS resolution. Only then I would see attempting AGH to connect to the faulty `upstream_dns`:

```
2025/07/15 01:19:57.318565 ERROR response received addr=tls://one.one.one.one:853 proto=tcp status="reading response from tls://one.one.one.one:853: read tcp yesitsme:42960->1.0.0.1:853: i/o timeout"
```

at which point it finally fell back onto fallback DNS server and started resolving DNS queries.

### Additional information and/or screenshots

https://news.ycombinator.com/item?id=44565836
https://www.cloudflarestatus.com/incidents/28r0vbbxsh8f

I didn't actually spend time to look at network packet traces to figure out how AGH operates. I can imagine my conclusions to be factually incorrect. I can only claim that things were not working until I removed `1.1.1.1` and `1.0.0.1` from `bootstrap_dns` list even after I waited for ~5 minutes after applying the new configuration.

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.