Avahi: Ubuntu 22.04 mDNS/Bonjour Gateway mit VLAN´s im LXC Container

Avahi als mDNS-Gateway im LXC-Container: So lässt sich unter Ubuntu 22.04 Bonjour zwischen VLANs routen, ohne separate Hardware. Ein schlanker Weg, Dienste wie AirPrint oder Sonos über Netzgrenzen hinweg verfügbar zu machen.

Avahi: Ubuntu 22.04 mDNS/Bonjour Gateway mit VLAN´s im LXC Container

Wenn man einen Apple TV oder Drucker in einem Netzwerk betreibt, stößt man oft an die grenze von mDNS, da mDNS Only Single Subnet arbeitet. Wenn man nun in Unterschiedlichen VLAN´s diese Services verfügbar machen möchte, so muss man ein mDNS Gateway eirichten.

LXC Vorbereiten

Wenn man das Gateway in einem LXC unter proxmox erstellen möchte, muss man zuvor eine Datei anlegen, damit man die Netzwerkeinstellungen selbstständig verwalten kann.

touch /etc/network/.pve-ignore.interfaces

Installation von Avahi

Zunächst installiert man Avahi. Dies kann direkt über den Paketmanager erledigt werden.

apt install avahi-daemon -y

Nun muss noch die Konfiguration angepasst werden. Dafür muss der der Reflektor aktiviert werden.

nano nano /etc/avahi/avahi-daemon.conf

In der Datei wird folgende Zeile geändert:

[reflector]
#enable-reflector=no

Diese Zeile muss unkommentiert werden auf yes gesetzt werden.

[reflector]
enable-reflector=yes

Danach wird der Service neu gestartet.

systemctl restart avahi-daemon

VLAN´s einbinden

Für die VLAN Konfiguration wird nun ein Netplan erstellt.

nano /etc/netplan/50-cloud-init.yaml

In dieser Datei wir zu nächst eine statische IPv4 für das Interface eth0 angelegt. Die VLAN´s werden auf das Interface eth0 gelinkt.

network:
  version: 2
  ethernets:
    eth0:
      dhcp4: false
      optional: true
      addresses:
        - 172.0.0.3/16

Danach werden die VLAN´s eingefügt. Diese sollen sich über DHCP selber eine IPv4 Adresse ziehen.

network:
  version: 2
  ethernets:
    eth0:
      dhcp4: false
      optional: true
      addresses:
        - 172.0.0.3/16
  vlans:
    vlan10:
      id: 10
      link: eth0
      dhcp4: true
    vlan20:
      id: 20
      link: eth0
      dhcp4: true
    vlan30:
      id: 30
      link: eth0
      dhcp4: true
    vlan40:
      id: 40
      link: eth0
      dhcp4: true
    vlan50:
      id: 50
      link: eth0
      dhcp4: true

Überprüfung

Damit man nun prüfen kann ob die Weiterleitung funktioniert gibt man folgenden Befehl aus:

avahi-browse -a

Dann wird eine Liste ausgegeben mit den Interfacen auf dem die Geräte gefunden wurden.