There are a few different options depending on how much time you want to invest, your technical ability and how flexible you want the system to be.
For a small mixed or non-windows network I suggest using the hosts file on each machine. For a completely windows based network (which you do not have obviously, based on your post and the name of this site), you can generally rely on netbios to 'find' other windows machines on the network, providing hostname lookup capabilities among other things.
The hosts file, located in /etc/hosts on linux machines, is a simple list mapping IP addresses to hostnames. If you have fixed IP addresses and a relatively small number of machines to assign hostnames and IP addresses to, this is the way to go.
Here is a copy of the hosts file I have on this machine; not much in it because I use a local dns server (dnsmasq).
#
# /etc/hosts: static lookup table for host names
#
#<ip-address> <hostname.domain.org> <hostname>
127.0.0.1 localhost.localdomain localhost
::1 localhost.localdomain localhost
192.168.1.2 lenny
# End of file
Simply add a new line to this file for each IP address/hostname pair that you have. The localhost addresses, ipv6 and ipv4, have to stay in the file - things will typically go very poorly without those.
After you have populated this list, you need to distribute it to each machine on your LAN. Once that's done, you can refer to each machine by hostname instead of IP address. You can also give a given IP address multiple hostnames / aliases; eg
192.168.1.2 lenny lennon lemon
From a remote machine you can then connect to that machine with any of those names (if the modified hosts file is installed).
Windows machines also have a hosts file, buried a bit deeper in the system, usually at:
C:\Windows\System32\drivers\etc\hosts
It uses the same syntax as the linux version. Here's a link for more info on this approach.
If you have a dedicated server and want to configure your own local dns, you can with two primary programs - dnsmasq and bind. Since this LAN isn't even connected to the internet, I think either would be overkill, but they are options. dnsmasq tends to be easier to configure, but is less full featured. Properly configured, bind can support enterprise grade infrastructure.
Update
You can definitely use a raspberry pi as a local dns server; it's not uncommon. Here are a couple of links to get you started:
Linux Magazine
blog.grobinson.net
markwilson.it
The concern I would have is how the clients on this network are currently configured and if you would be able to modify it.
If the clients are all configured for DHCP and the router that you have full access to is currently serving that role, then you are all set. You simply set the router's dns server to the fixed (non DHCP) address of the raspberry pi. You can use DHCP if you configure the router to use reserve that DHCP issued IP address for the MAC address of the pi - almost all routers allow that configuration.
Once you have that, configure the dns on the pi following these instructions.
Some routers have additional capability built into them - you should research that a bit - in some cases they create a custom domain (e.g. .local or .lan) and add all dhcp clients to it; allowing LAN communication by hostname. Others have similar capability to a hosts file (or even have a hosts file). I'd take a quick look before diving into dnsmasq.
avahi
- I misspelled it. – Milliways May 25 '16 at 02:13ping hyperfang.local
show? What are you testing on? I sometimes find it doesn't work after sleep etc, but should after restart does. – Milliways May 25 '16 at 02:56mdns
in/etc/nssswitch.conf
– o11c May 25 '16 at 03:50