私はubuntu/trusty64
Vagrant boxとVirtualBoxを使っています。 Vagrantのデフォルトインターフェースに従ってset byを永久に無効にしたいと思いますnameserver 10.0.2.3
。resolvconf
eth0
私のネットワークは次のように定義されています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 local
DHCP設定でeth0
nameserver 10.20.30.40
DHCP設定で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