Como desabilitar uma interface específica (dhclient) do resolvconf?

8

Estou usando a caixa Vagrant ubuntu/trusty64 com o VirtualBox. Desejo desativar permanentemente nameserver 10.0.2.3 definido por resolvconf com base na interface eth0 padrão do Vagrant.

Eu tenho uma rede definida no meu Vagrantfile da seguinte forma:

server.vm.network "private_network", type: "dhcp", virtualbox__intnet: true

Isso cria uma interface eth1 com configurações de DHCP. O resolv.conf é assim:

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 10.0.2.3
nameserver 10.20.30.40
search local
  • nameserver 10.0.2.3 e search local vêm das configurações de DHCP em eth0
  • nameserver 10.20.30.40 vem das configurações de DHCP em eth1

Eu quero manter o último (10.20.30.40), enquanto desabilitar as configurações provenientes do eth0 . Posso removê-lo temporariamente usando resolvconf -d eth0.dhclient , mas as configurações continuam reaparecendo após a reinicialização.

Sei que posso substituir todas as configurações de DNS do DHCP por uma estática, conforme descrito aqui , no entanto, quero manter as configurações de DHCP da interface eth1 e desabilitar somente eth0 .

Eu tentei editar /etc/resolvconf/interface-order e alterei eth* para eth1 sem sucesso.

Existe uma maneira de editar o script /etc/dhcp/dhclient-enter-hooks.d/resolvconf ?

    
por techraf 10.02.2016 / 16:40

2 respostas

2

É porque o Vagrant fornece o endereço IP para a interface eth0 e a configuração padrão é via DHCP. Então, se você quiser fazer alguma correção, aqui está a resposta. Tudo que você precisa fazer é editar seu arquivo / etc / network / interfaces por

nano /etc/network/interfaces

e adicione post-up resolvconf -d eth0.dhclient linha após iface eth1 inet dhcp

para que seu /etc/network/interfaces seja assim

'

 # This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# Source interfaces
# Please check /etc/network/interfaces.d before changing this file
# as interfaces may have been defined in /etc/network/interfaces.d
# NOTE: the primary ethernet device is defined in
# /etc/network/interfaces.d/eth0
# See LP: #1262951
source /etc/network/interfaces.d/*.cfg

#VAGRANT-BEGIN
# The contents below are automatically generated by Vagrant. Do not modify.
auto eth1
iface eth1 inet dhcp
    post-up resolvconf -d eth0.dhclient
#VAGRANT-END' 
    
por 21.08.2017 / 11:06
1

Você tem algumas opções: para proteger seu resolv.conf, alterar o código do dhclient e desabilitar a atualização automática nos servidores de nomes, ou desabilitar o DNS da eth0.

Opção 1: Escreva o arquivo protegendo o /etc/resolv.conf:

$ chattr +i /etc/resolv.conf

A opção + i (atributo) write protege o arquivo /etc/resolv.conf no Linux para que ninguém possa modificá-lo, incluindo o usuário root.

Opção 2: dhclient-script hooks

Abra o arquivo "resolvconf" na pasta dhclient:

$ nano /etc/dhcp/dhclient-enter-hooks.d/resolvconf

e altere o código para:

make_resolv_conf(){
    :
}

O script acima substituirá make_resolv_conf () por nossa própria função. Esta função não faz nada.

Opção 3:

Abra seu arquivo ifcfg:

$ nano /etc/sysconfig/network-scripts/ifcfg-eth0

e altere a opção PEERDNS para No:

PEERDNS=no

Bônus: Isso não substituirá o arquivo resolv.conf ou desativará a atualização do DNS, mas sobrescreverá sua tabela de rotas. Quando você envia alguma solicitação de DNS, independentemente do conteúdo do arquivo resolv.conf, ele verifica sua tabela de rotas e envia a solicitação para um endereço específico:

$ ip route add 8.8.8.8/32 via 192.168.1.1
    
por 03.12.2016 / 20:37