Wie deaktiviere ich eine bestimmte Schnittstelle (dhclient) von resolvconf?


7

Ich verwende die ubuntu/trusty64Vagrant-Box mit VirtualBox. Ich möchte nameserver 10.0.2.3Set resolvconfbasierend auf der Standardschnittstelle von Vagrant dauerhaft deaktivieren eth0.

Ich habe ein Netzwerk Vagrantfilewie folgt definiert:

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

Dadurch wird eine Schnittstelle eth1mit DHCP-Einstellungen erstellt. Das resolv.confsieht so aus:

# 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.3und search localkommen von den DHCP-Einstellungen aneth0
  • nameserver 10.20.30.40 kommt von den DHCP-Einstellungen an eth1

Ich möchte letzteres (10.20.30.40) beibehalten und gleichzeitig die Einstellungen von deaktivieren eth0. Ich kann es vorübergehend mit entfernen resolvconf -d eth0.dhclient, aber die Einstellungen werden nach dem Neustart immer wieder angezeigt.

Ich weiß, dass ich alle DHCP-DNS-Einstellungen mit einer statischen überschreiben kann, wie hier beschrieben. Ich möchte jedoch die DHCP-Einstellungen von der eth1Schnittstelle beibehalten und nur deaktivieren eth0.

Ich habe versucht , die Bearbeitung /etc/resolvconf/interface-orderund geändert , eth*um eth1ohne Erfolg.

Gibt es eine Möglichkeit, das /etc/dhcp/dhclient-enter-hooks.d/resolvconfSkript nicht zu bearbeiten ?

Antworten:


2

Dies liegt daran, dass Vagrant der eth0-Schnittstelle eine IP-Adresse gibt und die Standardeinstellung über DHCP erfolgt. Wenn Sie es also mit einigen Patches tun möchten, ist hier die Antwort. Sie müssen lediglich Ihre Datei / etc / network / interfaces mit bearbeiten

nano /etc/network/interfaces

und post-up resolvconf -d eth0.dhclientZeile nach hinzufügeniface eth1 inet dhcp

Du /etc/network/interfaceswürdest also so aussehen

`

 # 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` 

1

Sie haben einige Möglichkeiten: Um Ihre resolv.conf schreibgeschützt zu schreiben, ändern Sie den dhclient-Code und deaktivieren Sie die automatische Aktualisierung auf den Nameservern oder deaktivieren Sie den DNS von eth0.

Option 1: Schreiben Sie die schützende Datei /etc/resolv.conf:

$ chattr +i /etc/resolv.conf

Das Schreiben der Option + i (Attribut) schützt die Datei /etc/resolv.conf unter Linux, sodass niemand sie ändern kann, einschließlich des Root-Benutzers.

Option 2: dhclient-script-Hooks

Öffnen Sie die Datei "resolvconf" im Ordner dhclient:

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

und ändern Sie den Code in:

make_resolv_conf(){
    :
}

Das obige Skript ersetzt make_resolv_conf () durch unsere eigene Funktion. Diese Funktion macht nichts.

Option 3:

Öffnen Sie Ihre ifcfg-Datei:

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

und ändern Sie die Option PEERDNS in Nein:

PEERDNS=no

Bonus: Dadurch wird Ihre resolv.conf-Datei nicht überschrieben oder das DNS-Update deaktiviert, sondern Ihre Routentabelle überschrieben. Wenn Sie eine DNS-Anfrage senden, unabhängig vom Inhalt Ihrer resolv.conf-Datei, überprüfen Sie Ihre Routentabelle und senden Sie die Anfrage an eine bestimmte Adresse:

$ ip route add 8.8.8.8/32 via 192.168.1.1
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.