Como persistir a configuração “systemd-resolve” para uma interface de rede específica?

0

Eu atualizei meu Desktop Ubuntu para o Bionic Beaver, que mudou para systemd-resolve . Com essa mudança, a resolução de DNS do LXD parou de funcionar.

Para tornar os contêineres LXD detectáveis, posso executar o comando abaixo. Note que o IP 10.78.38.1 é o IP da ponte lxdbr0 .

$ sudo systemd-resolve --interface lxdbr0 --set-dns 10.78.38.1 --set-domain lxd

Com isso, posso descobrir o contêiner LXD pelo nome e a configuração é a seguinte.

$ systemd-resolve --status
.
.
.
Link 10 (lxdbr0)
      Current Scopes: DNS
       LLMNR setting: yes
MulticastDNS setting: no
      DNSSEC setting: no
    DNSSEC supported: no
         DNS Servers: 10.78.38.1
          DNS Domain: lxd
.
.
.

No entanto, após a reinicialização do sistema, essa configuração desapareceu.

$ systemd-resolve --status
.
.
.
Link 10 (lxdbr0)
      Current Scopes: none
       LLMNR setting: yes
MulticastDNS setting: no
      DNSSEC setting: no
    DNSSEC supported: no
.
.
.

Para tornar o anterior persistente, eu revi a manpage systemd-resolve link . Ele sugere a criação de um arquivo /etc/systemd/resolved.conf.d/lxd.conf , mas não há parâmetros disponíveis que me permitam tornar essa configuração específica para uma NIC específica.

    
por quat 12.05.2018 / 11:24

2 respostas

0

Eu percebo que esta pergunta está aqui há 2 meses, mas talvez você ainda precise de respostas?

1) O Systemd-networkd armazena configurações de rede em (pelo menos) 3 diretórios, talvez mais. Aquele que parece mais relevante para você é:

/etc/systemd/network/ 

(substitui os outros 2, ou seja, / lib / s / n e / run / s / n.

Crie um arquivo de texto semelhante a este:

[Match]
Name=enp0s4

[Network]
DHCP=yes
DNS=192.168.1.1

Você pode nomear o que você quiser, desde que esteja nesse diretório, o meu é chamado enp0s4.network, obtendo o conteúdo certo é crítico , se você errar, coisas ruins acontecer, como sua rede pára de funcionar, pelo menos nessa interface, até que você restaure uma configuração de trabalho. O que não é fácil, eu estraguei o meu e levei uma hora para resolvê-lo. Ainda bem que meu "servidor" está na sala ao lado, não em um data center remoto!

Para exemplos de como configurar uma ponte, leia a partir daqui:

man systemd.network |grep -A 42 "Example 3"

Os exemplos fornecidos aqui, além do snippet de código, podem ser configurados:

Current Scopes: DNS
       LLMNR setting: yes
MulticastDNS setting: no
      DNSSEC setting: no
    DNSSEC supported: no
         DNS Servers: 10.78.38.1

Não tenho certeza de qual é a sintaxe do domínio DNS, deve ser possível, a página de manual tem 30 páginas! Se você puder, pule, tentando "Dominar=" estragar meu sistema, é assim que eu sei que errar é uma experiência ruim e pessoal. :-) Então encontre a sintaxe certa, ou não a coloque a menos que você possa se recuperar.

A recuperação é outro post, embora eu esteja cansado.

Aqui estão as referências que usei:

Como verificar se a rede está funcionando: link

Como ativar se estiver desativado: link

Reinicie o systemd-resolver sem reiniciar:

sudo systemctl restart systemd-resolved

FYI: existe uma maneira de dizer ao systemd para deixar o Network-Manager manipular uma interface, assim como deixá-lo "não gerenciado" e rodar com configurações de arquivo simples como /etc/resolv.conf. Mas eu faria funcionar como se estivesse no seu lugar. E eu estou, estou apenas tentando configurar interfaces diferentes para outra finalidade, mas eu precisava de toda essa informação. acima para me ajudar, então pensei em compartilhar. Desde que você compartilhou como alterá-lo temporariamente, o que também é útil. : -)

HTH

    
por 21.07.2018 / 17:24
0

Isso parece plausível, mas parece não ter nenhum efeito:

De acordo com a manpage vinculada man 8 systemd-resolved.service , você precisa usar o arquivo de configuração por link em /etc/systemd/network :

The DNS servers contacted are determined from the global settings in /etc/systemd/resolved.conf, the per-link static settings in /etc/systemd/network/*.network files, the per-link dynamic settings received over DHCP and any DNS server information made available by other system services.

Para tornar sua configuração persistente, você precisa criar o arquivo /etc/systemd/network/lxdbr0.conf :

[Match]
Name=lxdbr0

[Resolve]
DNS=10.78.38.1
Domains=lxd
    
por 11.10.2018 / 14:12