Bagaimana saya bisa menambahkan domain pencarian tambahan ke resolv.conf yang dibuat oleh dhclient di CentOS

35

Ketika mesin virtual CentOS saya melakukan booting, ia menggunakan DHCP untuk mendapatkan alamat IP. Itu juga menimpa resolv.conf dengan pengaturan DNS yang disediakan oleh server DHCP. Server DHCP tidak menyediakan domain pencarian apa pun sehingga saya ingin meminta dhclient untuk memasukkan daftar domain pencarian saat ia menulisnya. Bagaimana saya bisa mengkonfigurasi dhclient untuk melakukan ini?

Martin Hilton
sumber

Jawaban:

32

Tidak ada yang berhasil, tetapi yang terakhir adalah yang paling dekat. Untuk Red Hat 6, Gunakan DOMAINalih-alih SEARCHseperti pada contoh di atas dan lokasi file berbeda.

Saya memodifikasi file /etc/sysconfig/network-scripts/ifcfg-eth0

dan berubah

DOMAIN=domain.com

untuk

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

dan itu semua berhasil.

Dean Hiller
sumber
3
Anda harus dapat menggunakan keduanya DOMAINdan SEARCH github.com/mcr/isc-dhcp/blob/master/common/resolv.c#L68
Radek Simko
Teknik pengaturan DOMAIN ini juga bekerja untuk saya di CentOS 6.5, meskipun resol.conf saya dihasilkan oleh NetworkManager daripada dhclient. File resol.conf yang dihasilkan menggabungkan entri saya dengan yang dari server DHCP.
PolyTekPatrick
11

Anda juga dapat menambahkan string ke /etc/dhcp3/dhclient.conf seperti ini

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

Perhatikan, bahwa metode ini juga berfungsi dengan Debian Lenny dan Squeeze.

Vyacheslav Gusev
sumber
7

Saya berhasil menyelesaikan ini pada akhirnya. Saya menambahkan baris seperti berikut ke/etc/dhclient-eth0.conf

append domain-name "example.com";
Martin Hilton
sumber
4

Ini sebagian besar merupakan catatan untuk RHEL7 untuk mengurangi coba-coba. Jawaban Dean tentang penggunaan DOMAIN="domain1.exmaple.com domain2.example.com"dalam /etc/sysconfig/network-scripts/ifcfg-device.confkarya. Catatan yang menarik adalah domain host yang koneksi dapatkan dari DHCP selalu ditambahkan ke jalur pencarian, bahkan jika Anda meninggalkannya DOMAIN=atau memasukkannya nanti dalam daftar DOMAIN=. Sepertinya /sbin/dhclient-scriptada banyak logika yang terkait dengan ini.

Dalam pengujian saya, saya menemukan bahwa saran Philip untuk menggunakan /etc/dhcp/dhclient-device.confjuga berfungsi, meskipun ada beberapa perilaku aneh dengan itu, kemungkinan besar karena logika yang sama /sbin/dhclient-scriptyang mencoba untuk memindahkan barang-barang. Sebagai contoh, tidak ada supercede atau prepend yang berfungsi seperti yang diharapkan, domain host akan menjadi yang pertama. Sebagai catatan tambahan pada metode ini, /var/lib/NetworkManager/dhclient-device.confadalah file NetworkManager yang dihasilkan dan digunakan oleh klien. Jika Anda memiliki file /etc/dhcp/yang dapat dibaca, Anda akan melihatnya disisipkan di bagian atas file dan beberapa opsi tambahan ditambahkan di bawah ini.

Matt Pie
sumber
AWS Linux (RHEL), DOMAIN="your.domain"tidak bekerja untuk saya, reset setelah reboot
radtek
2

The /etc/dhclient-eth0.confjawaban di atas tidak bekerja untuk saya. Saya tidak punya /etc/dhcp3direktori, jadi saya pikir itu juga tidak akan berhasil.

Setelah memeriksa /sbin/dhclient-scriptfile (yang membuat /etc/resolv.confpada sistem Centos 5.6 saya), saya menambahkan baris SEARCH di bawah ini ke/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"

Kemudian:

# 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
BabarOnWheels
sumber
2

Bagi siapa saja yang melalui tumpukan skrip Fedora / Red Hat yang buram, jawabannya, setidaknya pada AMI terbaru Amazon, adalah /etc/dhclient-eth0.conf (dan bukan folder umpan kosong di / etc / dhcp /). File tidak ada dan perlu dibuat

Dr David C Crooke
sumber
2
Menambahkan SEARCH ke ifcfg-eth0 / etc / sysconfig / network-scripts / ifcfg-eth0 juga berfungsi di Fedora versi Amazon. Dalam Red Hat versi lama, tampaknya DOMAIN. Saya akan merekomendasikan ini di atas.
Dr David C Crooke
2

Pada CentOS 6, saya menggunakan file berikut untuk menambahkan domain pencarian DNS pilihan saya:

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

File ini adalah yang pertama kali diperiksa di /etc/sysconfig/network-scripts/ifup-eth:

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

Lihat juga: redhat - Mengkonfigurasi DHCP di RHEL 6 - Server Fault

Philip Durbin
sumber
Satu catatan untuk ditambahkan - jika Anda menentukan beberapa domain pencarian untuk dhclient dengan menggunakan (option|supersede|*) domain-search ..., pastikan Anda mengikuti dhcp-options(5)spesifikasi halaman manual untuk mengutip masing-masing domain: option domain-search "example.com", "sales.example.com", "eng.example.com";Banyak distribusi lama dari dhclient yang mengizinkan format "example.com sales.example.com eng.example.com";tetapi kompatibilitas ini telah dihapus dalam beberapa tahun terakhir. karena perbaikan bug bugs.launchpad.net/ubuntu/+source/isc-dhcp/+bug/777785
Patrick
1

Di Fedora 19 tambahkan baris berikutnya ke /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";
}

Bekerja dengan baik dengan NetworkManager. Detail lihat:# man dhclient.conf

Ruslan K
sumber
tidak bekerja untuk aws linux (rhel)
radtek
0

Tambahkan ke conf server dchp (isc dhcpd):

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

Di mana domain1.com, dll. Adalah akhiran domain yang ingin Anda tambahkan ke file resolv.conf pada setiap klien.

Pengguna Linux
sumber
0

Karena saya tidak melihat jawaban ini dan itu berhasil untuk saya (sementara yang lain tidak), ini dia: edit /etc/resolvconf/resolv.conf.d/basedengan cara yang sama seperti Anda /etc/resolv.conf. Anda harus resolvconfdiinstal.

appas
sumber