You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CoreOS中NetworkManager的dns-search来源及移除方法咨询

问题场景
  • 基础环境:宿主机操作系统为CentOS8,目标部署操作系统为rhcos-4.9.0-x86_64虚拟机,部署架构如下图:
    图1
    IP地址为10.10.12.20的CoreOS虚拟机,指定dnsmasq服务器作为域名解析服务器,通过coreos-installer工具配合ignition文件完成RedHat CoreOS安装部署。
  • dnsmasq服务配置(dnsmasq.conf):
interface=enp1s0

address=/.apps.blue.garagekr.com/10.10.12.12 #loadbalance
host-record=bastion.blue.garagekr.com,10.10.12.12

dhcp-option=3,10.10.12.1        # Gateway
dhcp-option=6,10.10.12.12 # Nameserver
dhcp-range=10.10.12.0,static
dhcp-authoritative

host-record=master2.blue.garagekr.com,10.10.12.20

#reverse
ptr-record=20.12.10.10.in-addr.arpa.,master2.blue.garagekr.com
...
  • CoreOS安装操作:安装阶段通过nmtui工具仅配置IP地址、域名服务器、网关参数,执行安装命令如下:
sudo coreos-installer install --copy-network --ignition-url=http://10.10.12.12:8080/bootstrap.ign --insecure-ignition /dev/sda
异常现象

CoreOS安装流程无报错,但出现非预期的DNS搜索(dns-search)配置:全程未手动配置任何dns-search相关参数,检查NetworkManager的keyfile配置(路径为/etc/NetworkManager/system-connections),其中dns-search字段为空,相关配置如下:

  • NetworkManager运行配置输出:
[root@master2 /]# NetworkManager --print-config
# NetworkManager configuration: /etc/NetworkManager/NetworkManager.conf (lib: 10-disable-default-plugins.conf, 20-client-id-from-mac.conf) (etc: 20-keyfiles.conf, sdn.conf)

[main]
# rc-manager=symlink
# auth-polkit=true
# dhcp=internal
plugins=keyfile,ifcfg-rh

[keyfile]
path=/etc/NetworkManager/system-connections

[logging]
# backend=journal
# audit=false

[device]
match-device=interface-name:br-int;interface-name:br-local;interface-name:br-nexthop,interface-name:ovn-k8s-*,interface-name:k8s-*;interface-name:tun0;interface-name:br0;driver:veth
managed=0

[connection]
ipv4.dhcp-client-id=mac

# no-auto-default file "/var/lib/NetworkManager/no-auto-default.state"
  • 网卡连接配置文件(Wired connection 1.nmconnection)内容:
[root@master2 /]# ls /etc/NetworkManager/system-connections/
'Wired connection 1.nmconnection'

[root@master2 /]# cat /etc/NetworkManager/system-connections/Wired\ connection 1.nmconnection
[connection]
id=Wired connection 1
uuid=4eace183-cd66-3e30-9391-06813f952009
type=ethernet
autoconnect-priority=-999
interface-name=enp1s0
permissions=
timestamp=1655879214

[ethernet]
mac-address-blacklist=

[ipv4]
address1=10.10.12.20/24,10.10.12.1
dns=10.10.12.12;
dns-search=
method=manual

[ipv6]
addr-gen-mode=stable-privacy
dns-search=
method=auto

[proxy]

但检查/etc/resolv.conf文件,存在自动生成的dns-search配置:

[root@master2 /]# cat /etc/resolv.conf
# Generated by NetworkManager
search blue.garagekr.com
nameserver 10.10.12.12
问题解答

1. 自动生成的dns-search域名来源

这个配置和Ignition配置无关,是NetworkManager的默认自动推导逻辑生成的:

  • 你的dnsmasq中配置了10.10.12.20的PTR反向解析记录,指向master2.blue.garagekr.com
  • RHCOS 4.9搭载的NetworkManager存在默认逻辑:当网卡使用静态IP配置、手动指定了DNS服务器,但没有显式配置dns-search参数时,会主动对本机IP发起反向DNS查询,将返回域名的父域(也就是本次场景中的blue.garagekr.com)动态写入/etc/resolv.conf的search字段。
  • 网卡配置文件里dns-search字段为空是正常现象,这个推导值是运行时生成的,不会回写持久化到nmconnection配置文件中。

2. 安装阶段移除该配置的可行方法

两种方案都可以在安装阶段直接生效,不需要安装后再进系统调整:

  • 方案一:调整安装环境的网络配置后再复制
    在安装前的临时环境用nmtui配完IP、网关、DNS后,直接编辑对应的网卡nmconnection文件,在[ipv4]段添加ignore-auto-dns=true参数,保留原有空的dns-search=配置,再执行带--copy-network参数的安装命令即可。安装后的系统会继承这个配置,不会自动推导search域。
  • 方案二:通过Ignition写入全局NetworkManager配置
    直接在使用的ignition配置中添加文件/etc/NetworkManager/conf.d/90-disable-auto-search.conf,内容如下:
    [connection]
    ipv4.ignore-auto-dns=true
    ipv4.dns-search=
    ipv6.ignore-auto-dns=true
    
    系统首次启动时会优先加载这个配置,直接关闭自动推导DNS搜索域的逻辑。

注意:不要删除dnsmasq上配置的PTR反向解析记录,OpenShift集群正常运行依赖节点正反解析记录一致,删除PTR记录会导致后续集群部署、组件通信异常。


内容的提问来源于stack exchange,提问作者GRu. L

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 20:57:23