Differences between revisions 1 and 8 (spanning 7 versions)
Revision 1 as of 2020-01-15 05:27:39
Size: 1310
Comment:
Revision 8 as of 2023-04-03 02:37:59
Size: 1884
Comment:
Deletions are marked like this. Additions are marked like this.
Line 3: Line 3:
'''Avahi''' is an implementation of '''Zeroconf''', the zero-configuration method for network services. This would otherwise be accomplished through local DNS resolution. '''Avahi''' is an implementation of Zeroconf and mDNS.

The project began with Lennart Poettering's implementation of mDNS and DNS-SD.

<<TableOfContents>>
Line 9: Line 13:
== Accessing Local Services == == Installation ==
Line 11: Line 15:
To make use of the "hostname.local" name resolution, an additional dependency (commonly named `nss-mdns`) is required. Most Linux distributions offer an `avahi` package. For BSD distributions, try `avahi-daemon`.

For `systemd`-capable systems, [[Linux/Systemd|start and enable]] `avahi-daemon.service`.

The daemon binary is named `avahi-daemon(8)`.

----



== Configuration ==

[[Linux/SystemdNetworkd|networkd]] has a competing mDNS implementation that will need to be disabled before `avahi` can be made to work.

Alternatively, [[Linux/Systemd|disable]] `systemd-resolved.service` entirely.



=== Name Resolution ===

For Avahi to insert domain name resolution for discovered services, an additional dependency (commonly named `nss-mdns`) is required.
Line 19: Line 43:
More powerful configurations are of course possible, but this is the simplest and most minimal one.
Line 21: Line 44:
You should be able to discover local services now. Try:
Line 23: Line 45:
{{{
avahi-browse --all
}}}
=== Firewalls ===

`avahi-daemon(8)` binds to port 5353. Firewalls such as [[Ufw|ufw]] or [[Awall|awall]] must be reconfigured to open it.
Line 31: Line 53:
== Hosting Services == == Usage ==
Line 33: Line 55:
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: === Advertising Services ===

`avahi-daemon(8)`
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:
Line 47: Line 71:
Also, Avahi broadcasts over port 5353. See details in [[UFWSetup|the article for UFW setup]].

=== Discovery ===

In a terminal, use `avahi-browse(1)`.

{{{
avahi-browse --all
}}}

Alternatively there is the graphical client `avahi-discover(1)`.

Avahi

Avahi is an implementation of Zeroconf and mDNS.

The project began with Lennart Poettering's implementation of mDNS and DNS-SD.


Installation

Most Linux distributions offer an avahi package. For BSD distributions, try avahi-daemon.

For systemd-capable systems, start and enable avahi-daemon.service.

The daemon binary is named avahi-daemon(8).


Configuration

networkd has a competing mDNS implementation that will need to be disabled before avahi can be made to work.

Alternatively, disable systemd-resolved.service entirely.

Name Resolution

For Avahi to insert domain name resolution for discovered services, 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

Firewalls

avahi-daemon(8) binds to port 5353. Firewalls such as ufw or awall must be reconfigured to open it.


Usage

Advertising Services

avahi-daemon(8) 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>

Discovery

In a terminal, use avahi-browse(1).

avahi-browse --all

Alternatively there is the graphical client avahi-discover(1).


CategoryRicottone

Avahi (last edited 2023-04-03 12:50:42 by DominicRicottone)