Есть ли способ увеличить ограничение суффикса поиска resolv.conf за пределы шести доменов и 256 символов? Это проблема для среды, в которой необходимо учитывать более шести доменов.
Я понимаю, что наличие большего количества суффиксов во многих случаях приведет к задержке разрешения, но я полагаю, что есть параметры «тайм-аут» и «попытки», которые могут справиться с этим.
libc необходимо перекомпилировать после переопределения MAXDNSRCH и defdname в resolv.h в пакете, а затем повторно упаковать. Не изменяйте /usr/include/resolv.h, а изменяйте файл resolv.h в пакете, который его доставляет.
Например, если кто-то работает в операционной системе на основе RPM, можно загрузить .srpm, установить его локально, изменить исходный код, повторно заархивировать его и пересобрать пакеты .srpm и .rpm, загрузить .rpm в Репозиторий Yellowdog Update Manager ("YUM") и массовое обновление пакета libc на всех затронутых системах. После регрессионного тестирования файл .srpm будет зафиксирован в локальном репозитории исходного кода, а изменения задокументированы в журнале фиксации, а также в документе о выпуске сборки. Хотя в этом примере используется RPM, это относится ко всем операционным системам, поддерживающим пакеты.
Все, что меньше этого, и кто-то смотрит на взлом, а не на чистую системную инженерию.
Глядя в /usr/include/resolv.h
, вы увидите, что значение жестко запрограммировано:
# define MAXDNSRCH 6 /* max # domains in search path */
и
char defdname[256]; /* default domain (deprecated) */
Поэтому, если вы хотите внести изменения, вы должны повторно выполнить команду resolv.h, чтобы внести изменения, но я думаю, что это не лучший вариант.