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=Ethernet
10 USERCTL=no
11 IPADDR=10.200.5.164
12 PREFIX=24
13 GATEWAY=10.200.5.1
14 IPV6INIT=yes
15 IPV6ADDR=2409:8c60:2500:28::405:5a4/112
16 IPV6_DEFAULTGW=2409:8c60:2500:28::405:1
17 PROXY_METHOD=none
18 BROWSER_ONLY=no
19 DEFROUTE=yes
20 IPV4_FAILURE_FATAL=no
21 IPV6_AUTOCONF=yes
22 IPV6_DEFROUTE=yes
23 IPV6_FAILURE_FATAL=no
24 NAME="System eth0"
25 UUID=5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03
26 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: no
10 ipv6.dns: --
11 ipv6.dns-search: --
12 ipv6.dns-options: --
13 ipv6.dns-priority: 0
14 ipv6.ignore-auto-dns: no
15 [root@my-test-host ~]# ping www.baidu.com
16 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=no
10 IPADDR=10.200.5.164
11 PREFIX=24
12 GATEWAY=10.200.5.1
13 IPV6INIT=yes
14 IPV6ADDR=2409:8c60:2500:28::405:5a4/112
15 IPV6_DEFAULTGW=2409:8c60:2500:28::405:1
16 PROXY_METHOD=none
17 BROWSER_ONLY=no
18 DEFROUTE=yes
19 IPV4_FAILURE_FATAL=no
20 IPV6_AUTOCONF=yes
21 IPV6_DEFROUTE=yes
22 IPV6_FAILURE_FATAL=no
23 NAME="System eth0"
24 UUID=5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03
25 BOOTPROTO=none
26 DNS1=10.200.5.4
27 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.com
ping: 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.com
ping: www.baidu.com: Name or service not known

 

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

1 [root@my-test-host ~]# systemctl restart NetworkManager 2 [root@my-test-host ~]# cat /etc/resolv.conf 
3 # Generated by NetworkManager
4 nameserver 10.200.5.4
5 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=eth0
11 HWADDR=FA:16:3E:C1:B6:67
12 MTU=1450
13 ONBOOT=yes
14 TYPE=Ethernet
15 USERCTL=no
16 IPADDR=10.200.5.164
17 PREFIX=24
18 GATEWAY=10.200.5.1
19 IPV6INIT=yes
20 IPV6ADDR=2409:8c60:2500:28::405:5a4/112
21 IPV6_DEFAULTGW=2409:8c60:2500:28::405:1
22 PROXY_METHOD=none
23 BROWSER_ONLY=no
24 DEFROUTE=yes
25 IPV4_FAILURE_FATAL=no
26 IPV6_AUTOCONF=yes
27 IPV6_DEFROUTE=yes
28 IPV6_FAILURE_FATAL=no
29 NAME="System eth0"
30 UUID=5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03
31 BOOTPROTO=none
32 [root@my-test-host ~]#

 

再测试下发现,当通过nmcli清空DNS时,重启NetworkManager服务/etc/resolv.conf 不会被重置,但通过nmcli改变了原来DNS配置(也就是ifcfg-eth0中的配置),重启NetworkManage是会更新/etc/resolv.conf的。如果不想/etc/resolv.conf被重置可参考:https://www.cnblogs.com/my-show-time/p/14218751.html

 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=Ethernet
10 USERCTL=no
11 IPADDR=10.198.5.164
12 PREFIX=24
13 GATEWAY=10.198.5.1
14 IPV6INIT=yes
15 IPV6ADDR=2409:8c60:2500:28::405:5a4/112
16 IPV6_DEFAULTGW=2409:8c60:2500:28::405:1
17 PROXY_METHOD=none
18 BROWSER_ONLY=no
19 DEFROUTE=yes
20 IPV4_FAILURE_FATAL=no
21 IPV6_AUTOCONF=yes
22 IPV6_DEFROUTE=yes
23 IPV6_FAILURE_FATAL=no
24 NAME="System eth0"
25 UUID=5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03
26 BOOTPROTO=none
27 DNS1=8.8.8.8
28 [root@my-test-host ~]# cat /etc/resolv.conf 
29 # Generated by NetworkManager
30 nameserver 10.198.5.4
31 nameserver 10.198.6.4
32 [root@my-test-host ~]# systemctl restart NetworkManager
33 [root@my-test-host ~]# cat /etc/resolv.conf 
34 # Generated by NetworkManager
35 nameserver 8.8.8.8
36 [root@my-test-host ~]# sed -i '/DNS1/d' /etc/sysconfig/network-scripts/ifcfg-eth0
37 [root@my-test-host ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
38 # Created by cloud-init on instance boot automatically, do not edit.
39 #
40 DEVICE=eth0
41 HWADDR=FA:16:3E:C1:B6:67
42 MTU=1450
43 ONBOOT=yes
44 TYPE=Ethernet
45 USERCTL=no
46 IPADDR=10.198.5.164
47 PREFIX=24
48 GATEWAY=10.198.5.1
49 IPV6INIT=yes
50 IPV6ADDR=2409:8c60:2500:28::405:5a4/112
51 IPV6_DEFAULTGW=2409:8c60:2500:28::405:1
52 PROXY_METHOD=none
53 BROWSER_ONLY=no
54 DEFROUTE=yes
55 IPV4_FAILURE_FATAL=no
56 IPV6_AUTOCONF=yes
57 IPV6_DEFROUTE=yes
58 IPV6_FAILURE_FATAL=no
59 NAME="System eth0"
60 UUID=5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03
61 BOOTPROTO=none
62 [root@my-test-host ~]# systemctl restart NetworkManager
63 [root@my-test-host ~]# cat /etc/resolv.conf 
64 # Generated by NetworkManager
65 nameserver 8.8.8.8
66 [root@my-test-host ~]#

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM