Alguém pode ajudar a esclarecer quatro modos de manipulação do /etc/resolv.conf no systemd-resolved

3

Li sobre o link systemd-resolved.service e aprendi quatro modos de manipulação /etc/resolv.conf.

  1. /run/systemd/resolve/stub-resolv.conf
  2. /usr/lib/systemd/resolv.conf
  3. /run/systemd/resolve/resolv.conf
  4. /etc/resolv.conf pode ser gerenciado por outro pacote

Eu o li várias vezes, mas ainda me sinto confuso sobre como determinar qual modo de /etc/resolv.conf devo escolher como um usuário normal.

Por exemplo, eu tento adicionar alguns servidores dns personalizados, então,

  1. Add DNS=8.8.8.8 8.8.4.4 in /etc/systemd/resolved.conf and check /run/systemd/resolve/resolv.conf, 8.8.8.8 and 8.8.4.4 exist in it.
  2. If symlinking /run/systemd/resolve/resolv.conf to /etc/resolv.conf, 8.8.8.8 and 8.8.4.4 are gone in /run/systemd/resolve/resolv.conf.

Sinto-me totalmente confuso sobre o comportamento do systemd-resolved. Alguém pode gentilmente me ajudar? Obrigado.

Atualização 1:

test@instance-1:~$ cat /run/systemd/resolve/resolv.conf 
...
# See man:systemd-resolved.service(8) for details about the supported modes of
# operation for /etc/resolv.conf.
nameserver 8.8.8.8
nameserver 8.8.4.4

test@instance-1:/etc$ sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf 
test@instance-1:/etc$ ls -alh /etc/resolv.conf 
lrwxrwxrwx 1 root root 32 Mar 18 07:22 /etc/resolv.conf -> /run/systemd/resolve/resolv.conf
test@instance-1:/etc$ sudo reboot

test@instance-1:~$ cat /etc/resolv.conf 
domain c.prime-poetry-197705.internal
search c.prime-poetry-197705.internal. google.internal.
nameserver 169.254.169.254

test@instance-1:~$ cat /run/systemd/resolve/resolv.conf 
domain c.prime-poetry-197705.internal
search c.prime-poetry-197705.internal. google.internal.
nameserver 169.254.169.254

test@instance-1:~$ ls -alh /etc/resolv.conf 
lrwxrwxrwx 1 root root 32 Mar 18 07:22 /etc/resolv.conf -> /run/systemd/resolve/resolv.conf

Atualização 2: symlinking de /etc/resolv.conf

test@instance-1:~$ sudo ln -sf /etc/resolv.conf /run/systemd/resolve/resolv.conf 
test@instance-1:~$ ls -alh /run/systemd/resolve/resolv.conf 
lrwxrwxrwx 1 root root 16 Mar 18 07:51 /run/systemd/resolve/resolv.conf -> /etc/resolv.conf
test@instance-1:~$ sudo reboot

test@instance-1:~$ ls -alh /run/systemd/resolve/resolv.conf 
-rw-r--r-- 1 systemd-resolve systemd-resolve 603 Mar 18 07:52 /run/systemd/resolve/resolv.conf
    
por netcaf 18.03.2018 / 04:49

1 resposta

2

Meu palpite é que você está recebendo sua configuração de IP do DHCP, que substitui as informações de DNS no seu arquivo resolved.conf (de systemd.network(5) ):

[DHCP] SECTION OPTIONS

[...]

UseDNS= When true (the default), the DNS servers received from the DHCP server will be used and take precedence over any statically configured ones.

This corresponds to the nameserver option in resolv.conf(5).

Tente adicionar o seguinte ao seu arquivo {networkname}.network (em /etc/systemd/network ):

[DHCP]
UseDNS=false
    
por 18.03.2018 / 09:14