有没有办法将 resolv.conf 搜索后缀限制增加到超过六个域和 256 个字符?这是一个需要考虑的域超过六个的环境的问题。
我意识到在很多情况下有更多的后缀会延迟解析,但我认为有“超时”和“尝试”参数可以解决这个问题。
答案1
重新定义软件包中 resolv.h 中的 MAXDNSRCH 和 defdname 后,必须重新编译 libc,然后重新打包。不要修改 /usr/include/resolv.h,而应修改提供该软件包的 resolv.h。
例如,如果使用的是基于 RPM 的操作系统,则可以下载 .srpm,在本地安装,修改源代码,重新存档并重建 .srpm 和 .rpm 包,将 .rpm 上传到 Yellowdog Update Manager(“YUM”)存储库,并在所有受影响的系统上批量升级 libc 包。经过回归测试后,.srpm 将被提交到本地源代码存储库中,更改将记录在提交日志和构建发布文档中。虽然此示例使用了 RPM,但这适用于所有支持软件包的操作系统。
低于这个标准,人们就会考虑进行黑客攻击,而不是进行干净的系统工程。
答案2
查看/usr/include/resolv.h
,您会看到该值是硬编码的:
# define MAXDNSRCH 6 /* max # domains in search path */
和
char defdname[256]; /* default domain (deprecated) */
所以如果要修改的话,就必须重新编译resolv.h来使其发生变化,但我认为这不是一个好的理想。