Faça com que o systemd-resolvido ignore um servidor DNS e use apenas aquele que eu especificar

Faça com que o systemd-resolvido ignore um servidor DNS e use apenas aquele que eu especificar

Estou tendo um problema com o DNS e, para ajudar a resolvê-lo, fui solicitado a definir manualmente as configurações de DNS da minha máquina, especificando apenas um servidor DNS em vez dos dois retornados via DHCP, para que os administradores do servidor possam descobrir se o meu problema está acontecendo apenas em um servidor DNS ou em ambos.

No entanto, não consegui configurar o systemd-resolvido de forma que ele aceitasse manualmente minha configuração de DNS.

Eu tentei o seguinte, e todos ainda enviaram solicitações de DNS aleatoriamente entre os dois servidores, mesmo depois de reiniciar systemd-networkdambos systemd-resolved:

  • Especificando DNS=1.2.3.4na [Resolve]seção de/etc/systemd/resolved.conf
  • Especificando DNS=1.2.3.4na [Network]seção de /etc/systemd/network/eth0.conf(o único arquivo nesta pasta)
  • Editando /etc/resolv.confe comentando um dos servidores

Nada disso mudou nada, ainda resolvectllistei os dois servidores DNS como disponíveis e quando realizei meus testes, as consultas DNS foram divididas entre os dois servidores em vez de usar apenas o servidor que eu havia especificado.

Como posso dizer ao systemd para usar apenas um único servidor DNS especificado e não usar também os servidores retornados via DHCP?

Responder1

Não tentei isso, mas descobri que existe uma opção para ignorar os servidores DNS provenientes da resposta DHCP. No .networkarquivo systemd, adicione uma seção DHCP se ela ainda não existir e use a UseDNSopção:

[Network]
DNS=8.8.8.8  # Specify your DNS server manually

[DHCPv4]
UseDNS=no  # Don't use DNS servers from DHCP

Responder2

Não tenho representante suficiente para comentarMalvínicoa resposta. Embora sua resposta esteja correta, os contêineres nspawn precisam nomear o arquivo 80-container-host0.networkpara substituir os padrões do sistema do host.

Desystemd-nspawndocumentos:

Observe que systemd-networkd.service(8) inclui por padrão um arquivo de rede /usr/lib/systemd/network/80-container-ve.networkcorrespondente às interfaces do lado do host criadas desta forma, que contém configurações para permitir o provisionamento automático de endereço no link virtual criado via DHCP, bem como o roteamento IP automático para o interfaces de rede externas do host. Ele também contém /usr/lib/systemd/network/80-container-host0.networka correspondência da interface do lado do contêiner criada dessa maneira, contendo configurações para permitir a atribuição de endereço do lado do cliente via DHCP. Caso o systemd-networkd esteja sendo executado no host e dentro do contêiner, a comunicação IP automática do contêiner para o host estará disponível, com conectividade adicional à rede externa.

/etc/systemd/network/80-container-host0.network:

# https://www.freedesktop.org/software/systemd/man/systemd.network.html#UseDNS=
#
# Disable adding the DNS from DHCP
#
[Match]
Virtualization=container
Name=host0

[Network]
DHCP=ipv4
DNS=

[DHCPv4]
UseDNS=false

Responder3

Se você puder definir um IP estático, poderá especificar o servidor DNS. Peça aos administradores da rede um IP estático que você possa usar e tente. Não use qualquer IP para isso, você pode facilmente acabar com uma duplicata.

informação relacionada