[Ubuntu/Linux]Lost configurations in /etc/resolv.conf when rebooting system.

Recently,a friends of mine has asked me about problem when he lost all configuration of nameserver in /etc/resolv.conf when he rebooted his system.
well,I did noticed this problem before, but never try to fix it ( I connect to wifi network with pre-load dns servers settings).
Try to find a way to work around with this, and I found this:

NAME
resolvconf – manage nameserver information

SYNOPSIS
cat FILE | resolvconf -a INTERFACE

resolvconf -d INTERFACE

resolvconf -u

DESCRIPTION
Overwrite (-a) or delete (-d) the nameserver information record for
network interface INTERFACE and run the update scripts in
/etc/resolvconf/update.d/ if the nameserver information has changed.

With -u, just run the update scripts.

PUBLICATION
Normally resolvconf is run only by hook scripts attached to network
interface configurers such as pppd(8) (for ppp interfaces), to DHCP
clients such as dhclient(8), to ifup(8) and ifdown, and to DNS caches
such as dnsmasq(8) (for the loopback interface). These hook scripts
furnish resolvconf with information about nameservers. For example,
dhclient receives one or more nameserver addresses during its
negotiation with the DHCP server; its hook script /etc/dhcp3/dhclient-
enter-hooks.d/resolvconf publishes this information to resolvconf.

The ifup(8) program can be used to configure network interfaces
according to settings in /etc/network/interfaces(5). To make ifup
publish nameserver information to resolvconf when it configures an
interface, add dns- lines to the relevant iface stanza in
/etc/network/interfaces. To add nameserver addresses add a line
beginning with dns-nameservers.

dns-nameservers 11.22.33.44 55.66.77.88

Note that one or more addresses can be given, and note the ‘s’ at the
end of the option name. (Contrast with the resolv.conf(5) option
nameserver.) For each other valid resolv.conf(5) configuration option,
you can include, in the stanza, one line beginning with that option
name with a dns- prefix. The resulting stanza might look like the
following example.

iface eth0 inet static
address 192.168.3.3
netmask 255.255.255.0
gateway 192.168.3.1
dns-nameservers 192.168.3.45 192.168.8.10
dns-search foo.org bar.com

See the resolvconf package’s README file for more detailed information.
For more information about the dns-* options, e.g., dns-search, see
resolv.conf(5).

The administrator can run resolvconf from the command line to add or
delete nameserver information, but this is not normally necessary.

SUBSCRIPTION
Nameserver information provided to resolvconf is stored for use by
subscribers to resolvconf’s notification service. Subscribers that
need to know when nameserver information has changed should install a
script in /etc/resolvconf/update.d/ (… or in /etc/resolvconf/update-
libc.d/: see below). For example, DNS caches such as dnsmasq(8) and
pdnsd(8) subscribe to the notification service so that they know
whither to forward queries.

The most important piece of software that subscribes to the
notification service is the set of functions that make up the GNU C
Library resolver(3). When nameserver information is updated the script
/etc/resolvconf/update.d/libc writes a new resolver configuration file
to /etc/resolvconf/run/resolv.conf and then runs the scripts in
/etc/resolvconf/update-libc.d/. To make the resolver use the
dynamically generated resolver configuration file the administrator
should ensure that /etc/resolv.conf is a symbolic link to
/etc/resolvconf/run/resolv.conf. This link is never modified by
/sbin/resolvconf. If you find that /etc/resolv.conf is not being
updated, check to see that the link is intact.

The GNU C Library resolver library isn’t the only resolver library
available. However, any resolver library that reads /etc/resolv.conf
(and most of them do, in order to be compatible with the GNU C Library
resolver) should work with resolvconf.

Subscribers that need to know only when the resolver configuration file
has changed should install a script in /etc/resolvconf/update-libc.d/
rather than in /etc/resolvconf/update.d/. This is important for
synchronization purposes: scripts in update-libc.d/ are run after
resolv.conf has been updated; the same is not necessarily true of
scripts in update.d/. Examples of packages that do this are
fetchmail(1) and squid(8).

Client hook scripts will find the files containing nameserver
information in the current directory.

OPTIONS
-a INTERFACE
Add or overwrite the record for network interface INTERFACE.
When this option is used the information must be provided to
resolvconf on its standard input in the format of the
resolv.conf(5) file. Each line in the file must be terminated
by a newline.

-d INTERFACE
Delete the record for network interface INTERFACE.

The INTERFACE name may not contain spaces, slashes or initial dots,
hyphens or tildes.

Following the addition or deletion of the record, resolvconf runs the
update scripts as described in the CLIENTS section.

-u Just run the update scripts.

ENVIRONMENT VARIABLES
The following variables can be set in /etc/default/resolvconf.

REPORT_ABSENT_SYMLINK
If set to “yes” then resolvconf will print a message when
/etc/resolv.conf is not a symbolic link to the resolvconf-
generated resolv.conf file. Set to “no” to prevent the printing
of this message. The default is “yes”.

TRUNCATE_NAMESERVER_LIST_AFTER_127
If set to “yes” then the update.d/libc script will include no
more nameserver addresses after the first address that starts
with “127.” This is usually the preferable behavior if the
nameserver at 127.* is a local caching nameserver since it
inhibits unnecessary changes to resolv.conf. When an interface
is brought up the local caching nameserver is informed by
resolvconf of any new nameserver addresses and the additional
name service is made available to applications that make use of
the resolver and the local caching nameserver; the applications
themselves do not need to be notified of the change. A
disadvantage of this mode of operation is that applications have
no secondary or tertiary nameserver address to fall back on
should the local caching nameserver crash. Insofar as a local
nameserver crash can be regarded as an unlikely event, this is a
relatively minor disadvantage. Set to “no” to disable this
truncation feature. The default is “yes”.

FILES
/etc/default/resolvconf
See the ENVIRONMENT VARIABLES section. /etc/resolvconf/run This
is either a directory where nameserver information can be stored
or a symbolic link to such a directory. Clients should not make
any assumptions about the canonical location of this directory
or the hierarchy that is constructed under it.

/etc/resolvconf/interface-order
Determines the order in which nameserver information records are
processed. See interface-order(5).

/etc/resolvconf/resolv.conf.d/base
File containing basic resolver information. The lines in this
file are included in the resolver configuration file even when
no interfaces are configured.

/etc/resolvconf/resolv.conf.d/head
File to be prepended to the dynamically generated resolver
configuration file. Normally this is just a comment line.

/etc/resolvconf/resolv.conf.d/tail
File to be appended to the dynamically generated resolver
configuration file. To append nothing, make this an empty file.
This file is a good place to put a resolver options line if one
is needed, e.g.,

Hope this can help somebody out of the water 🙂

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: