I am currently trying to set up an ad-hoc network for passing notes while I'm in class. The idea is to run a chat server on my laptop (I'm using prosody, that's up and running), so we can share information.
I have also set up a BIND DNS server on my laptop so my friends can just log in using my hostname instead of manually setting up their accounts to point to my IP address.
I am having two seperate issues in this regard.
1) I can't really figure out how to make their computers use my laptop as their DNS server. Should I install a DHCP server too?
2) My computer refuses to use my own DNS server. I think it's because of the dnsmasq that networkmanager runs. I can work around it by editing /etc/hosts, but I do want to use my server locally.
I am running 16.04.
For future generations: in regards to number 2, i just went to NetworkManagers config file and removes the line including dnsmasq. Otherwise dnsmasq refuses to use a dns server on localhost.
In addition, i set up my ad-hoc network to do manual ip address for me, because automatic didn't work for me at all. So i used NetworkManager to give me a static IP and then all my clients use the DHCP from dnsmasq just fine.
Best Answer
You can do this with
dnsmasq
.Installing
dnsmasq
is just a case of using apt-get.Setup dnsmasq as DNS DHCP
Looking at the file
/etc/dnsmasq.conf
first. The lines are listed are those that I changed from their defaults. Just uncomment and amend them as necessary. (Remove the ‘#’ from the beginning of the line).What these lines will do for you.
domain-needed This tells
dnsmasq
to never pass short names to the upstream DNS servers. If the name is not in the local/etc/hosts
file then “not found” will be returned.bogus-priv All reverse IP (192.168.x.x) lookups that are not found in
/etc/hosts
will be returned as “no such domain” and not forwarded to the upstream servers.no-resolv Do not read
resolv.conf
to find the servers where to lookup dns.no-poll Do not poll
resolv.conf
for changesserver=8.8.8.8 Set one or more
DNS
servers to use when addresses are not local. These are openDNS
servers.local=/example.com/ Our local domain, queries in these domains are answered from
/etc/hosts
or the static-hosts files.address=/doubleclick.net/127.0.0.1 Use this force an address for the specified domains. e.g to block adverts force
doubleclck.net
tolocalhost
no-hosts This options stops
dnsmasq
using the local/etc/hosts
file as a source for lookups .addn-hosts=/etc/dnsmasq_static_hosts.conf Force
dnsmasq
to use this file for lookups. It is in the same format as/etc/hosts
.expand_hosts So we can see our local hosts via our home domain without having to repeatedly specify the domain in our
/etc/hosts
file.domain This is your local domain name. It will tell the
DHCP
server which host to give out IP addresses for.dhcp-range This is the range of IPs that
DHCP
will serve:192.168.0.20
to192.168.0.50
, with a lease time of 72 hours. The lease time is how long that IP will be linked to a host.dhcp-host=mylaptop,192.168.0.199,36h Any machine saying they are
hostname = ‘mylaptop’
gets thisIP
addressdhcp-option=option:router,192.168.0.1 When a host is requesting an
IP
address viaDHCP
also tell it the gateway to use.dhcp-option=option:ntp-server,192.168.0.5 When a host is requesting an IP address via
DHCP
also tell it theNTP
to use.In the file
/etc/dnsmasq_static_hosts.conf
you can add a list of local machines with static IP addresses in the same format as the hosts file. It is also an easy way of creating aliases or CNAME records.Starting and stopping the service
And one more thing to do. Terminate all other
DHCP
servers on local network. YourDHCP/DNS
server must be only one.