Làm cách nào tôi có thể thêm các miền tìm kiếm bổ sung vào độ phân giải được tạo bởi dhclient trong CentOS


35

Khi máy ảo CentOS của tôi khởi động, nó sử dụng DHCP để lấy địa chỉ IP. Nó cũng ghi đè lên độ phân giải với các cài đặt DNS được cung cấp bởi máy chủ DHCP. Máy chủ DHCP không cung cấp bất kỳ miền tìm kiếm nào, vì vậy tôi muốn nhận được một danh sách các tên miền tìm kiếm khi nó viết nó. Làm thế nào tôi có thể cấu hình dhclient để làm điều này?

Câu trả lời:


32

Không ai trong số họ làm việc, nhưng người cuối cùng là gần nhất. Đối với Red Hat 6, Sử dụng DOMAINthay vì SEARCHnhư trong ví dụ trên và vị trí tệp là khác nhau.

Tôi đã sửa đổi tập tin /etc/sysconfig/network-scripts/ifcfg-eth0

và thay đổi

DOMAIN=domain.com

đến

DOMAIN="domain.com sub.domain.com"

và tất cả đều hoạt động.


3
Bạn sẽ có thể sử dụng cả DOMAINSEARCH github.com/mcr/isc-dhcp/blob/master/common/resolv.c#L68
Radek Simko

Kỹ thuật cài đặt DOMAIN này cũng hoạt động với tôi trên CentOS 6.5, mặc dù độ phân giải của tôi được tạo bởi NetworkManager chứ không phải dhclient. Tệp giải quyết được tạo đã kết hợp các mục nhập của tôi với các mục từ máy chủ DHCP.
PolyTekPatrick

11

Ngoài ra, bạn có thể thêm chuỗi vào /etc/dhcp3/dhclient.conf như thế này

prepend domain-search "domain1.com", "domain2.com";

Lưu ý rằng phương pháp này cũng hoạt động với Debian Lenny và Squeeze.


7

Tôi quản lý để làm việc này cuối cùng. Tôi đã thêm một dòng như sau/etc/dhclient-eth0.conf

append domain-name "example.com";

4

Đây chủ yếu là một lưu ý cho RHEL7 để giảm thử nghiệm và lỗi. Câu trả lời của Dean về việc sử dụng DOMAIN="domain1.exmaple.com domain2.example.com"trong /etc/sysconfig/network-scripts/ifcfg-device.confcác công trình. Một lưu ý thú vị là miền của máy chủ lưu trữ mà kết nối nhận được từ DHCP luôn được thêm vào đường dẫn tìm kiếm, ngay cả khi bạn rời khỏi DOMAIN=hoặc đưa nó vào danh sách sau DOMAIN=. Có vẻ như /sbin/dhclient-scriptcó một loạt logic liên quan đến điều này.

Trong thử nghiệm của mình, tôi thấy rằng đề xuất sử dụng của Philip/etc/dhcp/dhclient-device.conf cũng hoạt động, mặc dù có một số hành vi kỳ lạ với điều đó, rất có thể là do logic tương tự trong /sbin/dhclient-scriptđó cố gắng di chuyển mọi thứ xung quanh. Chẳng hạn, không thay thế hoặc trả trước hoạt động như mong đợi, tên miền của máy chủ sẽ là đầu tiên. Như một lưu ý phụ về phương pháp này, /var/lib/NetworkManager/dhclient-device.conflà tệp NetworkManager được tạo và được sử dụng bởi máy khách. Nếu bạn có một tệp trong /etc/dhcp/đó được đọc, bạn sẽ thấy nó được dán ở đầu tệp và một vài tùy chọn bổ sung được thêm vào bên dưới.


AWS Linux (RHEL), DOMAIN="your.domain"không hoạt động với tôi, thiết lập lại sau khi khởi động lại
radtek

2

Câu /etc/dhclient-eth0.conftrả lời ở trên không làm việc cho tôi. Tôi không có một /etc/dhcp3thư mục vì vậy tôi cũng không nghĩ rằng nó có khả năng hoạt động.

Sau khi kiểm tra /sbin/dhclient-scripttệp (tạo /etc/resolv.conftrên hệ thống Centos 5.6 của tôi), tôi đã thêm dòng SEARCH bên dưới vào/etc/sysconfig/networking/devices/ifcfg-eth0:

DEVICE=eth0 
BOOTPROTO=dhcp
HWADDR=08:00:24:61:17:AC 
ONBOOT=yes
TYPE=Ethernet
SEARCH="example.com sub1.example.com sub2.example.com"

Sau đó:

# ifdown eth0
# ifup eth0
#  cat /etc/resolv.conf
; generated by /sbin/dhclient-script
search example.com sub1.example.com sub2.example.com
nameserver 10.1.0.11

2

Đối với bất kỳ ai đi qua đống kịch bản khá mờ đục của Fedora / Red Hat, câu trả lời, ít nhất là trên AMI mới nhất của Amazon, đó là /etc/dhclient-eth0.conf (và không phải là thư mục trống của decoy tại / etc / dhcp /). Các tập tin không có mặt và sẽ cần phải được tạo ra


2
Thêm TÌM KIẾM vào ifcfg-eth0 / etc / sysconfig / network-scripts / ifcfg-eth0 cũng hoạt động trên phiên bản Fedora của Amazon. Trong các phiên bản cũ hơn của Red Hat, rõ ràng là DOMAIN. Tôi muốn giới thiệu điều này ở trên.
Bác sĩ David C Crooke

2

Trên CentOS 6, tôi đang sử dụng tệp sau để thêm miền tìm kiếm DNS ưa thích của mình:

# cat /etc/dhcp/dhclient-eth0.conf 
interface "eth0" {
    supersede domain-search "dns1.example.com";
}
# getenforce 
Enforcing
# ls -lZ /etc/dhcp/dhclient-eth0.conf 
-rw-r--r--. root root system_u:object_r:bin_t:s0   /etc/dhcp/dhclient-eth0.conf
#

Tệp này là tệp đầu tiên được kiểm tra trong /etc/sysconfig/network-scripts/ifup-eth:

if [ -s /etc/dhcp/dhclient-${DEVICE}.conf ]; then
   DHCLIENTCONF="-cf /etc/dhcp/dhclient-${DEVICE}.conf";

Xem thêm: redhat - Cấu hình DHCP trên RHEL 6 - Lỗi máy chủ


Một lưu ý cần thêm - nếu bạn chỉ định nhiều tên miền tìm kiếm cho dhclient bằng cách sử dụng (option|supersede|*) domain-search ..., hãy đảm bảo bạn theo dõi thông số dhcp-options(5)trang man để trích dẫn các tên miền riêng lẻ: option domain-search "example.com", "sales.example.com", "eng.example.com";Nhiều bản phân phối cũ hơn của dhclient cho phép định dạng "example.com sales.example.com eng.example.com";nhưng tính tương thích này đã bị xóa trong vài năm qua do sửa lỗi bug.launchpad.net/ubfox/+source/isc-dhcp/+orms/777785
Patrick

1

Trong Fedora 19 thêm các dòng tiếp theo vào /etc/dhcp/dhclient.conf

# /etc/dhcp/dhclient.conf

interface "p2p1"
{
    supersede domain-name-servers 8.8.8.8, 8.8.4.4;
    append domain-name " mydomain.net example.com";
}

Hoạt động tốt với NetworkManager. Chi tiết xem:# man dhclient.conf


không hoạt động cho aws linux (rhel)
radtek

0

Thêm vào máy chủ dchp conf (isc dhcpd):

option domain-name "domain1.com domain2.net domain3.org";

Trong đó domain1.com, v.v. là các hậu tố tên miền bạn muốn thêm vào tệp giải quyếtvv trên mỗi máy khách.


0

Vì tôi không thấy câu trả lời này và nó hiệu quả với tôi (trong khi những người khác thì không), nên đây là: chỉnh sửa /etc/resolvconf/resolv.conf.d/basetheo cách bạn muốn /etc/resolv.conf. Bạn sẽ cần resolvconfcài đặt.

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.