前言
最近遇到一个奇怪的问题,偶尔/tmp
目录满了之后,一段时间内就一定会导致/tmp/resolv.conf.d/resolv.conf.auto
文件被清空,dnsmasq
无法找到上级转发DNS导致断网。 但是查看文件修改时间,如果可用空间一直充足,这个文件的修改时间也不会发生变化;一旦没有可用空间,这个文件就会被替换为空文件。
谁动了reslove.conf
首先确认下该文件的同于是dnsmasq用于确认转发DNS请求的上级服务器,在luci中可以设定。
既然是写入luci,目标那基本就是netifd
这个库;这个库主要职责就是OpenWrt中绝大多数和网络相关配置。
通过搜索我们可以确认__interface_write_dns_entries
这个函数负责实际的写入resolve;通过下面其唯一调用者interface_write_resolv_conf
的代码,我们就可以确认这件事的元凶。