resolvconfで特定のインタフェース(dhclient)を無効にする方法は?

resolvconfで特定のインタフェース(dhclient)を無効にする方法は?

私はubuntu/trusty64Vagrant boxとVirtualBoxを使っています。 Vagrantのデフォルトインターフェースに従ってset byを永久に無効にしたいと思いますnameserver 10.0.2.3resolvconfeth0

私のネットワークは次のように定義されていますVagrantfile

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

eth1これにより、DHCP プール設定を含むインターフェイスが作成されます。次のようになりますresolv.conf

# 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そしてsearch localDHCP設定でeth0
  • nameserver 10.20.30.40DHCP設定でeth1

で無効にしている間、後者(10.20.30.40)を維持したいと思いますeth0。を使用して一時的に削除できますが、再resolvconf -d eth0.dhclient起動後に設定が再表示されます。

説明したように、静的設定を使用してすべてのDHCP DNS設定を上書きできます。ここeth1しかし、インターフェイスのDHCP設定を維持して無効にしたいと思いますeth0

/etc/resolvconf/interface-order修正して変更してみましeth*たがeth1役に立ちませんでした。

/etc/dhcp/dhclient-enter-hooks.d/resolvconfスクリプトを変更しないで方法はありませんか?

答え1

これは、VagrantがデフォルトでDHCPを介してeth0インターフェイスのIPアドレスを提供するためです。したがって、いくつかのパッチを使用してこれを行うには、ここに答えがあります。 /etc/network/interfaces ファイルを編集するだけです。

nano /etc/network/interfaces

post-up resolvconf -d eth0.dhclient後ろに行を追加してくださいiface eth1 inet dhcp

すると、/etc/network/interfaces次のようになります

`

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

答え2

いくつかのオプションがあります:resolv.conf書き込み保護、dhclientコードの変更、ネームサーバーの自動更新の無効化、eth0のDNS無効化。

オプション1:/etc/resolv.conf ファイルへの書き込み保護:

$ chattr +i /etc/resolv.conf

+iオプション(属性)は、rootユーザーを含む誰もファイルを変更できないように、Linux上で/etc/resolv.confファイルを書き込むのを防ぎます。

オプション2:dhclientスクリプトフック

dhclientフォルダで「resolvconf」ファイルを開きます。

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

コードを次のように変更します。

make_resolv_conf(){
    :
}

上記のスクリプトは make_resolv_conf() を独自の関数に置き換えます。この関数は何もしません。

オプション3:

ifcfgファイルを開きます。

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

PEERDNSオプションをNoに変更します。

PEERDNS=no

ボーナス:これにより、resolv.confファイルを上書きしたりDNS更新を無効にしたりするのではなく、ルーティングテーブルを上書きします。一部のDNS要求を送信すると、resolv.confファイルの内容に関係なく、ルーティングテーブルを確認し、要求を特定のアドレスに送信します。

$ ip route add 8.8.8.8/32 via 192.168.1.1

関連情報