Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

iplist.ERROR: Giving up resolution of 'example.org', too many redirects ["X.X.X.X:53"] [] #4

Open
mnsold opened this issue Oct 17, 2024 · 4 comments

Comments

@mnsold
Copy link

mnsold commented Oct 17, 2024

Добрый день!

Раскройте пожалуйста ошибку, пробую запустить сервис в докере, но в логах получаю ошибку:
iplist.ERROR: Giving up resolution of 'discord.com', too many redirects ["192.168.1.1:53"] []

Конфиг простой, для теста взял discord:

{
    "domains": [
        "discord.com"
    ],
    "dns": [
        "192.168.1.1:53"
    ],
    "timeout": 30,
    "ip4": [],
    "ip6": [],
    "cidr4": [],
    "cidr6": [],
    "external": {}
}

Почти сразу конфиг подтягивает часть разрешенных адресов

{
    "domains": [
        "discord.com"
    ],
    "dns": [
        "192.168.1.1:53"
    ],
    "timeout": 30,
    "ip4": [
        "162.159.128.233",
        "162.159.135.232",
        "162.159.136.232",
        "162.159.137.232",
        "162.159.138.232"
    ],
    "ip6": [],
    "cidr4": [
        "162.158.0.0/15"
    ],
    "cidr6": [],
    "external": {}
}

Но дальше не меняется

Сам лог, в соответствии с настройками каждые 30 сек выдает ошибку:

[2024-10-17T11:38:27.907199+03:00] iplist.DEBUG: External reloaded for discord.com [] []
[2024-10-17T11:38:27.907291+03:00] iplist.NOTICE: Reloading for discord.com ["started"] []
[2024-10-17T11:38:28.183074+03:00] iplist.ERROR: Giving up resolution of 'discord.com', too many redirects ["192.168.1.1:53"] []
[2024-10-17T11:38:28.183150+03:00] iplist.DEBUG: resolve: discord.com [5,0] []
[2024-10-17T11:38:28.183961+03:00] iplist.NOTICE: Reloaded for discord.com ["finished",1] []
...
[2024-10-17T11:38:58.186051+03:00] iplist.DEBUG: External reloaded for discord.com [] []
[2024-10-17T11:38:58.186146+03:00] iplist.NOTICE: Reloading for discord.com ["started"] []
[2024-10-17T11:38:58.446604+03:00] iplist.ERROR: Giving up resolution of 'discord.com', too many redirects ["192.168.1.1:53"] []
[2024-10-17T11:38:58.446713+03:00] iplist.DEBUG: resolve: discord.com [5,0] []
[2024-10-17T11:38:58.446945+03:00] iplist.NOTICE: Reloaded for discord.com ["finished",0] []

Для теста внутри контейнера docker exec -ti iplist bash выполнил dig/curl

Результат dig:

root@iplist:/app# dig discord.com 192.168.1.1#53

; <<>> DiG 9.18.28-1~deb12u2-Debian <<>> discord.com 192.168.1.1#53
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 35984
;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;discord.com.                   IN      A

;; ANSWER SECTION:
discord.com.            179     IN      A       162.159.138.232
discord.com.            179     IN      A       162.159.137.232
discord.com.            179     IN      A       162.159.128.233
discord.com.            179     IN      A       162.159.136.232
discord.com.            179     IN      A       162.159.135.232

;; Query time: 68 msec
;; SERVER: 127.0.0.11#53(127.0.0.11) (UDP)
;; WHEN: Thu Oct 17 11:43:10 MSK 2024
;; MSG SIZE  rcvd: 120

;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 51272
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;192.168.1.1#53.                        IN      A

;; AUTHORITY SECTION:
.                       86400   IN      SOA     a.root-servers.net. nstld.verisign-grs.com. 2024101700 1800 900 604800 86400

;; Query time: 25 msec
;; SERVER: 127.0.0.11#53(127.0.0.11) (UDP)
;; WHEN: Thu Oct 17 11:43:10 MSK 2024
;; MSG SIZE  rcvd: 118

Результат curl (немного сократил вывод):

root@iplist:/app# curl -LI discord.com
HTTP/1.1 301 Moved Permanently
Date: Thu, 17 Oct 2024 08:43:24 GMT
Content-Type: text/html
Content-Length: 167
Connection: keep-alive
Cache-Control: max-age=3600
Expires: Thu, 17 Oct 2024 09:43:24 GMT
Location: https://discord.com/
Report-To: {"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=..."}],"group":"cf-nel","max_age":604800}
NEL: {"success_fraction":0,"report_to":"cf-nel","max_age":604800}
X-Content-Type-Options: nosniff
Set-Cookie: __cfruid=...; path=/; domain=.discord.com; HttpOnly
Set-Cookie: _cfuvid=...; path=/; domain=.discord.com; HttpOnly
Server: cloudflare
CF-RAY: 8d3f00330c4fa076-FRA
alt-svc: h3=":443"; ma=86400

HTTP/2 200
date: Thu, 17 Oct 2024 08:43:24 GMT
content-type: text/html
cf-ray: 8d3f00343e7d9030-FRA
cf-cache-status: HIT
cache-control: no-cache
last-modified: Thu, 17 Oct 2024 08:00:18 GMT
set-cookie: __dcfduid=...; Expires=Tue, 16 Oct 2029 08:43:24 GMT; Max-Age=157680000; Path=/; Secure; HttpOnly; SameSite=Lax
strict-transport-security: max-age=31536000; includeSubDomains; preload
vary: Accept-Encoding
content-security-policy: default-src 'self'; script-src 'self' 'unsafe-inline' 'nonce-...' ...
permissions-policy: interest-cohort=()
surrogate-control: max-age=2147483647
surrogate-key: prod-wf1.discord.com ... pageId:...
x-content-type-options: nosniff
x-frame-options: DENY
x-xss-protection: 1; mode=block
report-to: {"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?..."}],"group":"cf-nel","max_age":604800}
nel: {"success_fraction":0,"report_to":"cf-nel","max_age":604800}
set-cookie: __sdcfduid=...; Expires=Tue, 16 Oct 2029 08:43:24 GMT; Max-Age=157680000; Path=/; Secure; HttpOnly; SameSite=Lax
set-cookie: __cfruid=...; path=/; domain=.discord.com; HttpOnly; Secure; SameSite=None
set-cookie: _cfuvid=...; path=/; domain=.discord.com; HttpOnly; Secure; SameSite=None
server: cloudflare
alt-svc: h3=":443"; ma=86400

С виду dig/curl отрабатывает нормально.

Не могли пояснить, что за ошибка too many redirects и как ее обойти?

Заранее спасибо!

@rekryt
Copy link
Owner

rekryt commented Oct 17, 2024

Проблема связана с тем, что для домена было получено ноль записей (типа AAAA и\или A), но механизм редиректов продолжает пытаться их получить, вместо того чтобы сразу прерываться. Это проблема в amphp\dns клиенте. К сожалению настроить принцип под этот обход через конфигурацию dnsResolver-а пока нельзя.
https://github.com/amphp/dns/blob/b7515c1c41e12cbd09b1ab76872bf0b04e949142/src/Rfc1035StubDnsResolver.php#L95C4-L210C6

По этому поправил проблему пока что так.

@rekryt
Copy link
Owner

rekryt commented Oct 17, 2024

Создал issue по этому вопросу.

@mnsold
Copy link
Author

mnsold commented Oct 17, 2024

домена было получено ноль записей (типа AAAA и\или A)

Получается, исходя из моего примера, похоже правильный предлог будет ИЛИ, т.е. AAAA или A, т.к. у меня нет IPv6 или по ним записи не приходят, но по IPv4 резолвятся исправно.

Спасибо за разъяснения и внесенное исправление, хотя бы понятно, что данная ошибка при отстутсвии IPv6 ни на что не влияет.

@mnsold mnsold changed the title iplist.ERROR: Giving up resolution of 'example.org', too many redirects ["X.X.X.X1:53"] [] iplist.ERROR: Giving up resolution of 'example.org', too many redirects ["X.X.X.X:53"] [] Oct 18, 2024
@rekryt
Copy link
Owner

rekryt commented Dec 21, 2024

image
amphp/dns@f2ed903
в новой версии amphp/dns исправили этот баг

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants