Benutzer-Werkzeuge

Webseiten-Werkzeuge


Seitenleiste

Übersetzungen dieser Seite:



DB0SL Doku

de:wx:mqttumleitung

MQTT-Bridge zwischen Relais-Hütte & Zentrale (via WireGuard)

Ziel dieser Maßnahmen:

wir benutzen den bestehenden wireguard Tunnel von pi-star um die MQTT Daten (früher openhab) für den DB0SL Webserver zugänglich zu machen. Dazu wird der Traffic auf Port: 1883 durch den Tunnel geleitet. Der pi-star Raspi fungiert dazu als Gateway

Netzwerkübersicht

Gerät / Rolle IP-Adresse Beschreibung
MQTT Broker (Quelle) 192.168.144.21 Läuft auf OpenHAB-Raspi in Hütte
WG-Gateway (Raspi) 192.168.144.44 / 10.13.0.2 Raspi mit WireGuard Tunnel
Zentrale MQTT-Broker 192.168.10.88 Lokaler MQTT-Zielserver
Zentrale WG-IP 10.13.0.1 PC im VPN-Netz

Ziel

Der zentrale MQTT-Server (192.168.10.88) oder ein Client im 10.13.0.0/24-Netz soll über 10.13.0.2 auf den entfernten MQTT-Broker 192.168.144.21 zugreifen können. Die Verbindung erfolgt via NAT-Weiterleitung über den WireGuard-Tunnel.

Konfiguration auf dem Gateway (Raspi 10.13.0.2)

WireGuard-Interface

Verwendetes Interface: wg0 (Verifiziert mit `ip route get 10.13.0.1`)

iptables NAT-Regeln

# PREROUTING: Weiterleitung eingehender MQTT-Verbindungen
sudo iptables -t nat -A PREROUTING -i wg0 -p tcp --dport 1883 -j DNAT --to-destination 192.168.144.21:1883
 
# POSTROUTING: Maskieren der Antwortpakete
sudo iptables -t nat -A POSTROUTING -s 10.13.0.0/24 -d 192.168.144.0/24 -o eth0 -j MASQUERADE

IP Forwarding aktivieren

# Temporär aktivieren
sudo sysctl -w net.ipv4.ip_forward=1
 
# Dauerhaft in /etc/sysctl.conf
net.ipv4.ip_forward=1
 
# Aktivieren
sudo sysctl -p

iptables dauerhaft speichern

sudo apt install iptables-persistent
sudo netfilter-persistent save

MQTT-Broker-Konfiguration (192.168.144.21)

Datei: `/etc/mosquitto/mosquitto.conf`

pid_file /var/run/mosquitto.pid
persistence true
persistence_location /var/lib/mosquitto/
log_dest file /var/log/mosquitto/mosquitto.log

listener 1883 0.0.0.0

Hinweis: Keine doppelten Listener in conf.d!

Tests

Verbindung prüfen

telnet 10.13.0.2 1883

MQTT-Daten empfangen

mosquitto_sub -h 10.13.0.2 -t "#" -v

Fallstricke & Lösungen

Problem Lösung
iptables-Regel auf falschem Interface korrekter Interface war wg0
iptables-Regeln greifen nicht (0 pkts) IP-Forwarding war deaktiviert
mosquitto lauschte nur lokal listener 1883 0.0.0.0 in mosquitto.conf
Mosquitto-Startfehler durch Duplikate nur einen Listener definieren

Status am Ende

  • MQTT-Topics können über 10.13.0.2 empfangen werden
  • Konfiguration ist reboot-sicher
  • Doku vorhanden – keine Überraschungen beim nächsten Mal :)
Diese Website verwendet Cookies. Durch die Nutzung der Website stimmen Sie dem Speichern von Cookies auf Ihrem Computer zu. Außerdem bestätigen Sie, dass Sie unsere Datenschutzbestimmungen gelesen und verstanden haben. Wenn Sie nicht einverstanden sind, verlassen Sie die Website.Weitere Information
de/wx/mqttumleitung.txt · Zuletzt geändert: 2025/05/22 17:20 von kurt

Seiten-Werkzeuge