UniFi Controller mit Geräten in verschiedenen Netzwerken

Mit WLAN AccessPoints „der Enterprise Klasse zum Privatkunden Preis“ hat Ubiquiti Networks sich einen Namen gemacht. Mittlerweile gibt es aber auch sehr gute Switches und Netzwerkkameras der Firma.
Diese haben jedoch alles gemeinsam: Sie werden von einer zentralen Software, dem UniFi Controller verwaltet. Standarmässig finden die Geräte den Controller jedoch nur, wenn sie im selben Netzwerk sind. So müsste man für jedes Netzwerk (z.B. remote Standort) einen separaten Controller installieren. Doch es gibt Abhilfe.

Es gibt mehrere Möglichkeiten um die UniFi APs mit Controller in anderen Netzwerken zu verbinden:

DNS Name

Kommt ein neuer UniFi AP ins Netz bezieht dieser erst per DHCP eine IP-Adresse und versucht sich dann auf die Adresse: http://unifi:8080/inform zu verbinden.
Eine sehr einfache Möglichkeit ist es nun im DNS-Server einen Eintrag für unifi zu machen und diesen auf die IP-Adresse des Controllers zeigen zu lassen. – Dabei muss im DHCP auch der Standardsuchpfad der Domäne gesetzt werden.

DHCP Option 43

In der dhcpd.conf kann man mittels der „Option 43“ die Adresse des UniFi Controllers angeben. Wenn der AP sich per DHCP die IP holt und diese Option findet, verbindet er sich mit dem entsprechenden Controller:

dhcpd.conf

# ...
option space ubnt;
option ubnt.unifi-address code 1 = ip-address;
 
class "ubnt" {
        match if substring (option vendor-class-identifier, 0, 4) = "ubnt";
        option vendor-class-identifier "ubnt";
        vendor-option-space ubnt;
}
 
subnet 10.10.10.0 netmask 255.255.255.0 {
        range 10.10.10.100 10.10.10.160;
        option ubnt.unifi-address 201.10.7.31;  ### UniFi Controller IP ###
        option routers 10.10.10.2;
        option broadcast-address 10.10.10.255;
        option domain-name-servers 168.95.1.1, 8.8.8.8;
        # ...
}

SSH

Sobald der AP per DHCP eine IP bezogen hat, kann man sich darauf per SSH anmelden und manuell die URL des Controllers setzen.
Zuvor muss jedoch der AP in den Werkszustand zurückgesetzt werden (reset):

Standard Benutzername und Passwort ist: ubnt

syswrapper.sh restore-default
set-inform http://ip-des-controllers:8080/inform

Troubleshooting

Klappt etwas nicht, kann man sich immer auf der Konsole des Geräts anmelden und info eintippen. Man bekommt dann die Status Information des Geräts:

BZ.v3.9.19# info
 
Model:       UAP-AC-LR
Version:     3.9.19.8123
MAC Address: 00:00:00:00:00:00
IP Address:  192.168.1.5
Hostname:    UBNT
Uptime:      1732 seconds
 
Status:      Connected (http://unifi:8080/inform)

Ebenfalls liefert die Datei: /var/log/messages hilfreiche Informationen.

Achtung, kein NAT!
Man muss bei diesen sogenannten L3 (OSI Layer 3) Provisionierungs-Methoden darauf achten, dass man kein NAT (Network Address Translation) im Netzwerk einsetzt, d.h. der UniFi Controller muss die „echte“ IP des Geräts (z.V: AccessPoint) sehen und nicht die des routers!
Denn wenn sich ein Gerät mit dem Controller verbindet, speichert dieser die IP vom Verbindenden Gerät und kann somit nicht nicht mehr drauf Zugreifen.

Ein Beispiel:
Der Router/Firewall hat die IP: 192.168.1.1
Der Controller hat die IP: 192.168.1.5
Der AccessPoint hat die IP: 192.168.2.10

Bei NAT sieht nun der Controller den AccessPoint als von der IP: 192.168.1.1 kommend.
Somit denkt dieser, das sei nun die IP vom AccessPoint und versucht darauf zuzugreifen, was natürlich nicht klappt.

Ohne NAT sieht der Controller den AccessPoint als von der (korrekten) IP: 192.168.2.10 kommend und ein Zugriff ist möglich.

Man kann das einfach testen, indem man sich auf die SSH Konsole des Geräts (hier der AccessPoint) einloggt und sich dann mit ssh auf den Controller verbindet.
Auf diesem gibt man nun last -i ein:

root     pts/0        192.168.2.10        Fri Apr  6 12:23   still logged in   # <- RICHTIGE IP
root     pts/0        192.168.1.1        Fri Apr  6 12:21 - 12:22  (00:00)    # <- FALSCHE IP

Gibt man in der SSH Konsole des Geräts dann info ein erscheint Folgende Fehlermeldung:

Status:      Unable to resolve (http://unifi:8080/inform)

oder in /var/log/messages:

UBNT user.err syslog: ace_reporter.reporter_fail(): Unable to resolve (http://unifi:8080/inform)
UBNT user.err syslog: ace_reporter.reporter_fail(): initial contact failed #1, url=http://unifi:8080/inform, rc=1
UBNT user.info syslog: ace_reporter.reporter_next_inform_method(): next inform url[0]=http://unifi:8080/inform
UBNT user.info syslog: ace_reporter.reporter_next_inform_method(): authkey=xxxxxxxxxxxxxxxxxx

Quellen

Published by

Steven Varco

Steven ist ein Redhat RHCE-Zertifizierter Linux-Crack und ist seit über 15 Jahren sowohl beruflich wie auch privat auf Linux spezialisiert. In seinem Keller steht ein Server Rack mit diversen ESX und Linux Servern.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.