AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / unix / Perguntas / 515154
Accepted
Malvineous
Malvineous
Asked: 2019-04-24 20:15:46 +0800 CST2019-04-24 20:15:46 +0800 CST 2019-04-24 20:15:46 +0800 CST

Como você remove IPs de servidor DNS ruins do systemd-resolved?

  • 772

Então, eu estava testando um roteador e ele adicionou alguns endereços IPv6 aleatórios a todas as máquinas da minha rede, incluindo meu servidor DNS. De alguma forma, esses IPs foram transmitidos como servidores DNS válidos (não tenho certeza de como apenas o roteador real envia pacotes IPv6 RA), mas para encurtar a história, agora todas as minhas máquinas estão enviando consultas DNS para um endereço IP que não existe.

Se eu reiniciar resolvedcom systemctl restart systemd-resolved, resolvectlainda mostrará esses IPs falsos como servidores de nomes válidos.

Eles estão listados, /etc/resolv.confportanto, se eu excluí-los e reiniciá systemd-resolved-los, apenas adiciona os IPs falsos novamente.

Se eu olhar nos logs journalctl --unit=systemd-resolved, ele me diz que os IPs falsos estão operando no "modo de recurso degradado", mas não me diz onde encontrou esses IPs para começar.

De onde ele está pegando esses endereços IP errados? Existe algum arquivo de cache que eu preciso excluir para fazê-lo voltar a usar apenas os IPs fornecidos apenas pelos anúncios do roteador IPv6?

ipv6 systemd-resolved
  • 3 3 respostas
  • 11591 Views

3 respostas

  • Voted
  1. thecarpy
    2019-04-24T22:27:44+08:002019-04-24T22:27:44+08:00

    Você pode usar este comando: sudo systemd-resolve --flush-cachesou sudo resolvectl flush-caches(último comando retirado da página man do systemd-resolve)

    Para verificar se a descarga foi bem-sucedida, use:sudo systemd-resolve --statistics

    Saída de amostra:

    Cache
      Current Cache Size: 0
              Cache Hits: 101
            Cache Misses: 256
    

    Observe também a seção da página de systemd-resolvemanual sobre /etc/resolv.conf, em qual modo você está operando?

    /etc/resolv.conf

    Quatro modos de manipulação de /etc/resolv.conf (veja resolv.conf(5)) são suportados:

    systemd-resolved mantém o arquivo /run/systemd/resolve/stub-resolv.conf para compatibilidade com programas tradicionais do Linux. Este arquivo pode ter um link simbólico de /etc/resolv.conf. Este arquivo lista o stub DNS 127.0.0.53 (veja acima) como o único servidor DNS. Ele também contém uma lista de domínios de pesquisa que estão em uso pelo systemd-resolved. A lista de domínios de pesquisa é sempre mantida atualizada. Observe que /run/systemd/resolve/stub-resolv.conf não deve ser usado diretamente por aplicativos, mas apenas por meio de um link simbólico de /etc/resolv.conf. Este arquivo pode ter um link simbólico de /etc/resolv.conf para conectar todos os clientes locais que ignoram as APIs DNS locais ao systemd-resolved com as configurações corretas de domínios de pesquisa. Este modo de operação é recomendado.

    É fornecido um arquivo estático /usr/lib/systemd/resolv.conf que lista o stub DNS 127.0.0.53 (veja acima) como único servidor DNS. Este arquivo pode ter um link simbólico de /etc/resolv.conf para conectar todos os clientes locais que ignoram as APIs DNS locais ao systemd-resolved. Este arquivo não contém nenhum domínio de pesquisa.

    systemd-resolved mantém o arquivo /run/systemd/resolve/resolv.conf para compatibilidade com programas tradicionais do Linux. Este arquivo pode ter um link simbólico de /etc/resolv.conf e é sempre mantido atualizado, contendo informações sobre todos os servidores DNS conhecidos. Observe as limitações do formato de arquivo: ele não conhece um conceito de servidores DNS por interface e, portanto, contém apenas definições de servidor DNS em todo o sistema. Observe que /run/systemd/resolve/resolv.conf não deve ser usado diretamente por aplicativos, mas apenas por meio de um link simbólico de /etc/resolv.conf. Se este modo de operação for usado, os clientes locais que ignoram qualquer API DNS local também ignorarão o systemd-resolved e falarão diretamente com os servidores DNS conhecidos.

    Alternativamente, /etc/resolv.conf pode ser gerenciado por outros pacotes, neste caso o systemd-resolved irá lê-lo para os dados de configuração do DNS. Neste modo de operação, o systemd-resolved é o consumidor e não o provedor deste arquivo de configuração.

    Observe que o modo de operação selecionado para este arquivo é detectado de forma totalmente automática, dependendo se /etc/resolv.conf é um link simbólico para /run/systemd/resolve/resolv.conf ou lista 127.0.0.53 como servidor DNS.

    • 3
  2. Best Answer
    Malvineous
    2020-12-29T23:18:29+08:002020-12-29T23:18:29+08:00

    Depois de alguma investigação e um relatório de bug do systemd, aqui está o que descobri.

    O systemd-resolved obtém todas as suas informações de DNS do systemd-networkd, portanto, concentre-se no systemd-networkd, pois a correção do servidor não autorizado fluirá para o systemd-resolved.

    Os dados são armazenados /var/run/systemd/netif/com um arquivo por interface. Isso é interno e está sujeito a alterações, portanto, pode ter sido movido no momento em que você leu isso, no entanto, consegui grep esses arquivos para o servidor não autorizado e exclui o arquivo que o continha. Quando reiniciei o systemd-networkd, ele recriou o arquivo excluído por completo.

    No meu caso, ele recriou o arquivo com o servidor DNS desonesto ainda listado, o que significava que ele não estava sendo armazenado em cache pelo systemd, mas ainda estava sendo anunciado em algum lugar da rede.

    Como era um endereço IPv6, instalei radvd(o IPv6 Router Advertisement daemon) e corri radvdumppara mostrar todos os RAs IPv6 que estavam chegando na máquina. Com certeza, em pouco tempo, um chegou com o servidor DNS desonesto listado, para que eu pudesse caçá-lo e corrigi-lo.

    Caso isso não seja uma opção para você, existem algumas opções do systemd-networkd que você pode usar para contornar o problema. Estes devem ser colocados em um dos arquivos onde sua rede está configurada ( /etc/systemd/network/*.network).

    # Don't use DNS servers from DHCP responses received via IPv4 (default is true)
    [DHCPv4]
    UseDNS=false
    
    # Don't use DNS servers from DHCPv6 responses received via IPv6 (default is true)
    [DHCPv6]
    UseDNS=false
    
    [IPv6AcceptRA]
    # Don't use DNS servers from IPv6 Router Advertisement (RA) messages (default is true)
    UseDNS=false
    # Don't start a DHCPv6 client when an RA message is received.
    DHCPv6Client=false
    
    • 3
  3. Binita Bharati
    2020-08-20T22:29:19+08:002020-08-20T22:29:19+08:00

    /etc/resolv.confnão pode ser editado diretamente. E mesmo que o faça, as alterações não terão efeito mesmo que o serviço apropriado seja reiniciado. As etapas abaixo funcionam para remover configurações de DNS indesejadas de /etc/resolv.confum arquivo Ubuntu 20.04 desktop.

    1. sudo nano /etc/resolvconf/resolv.conf.d/head
    2. Faça as alterações desejadas no editor nano.
    3. Reinicie o serviço conforme apropriado. No meu caso foi:systemctl stop resolvconf.service;systemctl start resolvconf.service
    • 0

relate perguntas

  • Como posso desabilitar o IPv6 com o comando "ip"?

  • Portas de superusuário IPv6

  • Esclarecendo quatro modos de manipulação de /etc/resolv.conf no systemd-resolved

  • solaris11 e ipv6: nada funciona

  • Falha na criação do soquete IPv6: família de endereços não suportada pelo protocolo

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Possível firmware ausente /lib/firmware/i915/* para o módulo i915

    • 3 respostas
  • Marko Smith

    Falha ao buscar o repositório de backports jessie

    • 4 respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    user12345 Falha ao buscar o repositório de backports jessie 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl Por que a maioria dos exemplos do systemd contém WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve