Linux NetworkManager 管理下DNS配置

系统重启后/etc/resolv.conf 被重置

1 [root@my-test-host ~]# cat /etc/resolv.conf 2 # Generated by NetworkManager

当前网卡配置文件

1 [root@my-test-host ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 2  3 # Created by cloud-init on instance boot automatically, do not edit. 4 # 5 DEVICE=eth0 6 HWADDR=FA:16:3E:C1:B6:67 7 MTU=1450 8 ONBOOT=yes 9 TYPE=Ethernet10 USERCTL=no11 IPADDR=10.200.5.16412 PREFIX=2413 GATEWAY=10.200.5.114 IPV6INIT=yes15 IPV6ADDR=2409:8c60:2500:28::405:5a4/11216 IPV6_DEFAULTGW=2409:8c60:2500:28::405:117 PROXY_METHOD=none18 BROWSER_ONLY=no19 DEFROUTE=yes20 IPV4_FAILURE_FATAL=no21 IPV6_AUTOCONF=yes22 IPV6_DEFROUTE=yes23 IPV6_FAILURE_FATAL=no24 NAME="System eth0"25 UUID=5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e0326 BOOTPROTO=none

使用nmcli添加DNS服务器

[root@my-test-host ~]# nmcli c modify "System eth0" ipv4.dns "10.200.5.4 10.200.6.4"

nmcli添加DNS后/etc/resolv.conf 中并没有相应的配置生成。此时也不能完成域名解析,也就是说虽然通过nmcli已经添加DNS server但系统最终还是会去/etc/resolv.conf查询dns server配置。

1 [root@my-test-host ~]# cat /etc/resolv.conf  2 # Generated by NetworkManager 3 [root@my-test-host ~]# nmcli c s "System eth0" |grep dns 4 connection.mdns: -1 (default) 5 ipv4.dns: 10.200.5.4,10.200.6.4 6 ipv4.dns-search: -- 7 ipv4.dns-options: -- 8 ipv4.dns-priority: 0 9 ipv4.ignore-auto-dns: no10 ipv6.dns: --11 ipv6.dns-search: --12 ipv6.dns-options: --13 ipv6.dns-priority: 014 ipv6.ignore-auto-dns: no15 [root@my-test-host ~]# ping www.baidu.com16 ping: www.baidu.com: Name or service not known

查看网卡配置,多出的两条DNS配置是通过nmcli添加DNS时自动更新的。

1 [root@my-test-host ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 2 # Created by cloud-init on instance boot automatically, do not edit. 3 # 4 DEVICE=eth0 5 HWADDR=FA:16:3E:C1:B6:67 6 MTU=1450 7 ONBOOT=yes 8 TYPE=Ethernet 9 USERCTL=no10 IPADDR=10.200.5.16411 PREFIX=2412 GATEWAY=10.200.5.113 IPV6INIT=yes14 IPV6ADDR=2409:8c60:2500:28::405:5a4/11215 IPV6_DEFAULTGW=2409:8c60:2500:28::405:116 PROXY_METHOD=none17 BROWSER_ONLY=no18 DEFROUTE=yes19 IPV4_FAILURE_FATAL=no20 IPV6_AUTOCONF=yes21 IPV6_DEFROUTE=yes22 IPV6_FAILURE_FATAL=no23 NAME="System eth0"24 UUID=5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e0325 BOOTPROTO=none26 DNS1=10.200.5.427 DNS2=10.200.6.4

尝试reload/load网卡配置,还是无法进行域名解析

[root@my-test-host ~]# nmcli c reload /etc/sysconfig/network-scripts/ifcfg-eth0[root@my-test-host ~]# cat /etc/resolv.conf # Generated by NetworkManager[root@my-test-host ~]# ping www.baidu.comping: www.baidu.com: Name or service not known[root@my-test-host ~]# nmcli c load /etc/sysconfig/network-scripts/ifcfg-eth0[root@my-test-host ~]# ping www.baidu.comping: www.baidu.com: Name or service not known

重启NetworkManager 后/etc/resolv.conf 自动更新了DNS server

1 [root@my-test-host ~]# systemctl restart NetworkManager2 [root@my-test-host ~]# cat /etc/resolv.conf 3 # Generated by NetworkManager4 nameserver 10.200.5.45 nameserver 10.200.6.4

通过命令nmcli清除DNS并重启NetworkManager,发现/etc/resolv.conf 中之前添加的nameserver并没有被清理,但ifcfg-eth0中的配置被清理了。也就是说重启NetworkManager会增加/etc/resolv.conf中的配置,但似乎不会删除已有配置。当然reboot后/etc/resolv.conf还是会被重置的。

1 [root@my-test-host ~]# nmcli c modify "System eth0" ipv4.dns "" 2 [root@my-test-host ~]# systemctl restart NetworkManager 3 [root@my-test-host ~]# cat /etc/resolv.conf  4 # Generated by NetworkManager 5 nameserver 10.200.5.4 6 nameserver 10.200.6.4 7 [root@my-test-host ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 8 # Created by cloud-init on instance boot automatically, do not edit. 9 #10 DEVICE=eth011 HWADDR=FA:16:3E:C1:B6:6712 MTU=145013 ONBOOT=yes14 TYPE=Ethernet15 USERCTL=no16 IPADDR=10.200.5.16417 PREFIX=2418 GATEWAY=10.200.5.119 IPV6INIT=yes20 IPV6ADDR=2409:8c60:2500:28::405:5a4/11221 IPV6_DEFAULTGW=2409:8c60:2500:28::405:122 PROXY_METHOD=none23 BROWSER_ONLY=no24 DEFROUTE=yes25 IPV4_FAILURE_FATAL=no26 IPV6_AUTOCONF=yes27 IPV6_DEFROUTE=yes28 IPV6_FAILURE_FATAL=no29 NAME="System eth0"30 UUID=5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e0331 BOOTPROTO=none32 [root@my-test-host ~]#

再测试下发现,当通过nmcli清空DNS时,重启NetworkManager服务/etc/resolv.conf 不会被重置,但通过nmcli改变了原来DNS配置(也就是ifcfg-eth0中的配置),重启NetworkManage是会更新/etc/resolv.conf的。

1 [root@my-test-host ~]# nmcli c modify "System eth0" ipv4.dns "8.8.8.8" 2 [root@my-test-host ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 3 # Created by cloud-init on instance boot automatically, do not edit. 4 # 5 DEVICE=eth0 6 HWADDR=FA:16:3E:C1:B6:67 7 MTU=1450 8 ONBOOT=yes 9 TYPE=Ethernet10 USERCTL=no11 IPADDR=10.198.5.16412 PREFIX=2413 GATEWAY=10.198.5.114 IPV6INIT=yes15 IPV6ADDR=2409:8c60:2500:28::405:5a4/11216 IPV6_DEFAULTGW=2409:8c60:2500:28::405:117 PROXY_METHOD=none18 BROWSER_ONLY=no19 DEFROUTE=yes20 IPV4_FAILURE_FATAL=no21 IPV6_AUTOCONF=yes22 IPV6_DEFROUTE=yes23 IPV6_FAILURE_FATAL=no24 NAME="System eth0"25 UUID=5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e0326 BOOTPROTO=none27 DNS1=8.8.8.828 [root@my-test-host ~]# cat /etc/resolv.conf 29 # Generated by NetworkManager30 nameserver 10.198.5.431 nameserver 10.198.6.432 [root@my-test-host ~]# systemctl restart NetworkManager33 [root@my-test-host ~]# cat /etc/resolv.conf 34 # Generated by NetworkManager35 nameserver 8.8.8.836 [root@my-test-host ~]# sed -i '/DNS1/d' /etc/sysconfig/network-scripts/ifcfg-eth037 [root@my-test-host ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth038 # Created by cloud-init on instance boot automatically, do not edit.39 #40 DEVICE=eth041 HWADDR=FA:16:3E:C1:B6:6742 MTU=145043 ONBOOT=yes44 TYPE=Ethernet45 USERCTL=no46 IPADDR=10.198.5.16447 PREFIX=2448 GATEWAY=10.198.5.149 IPV6INIT=yes50 IPV6ADDR=2409:8c60:2500:28::405:5a4/11251 IPV6_DEFAULTGW=2409:8c60:2500:28::405:152 PROXY_METHOD=none53 BROWSER_ONLY=no54 DEFROUTE=yes55 IPV4_FAILURE_FATAL=no56 IPV6_AUTOCONF=yes57 IPV6_DEFROUTE=yes58 IPV6_FAILURE_FATAL=no59 NAME="System eth0"60 UUID=5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e0361 BOOTPROTO=none62 [root@my-test-host ~]# systemctl restart NetworkManager63 [root@my-test-host ~]# cat /etc/resolv.conf 64 # Generated by NetworkManager65 nameserver 8.8.8.866 [root@my-test-host ~]#

来源:https://www.icode9.com/content-3-806101.html

(0)

相关推荐

  • RHEL7配置vlan的几种方法

    daneon 关注2018.09.15阅 10160 rhel7中根据是否启用了NetworkManager服务,有2种配置vlan的方法,外加使用ip命令,一共是3种方法: 1 如果启用了Netwo ...

  • CentOS命令ip和nmcli使用速查

    Mini模式安装CentOS后,我们熟悉的ifconfig命令已经没有,取而代之的是nmcli和ip命令 nmcli命令: nmcli命令可以完成网卡上所有的配置工作,并且可以写入配置文件,永久生效( ...

  • DNS协议详解及Linux下的配置

    DNS DNS产生的背景 在Internet网中连接着数量众多的主机,要让这些主机进行通信,更多情况下使用IP得知来标识计算机,主机在互联网上靠IP地址进行位置标识.但是这种纯数字的表示方式不便于人的 ...

  • Linux下安装配置Tengine:Nginx

    Linux下安装配置Tengine:Nginx 简介 Tengine是由淘宝网发起的Web服务器项目.它在Nginx的基础上,针对大访问量网站的需求,添加了很多高级功能和特性. Tengine的性能和 ...

  • linux centos7 NetworkManager 命令行网络配置工具 nmcli 简介-1

    目录 nmcli命令与配置文件对应关系 修改配置文件的主机名 查看网卡信息 显示具体的网络接口信息 显示所有设配状态 修改配置文件执行生效 显示所有活动连接 删除一个网卡连接 添加一个网卡连接 网络接 ...

  • Linux<DNS配置>

    有疑问邮件联系   皮皮虾:1260866273@qq.com DNS( Domain Name System)是"域名系统"的英文缩写,是一种组织成域层次结构的计算机和网络服务命 ...

  • Linux(CentOS7)下如何配置多个Tomcat容器

    一.Linux版本 二.上传并解压apache-tomcat-7.0.90压缩包,然后复制粘贴出来多个tomcat 解压缩 tar -xzvf apache-tomcat-7.0.90.tar.gz ...

  • 万字整理,肝翻Linux内存管理所有知识点

    Linux的内存管理可谓是学好Linux的必经之路,也是Linux的关键知识点,有人说打通了内存管理的知识,也就打通了Linux的任督二脉,这一点不夸张.有人问网上有很多Linux内存管理的内容,为什 ...

  • Linux 内存管理之vmalloc

    走进vmalloc 根据前面的系列文章,我们知道了buddy system是基于页框分配器,kmalloc是基于slab分配器,而且这些分配的地址都是物理内存连续的.但是随着碎片化的积累,连续物理内存 ...

  • linux(ubuntu)根目录下各文件夹的功能

    Ubuntu的根目录下存在着很多的文件夹,但你知道他们都存放着哪些文件呢?这些是深入了解Ubuntu系统必不缺少的知识,本文就关于此做一下介绍吧. /bin/    用以存储二进制可执行命令文件. / ...

  • linux进程管理:进程,程序,线程 & 9个进程管理工具 & 作业控制

    程序 程序:一组指令以及参数集合,按照相应的逻辑控制计算机完成特性任务 (一个程序可以产生多个进程) linux程序:系统,用户,固件 (包含指令,参数) 程序 ------>系统调用----- ...