저는 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 옵션(속성)은 루트 사용자를 포함하여 누구도 파일을 수정할 수 없도록 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