Как добавить дополнительные поисковые домены в resolv.conf, созданный dhclient в CentOS

35

Когда моя виртуальная машина CentOS загружается, она использует DHCP для получения IP-адреса. Он также перезаписывает resolv.conf настройками DNS, предоставленными сервером DHCP. Сервер DHCP не предоставляет никаких доменов поиска, поэтому я хотел бы, чтобы dhclient включал в список доменов поиска при его записи. Как я могу настроить dhclient для этого?

Мартин Хилтон
источник

Ответы:

32

Никто из них не работал, но последний был самым близким. Для Red Hat 6, используйте DOMAINвместо того, SEARCHкак в примере выше, и расположение файла другое.

Я модифицировал файл /etc/sysconfig/network-scripts/ifcfg-eth0

и изменился

DOMAIN=domain.com

в

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

и все это сработало.

Дин Хиллер
источник
3
Вы должны быть в состоянии использовать оба DOMAINи SEARCH github.com/mcr/isc-dhcp/blob/master/common/resolv.c#L68
Радек Симко
Этот метод настройки DOMAIN также работал для меня на CentOS 6.5, хотя мой resol.conf генерируется NetworkManager, а не dhclient. Сгенерированный файл resol.conf объединил мои записи с записями с сервера DHCP.
PolyTekPatrick
11

Также вы можете добавить строку в /etc/dhcp3/dhclient.conf следующим образом

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

Обратите внимание, что этот метод работает также с Debian Lenny и Squeeze.

Вячеслав Гусев
источник
7

Мне удалось решить это в конце концов. Я добавил следующую строку/etc/dhclient-eth0.conf

append domain-name "example.com";
Мартин Хилтон
источник
4

Это в основном примечание для RHEL7 по сокращению проб и ошибок. Ответ Дина на использование DOMAIN="domain1.exmaple.com domain2.example.com"в /etc/sysconfig/network-scripts/ifcfg-device.confработах. Интересно отметить, что домен хоста, к которому соединение получает от DHCP, всегда добавляется к пути поиска, даже если вы не указали его DOMAIN=или добавили позже в список DOMAIN=. Похоже, /sbin/dhclient-scriptесть куча логики, связанной с этим.

В ходе моего тестирования я обнаружил, что предложение Филиппа об использовании /etc/dhcp/dhclient-device.confтакже работает, хотя с этим и происходит какое-то странное поведение, скорее всего из-за той же логики, /sbin/dhclient-scriptкоторая пытается изменить положение вещей. Например, ни превосходная, ни предварительная работа не ожидаются, домен хоста будет первым. Как примечание к этому методу, /var/lib/NetworkManager/dhclient-device.confэто сгенерированный файл NetworkManager и используется клиентом. Если у вас есть файл, /etc/dhcp/который будет прочитан, вы увидите, что он вставлен вверху файла, и несколько дополнительных опций добавлено ниже.

Мэтт Пай
источник
AWS Linux (RHEL), DOMAIN="your.domain"у меня не работает, сброс после перезагрузки
радтек
2

/etc/dhclient-eth0.confОтвет выше не работает для меня. У меня нет /etc/dhcp3каталога, поэтому я не думал, что это тоже сработает.

Изучив /sbin/dhclient-scriptфайл (который создается /etc/resolv.confв моей системе Centos 5.6), я добавил строку ПОИСК ниже в/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"

Затем:

# 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
источник
2

Для любого, кто просматривает довольно непрозрачную кучу сценариев Fedora / Red Hat, ответ, по крайней мере, на последний AMI Amazon, это /etc/dhclient-eth0.conf (а не пустая папка-приманка в / etc / dhcp /). Файл отсутствует и должен быть создан

Доктор Дэвид Крук
источник
2
Добавление SEARCH в ifcfg-eth0 / etc / sysconfig / network-scripts / ifcfg-eth0 также работает в Amazon версии Fedora. В старых версиях Red Hat это был, по-видимому, ДОМЕН. Я бы порекомендовал это выше.
Доктор Дэвид Крук
2

В CentOS 6 я использую следующий файл для добавления моего предпочтительного домена поиска DNS:

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

Этот файл является первым, который проверен в /etc/sysconfig/network-scripts/ifup-eth:

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

Смотрите также: redhat - Настройка DHCP на RHEL 6 - Ошибка сервера

Филипп Дурбин
источник
Одно примечание, которое нужно добавить - если вы указываете несколько доменов поиска для dhclient с помощью (option|supersede|*) domain-search ..., убедитесь, что вы следуете dhcp-options(5)спецификации man-страницы для цитирования отдельных доменов: во option domain-search "example.com", "sales.example.com", "eng.example.com";многих старых дистрибутивах dhclient формат был разрешен, "example.com sales.example.com eng.example.com";но эта совместимость была удалена в последние несколько лет из-за исправления ошибок bugs.launchpad.net/ubuntu/+source/isc-dhcp/+bug/777785
Патрик,
1

В Fedora 19 добавьте следующие строки в /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";
}

Хорошо работает с NetworkManager. Подробности см .:# man dhclient.conf

Руслан К
источник
не работает для aws linux (rhel)
радтек
0

Добавьте на сервер dchp conf (isc dhcpd):

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

Где domain1.com и т. Д. - суффиксы домена, которые вы хотите добавить в файл resolv.conf на каждом клиенте.

LinuxUser
источник
0

Так как я не вижу этот ответ, и он работал для меня (в то время как другие не видели), вот оно: редактируйте так /etc/resolvconf/resolv.conf.d/baseже, как и вы /etc/resolv.conf. Вам нужно будет resolvconfустановить.

appas
источник