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-networkd
ambos systemd-resolved
:
- Especificando
DNS=1.2.3.4
na[Resolve]
seção de/etc/systemd/resolved.conf
- Especificando
DNS=1.2.3.4
na[Network]
seção de/etc/systemd/network/eth0.conf
(o único arquivo nesta pasta) - Editando
/etc/resolv.conf
e comentando um dos servidores
Nada disso mudou nada, ainda resolvectl
listei 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 .network
arquivo systemd, adicione uma seção DHCP se ela ainda não existir e use a UseDNS
opçã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.network
para 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.network
correspondente à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.network
a 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.