As you have one machine defined as server, I would suggest you to set it up to provide dhcp associated with dns.
If this machine is the gateway/firewall for your net, it would be great!
The packages I would suggest you are isc-dhcpd and dnsmasq. The later versions of dnsmasq even supply the dhcpd function but I don't like its configuration file. Depending on the packaging of the dnsmasq, you would need to get the source and recompile it for it read the dhcpd leases file.
In this setup, all your other machines should configure their interfaces using dhcp protocol, fixed or dynamic. The fixed addresses should be configured on the dhcpd.conf and hosts files on the server. You could reserve an address range to machines which you don't need to know their addresses/names.
All your machines, including your server would ask the dnsmasq on your server to resolve all the names, local and public. All the configuration will be defined on the dhcpd.conf. On the server, you need to change the /etc/resolv.conf to point to 127.0.0.1 as the name server. Dnsmasq will read the internet dns servers; then, it will try to resolve any address on the local configuration and, if not resolved, it will try the internet servers of your ISP.
You can decide to use only dnsmasq for both functions. Its configuration file (dnsmasq.conf) is self documented, but it uses the keyword numbers instead of the dhcp protocol keywords.
The beauty of the dnsmasq software is its simplicity when configuring the dns part. I fought with IP numbers until it appeared because I didn't have enough courage to install bind.