LINUX.ORG.RU

IPv6 + systemd-networked + systemd-resolved + dnscrypt-proxy services

 ,


2

4

Пролог

Сконфигурированы упомянутые в title темы сервисы для совместной работы и обхода DNS Inernet Service Provider.

Используется один из DNS resolver IPv4 из списка https://github.com/jedisct1/dnscrypt-proxy/blob/master/dnscrypt-resolvers.csv

Сцена первая

blitz@inode ~ % sudo systemctl status systemd-networkd
● systemd-networkd.service - Network Service
   Loaded: loaded (/usr/lib/systemd/system/systemd-networkd.service; enabled; vendor preset: enabled)
   Active: active (running) since Fri 2017-07-21 17:32:27 CEST; 2min 3s ago
     Docs: man:systemd-networkd.service(8)
 Main PID: 545 (systemd-network)
   Status: "Processing requests..."
    Tasks: 1 (limit: 4915)
   CGroup: /system.slice/systemd-networkd.service
           └─545 /usr/lib/systemd/systemd-networkd

Jul 21 17:32:27 inode systemd[1]: Starting Network Service...
Jul 21 17:32:27 inode systemd-networkd[545]: Enumeration completed
Jul 21 17:32:27 inode systemd-networkd[545]: eno1: Renamed to eth0
Jul 21 17:32:27 inode systemd[1]: Started Network Service.
Jul 21 17:32:27 inode systemd-networkd[545]: eth0: Renamed to eno1
Jul 21 17:32:27 inode systemd-networkd[545]: eno1: IPv6 successfully enabled
Jul 21 17:32:30 inode systemd-networkd[545]: eno1: Gained carrier
Jul 21 17:32:32 inode systemd-networkd[545]: eno1: Gained IPv6LL
Jul 21 17:32:33 inode systemd-networkd[545]: eno1: Configured
Jul 21 17:32:34 inode systemd-networkd[545]: eno1: DHCPv4 address 192.168.1.5/24 via 192.168.1.1
blitz@inode ~ % sudo systemctl status systemd-resolved
● systemd-resolved.service - Network Name Resolution
   Loaded: loaded (/usr/lib/systemd/system/systemd-resolved.service; enabled; vendor preset: enabled)
   Active: active (running) since Fri 2017-07-21 17:32:28 CEST; 2min 6s ago
     Docs: man:systemd-resolved.service(8)
           http://www.freedesktop.org/wiki/Software/systemd/resolved
           http://www.freedesktop.org/wiki/Software/systemd/writing-network-configuration-managers
           http://www.freedesktop.org/wiki/Software/systemd/writing-resolver-clients
 Main PID: 562 (systemd-resolve)
   Status: "Processing requests..."
    Tasks: 1 (limit: 4915)
   CGroup: /system.slice/systemd-resolved.service
           └─562 /usr/lib/systemd/systemd-resolved

Jul 21 17:32:27 inode systemd[1]: Starting Network Name Resolution...
Jul 21 17:32:27 inode systemd-resolved[562]: Positive Trust Anchors:
Jul 21 17:32:27 inode systemd-resolved[562]: . IN DS 19036 8 2 49aac11d7b6f6446702e54a1607371607a1a41855200fd2ce1cdde32f24e8fb5
Jul 21 17:32:27 inode systemd-resolved[562]: . IN DS 20326 8 2 e06d44b80b8f1d39a95c0b0d7c65d08458e880409bbc683457104237c7f8ec8d
Jul 21 17:32:27 inode systemd-resolved[562]: Negative trust anchors: 10.in-addr.arpa 16.172.in-addr.arpa 17.172.in-addr.arpa 18.172.in-addr.arpa 19.172.in-addr.arpa 
Jul 21 17:32:27 inode systemd-resolved[562]: Using system hostname 'inode'.
Jul 21 17:32:28 inode systemd[1]: Started Network Name Resolution.
Jul 21 17:32:40 inode systemd-resolved[562]: Switching to DNS server 127.0.0.1 for interface eno1.
Jul 21 17:32:40 inode systemd-resolved[562]: Switching to system DNS server 127.0.0.1.
blitz@inode ~ % sudo systemctl status dnscrypt-proxy  
● dnscrypt-proxy.service - DNSCrypt client proxy
   Loaded: loaded (/usr/lib/systemd/system/dnscrypt-proxy.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2017-07-21 17:32:27 CEST; 2min 11s ago
     Docs: man:dnscrypt-proxy(8)
 Main PID: 563 (dnscrypt-proxy)
    Tasks: 1 (limit: 4915)
   CGroup: /system.slice/dnscrypt-proxy.service
           └─563 /usr/bin/dnscrypt-proxy /etc/dnscrypt-proxy.conf

Jul 21 17:32:27 inode dnscrypt-proxy[563]: Fri Jul 21 17:32:27 2017 [NOTICE] Starting dnscrypt-proxy 1.9.4
Jul 21 17:32:27 inode dnscrypt-proxy[563]: Fri Jul 21 17:32:27 2017 [INFO] Loading plugin [/usr/lib/dnscrypt-proxy/libdcplugin_example_cache.so]
Jul 21 17:32:27 inode dnscrypt-proxy[563]: Fri Jul 21 17:32:27 2017 [INFO] Loaded plugin: [A basic DNS cache]
Jul 21 17:32:27 inode dnscrypt-proxy[563]: Fri Jul 21 17:32:27 2017 [INFO] Generating a new session key pair
Jul 21 17:32:27 inode dnscrypt-proxy[563]: Fri Jul 21 17:32:27 2017 [INFO] Done
Jul 21 17:32:37 inode dnscrypt-proxy[563]: Fri Jul 21 17:32:37 2017 [INFO] Server certificate with serial #1500606001 received
Jul 21 17:32:37 inode dnscrypt-proxy[563]: Fri Jul 21 17:32:37 2017 [INFO] This certificate is valid
Jul 21 17:32:37 inode dnscrypt-proxy[563]: Fri Jul 21 17:32:37 2017 [INFO] Chosen certificate #1500606001 is valid from [2017-07-21] to [2017-07-22]
Jul 21 17:32:37 inode dnscrypt-proxy[563]: Fri Jul 21 17:32:37 2017 [INFO] Server key fingerprint is 9A06:0931:9CC8:23E4:E519:2A16:2E0A:6BF2:76D3:8C70:0542:6E9E:0CB6
Jul 21 17:32:37 inode dnscrypt-proxy[563]: Fri Jul 21 17:32:37 2017 [NOTICE] Proxying from 127.0.0.1:53 to [2001:19f0:5001:30a:5400:ff:fe58:7140]:443

Архиважное - timing services. systemd-resolved должна работать только с 127.0.0.1/dnscrypt-proxy. dnscrypt-proxy должен успеть обратиться к серверу DNS провайдера 192.168.1.1 первым и все DNS запросы обрабатывать сам.

Сцена вторая

При открытии китайского сайта, systemd-resolved - переключается на IPv6 - в обход dnscrypt-proxy.

Переключается на DNS servers провайдера.

Jul 25 01:45:54 inode systemd-resolved[581]: Switching to system DNS server 127.0.0.1.
Jul 25 01:46:01 inode systemd-resolved[581]: Switching to DNS server 127.0.0.1 for interface eno1.
Jul 25 01:46:02 inode systemd-resolved[581]: Switching to DNS server [b]192.168.1.1[/b] for interface eno1.
Jul 25 01:46:02 inode systemd-resolved[581]: Switching to DNS server [b]fe80::9e97:26ff:fe13:d6a9%2[/b] for interface eno1.

Эпилог

Как запретить systemd-resolved переключение на другие DNS серверы?


systemd-resolve --help
-4     Resolve IPv4 addresses
-6     Resolve IPv6 addresses

Посмотри, что там в юните. Или может наглухо отключить ipv6, если не нужен.

ving2 ()
Последнее исправление: ving2 (всего исправлений: 1)
Ответ на: комментарий от ving2

systemd-resolved начинает выбор DNS серверов, как и описано в man 5 resolved.conf.

Задан system DNS 127.0.0.1 - тот, что dnscrypt-proxy. /etc/systemd/resolved.conf

[Resolve]
DNS=127.0.0.1
#FallbackDNS=8.8.8.8 8.8.4.4 2001:4860:4860::8888 2001:4860:4860::8844
#Domains=
#LLMNR=yes
#MulticastDNS=yes
#DNSSEC=no
#Cache=yes
#DNSStubListener=udp

Если systemd-resolved будет использовать только 127.0.0.1 - то проблем не возникает.

Но, поскольку systemd-networked, systemd-resolved и dnscrypt-proxy запускаются одновременно, возникает race condition, при котором dnscrypt-proxy иногда не успевает проинициализировать hand-shake со сторонним DNS Proxy сервером и systemd-resolved пробует DNS серверы роутера IPv4 192.168.1.1 и IPv6 fe80::9e97:26ff:fe13:d6a9%2.

В итоге - DNS resolving идёт по трём серверам.

Тут нужно подумать, как прописать в юнитах задержку systemd-resolved по условию успешной инициализации dnscrypt-proxy.

Первая попытка закончилась фиаско, не задерживается.

IPv6 DNSCrypt Proxy сервер нужен.

Убедился, что некоторые китайские веб-сайты используют IPv6 адреса и тогда, если выбран IPv4 DNS Proxy server, systemd-resolved будет резолвить, использую IPv6 DNS server провайдера.

blitz ()
Ответ на: комментарий от FreeBSD

В данном случае - найдена причина, по которой не так работает systemd-resolved.

Вопрос, как уговорить сервис - делать как надо?

У вас получилось найти то, что слало запросы на резолвинг репозиториев?

blitz ()
Ответ на: комментарий от blitz

systemd-resolved пробует DNS серверы роутера IPv4 192.168.1.1 и IPv6 fe80::9e97:26ff:fe13:d6a9%2.

а откуда он про них знает? Они у тебя в resolv.conf прописаны, помимо 127.0.0.1 (dns-crypt)

п.с. с systemd-resolve я поторопился эта другая штука.

ving2 ()
Ответ на: комментарий от blitz

Посмотри опцию after в systemd unit'ах и допиши, куда надо.

Никаких временных задержек, это гребанный говнокод.

Deleted ()
Ответ на: комментарий от ving2

а откуда он про них знает?

Говорят в исходниках хардкод. Сам не смотрел.

imul ★★★★★ ()
Ответ на: комментарий от Deleted

Так и сделал. Опять.

unit /usr/lib/systemd/system/systemd-resolved.service теперь.

blitz@inode /usr/lib/systemd/system % cat systemd-resolved.service 
#  This file is part of systemd.
#
#  systemd is free software; you can redistribute it and/or modify it
#  under the terms of the GNU Lesser General Public License as published by
#  the Free Software Foundation; either version 2.1 of the License, or
#  (at your option) any later version.

[Unit]
Description=Network Name Resolution
Documentation=man:systemd-resolved.service(8)
Documentation=http://www.freedesktop.org/wiki/Software/systemd/resolved
Documentation=http://www.freedesktop.org/wiki/Software/systemd/writing-network-configuration-managers
Documentation=http://www.freedesktop.org/wiki/Software/systemd/writing-resolver-clients
After=systemd-networkd.service network.target
Before=network-online.target nss-lookup.target
Wants=nss-lookup.target

# On kdbus systems we pull in the busname explicitly, because it
# carries policy that allows the daemon to acquire its name.
Wants=org.freedesktop.resolve1.busname
After=org.freedesktop.resolve1.busname
After=dnscrypt-service

[Service]
Type=notify
Restart=always
RestartSec=0
ExecStart=/usr/lib/systemd/systemd-resolved
WatchdogSec=3min
CapabilityBoundingSet=CAP_SETUID CAP_SETGID CAP_SETPCAP CAP_CHOWN CAP_DAC_OVERRIDE CAP_FOWNER CAP_NET_RAW CAP_NET_BIND_SERVICE
PrivateTmp=yes
PrivateDevices=yes
ProtectSystem=full
ProtectHome=yes
ProtectControlGroups=yes
ProtectKernelTunables=yes
MemoryDenyWriteExecute=yes
RestrictRealtime=yes
RestrictAddressFamilies=AF_UNIX AF_NETLINK AF_INET AF_INET6
SystemCallFilter=~@clock @cpu-emulation @debug @keyring @module @mount @obsolete @raw-io

[Install]
WantedBy=multi-user.target
Alias=dbus-org.freedesktop.resolve1.service

Изменено:

blitz@inode /usr/lib/systemd/system % diff -uraN systemd-resolved.service.sav systemd-resolved.service
--- systemd-resolved.service.sav	2017-07-26 10:39:48.514652885 +0200
+++ systemd-resolved.service	2017-07-26 10:40:41.777385598 +0200
@@ -19,6 +19,7 @@
 # carries policy that allows the daemon to acquire its name.
 Wants=org.freedesktop.resolve1.busname
 After=org.freedesktop.resolve1.busname
+After=dnscrypt-service
 
 [Service]
 Type=notify

blitz ()
Ответ на: комментарий от imul

Интересно.

Попробую - сразу после рекомендации merhalak. Не всё сразу, нужно сейчас systemctl daemon-reload исполнить.

blitz ()
Ответ на: комментарий от ving2

Service systemd-resolved не задерживается до инициализации сервиса dnscrypt-proxy.

В файле конфигурации systemd-resolved - указано After dnscrypt-proxy.

systemd-resolved правильно читает данные с /etc/resolv.conf и определяет 127.0.0.1 as system DNS server.

race condition, systemd-resolved переключается - без спроса - на DNS servers провайдера и systemd After dnscrypt-proxy - не работает.

blitz ()
Ответ на: комментарий от blitz
Jul 26 10:49:18 inode systemd-resolved[592]: Switching to system DNS server 127.0.0.1.
Jul 26 10:49:55 inode systemd-resolved[592]: Switching to DNS server 127.0.0.1 for interface eno1.
Jul 26 10:49:18 inode systemd-resolved[592]: Switching to system DNS server 127.0.0.1.
Jul 26 10:49:55 inode systemd-resolved[592]: Switching to DNS server 127.0.0.1 for interface eno1.
Jul 26 10:51:25 inode systemd-resolved[592]: Switching to DNS server 192.168.1.1 for interface eno1.
Jul 26 10:49:31 inode dnscrypt-proxy[590]: Wed Jul 26 10:49:31 2017 [INFO] Refetching server certificates
Jul 26 10:49:31 inode dnscrypt-proxy[590]: Wed Jul 26 10:49:31 2017 [INFO] Server certificate with serial #1501056002 received
Jul 26 10:49:31 inode dnscrypt-proxy[590]: Wed Jul 26 10:49:31 2017 [INFO] This certificate is valid
Jul 26 10:49:31 inode dnscrypt-proxy[590]: Wed Jul 26 10:49:31 2017 [INFO] Chosen certificate #1501056002 is valid from [2017-07-26] to [2017-07-
Jul 26 10:49:31 inode dnscrypt-proxy[590]: Wed Jul 26 10:49:31 2017 [INFO] Server key fingerprint is 43E6:F907:CAD3:8F9C:8B49:3A1D:D932:71CA:600C
Jul 26 10:49:31 inode dnscrypt-proxy[590]: Wed Jul 26 10:49:31 2017 [NOTICE] Proxying from 127.0.0.1:53 to [2001:19f0:5001:30a:5400:ff:fe58:7140]

Вот этот момент - Jul 26 10:51:25 inode systemd-resolved[592]: Switching to DNS server 192.168.1.1 for interface eno1, когда переключается на DNS провайдера.

Два вопроса:

Почему переключается на DNS провайдера вместо system DNS 127.0.0.1? В это время - DNS Crypt успел проиницаилизироваться, Jul 26 10:49:31 inode dnscrypt-proxy[590]: Wed Jul 26 10:49:31 2017 [NOTICE] Proxying from 127.0.0.1:53 to [2001:19f0:5001:30a:5400:ff:fe58:7140]

Почему и откуда systemd-resolved берёт данные DNS провайдера, не указанные ни в одном файле конфигурации?

Это для удобства пользователя и systemd - знает лучше? Вопрос отнюдь не риторический.

blitz ()
Ответ на: комментарий от blitz

Почему и откуда systemd-resolved берёт данные DNS провайдера, не указанные ни в одном файле конфигурации?

вот это очень интересно, а тебе оно очень нужно, может mask unit. И не мучаться=)

ving2 ()
Ответ на: комментарий от imul

+1! Именно gateway 192.168.1.1.

Думается, что так заложено в коде systemd-resolved - не успев получить отзыв от system DNS 127.0.0.1, переключается на DNS gateway - провайдера.

blitz ()
Ответ на: комментарий от Harald

<offtopic> Личность интересная и толковая на форуме. Merci! </offtopic>

blitz ()
Ответ на: комментарий от ving2

Почему выбрал связку - systemd-networked + systemd-resolved + dnscrypt-proxy?

Потому что быстрей других, в сравнении с netctl например, устанавливает соединение и не нуждается в NetworkManager.

Не знаю, в каком файле конфигурации поставить эти #? Подсказывай! (Хотя, догадываюсь в каком, рационально помыслив)

blitz ()
Ответ на: комментарий от blitz

переключается на DNS gateway

правильнее тогда, шлет запрос на шлюз по умолчанию, если действительно нигде не указан 192.168.1.1. Вообщем надо подождать ответа от intelfx

ving2 ()
Ответ на: комментарий от blitz

а если ты выкинешь из связки systemd-resolved ты что то потеряешь? Он же как кэш. днс сервер работает...

ving2 ()

Как запретить systemd-resolved переключение на другие DNS серверы?

Никак, resolved будет по своему усмотрению переключаться между всеми DNS-серверами, о которых он знает.

Вместо этого можно отключить использование DNS-серверов провайдера в самом подключении (/etc/systemd/network/*.network):

[DHCP]
UseDNS=no
intelfx ★★★★★ ()
Последнее исправление: intelfx (всего исправлений: 1)
Ответ на: комментарий от intelfx

Никак, resolved будет по своему усмотрению переключаться между всеми DNS-серверами, о которых он знает.

ТС, не смей перечить этой мудрой софтине, понял? :D

Harald ★★★★★ ()
Ответ на: комментарий от blitz

Это не «в файле конфигурации». # — это стандартный prompt оболочки sh, запущенной от root. На письме так часто показывают, что команду, следующую за #, нужно выполнять от root (в противоположность символу $, который означает соответственно, что команду следует выполнять от имени своего пользователя).

intelfx ★★★★★ ()
Ответ на: комментарий от intelfx

а я и не понял сразу, что он у меня спросил насчет #

ving2 ()
Ответ на: комментарий от blitz

Почему и откуда systemd-resolved берёт данные DNS провайдера, не указанные ни в одном файле конфигурации?

Как я уже написал, он берёт их из DHCP-информации, которую твой провайдер тебе передаёт.

Это для удобства пользователя и systemd - знает лучше? Вопрос отнюдь не риторический.

Да, это стандартное поведение вообще всех высокоуровневых утилит для настройки сети. Его можно отключить.

intelfx ★★★★★ ()
Ответ на: комментарий от blitz

Ну тогда попробуй

[Resolve]
DNS=127.0.0.1
FallbackDNS=127.0.0.1

А к гейтвею на 53 порт закрыть доступ. Тогда по идее никаких кроме 127.0.0.1 dns-серверов находить не должно и переключений не будет.

imul ★★★★★ ()
Ответ на: комментарий от intelfx

Благодарю вас, за ясный и ёмкий ответ.

.. можно отключить использование DNS-серверов провайдера в самом подключении

О существовании этой нужной опции в конфигурации - не знал, и не встречал упоминания в man.

Before:

blitz@inode /etc/systemd/network % cat /etc/systemd/network/wired.network
[Match]
Name=e*

[Network]
DHCP=yes
DNS=127.0.0.1

After:

[Match]
Name=e*

[Network]
DHCP=no
DNS=127.0.0.1

[DHCP]
UseDNS=no

blitz ()
Ответ на: комментарий от ving2

Да. Заработало с таким конфигом:

blitz@inode ~ % cat /etc/systemd/network/wired.network
[Match]
Name=e*

[Network]
DHCP=yes
DNS=127.0.0.1

[DHCP]
UseDNS=no

Данная конфигурация DNS, проходит должно проверку на сайтах https://www.expressvpn.com/dns-leak-test https://www.dnsleaktest.com/ - без ошибок.

Ещё раз, благодарность и грация intelfx!

blitz ()
Ответ на: комментарий от blitz

Укажи 127.0.0.1 не в *.network, а в /etc/systemd/resolved.conf вместо FallbackDNS=. Иначе есть вероятность того, что если твой DNS proxy отвалится, запросы пойдут через то, что там написано (8.8.8.8 и так далее).

intelfx ★★★★★ ()
Последнее исправление: intelfx (всего исправлений: 2)
Ответ на: комментарий от imul

Умница!

Так и сделал теперь.

Хотя и отговаривал здравый смысл)

blitz ()
Ответ на: комментарий от ving2
#systemctl disabled systemd-resolved
#systemctl mask systemd-resolved

Что и смутило - ошибка disabled и #.

systemctl - исполнаяет комманды от root, если user в группе wheel. Привык к этому.

Другое - disable. not disabled.

Исходя из двух вышеизложенных фактов - решил, что это маскирование с # в файлах конфигурации, и не sh скрипт.

blitz ()
Ответ на: комментарий от intelfx

Окончательное решение проблемы.

Оставлены только systemd-networkd и dnscrypt-proxy сервисами systemd.
systemd-resolved - disabled.

blitz@inode ~ % systemctl status systemd-networkd
● systemd-networkd.service - Network Service
   Loaded: loaded (/usr/lib/systemd/system/systemd-networkd.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2017-12-23 18:13:04 CET; 1 day 5h ago
     Docs: man:systemd-networkd.service(8)
 Main PID: 258 (systemd-network)
   Status: "Processing requests..."
    Tasks: 1 (limit: 4915)
   CGroup: /system.slice/systemd-networkd.service
           └─258 /usr/lib/systemd/systemd-networkd

Dec 23 18:13:13 inode systemd-networkd[258]: eno1: DHCPv4 address 192.168.1.23/24 via 192.168.1.1
Dec 23 18:13:16 inode systemd-networkd[258]: eno1: Configured
Dec 23 18:25:45 inode systemd-networkd[258]: usb0: Interface name change detected, usb0 has been renamed to enp0s26u1u1.
Dec 23 18:25:45 inode systemd-networkd[258]: usb1: Interface name change detected, usb1 has been renamed to enp0s26u1u1i2.
Dec 24 00:14:23 inode systemd-networkd[258]: eno1: Lost carrier
Dec 24 00:14:23 inode systemd-networkd[258]: eno1: DHCP lease lost
Dec 24 00:14:23 inode systemd-networkd[258]: eno1: DHCPv6 lease lost
Dec 24 00:14:27 inode systemd-networkd[258]: eno1: Gained carrier
Dec 24 00:14:31 inode systemd-networkd[258]: eno1: DHCPv4 address 192.168.1.23/24 via 192.168.1.1
Dec 24 00:14:31 inode systemd-networkd[258]: eno1: Configured
blitz@inode ~ % systemctl status dnscrypt-proxy  
● dnscrypt-proxy.service - DNSCrypt client proxy
   Loaded: loaded (/usr/lib/systemd/system/dnscrypt-proxy.service; enabled; vendor preset: disabled)
   Active: active (running) since Sat 2017-12-23 18:13:20 CET; 1 day 5h ago
     Docs: man:dnscrypt-proxy(8)
 Main PID: 680 (dnscrypt-proxy)
    Tasks: 1 (limit: 4915)
   CGroup: /system.slice/dnscrypt-proxy.service
           └─680 /usr/bin/dnscrypt-proxy /etc/dnscrypt-proxy.conf

Dec 24 22:34:48 inode dnscrypt-proxy[680]: Sun Dec 24 22:34:48 2017 [INFO] Refetching server certificates
Dec 24 22:34:48 inode dnscrypt-proxy[680]: Sun Dec 24 22:34:48 2017 [INFO] Server certificate with serial #1514149921 received
Dec 24 22:34:48 inode dnscrypt-proxy[680]: Sun Dec 24 22:34:48 2017 [INFO] This certificate is valid
Dec 24 22:34:48 inode dnscrypt-proxy[680]: Sun Dec 24 22:34:48 2017 [INFO] Chosen certificate #1514149921 is valid from [2017-12-24] to [2017-12-2
Dec 24 22:34:48 inode dnscrypt-proxy[680]: Sun Dec 24 22:34:48 2017 [INFO] Server key fingerprint is 973E:1F17:C88C:D7B3:6638:5B86:ED2B:1694:7EA1:
Dec 24 23:36:17 inode dnscrypt-proxy[680]: Sun Dec 24 23:36:17 2017 [INFO] Refetching server certificates
Dec 24 23:36:17 inode dnscrypt-proxy[680]: Sun Dec 24 23:36:17 2017 [INFO] Server certificate with serial #1514149921 received
Dec 24 23:36:17 inode dnscrypt-proxy[680]: Sun Dec 24 23:36:17 2017 [INFO] This certificate is valid
Dec 24 23:36:17 inode dnscrypt-proxy[680]: Sun Dec 24 23:36:17 2017 [INFO] Chosen certificate #1514149921 is valid from [2017-12-24] to [2017-12-2
Dec 24 23:36:17 inode dnscrypt-proxy[680]: Sun Dec 24 23:36:17 2017 [INFO] Server key fingerprint is 973E:1F17:C88C:D7B3:6638:5B86:ED2B:1694:7EA1:

Проблема была в systemd-resolved.
Без него - нужные DNS серверы выбираются и работают.
Утечки DNS resolve на DNS сервера провайдера - нет.

И конфигурируется chain systemd-networkd + dnscrypt-proxy в секунду, в отличии от dhcpcd 30 секунд.

blitz ()
Ответ на: комментарий от intelfx

Теперь, стало ясно - из практики, что systemd-resolved не нужен в данной конфигурации - `домашняя сеть (телефонный кабель + ADSL modem + router) + десктоп по cat7'.

Полагаю, что данный сервис станет востребован в других конфигурациях.

Проблема? Rather no. Скорее и не только с данным systemd-resolved.
Не спеша изучая systemd, с вашей доброжелательной помощью и отзывчивостью - минимализируются сервисы и оставляются - лишь самые необходимые.

blitz ()
Ответ на: комментарий от blitz

В рамках оффтопа, гораздо более удобно поднять dnscrypt на роутере с openwrt/lede, тогда сразу можно твой зоопарк подтянуть без лишней головной боли. Плюс с кэшированием на нем, это еще и быстро может быть.

anonymous_sama ★★★★★ ()
Ответ на: комментарий от anonymous_sama

> на роутере с openwrt/lede

Грац за совет. Здесь - целый зоопарк модемов/роутеров.
Проприетарных. Вот одна из них - нра, симпатишно и потешно, играет LED огнями внутри корпуса - вдох-выдох. Оффтопик.

Тот модем, который сейчас использую - наполовину Open source, наполовину - нет.
Прошить - давно бы уже сделал.

blitz ()
# cat /etc/systemd/system/dnscrypt-proxy.socket.d/override.conf 
[Socket]
ListenStream=
ListenDatagram=
ListenStream=127.0.0.53:53535
ListenDatagram=127.0.0.53:53535

# cat /etc/systemd/system/dnscrypt-proxy.service.d/override.conf
[Service]
ExecStartPre=/sbin/iptables -t nat -I OUTPUT -m owner ! --uid-owner dnscrypt -p udp --dport 53 -j REDIRECT --to 53535
ExecStartPre=/sbin/iptables -t nat -I OUTPUT -m owner ! --uid-owner dnscrypt -p tcp --dport 53 -j REDIRECT --to 53535
ExecStopPost=/sbin/iptables -t nat -D OUTPUT -m owner ! --uid-owner dnscrypt -p udp --dport 53 -j REDIRECT --to 53535
ExecStopPost=/sbin/iptables -t nat -D OUTPUT -m owner ! --uid-owner dnscrypt -p tcp --dport 53 -j REDIRECT --to 53535
vasily_pupkin ★★★★★ ()
Ответ на: комментарий от intelfx

Благодарю intelfx за оказанную помощь!

Было достаточно включить лишь systemd-networkd.

С правильными опциями с файлах конфигурации /etc/systemd/network/10-dhcp.{link,network}

linux@org.ru ~/asp/extra/xf86-video-intel % cat /etc/systemd/network/10-dhcp.link 
[Link]
MACAddressPolicy=random
linux@org.ru ~/asp/extra/xf86-video-intel % cat /etc/systemd/network/10-dhcp.network 
[Match]
Name=e*

[Network]
DHCP=yes
DNSSEC=true
IPv6PrivacyExtensions=true

[DHCP]
Anonymize=true
UseDNS=false
UseNTP=false
SendHostname=false

и правильно настроенный dnscrypt-proxy с активацией .socket

SturmFuerer ()
Ответ на: комментарий от vasily_pupkin
linux@org.ru ~/asp/extra/xf86-video-intel % systemctl status dnscrypt-proxy.socket
● dnscrypt-proxy.socket - DNSCrypt-proxy socket
   Loaded: loaded (/usr/lib/systemd/system/dnscrypt-proxy.socket; enabled; vendor preset: disabled)
   Active: active (running) since Tue 2018-11-27 12:39:45 CET; 5h 33min ago
     Docs: https://github.com/jedisct1/dnscrypt-proxy/wiki
   Listen: 127.0.0.1:53 (Stream)
           127.0.0.1:53 (Datagram)
           [::1]:53 (Stream)
           [::1]:53 (Datagram)
    Tasks: 0 (limit: 4915)
   Memory: 112.0K
   CGroup: /system.slice/dnscrypt-proxy.socket

Nov 27 12:39:45 inode systemd[1]: dnscrypt-proxy.socket: TCP_NODELAY failed: Protocol not available
Nov 27 12:39:45 inode systemd[1]: Listening on DNSCrypt-proxy socket.
SturmFuerer ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.