iplist
iplist copied to clipboard
iplist.ERROR: Giving up resolution of 'example.org', too many redirects ["X.X.X.X:53"] []
Добрый день!
Раскройте пожалуйста ошибку, пробую запустить сервис в докере, но в логах получаю ошибку:
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 и как ее обойти?
Заранее спасибо!
Проблема связана с тем, что для домена было получено ноль записей (типа AAAA и\или A), но механизм редиректов продолжает пытаться их получить, вместо того чтобы сразу прерываться. Это проблема в amphp\dns клиенте. К сожалению настроить принцип под этот обход через конфигурацию dnsResolver-а пока нельзя. https://github.com/amphp/dns/blob/b7515c1c41e12cbd09b1ab76872bf0b04e949142/src/Rfc1035StubDnsResolver.php#L95C4-L210C6
По этому поправил проблему пока что так.
Создал issue по этому вопросу.
домена было получено ноль записей (типа AAAA и\или A)
Получается, исходя из моего примера, похоже правильный предлог будет ИЛИ, т.е. AAAA или A, т.к. у меня нет IPv6 или по ним записи не приходят, но по IPv4 резолвятся исправно.
Спасибо за разъяснения и внесенное исправление, хотя бы понятно, что данная ошибка при отстутсвии IPv6 ни на что не влияет.
https://github.com/amphp/dns/commit/f2ed903c0a522593c7c552fa5b1e20dfe7ba1ec6
в новой версии amphp/dns исправили этот баг