Como configurar DNS estático com o dhclient enquanto o resolv.conf continua sendo sobrescrito?

5

Seguindo o wiki da Debian NetworkConfiguration , eu tenho tentado setup estático DNS OpenNIC sem sucesso. A primeira coisa que tentei foi editar diretamente o /etc/resolv.conf , mas ele continua sendo sobrescrito. A página wiki lista três fontes possíveis de sobrescrever:

  1. The resolvconf program
  2. The network-manager daemon
  3. DHCP clients
$ apt-cache policy resolvconf
resolvconf:
  Installed: (none)
  Candidate: 1.76.1
  Version table:
     1.76.1 0
        500 http://ftp.us.debian.org/debian/ jessie/main amd64 Packages
$ apt-cache policy network-manager
network-manager:
  Installed: (none)
  Candidate: 0.9.10.0-7
  Version table:
     0.9.10.0-7 0
        500 http://ftp.us.debian.org/debian/ jessie/main amd64 Packages

Considerando que não tenho resolvconf ou network-manager instalado, podemos assumir que a origem é um cliente DHCP. Estou usando wicd como uma alternativa para network-manager , mas a configuração de dns estáticos nas propriedades wicd-gtk não funciona. Assim, editei /etc/dhcp/dhclient.conf adicionando supersede domain-name-servers 50.116.40.226; , mas meu /etc/resolv.conf ainda é:

$ cat /etc/resolv.conf
nameserver 2001:558:feed::2
nameserver 2001:558:feed::1

O que está acontecendo aqui? Devo instalar o resolvconf para ver se funciona? Devo desistir de wicd e instalar network-manager ?

    
por lscstu22 15.12.2015 / 00:38

3 respostas

-1

Use a seguinte solução alternativa para evitar que o cliente dhcp atualize seu /etc/resolv.conf cuidadosamente elaborado:

# chattr +i /etc/resolv.conf
    
por 15.12.2015 / 01:48
2

Acho que o seu servidor DHCP envia respostas não solicitadas, portanto, o seu resolv.conf também foi substituído se você definir o parâmetro de substituição. Adicionar o + i attr pode ser uma solução, mas requer que você o desmarque e redefina manualmente se tiver que fazer algumas alterações.

Você pode, de fato, escrever alguns scripts no lado do cliente (veja man 8 dhclient-script ).

Este tópico também é explicado em debian wiki :

Another approach makes use of dhclient-script's hook scripts. According to dhclient-script(8):

When it starts, the client script first defines a shell function, make_resolv_conf , which is later used to create the /etc/resolv.conf file. To override the default behaviour, redefine this function in the enter hook script. Therefore, we can stop dhclient from overwriting resolv.conf by doing the following:

echo 'make_resolv_conf() { :; }' > /etc/dhcp/dhclient-enter-hooks.d/leave_my_resolv_conf_alone
chmod 755 /etc/dhcp/dhclient-enter-hooks.d/leave_my_resolv_conf_alone

The execute bit is required because dhclient-script uses run-parts(8) to decide which files to read. For that same reason, the filename must not contain anything but letters, digits, underscores and hyphens.

    
por 12.03.2018 / 11:16
0

pela forma como as coisas não estão indo bem, não é nem mesmo um amigo, mas você deve vê-lo bem antes de sair, aplicando assim os arquivos "chattr + i" ao sistema, acho que devemos procurar uma solução para o problema que às vezes é algo tão simples que está na nossa cara e não podemos encher porque estamos nervosos querendo impor nossa vontade no sistema, às vezes um pequeno script até faz milagres quando bem executado na rede, mas aparentemente você faz não quero isso e pelo jeito não é ou está estudando para ser um administrador de sistemas, desculpe! Mas se você preferir ficar nervoso e executar esses truques absurdos desse tipo no sistema, afinal de contas, não está no meu sistema, desculpe deixá-lo irritado com isso! Em vez de fazer isso! para usar o comando 'chattr' configure, edite o arquivo 'interfaces', que geralmente está na pasta / etc / network / e adicione / altere as opções dns-nameserver com o ip do servidor que você quiser. Se essas opções não estiverem no arquivo, você poderá adicioná-las como pequenos exemplos:

-Simple: basta editar o arquivo "/ etc / network / interfaces" desta forma.

   auto lo
   iface lo inet loopback
   iface lo inet6 loopback

   iface eth0 inet dhcp <= Here would be for DHCP devices.
   iface eth0 init 192.168.1.2 <= Here your fixed IP on the network.
   iface eth0 inet6 auto <= Here you define your IPv6 automatically.

   dns-nameserver 192.168.1.1 <= Your IP address here.
   dns-nameserver 8.8.8.8
   dns-nameserver 8.8.4.4

-Salve o arquivo e reinicie a rede ...

No seu caso, você só quer definir o endereço IP dos servidores, definir apenas o seguinte para o final do arquivo de interfaces.

   dns-nameserver 8.8.4.4
   dns-nameserver 8.8.8.8

Aqui está um exemplo que é usado aqui, só não usa DHCP deve usar o IP definido automaticamente pelo roteador que muda cada inicialização no sistema de rede.

    auto lo
    iface lo inet loopback
    iface lo inet6 loopback
    iface eth0 inet static

            address 192.168.1.4/24
            netmask 255.255.255.0
            gateway 192.168.1.1

   dns-nameserver 192.168.1.4
   dns-nameserver 8.8.4.4
   dns-nameserver 8.8.8.8

-Apenas uma pequena amostra para você verificar melhor para entender.

    
por 09.05.2018 / 23:00