Generate /etc/resolv.conf by DHCP server


Table of Contents

1 The goal /etc/resolv.conf

The nameserver 192.168.11.2 manages hiroom2.com network. The nameserver 192.168.11.1 manages the internet.

search hiroom2.comnameserver 192.168.11.2nameserver 192.168.11.1

2 Configuration of DHCP server

Define domain-name and domain-name-servers in /etc/dhcp/dhcpd.conf.

subnet 192.168.11.0 netmask 255.255.255.0 { option domain-name “hiroom2.com”; option domain-name-servers 192.168.11.2, 192.168.11.1; option routers 192.168.11.1;}

The mapping between dhcpd.conf and resolv.conf is as below.

 

dhcpd.conf resolv.conf option domain-name serach option domain-name-servers nameserver

 

3 Client Fedora/CentOS

When PEERDNS is defined in /etc/sysconfig/network-scripts/ifcfg-xxx, /etc/resolv.conf will be generated by DHCP server. Client Fedora/CentOS defines PEERDNS by default.

# cat /etc/sysconfig/network-scripts/ifcfg-eth0TYPE=”Ethernet”BOOTPROTO=”dhcp”DEFROUTE=”yes”PEERDNS=”yes”PEERROUTES=”yes”DEVICE=”eth0″ONBOOT=”yes”NAME=”eth0″

4 Client Debian

/etc/resolv.conf is generated in client Debian by default.

$ sudo cat /etc/NetworkManager/NetworkManager.conf[main]plugins=ifupdown,keyfile[ifupdown]managed=false

5 Client Ubuntu

/etc/resolv.conf is not generated in client Ubuntu by default.

$ cat /etc/resolv.conf# Dynamic resolv.conf(5) file for glibc resolver(3) generated by# resolvconf(8)# DO NOT EDIT THIS FILE BY HAND — YOUR CHANGES WILL BE# OVERWRITTENnameserver 127.0.1.1search hiroom2.com

You need to disable dnsmasq in NetworkManager.

$ sudo diff -uprN /etc/NetworkManager/NetworkManager.conf{.org,}— /etc/NetworkManager/NetworkManager.conf.org 2016-04-28 01:07:32.015679999 +0900+++ /etc/NetworkManager/NetworkManager.conf 2016-04-28 01:07:45.307679999 +0900@@ -1,6 +1,6 @@ [main] plugins=ifupdown,keyfile,ofono-dns=dnsmasq+#dns=dnsmasq [ifupdown] managed=false$ sudo systemctl restart network-manager

/etc/resolv.conf is generated in client Ubuntu.

$ cat /etc/resolv.conf# Dynamic resolv.conf(5) file for glibc resolver(3) generated by# resolvconf(8)# DO NOT EDIT THIS FILE BY HAND — YOUR CHANGES WILL BE# OVERWRITTENnameserver 192.168.11.2nameserver 192.168.11.1search hiroom2.com

Android | Linux | SDL - Narrow Escape