Bug 1157816
| Summary: | resolv.conf is overwritten if resolv.conf.save exists | |||
|---|---|---|---|---|
| Product: | Red Hat Enterprise Linux 6 | Reporter: | William Yardley <wby+redhat> | |
| Component: | initscripts | Assignee: | Lukáš Nykrýn <lnykryn> | |
| Status: | CLOSED ERRATA | QA Contact: | Jan Ščotka <jscotka> | |
| Severity: | unspecified | Docs Contact: | ||
| Priority: | unspecified | |||
| Version: | 6.5 | CC: | psklenar, ptalbert | |
| Target Milestone: | rc | |||
| Target Release: | --- | |||
| Hardware: | Unspecified | |||
| OS: | Unspecified | |||
| Whiteboard: | ||||
| Fixed In Version: | initscripts-9.03.47-1.el6 | Doc Type: | Bug Fix | |
| Doc Text: |
Cause:
If interface was going down and there was resolv.conf.save we have replace resolv.conf by its content, even if during ifup for that interface we had not modified that file.
Consequence:
Unexpected changes to resolve.conf
Fix:
Now we replace resolv.conf only in the case that the device was dynamically configured or has DNS options in its ifcfg file.
Result:
Hopefully resolve.sconf will be updated only in sane cases.
|
Story Points: | --- | |
| Clone Of: | ||||
| : | 1273435 (view as bug list) | Environment: | ||
| Last Closed: | 2015-07-22 07:18:43 UTC | Type: | Bug | |
| Regression: | --- | Mount Type: | --- | |
| Documentation: | --- | CRM: | ||
| Verified Versions: | Category: | --- | ||
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | ||
| Cloudforms Team: | --- | Target Upstream Version: | ||
| Embargoed: | ||||
| Bug Depends On: | ||||
| Bug Blocks: | 1273435 | |||
|
Description
William Yardley
2014-10-27 18:24:17 UTC
ps - It looks like setting RESOLV_MODS to no may resolve this, however, I don't see a lot of documentation about this, and it does not default to 'no', so the behavior is still unexpected and unpredictable. My expectation (and, I think, a reasonable person's) is that if DHCP is not enabled, and Network Manager is not being used, that resolv.conf should not be automatically overwritten. /etc/resolv.conf.save is created because you have DNSX specified. RESOLV_MODS should not be used anymore. Documented way is to set PEERDNS=no [root@retr-test-01 ~]# cat /etc/resolv.conf
; pushed from Spacewalk
options timeout:2
options single-request-reopen
search example.edu
nameserver 10.0.235.5
nameserver 10.0.239.153
nameserver 10.0.139.100
[root@retr-test-01 ~]# cat /etc/resolv.conf.save
; pushed from Spacewalk
options timeout:2
options single-request-reopen
search example.edu
nameserver 10.0.139.100
nameserver 10.0.239.153
[root@retr-test-01 ~]# grep DNS /etc/sysconfig/network-scripts/ifcfg-eth*
[root@retr-test-01 ~]# /etc/init.d/network restart
[...]
[root@retr-test-01 ~]# cat /etc/resolv.conf
options timeout:2
options single-request-reopen
; pushed from Spacewalk
search example.edu
nameserver 10.0.139.100
nameserver 10.0.239.153
[root@retr-test-01 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
HWADDR=00:50:56:94:16:d1
IPV6INIT=yes
MTU=1500
NM_CONTROLLED=yes
ONBOOT=yes
TYPE=Ethernet
UUID="bb91dbea-3773-42d8-a9d9-2e476f53c6d0"
IPADDR=192.168.32.7
NETMASK=255.255.255.0
GATEWAY=192.168.32.254
USERCTL=no
[eth1 is similar]
[root@retr-test-01 ~]# cat /etc/resolv.conf
; pushed from Spacewalk
options timeout:2
options single-request-reopen
search example.edu
nameserver 10.0.235.5
nameserver 10.0.239.153
nameserver 10.0.139.100
[root@retr-test-01 ~]# cat /etc/resolv.conf.save
; pushed from Spacewalk
options timeout:2
options single-request-reopen
search example.edu
nameserver 10.0.139.100
nameserver 10.0.239.153
[root@retr-test-01 ~]# grep DNS /etc/sysconfig/network-scripts/ifcfg-eth*
[root@retr-test-01 ~]# /etc/init.d/network restart
[...]
[root@retr-test-01 ~]# cat /etc/resolv.conf
options timeout:2
options single-request-reopen
; pushed from Spacewalk
search example.edu
nameserver 10.0.139.100
nameserver 10.0.239.153
[root@retr-test-01 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
HWADDR=00:50:56:94:16:d1
IPV6INIT=yes
MTU=1500
NM_CONTROLLED=yes
ONBOOT=yes
TYPE=Ethernet
UUID="bb91dbea-3773-42d8-a9d9-2e476f53c6d0"
IPADDR=192.168.32.7
NETMASK=255.255.255.0
GATEWAY=192.168.32.254
USERCTL=no
[eth1 is similar]
Also, despite the code in /etc/sysconfig/network-scripts/ifdown-post:
if [ "$PEERDNS" != "no" -o -n "$RESOLV_MODS" -a "$RESOLV_MODS" != "no"
]; then
I'm seeing this:
[root@retr-test-01 ~]# cat /etc/resolv.conf
; pushed from Spacewalk
options timeout:2
options single-request-reopen
search example.edu
nameserver 10.0.235.5
nameserver 10.0.239.153
nameserver 10.0.139.100
[root@retr-test-01 ~]# cat /etc/resolv.conf.save
; pushed from Spacewalk
options timeout:2
options single-request-reopen
search example.edu
nameserver 10.0.239.153
nameserver 10.0.139.100
[root@retr-test-01 ~]# grep ^PEERD /etc/sysconfig/network-scripts/ifcfg-eth*
/etc/sysconfig/network-scripts/ifcfg-eth0:PEERDNS=no
/etc/sysconfig/network-scripts/ifcfg-eth1:PEERDNS=no
[root@retr-test-01 ~]# /etc/init.d/network restart
Shutting down interface eth0: [ OK ]
Shutting down interface eth1: [ OK ]
Shutting down loopback interface: [ OK ]
Bringing up loopback interface: [ OK ]
Bringing up interface eth0: Determining if ip address 192.168.32.7 is already
in use for device eth0...
[ OK ]
Bringing up interface eth1: Determining if ip address 172.16.17.7 is already in
use for device eth1...
cat /et [ OK ]
[root@retr-test-01 ~]# cat /etc/resolv.conf
options timeout:2
options single-request-reopen
; pushed from Spacewalk
search example.edu
nameserver 10.0.239.153
nameserver 10.0.139.100
So it would seem that unless PEERDNS is set to NO on all interfaces,
including loopback interface(s), resolv.conf.save will get pushed over
resolv.conf?
Maybe we should do what we have in sysconfig.txt and remove the resolve.conf only in the case that this was a ppp device or it had DNS specified or it was dynamically configured.
Mostly untested patch:
diff --git a/sysconfig/network-scripts/ifdown-post b/sysconfig/network-scripts/ifdown-post
index bcf4765..0f2285f 100755
--- a/sysconfig/network-scripts/ifdown-post
+++ b/sysconfig/network-scripts/ifdown-post
@@ -18,7 +18,8 @@ source_config
/etc/sysconfig/network-scripts/ifdown-routes ${REALDEVICE} ${DEVNAME}
-if [ "$PEERDNS" != "no" -o -n "$RESOLV_MODS" -a "$RESOLV_MODS" != "no" ]; then
+if [ "$PEERDNS" != "no" -o -n "$RESOLV_MODS" -a "$RESOLV_MODS" != "no" ] && \
+ [ "${DEVICETYPE}" = "ppp" -o "${DEVICETYPE}" = "ippp" -o -n "${DNS1}" -o "${BOOTPROTO}" = "bootp" -o "${BOOTPROTO}" = "dhcp" ] ; then
if [ -f /etc/resolv.conf.save ]; then
change_resolv_conf /etc/resolv.conf.save
rm -f /etc/resolv.conf.save
*** Bug 1056779 has been marked as a duplicate of this bug. *** Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://rhn.redhat.com/errata/RHBA-2015-1380.html |