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