Avahi
Avahi is an implementation of Zeroconf, the zero-configuration method for network services. This would otherwise be accomplished through local DNS resolution.
Accessing Local Services
To make use of the "hostname.local" name resolution, an additional dependency (commonly named nss-mdns) is required.
Insert mdns_minimal [NOTFOUND=return] into /etc/nsswitch.conf, as below.
hosts: files mymachines myhostname mdns_minimal [NOTFOUND=return] resolve [!UNAVAIL=return] dns
More powerful configurations are of course possible, but this is the simplest and most minimal one.
You should be able to discover local services now. Try:
avahi-browse --all
Hosting Services
Avahi uses all /etc/avahi/services/*.service files that are readable by the avahi user and group. These take the form of structured XML. For example, an FTP service:
<?xml version="1.0" standalone='no'?> <!DOCTYPE service-group SYSTEM "avahi-service.dtd"> <service-group> <name>FTP</name> <service> <type>_ftp._tcp</type> <port>21</port> </service> </service-group>
Also, Avahi broadcasts over port 5353. See details in the article for UFW setup.