4.4. Setting Static IP Addresses from the DHCP Server

You want to manage your LAN computers from DHCP instead of configuring them individually, so you don't have to run around tweaking individual computers all the time. You want to assign static and dynamic IP addresses, gateways, and servers all via DHCP.

dnsmasq does it all. There are a couple of ways to assign static IP addresses from dnsmasq.conf. One is to use the client's MAC address as the client identifier, like this:

	dhcp-host=11:22:33:44:55:66,192.168.1.75

My favorite way is to set it by hostname:

	dhcp-host=penguina,192.168.1.75

Make sure you do not have entries for these in /etc/hosts.

The only client configuration that's necessary is the hostname, and for DHCP clients to send the hostname to the DHCP server when they request a new lease. Once youhave that, you can control everything else from the server.

Remember to run killall dnsmasq every time you change dnsmasq.conf.

There are some tricky bits to client configuration, so see Recipe 4.5 for this.

Changes in dnsmasq.conf are easy to test. After restarting dnsmasq, try the following commands on your Linux clients.

ifupdown stops and restarts interfaces:

	# ifdown eth0
	# ifup etho

Sometimes, that doesn't quite do the job, so you can also try:

	# /etc/init.d/network restart
	# /etc/init.d/networking restart

The first one is for Fedora, the second for Debian. You'll see it acquire the address you assigned it from the DHCP server, and it will write the correct DNS server or servers to /etc/resolv.conf.

If those don't work, reboot.

Find MAC addresses with ifconfig for wired NICs, and iwconfig for wireless NICs. ifconfig sees both, but it doesn't differentiate them. iwconfig identifies only wireless interfaces.

When you use the MAC address, don't forget to change the entry in dnsmasq.conf if you replace the client's network interface card.

MAC addresses are unique, but hostnames are not, so you have to be careful not to have duplicate hostnames. You can't have duplicate hostnames, anyway.

MAC addresses are ridiculously easy to spoof, so don't think you're adding any security by relying on them as secure, unique identifiers.