commit -m "better"
Как говорится, доверяй, но проверяй! Я тут, случайно, в выводе pstree увидел красивое: flock---unbound Глаз за это зацепился, потому что я сразу подумал, что тут что-то не то, дерево процессов должно было выглядеть так: flock---timeout---unbound Ну,…
#unbound #musl #dns #dnsmasq
Перешел с unbound на dnsmasq, по советам коллег.
(да, я понимаю, что это продукты несколько разных масштабов, потому что unbound - настоящий рекурсивный dns resolver, а dnsmasq - "просто" кеширующая прокся (+dhcp +говна самовар), я их использовал для одного и того же)
Заодно сделал использование локального кешера обязательным, потому что musl без этого так себе работает - https://wiki.musl-libc.org/functional-differences-from-glibc.html#Name-Resolver/DNS, а люди потом жалуются на alpine - https://martinheinz.dev/blog/92
Коллеги посоветовали посмотреть в сторону #systemd-resolvd, но, КМК, они так шутят, потому что, будучи статически слинкованным, он будет под сотню мегабайт весить, наверное.
Перешел с unbound на dnsmasq, по советам коллег.
(да, я понимаю, что это продукты несколько разных масштабов, потому что unbound - настоящий рекурсивный dns resolver, а dnsmasq - "просто" кеширующая прокся (+dhcp +говна самовар), я их использовал для одного и того же)
pg# ls -la /ix/.../bin/unbounddnsmasq (вроде) не виснет, и весит меньше.
... 5683992 unbound
pg# ls -al /ix/.../bin/dnsmasq
... 2948464 dnsmasq
Заодно сделал использование локального кешера обязательным, потому что musl без этого так себе работает - https://wiki.musl-libc.org/functional-differences-from-glibc.html#Name-Resolver/DNS, а люди потом жалуются на alpine - https://martinheinz.dev/blog/92
Коллеги посоветовали посмотреть в сторону #systemd-resolvd, но, КМК, они так шутят, потому что, будучи статически слинкованным, он будет под сотню мегабайт весить, наверное.
martinheinz.dev
Why I Will Never Use Alpine Linux Ever Again
<p>
Nowadays, Alpine Linux is one of the most popular options for container base images. Many people (maybe including you) use it for anything and everythi...
Nowadays, Alpine Linux is one of the most popular options for container base images. Many people (maybe including you) use it for anything and everythi...
👍6🤔2🔥1
#rant
Я тут ускоряю локальный #dns #resolver #dnsmasq, раз уж у меня дошли до него руки.
В процессе мне понадобилась тулза dig.
Ну и, конечно, при первом запуске оно сегфолтнуло, вот с таким вот стеком:
Ну вот какая в жопу точка в имени функции в C? Как это грепать в исходниках-то?
Так-то я тоже так умею, но я же не хвастаюсь этим направо-налево, и, тем более, не качу такое в прод:
Я тут ускоряю локальный #dns #resolver #dnsmasq, раз уж у меня дошли до него руки.
В процессе мне понадобилась тулза dig.
Ну и, конечно, при первом запуске оно сегфолтнуло, вот с таким вот стеком:
Program received signal SIGSEGV, Segmentation fault.Слушайте, я сел, и заплакал.
0x0000000000b568b0 in isc.trampoline_get ()
(gdb) bt
#0 0x0000000000b568b0 in isc.trampoline_get ()
#1 0x0000000000b4fb04 in isc_thread_create ()
#2 0x0000000000b25280 in isc.netmgr_create ()
#3 0x0000000000b44a84 in isc_managers_create ()
#4 0x0000000000b1d9d6 in setup_libs ()
#5 0x0000000000b1545a in dig_setup ()
#6 0x0000000000b1a54d in main ()
Ну вот какая в жопу точка в имени функции в C? Как это грепать в исходниках-то?
Так-то я тоже так умею, но я же не хвастаюсь этим направо-налево, и, тем более, не качу такое в прод:
Reading symbols from ./a.out...Разбираться я не стал, обновил версию bind до более свежей, оно как-то прошло "само".
(No debugging symbols found in ./a.out)
(gdb) b жопа#кеды%гладиолус
Breakpoint 1 at 0x201244
(gdb) r
Starting program: /home/pg/a.out
Breakpoint 1, 0x0000000000201244 in жопа#кеды%гладиолус ()
(gdb)
😁22🤡5👍2😱1
Вышел новый #musl, https://musl.libc.org/releases.html
Постоянство - признак мастерства, новые версии выходят раз в год, примерно в одно и то же время.
Запилили в dns resolver поход по TCP, вот только я приспособил #dnsmasq, ага.
Убрали макросы stat64, lstat64, и прочее барахло для совместимости с API glibc. Сломали сборку примерно всего кода, ожидающего glibc-style API по поддержке 64-битных оффсетов, печаль-беда.
Постоянство - признак мастерства, новые версии выходят раз в год, примерно в одно и то же время.
Запилили в dns resolver поход по TCP, вот только я приспособил #dnsmasq, ага.
Убрали макросы stat64, lstat64, и прочее барахло для совместимости с API glibc. Сломали сборку примерно всего кода, ожидающего glibc-style API по поддержке 64-битных оффсетов, печаль-беда.
👍7🔥2👎1🌭1
commit -m "better"
Перешел с unbound на dnsmasq, по советам коллег.
Будни #bootstrap
Поменял #dnsmasq на https://github.com/AdguardTeam/dnsproxy #dnsproxy
Потому что:
* На нормальном go, а не на богомерзкой сишке. Вообще, по мере того, как я заменяю дырявые программы на C, на что-то более безопасное, начинаю спать спокойнее.
* Почти полностью повторяет #dnsmasq, если почитать их readme, то там прямо так и написано, что они целятся в его ЦА. Функциональность, аргументы cli - прямо все цельнопижжено с dnsmasq.
* Рекомендуетсялучшими собаководами openwrt, для всяких там DoH - https://openwrt.org/docs/guide-user/services/dns/dot_dnsmasq_dnsproxy Я жопа ленивая, думать мне самому обычно лень, а тут все готовое.
* Нормально поддерживает DoH, TLS, и прочие новомодные dns штуки. Мне это, внезапно, стало важно, в контексте борьбы с #РКН.
Я бы взял и раньше, но они только недавно запилили параллельный обход указанных источников, а мне это тоже важно.
Всячески рекомендую, короче.
Поменял #dnsmasq на https://github.com/AdguardTeam/dnsproxy #dnsproxy
Потому что:
* На нормальном go, а не на богомерзкой сишке. Вообще, по мере того, как я заменяю дырявые программы на C, на что-то более безопасное, начинаю спать спокойнее.
* Почти полностью повторяет #dnsmasq, если почитать их readme, то там прямо так и написано, что они целятся в его ЦА. Функциональность, аргументы cli - прямо все цельнопижжено с dnsmasq.
* Рекомендуется
* Нормально поддерживает DoH, TLS, и прочие новомодные dns штуки. Мне это, внезапно, стало важно, в контексте борьбы с #РКН.
Я бы взял и раньше, но они только недавно запилили параллельный обход указанных источников, а мне это тоже важно.
Всячески рекомендую, короче.
GitHub
GitHub - AdguardTeam/dnsproxy: Simple DNS proxy with DoH, DoT, DoQ and DNSCrypt support
Simple DNS proxy with DoH, DoT, DoQ and DNSCrypt support - AdguardTeam/dnsproxy
👍22