Làm cách nào để vô hiệu hóa một giao diện cụ thể (dhclient) khỏi độ phân giải?


7

Tôi đang sử dụng ubuntu/trusty64hộp Vagrant với VirtualBox. Tôi muốn tắt vĩnh viễn nameserver 10.0.2.3thiết lập resolvconfdựa trên eth0giao diện mặc định của Vagrant .

Tôi có một mạng được định nghĩa trong tôi Vagrantfilenhư sau:

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

Điều này tạo ra một giao diện eth1với các cài đặt kéo DHCP. Các resolv.confngoại hình như thế này:

# 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.3search localđến từ cài đặt DHCP trêneth0
  • nameserver 10.20.30.40 đến từ cài đặt DHCP trên eth1

Tôi muốn giữ lại cái sau (10.20.30.40), trong khi vô hiệu hóa cài đặt đến từ eth0. Tôi có thể tạm thời xóa nó bằng cách sử dụng resolvconf -d eth0.dhclient, nhưng các cài đặt sẽ xuất hiện lại sau khi khởi động lại.

Tôi biết tôi có thể ghi đè tất cả các cài đặt DNS DHCP bằng một cài đặt tĩnh như được mô tả ở đây , tuy nhiên tôi muốn giữ lại các cài đặt DHCP từ eth1giao diện và chỉ tắt eth0.

Tôi đã thử chỉnh sửa /etc/resolvconf/interface-ordervà thay đổi eth*thành eth1vô ích.

Có cách nào mà không chỉnh sửa tập /etc/dhcp/dhclient-enter-hooks.d/resolvconflệnh?

Câu trả lời:


2

Đó là do Vagrant cung cấp địa chỉ IP cho giao diện eth0 và cài đặt mặc định là thông qua DHCP. Vì vậy, nếu bạn muốn làm điều đó với một số bản vá ở đây là câu trả lời. Tất cả bạn cần làm là chỉnh sửa tệp / etc / mạng / giao diện của bạn bằng cách

nano /etc/network/interfaces

và thêm post-up resolvconf -d eth0.dhclientdòng sauiface eth1 inet dhcp

vì vậy bạn /etc/network/interfacessẽ trông như thế này

`

 # 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

Bạn có một vài tùy chọn: để viết bảo vệ độ phân giải của bạn, thay đổi mã dhclient và tắt tự động cập nhật trên máy chủ tên hoặc vô hiệu hóa DNS từ eth0.

Tùy chọn 1: Viết tệp bảo vệ /etc/resolv.conf:

$ chattr +i /etc/resolv.conf

Tùy chọn + i (thuộc tính) write bảo vệ tệp /etc/resolv.conf trên Linux để không ai có thể sửa đổi nó kể cả người dùng root.

Tùy chọn 2: móc kịch bản dhclient

Mở tệp "độ phân giải" trong thư mục dhclient:

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

và thay đổi mã thành:

make_resolv_conf(){
    :
}

Kịch bản trên sẽ thay thế make_resolv_conf () bằng hàm riêng của chúng tôi. Chức năng này không làm gì cả.

Tùy chọn 3:

Mở tệp ifcfg của bạn:

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

và thay đổi tùy chọn PEERDNS thành Không:

PEERDNS=no

Phần thưởng: Điều này sẽ không ghi đè tệp giải quyếtvv của bạn hoặc vô hiệu hóa cập nhật DNS, nhưng sẽ ghi đè lên bảng lộ trình của bạn. Khi bạn gửi một số yêu cầu DNS cho dù nội dung trong tệp giải quyết của bạn là gì, nó sẽ kiểm tra bảng lộ trình của bạn và gửi yêu cầu đến địa chỉ cụ thể:

$ ip route add 8.8.8.8/32 via 192.168.1.1
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.