LINUX.ORG.RU
решено ФорумAdmin

Почему нельзя одновременно использовать search и domain в /etc/resolv.conf ?


1

1

Читаю Крейг Хант «TCP/IP. Сетевое администрирование», там в главе про DNS написано:

Используйте запись search либо запись domain. Предпочтение отдавайте команде search. Никогда не используйте обе команды одновременно.
При этом часто встречаю в конфигах когда используются одновременно и никаких проблем с этим нет. DHCP так всегда добавляет оба. Собственно в чем соль?


очень интригюще

anonymous ()

Я думаю что это ошибка перевода. Быть может domain имеет более высокий приоритет над search? И смысла и то и то одновременно с одинаковым значением использовать видимо действительно нету.

DALDON ★★★★★ ()

Одно - доменное имя компьютера, другое - строка поиска, т.е список доменов в которых будет искаться имя. Точно не помню, но различается порядок поиска в поддоменах. Плюс поведение этих директив различается в зависимости от версии bind. В «DNS и BIND» Крикета Ли и Пола Альбитца
в 6-ой главе подробно расписано.

ghoust ()

Такой ответ подходит:

The domain and search keywords are mutually exclusive. If more than one instance of these keywords is present, the last instance wins.

mky ★★★★★ ()
Ответ на: комментарий от mky

Тогда не совсем ясен смысл слова domain. У меня может ведь быть:

domain company.ru

search test.ru

search lor.ru

И когда я буду делать, ping usa, у меня ОС вначале должна будет подставить: company.ru , затем если не найдёт, должна будет подставить: test.ru , и затем lor.ru

По-крайней мере так сделает windows.

Ну может linux подставит тогда сперва просто: test.ru , и затем lor.ru , если не найдёт.

DALDON ★★★★★ ()
Последнее исправление: DALDON (всего исправлений: 1)
Ответ на: комментарий от DALDON

Тогда не совсем ясен смысл слова domain.

Ключевые слова domain и search...

В ″man resolv.conf″, откуда я взял цитату, они подчёркнуты.

По-крайней мере так сделает windows.

Да пожалуйста, пусть windows делает что угодно. Что сделает linux, ИМХО, вам было проще проверить, чем писать пост на ЛОР. Лично у меня при вашем вашем содержимом в ″domain″ и ″search″ проводится поиск имени в домене lor.ru и в корневом домене и всё.

mky ★★★★★ ()
Ответ на: комментарий от DALDON

Вариант с переводом неверен. Вот что в английской версии:

Use either a search statement or a domain statement. (The search command is preferred.) Never use both in the same configuration.

anonymous ()
Ответ на: комментарий от mky

Что сделает linux, ИМХО, вам было проще проверить, чем писать пост на ЛОР.

Упаси боже, я не топикстартер, я так, потереться начас пришёл. :)

DALDON ★★★★★ ()
Ответ на: комментарий от mky

Лично у меня при вашем вашем содержимом в ″domain″ и ″search″ проводится поиск имени в домене lor.ru и в корневом домене и всё.

А вот это полное УГ! Ведь через dhcp официально можно раздавать несколько search одному клиенту. Ведь зачем-то это было придуманно?

DALDON ★★★★★ ()
Ответ на: комментарий от mky

Лично у меня при вашем вашем содержимом в ″domain″ и ″search″ проводится поиск имени в домене lor.ru и в корневом домене и всё.

И правильно делает. А если написать search company.ru test.ru lor.ru, а domain убрать вовсе, то поиск пойдет в этих зонах (man resolv.conf, как верно подмечено).

dexpl ★★★★★ ()
Ответ на: комментарий от mky

Подходит, будет работать то, что указано последним в resolv.conf. При этом если указано два то первое работать не будет, только второе. Это касается только domain и search, если указать два search или два domain то работают оба. Видимо поэтому и не стоит использовать их одновременно, так как они исключают друг друга.

Disova ()
Ответ на: комментарий от Disova

если указать два search или два domain то работают оба

Еще раз — man resolv.conf. Из написанного там (и подтвержденного выше по теме) следует, что из двух (трех, десяти) хоть search, хоть domain будет учитываться только последний. Если хочется искать в нескольких зонах (до шести), то нужно указывать их в одном search через пробел.

dexpl ★★★★★ ()
Ответ на: комментарий от dexpl

Ваша правда, действительно работает только последний. Видимо я допустил ошибку в эксперементе. Но вопрос остается окрытым, почему нельзя использовать domain и search одновременно?

Disova ()
Ответ на: комментарий от Disova

почему нельзя использовать domain и search одновременно

Потому, цитирую man resolv.conf, что

The domain and search keywords are mutually exclusive. If more than one instance of these keywords is present, the last instance wins.

То есть потому и нельзя, что работает только последний. В конфигах часто встречается (мне встречалось, во всяком случае) search и domain с одинаковым значением — так делать можно, но бессмысленно. А вот если написать, к примеру

search foo bar
domain baz
, то потом будете долго недоумевать — почему в baz поиск идет, а в foo и bar нет. Каких-либо других, в том числе катастрофических, последствий такая конфигурация иметь не будет, она просто не будет работать так, как того хотелось бы.

dexpl ★★★★★ ()
Ответ на: комментарий от Disova

Вдогонку — в самом простом случае, когда нужно, чтобы поиск шел только в доменной зоне хоста, достаточно просто задать полное имя хоста (к примеру, foobar.example.com), не указывая ни search, ни domain.

dexpl ★★★★★ ()
Ответ на: комментарий от dexpl

Спасибо большое! Работает! Не знал, не знал...

DALDON ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.