fabbafa94715a4c0049657f6733f9831d62bcc32
[openresolv] / README.md
1 # openresolv
2
3 openresolv is a resolvconf(8) implementation which manages `/etc/resolv.conf`.
4
5 `/etc/resolv.conf` is a file that holds the configuration for the local
6 resolution of domain names.
7 Normally this file is either static or maintained by a local daemon,
8 normally a DHCP daemon. But what happens if more than one thing wants to
9 control the file?
10 Say you have wired and wireless interfaces to different subnets and run a VPN
11 or two on top of that, how do you say which one controls the file?
12 It's also not as easy as just adding and removing the nameservers each client
13 knows about as different clients could add the same nameservers.
14
15 Enter resolvconf, the middleman between the network configuration services and
16 `/etc/resolv.conf`.
17 resolvconf itself is just a script that stores, removes and lists a full
18 `resolv.conf` generated for the interface. It then calls all the helper scripts
19 it knows about so it can configure the real `/etc/resolv.conf` and optionally
20 any local nameservers other than libc.
21
22 ## Why openresolv?
23
24 This resolvconf implementation, along with its subscribers, work with a
25 POSIX compliant shell and userland utilities. It is designed to work without
26 tools such as sed as it *has* to work without /usr being available.
27
28 On systems where resolvconf is expected to be used before /var/run is available
29 for writing, you can configure openresolv to write somewhere else, like say a
30 ramdisk.