configura o DNS na conexão ppp via systemd / dbus busctl

0

Configuração:

Uma conexão de dispositivo debian jessie via ppp para a internet

Usamos systemd-networking e nenhuma interface / etc / network /.

systemd-resolved é usado para DNS.

Versões:

systemctl --version
systemd 230
+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ -LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD +IDN
armv7l GNU/Linux
kernel 4.4.14-v7+

(versões são as de jessie-backports)

Isso funciona bem para Ethernet + W-Lan, mas falha para o ppp.

Razão: os scripts de conexão personalizados

0000usepeerdns 000resolvconf

ainda estão escrevendo para /etc/resolv.conf ao invés de se conectar ao servidor dbus systemd-resolve.

então eu estou tentando fazer com que a interface PPP tenha resolução de DNS, o que deveria ser possível chamando SetLinkDNS via DBUS pelo que eu li (links no final)

Obtenha o ID da interface (5 no nosso caso)

ip l
..
5: ppp0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 700 qdisc pfifo_fast state UNKNOWN mode DEFAULT group default qlen 3                                                         
link/ppp    
..

Leia o status atual da interface de link 5

busctl introspect org.freedesktop.resolve1 /org/freedesktop/resolve1/link/_35 |grep DNS 
.DNS                                property  a(iay)    0                 -

defina o DNS na interface 5 com 1 endereço IPV4 (google DNS como exemplo) (qual é a explicação do terceiro inteiro?)

busctl call org.freedesktop.resolve1 /org/freedesktop/resolve1 org.freedesktop.resolve1.Manager SetLinkDNS 'ia(iay)' 5 1 2 4 8 8 8 8
Link ppp0 is managed.

Lê os valores, ainda vazios, por isso não inseriu esses valores.

busctl introspect org.freedesktop.resolve1 /org/freedesktop/resolve1/link/_35 |grep DNS 
.DNS                                property  a(iay)    0  

Então, como eu depuro isso ainda mais para finalmente fazê-lo funcionar?

voltar para / etc / network / interfaces ou um "normal" /etc/resolv.conf não é uma opção.

Recursos que eu usei (mais muito mais, mas esses são os mais relevantes):

Rastreador de problemas do Github no sistema

gestor de rede wiki do freedesktop

rastreador de problemas DNS do jonathanio VPN

script de mudança de DNS da VPN de jonathanio

    
por Dennis Nolte 03.04.2017 / 11:28

1 resposta

0

o problema estava acontecendo porque a rede já era gerenciada pelo sistema.

Desabilitando o gerenciamento do systemd-resolvido no arquivo / etc / systemd / network / correspondente Recarregando e reiniciando os deamons %código% %código% fez a mensagem de erro systemctl daemon-reload desaparecer.

Eu percebi isso lendo mais, perguntando no canal frenode #systemd irc, obtendo alguma ajuda de ponteiro lá e lendo o código fonte.

Seguir define o DNS na interface 5 para o DNS do Google

busctl call org.freedesktop.resolve1 /org/freedesktop/resolve1 org.freedesktop.resolve1.Manager SetLinkDNS 'ia(iay)' 5 1 2 4 8 8 8 8
    
por 03.04.2017 / 14:30