Ubiquity - UniFi
- UniFi - Ports
- Unifi - Geräte Adopten
- UniFi‑Switch ohne SSH hinter NAT‑Firewall adoptieren per DHCP‑Option 43
- UniFi AP - zweiten SSH User hinterlegen
- USW-Pro Switch - SSH Observation
- UDM - Firewall
UniFi - Ports
Erforderliche Port-Referenzen
Die folgenden Angaben listen die UDP- und TCP-Ports auf, die von UniFi verwendet werden. Diese Informationen sind vor allem für Nutzer relevant, die einen selbst gehosteten UniFi Network Server betreiben oder Geräte und Firewalls von Drittanbietern verwenden. Aus diesem Grund empfehlen wir in der Regel eine vollständige UniFi-Installation für eine nahtlose Bereitstellung und optimale native Kompatibilität.
Lokale Eingangsports (eingehend)
| Protokoll | Portnummer | Verwendung |
| TCP/UDP | 53 | Wird für DNS verwendet. Erforderlich für die Umleitung des Gästeportals, das Herunterladen von Updates und den Fernzugriff. |
| UDP | 3478 | Wird für STUN verwendet. |
| UDP | 5514 |
Wird für die Erfassung von Remote-Syslogs verwendet. |
| TCP | 8080 |
Wird für die Kommunikation von Geräten und Anwendungen verwendet. |
| TCP | 443 |
Wird für die GUI/API der Anwendung verwendet, wie sie in einem Webbrowser sichtbar ist. Anwendungen, die auf einer UniFi-Konsole laufen. |
| TCP | 8443 |
Wird für die GUI/API der Anwendung verwendet, wie sie in einem Webbrowser sichtbar ist. Anwendungen, die auf einem Windows/macOS/Linux-System laufen. |
| TCP | 8880 |
Wird für die HTTP-Umleitung des Portals verwendet. |
| TCP | 8843 |
Wird für die HTTPS-Umleitung des Portals verwendet. |
| TCP | 6789 |
Wird für den UniFi-Mobile-Speedtest verwendet. |
| TCP | 27117 |
Wird für die lokale Datenbankkommunikation verwendet. |
| UDP | 5656-5699 |
Wird für das Broadcasting von AP-EDU verwendet. |
| UDP | 10001 |
Wird für die Geräteerkennung verwendet. |
| UDP | 1900 |
Wird für die Option "Anwendung im L2-Netzwerk auffindbar machen" in den UniFi Network-Einstellungen verwendet. |
| UDP | 123 |
Wird für NTP (Datum und Uhrzeit) verwendet. Erforderlich für die sichere Kommunikation mit Remote-Zugriffsservern. |
Obwohl der TCP-Port 22 standardmäßig nicht von der UniFi Network Anwendung verwendet wird, ist es erwähnenswert, dass dieser Port genutzt wird, wenn über SSH auf UniFi-Geräte oder die Netzwerk-Anwendung zugegriffen wird.
Erforderliche Eingangsports für L3-Verwaltung über das Internet (eingehend)
Diese Ports müssen sowohl am Gateway/Firewall als auch auf der Maschine, auf der die UniFi Network-Anwendung läuft, geöffnet sein. Dies wird durch das Erstellen von Portweiterleitungen auf dem Gateway/der Firewall erreicht, auf dem die Anwendung ausgeführt wird.
| Protokoll | Portnummer | Verwendung |
| UDP | 3478 | Wird für STUN verwendet. |
| TCP | 8080 | Wird für die Kommunikation von Geräten und Anwendungen verwendet. |
| TCP | 443 | Wird für die GUI/API der Anwendung verwendet, wie sie in einem Webbrowser sichtbar ist. Anwendungen, die auf einer UniFi-Konsole laufen. |
| TCP | 8443 | Wird für die GUI/API der Anwendung verwendet, wie sie in einem Webbrowser sichtbar ist. Anwendungen, die auf einem Windows/macOS/Linux-System laufen. |
| TCP | 6789 | Wird für den UniFi-Mobile-Speedtest verwendet. |
| TCP | 8880 | Wird für die HTTP-Umleitung des Portals verwendet (nur erforderlich bei der Nutzung eines Gäste-Hotspots). |
| TCP | 8843 | Wird für die HTTPS-Umleitung des Portals verwendet (nur erforderlich bei der Nutzung eines Gäste-Hotspots). |
Erforderliche Ausgangsports für UniFi Remote-Zugriff (ausgehend)
In den meisten Fällen sind diese Ports standardmäßig offen und uneingeschränkt.
| Protokoll | Portnummer | Verwendung |
| TCP/UDP | 53 | Wird für DNS verwendet. Erforderlich für die Umleitung des Gästeportals, das Herunterladen von Updates und den Fernzugriff. |
| UDP | 3478 | Wird für STUN verwendet. |
| TCP/UDP | 443 | Wird für den Remote-Zugriff verwendet. |
| TCP | 8883 | Wird für den Remote-Zugriff verwendet. |
| UDP | 123 | Wird für NTP (Datum und Uhrzeit) verwendet. Erforderlich für die sichere Kommunikation mit Remote-Zugriffsservern. |
Ändern der Standardports
Das Ändern der Standardport-Zuweisungen ist nur auf selbst gehosteten UniFi Network Servern (Windows/macOS/Linux) möglich. Gehen Sie dazu wie folgt vor:
- Schließen Sie alle Instanzen der UniFi Network-Anwendung.
- Ändern Sie die Datei
system.properties, die sich im Verzeichnis<unifi_base>/data/system.propertiesbefindet.- Wenn z. B. der Port 8081 belegt ist und der Port 8089 frei ist, können Sie dies ändern, indem Sie
unifi.shutdown.port=8081inunifi.shutdown.port=8089ändern.
- Wenn z. B. der Port 8081 belegt ist und der Port 8089 frei ist, können Sie dies ändern, indem Sie
- Starten Sie die UniFi Network-Anwendung neu.
Hinweis: Achten Sie darauf, dass keine führenden oder nachfolgenden Leerzeichen, Kommentare oder andere Zeichen (z. B. #) in den benutzerdefinierten Zeilen vorhanden sind. Andernfalls ignoriert die UniFi Network-Anwendung die Anpassungen.
Quelle: https://help.ui.com/hc/en-us/articles/218506997-Required-Ports-Reference
Unifi - Geräte Adopten
Wenn ein UniFi Controller verwendet wird, der mehrere Sites/Standorte/IP-Kreise hat, kann es sehr gut sein, das neue, nicht programmierte AP's nicht auf dem Controller erscheinen.
Warum das ganze so ist, kann mehrere Gründe haben, ein Grund wäre NAT, da bei NAT die MAC-Adressen nicht mitgegeben werden und somit die erkennung auf MAC-Adress Ebene nicht funktioniert.
Um dennoch einen AP auf den Controller zu fixen, muss sich dafür auf dem AP selber eingelogt werden.
Neues oder zurückgesetztes Gerät hinzufügen
Das ganze funktioniert nur, wenn das Gerät noch neu ist oder zurückgesetzt wurde.
Zurücksetzen tust du, indem du das Gerät an den Strom anschließt, wartest bis es hochgefahren ist und dann mit einer Büro klammer den Reset Knopf so lange drückst, bis er anfängt zu blinken oder sich die Status LED verändert.
Wenn du zuerst den Reset Knopf drückst und währenddessen Strom dazu gibst, setzt du das Gerät in den Recovery Mode, das benötigen wir aber nicht.
Diese Anleitung ist nur notwendig, wenn der UniFi-Controller in einem anderen Netzwerk und/oder an einem anderen Standort als das einzurichtende UniFi Gerät ist.
Andernfalls sollte der UniFi-Controller das Gerät nach dem Booten sehen und auch anbieten.
IP-Adresse finden
Zuerst musst du die IP-Adresse herausfinden, wenn der AP noch nicht konfiguriert ist, sucht er sich per DHCP im Unttaged LAN nach einer IP-Adresse.
Nutze einen IP-Scanner um die IP-Adresse des neuen AP’s zu finden.
Wenn du nun die IP-Adresse des AP’s kennst, kannst, bzw. musst du dich nun per SSH auf den AP rauf schalten.
Die Logindaten für die UniFi Geräte ist immer:
User: ubnt
Passwd: ubnt
also in einer CMD, Powershell oder Terminal einfach:
ssh ubnt@IP_Adresse_des_AP’s
eingeben.
Nach dem du den SSH Befehl eingegeben hast, fragt er, ob er dem fingerprint vertrauen willst.
Da musst du “yes” eingeben, da du sonst keine Verbindung aufbauen kannst.
Danach fragt er nach dem passwd, das gibst du nun ein, beachte jedoch, das er nichts zeigt, wenn du tippst.
Also du gibst Buchstaben ein, aber nichts verändert sich, so wie du in dem Bild siehst, das ist völlig normal.
Sobald du drin bist, kannst du als hilfe “help” eingeben oder direkt den set-inform command.
Bei dem set-inform command musst du nun die IP-Addresse deines UniFi Controllers eingeben, in dem Beispiel wird die Addresse 172.19.0.154 verwendet, das musst du entsprechend anpassen.
set-inform http://172.19.0.154:8080/inform
Auch wenn du deinen Controller per https und Port 8443 öffnest, musst du hier http und den Port 8080 verwenden.
Danach sollte eine Ausgabe wie diese zu sehen sein:
Auf der Webseite des UniFi-Controller kannst du nun den AP sehen und hinzufügen.
Achte darauf, das du auf der richtigen Site bist (in orange umkreist), der AP wird auf jeder Site angezeigt, falls nicht, aktualisiere das Browser Fenster.
Wenn du dann auf der richtigen Site bist, klicke auf die UniFi-Geräte (in rot umkreist) und klicke auf “Zum Verwenden klicken” um den AP in der Site hinzuzufügen.
Nun braucht er je nach Modell 3-5 Minuten.
Je nachdem wie lange der schon am rumgammeln is, will der natürlich auch nen Update haben, das darfst du dann gerne auch noch hinterher jagen.
Er zeigt dir auch immer so in etwa an, wie weit die AP’s sind.
Das sind aber nur geschätzte Werte, da UniFi hier einfach eine bestimmte Zeit wartet und während dessen den Blauen Balken zur beruhigung des Menschen anzeigt.
Wenn sie auf Aktuell stehen, haben sie alle nötigen Daten erhalten und sind nun aktiv im Einsatz.
UniFi‑Switch ohne SSH hinter NAT‑Firewall adoptieren per DHCP‑Option 43
Diese Anleitung beschreibt Schritt für Schritt, wie du einen UniFi-Switch (z. B. USW-Flex-Mini), der kein SSH bietet, mit einem Controller koppelst, der sich hinter einer NAT-Firewall befindet.
Der Trick: Wir geben dem Switch die Controller-IP direkt via DHCP Option 43.
- Debian-/Ubuntu-System mit zwei NICs (
eth0= uplink/NAT-Seite,eth1= Switch-Port). - UniFi Controller ist aus dem Uplink-Netz unter
10.0.0.1erreichbar. - Root-Zugriff auf den Debian-Host (oder du wechselst per
su -auf root).
1 · Netzdesign / Topologie
# uplink-LAN (10.0.0.0/24)
Internet/Router ──> eth0 (10.0.0.2/24) [Debian] \
\ NAT (Masquerade)
eth1 (172.0.0.1/24) [Debian] ──> UniFi-Switch (DHCP, z. B. 172.0.0.10)
# Controller liegt im Uplink-LAN: 10.0.0.1
- eth1 bekommt ein separates /24 (hier
172.0.0.0/24), damit der Switch sofort erkennt, dass10.0.0.1außerhalb seines Netzes liegt und das Gateway nutzt. - NAT / Masquerade auf dem Debian-Host erlaubt dem Switch, den Controller über
eth0zu erreichen.
2 · Interface- und System-Basis
# /etc/network/interfaces – Ausschnitt
auto eth1
iface eth1 inet static
address 172.0.0.1
netmask 255.255.255.0
# IP-Forwarding permanent einschalten (als root)
echo "net.ipv4.ip_forward = 1" > /etc/sysctl.d/99-nat.conf
sysctl -p /etc/sysctl.d/99-nat.conf
# Einfaches Masquerading für das Subnetz 172.0.0.0/24 (als root)
iptables -t nat -A POSTROUTING -s 172.0.0.0/24 -o eth0 -j MASQUERADE
# Regeln persistent speichern – z. B. via iptables-persistent / netfilter-persistent
2.3 · Forwarding erlauben (falls dein Host ein “Sicherheitsbunker” ist)
Einige Systeme haben die Standard-Policy der FORWARD-Chain auf DROP. Dann reicht Masquerading allein nicht: Pakete werden zwar NAT-ted, aber beim Forwarding verworfen.
Prüfen:
iptables -L FORWARD -n -v
Wenn dort oben policy DROP steht (und die Zähler hochlaufen), erlaube Forwarding für dein Switch-Netz:
# Forwarding von "Switch-Seite" (eth1) ins Uplink (eth0) erlauben
iptables -I FORWARD 1 -i eth1 -o eth0 -s 172.0.0.0/24 -m conntrack --ctstate NEW,ESTABLISHED,RELATED -j ACCEPT
# Rückverkehr (Replies) wieder zurück zur Switch-Seite erlauben
iptables -I FORWARD 2 -i eth0 -o eth1 -d 172.0.0.0/24 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
Hinweis: Wenn deine Interface-Namen anders heißen (z. B. enp0s31f6 statt eth1 oder wlp0s20f3 statt eth0), ersetze sie entsprechend.
Danach ggf. Regeln persistent speichern, sonst sind sie nach dem Reboot weg.
3 · ISC-DHCP-Server installieren & konfigurieren
# als root
apt-get update
apt-get install isc-dhcp-server
3.1 Server-Interface festlegen
# /etc/default/isc-dhcp-server
INTERFACESv4="eth1"
3.2 /etc/dhcp/dhcpd.conf
subnet 172.0.0.0 netmask 255.255.255.0 {
range 172.0.0.10 172.0.0.50;
option routers 172.0.0.1;
option broadcast-address 172.0.0.255;
# *** UniFi-Magie: DHCP Option 43 ***
# 01 -> Sub-Option 1 (Controller-IP)
# 04 -> Länge in Bytes (4)
# 0a 00 00 01 -> 10.0.0.1 in Hex
option vendor-encapsulated-options 01:04:0a:00:00:01;
# DNS für Clients (hier Cloudflare)
option domain-name-servers 1.1.1.1, 1.0.0.1;
}
Jedes Oktett der Controller-IP in Hex schreiben:
- 10 =
0a - 0 =
00 - 0 =
00 - 1 =
01
01:04:0a:00:00:01systemctl enable --now isc-dhcp-server
systemctl status isc-dhcp-server
4 · Firewall / Ports
| Port | Protokoll | Zweck |
|---|---|---|
| 8080 | TCP | Inform & Adoption |
| 3478 | UDP | STUN |
| 10001 | UDP | Discovery (alt) |
| 8443 | TCP | Controller-GUI/API |
Achte darauf, dass diese Ports von 172.0.0.0/24 über NAT zu 10.0.0.1 passieren dürfen.
5 · Switch anschließen & adoptieren
- Switch auf Werkseinstellungen zurücksetzen (Reset-Taster > 5 s).
- An
eth1des Debian-Hosts stecken. - Mit
tcpdumpüberprüfen, dass Option 43 imDHCPACKauftaucht:
tcpdump -ni eth1 port 67 or port 68 | grep -i "Vendor specific" - Controller-UI öffnen
https://10.0.0.1:8443➜ Devices » Pending Adoption.
Gerät erscheint? → Adopt.
Debugging-Checks
# Kommt der Switch raus?
ping -c3 10.0.0.1
# Siehst du Inform-Traffic?
tcpdump -ni eth1 host 10.0.0.1 and port 8080
# Controller-Logs (Pfad je nach Installation/Container ggf. anders)
tail -f /usr/lib/unifi/logs/server.log
- Option 43 fehlt ➜ DHCP checken.
- NAT/Firewall blockt Port 8080 ➜ iptables-Regeln prüfen (Forwarding + NAT!).
- Falsche Subnetzmaske ➜ Switch glaubt, Controller sei lokal.
Anhang A · IP-Adresse in Hexadezimal umrechnen – Schritt für Schritt
Warum überhaupt Hex?
DHCP-Option 43 braucht die Controller-IP als rohe Bytefolge. Bytes schreibt man in der Netzwerktechnik üblich in Hexadezimal (“Hex”). Ein Byte kann Werte von 00 bis ff (= 0 – 255 dezimal) annehmen.
1 · Vier Oktette der IP aufschreiben
Beispiel-IP unseres Controllers:
10 . 0 . 0 . 1
2 · Jedes Oktett einzeln nach Hex konvertieren
| Dezimal | Rechenweg | Hexadezimal |
|---|---|---|
| 10 | 10 / 16 = 0 Rest 10 → 0 = 0, 10 = a |
0a |
| 0 | 0 = 0 → 00 |
00 |
| 0 | 0 = 0 → 00 |
00 |
| 1 | 1 / 16 = 0 Rest 1 → 01 |
01 |
Merksatz: Wenn das Ergebnis nur ein Hex-Zeichen hat (z. B. a), wird immer eine führende Null ergänzt → 0a. So entstehen exakt vier Byte.
3 · Bytes zusammenfügen
0a 00 00 01
4 · In DHCP-Option 43 einbauen
Die Struktur lautet: 01 : 04 : <IP-Hex-Byte1> : <IP-Hex-Byte2> : <IP-Hex-Byte3> : <IP-Hex-Byte4>
01= Sub-Option 1 (Controller-IP)04= Länge (4 Byte)0a:00:00:01= die vier Hex-Bytes von oben
option vendor-encapsulated-options 01:04:0a:00:00:01;
Schnell-Check mit Python
Für größere Netze lohnt es sich, nicht zu rechnen, sondern einen Einzeiler zu nutzen:
python3 -c 'import sys,ipaddress; \
print(":".join(f"{b:02x}" for b in ipaddress.IPv4Address(sys.argv[1]).packed))' \
10.0.0.1
Ausgabe: 0a:00:00:01 – genau wie von Hand.
Spickzettel 0 – 255 → Hex
| Dez | Hex | Dez | Hex | Dez | Hex | Dez | Hex |
|---|---|---|---|---|---|---|---|
| 0 | 00 | 16 | 10 | 128 | 80 | 240 | f0 |
| 1 | 01 | 32 | 20 | 144 | 90 | 241 | f1 |
| 2 | 02 | 64 | 40 | 160 | a0 | 250 | fa |
| 3 | 03 | 100 | 64 | 176 | b0 | 255 | ff |
Damit können auch Azubis ohne Vorwissen eine IP schnell in Hex umbrechen und die Option 43 korrekt setzen.
UniFi AP - zweiten SSH User hinterlegen
UniFi AP: Lokalen SSH-User rebootfest hinterlegen
Diese Anleitung legt auf einem UniFi AP einen lokalen SSH-User direkt in der Geräte-Konfiguration an. Der User überlebt einen Reboot, kann aber bei erneuter Controller-Provisionierung wieder überschrieben werden.
1. Passwort-Hash erzeugen
Auf einem Linux-System mit OpenSSL einen MD5-crypt-Hash erzeugen:
openssl passwd -1
Passwort eingeben und den ausgegebenen Hash kopieren. Beispiel:
$1$abc12345$abcdefghijklmnopqrstuv
2. Per SSH auf den UniFi AP verbinden
ssh <admin-user>@<ap-ip>
Beispiel:
ssh ubntadmin@192.168.1.20
3. Aktuelle Config aus dem Flash lesen
cfgmtd -f /tmp/system.cfg -r
Wichtig: Dieser Schritt liest die gespeicherte Konfiguration aus dem Flash nach /tmp/system.cfg. Nicht nach dem Bearbeiten ausführen, sonst überschreibt man die eigenen Änderungen wieder. Weil Firmware offenbar gern kleine Fallen stellt.
4. Config bearbeiten
vi /tmp/system.cfg
Einen freien User-Slot suchen oder ergänzen, zum Beispiel users.2:
users.2.name=<ssh-user>
users.2.password=<openssl-passwd-hash>
users.2.shell=/bin/ash
users.2.status=enabled
users.status=enabled
Beispiel:
users.2.name=localadmin
users.2.password=$1$abc12345$abcdefghijklmnopqrstuv
users.2.shell=/bin/ash
users.2.status=enabled
users.status=enabled
Falls die Firmware UID/GID-Felder akzeptiert, können diese zusätzlich gesetzt werden:
users.2.uid=0
users.2.gid=0
Wichtig: users.2.shell=/bin/false verhindert einen brauchbaren SSH-Login. Für SSH muss dort z. B. /bin/ash stehen.
5. Config dauerhaft in den Flash schreiben
cfgmtd -f /tmp/system.cfg -w
Danach den AP neu starten:
reboot
6. Login testen
ssh <ssh-user>@<ap-ip>
id
Wenn der User root-equivalent ist, sollte id ungefähr so aussehen:
uid=0(...) gid=0(root)
Kurzablauf
openssl passwd -1
ssh <admin-user>@<ap-ip>
cfgmtd -f /tmp/system.cfg -r
vi /tmp/system.cfg
cfgmtd -f /tmp/system.cfg -w
reboot
Hinweise
/tmp/system.cfgist die Arbeitskopie der Geräte-Konfiguration.cfgmtd -f /tmp/system.cfg -rliest die Config aus dem Flash.cfgmtd -f /tmp/system.cfg -wschreibt die geänderte Config zurück in den Flash.savereicht hierfür nicht zuverlässig aus.- Wenn der AP später wieder von einem UniFi Controller provisioniert wird, kann der Controller diese lokalen Änderungen überschreiben.
- Für mehrere User weitere Slots wie
users.3,users.4usw. verwenden.
USW-Pro Switch - SSH Observation
Commands
cli
cli öffnet die eigentliche Switch-CLI, also die FastPath-/Switching-Ebene.
Dort arbeitest du mit Dingen wie:
show vlan
show running-config
configure
interface 0/1
switchport mode access
vlan database
write memoryDas ist die Cisco-ähnliche Oberfläche für:
- VLANs
- Ports
- Trunks
- Layer-2/teilweise Layer-3
- laufende Switch-Konfiguration
Das Problem: Diese CLI verwaltet hauptsächlich den laufenden FastPath-Zustand. write memory meldet zwar Erfolg, aber die UniFi-Firmware baut FastPath beim Start wieder aus /tmp/system.cfg beziehungsweise der von ubntconf erzeugten Startup-Konfiguration auf. Deshalb verschwinden die Änderungen nach einem Reboot.
mca-cli-op
mca-cli-op gehört zur UniFi-Management-Ebene.
Auf deinem Switch ist es nur ein Symlink:
/usr/bin/mca-cli-op -> mcadEs startet also das Programm mcad in einem speziellen Betriebsmodus.
mcad kümmert sich um Dinge wie:
- Adoption
- Controller-Kommunikation
- Inform-Nachrichten
- Provisionierung
- Managementstatus
- Werksreset
- Speichern und Laden von UniFi-Konfiguration
mgmt.is_defaultmgmt.is_setup_completed
Mit Argumenten wird es normalerweise als interner Einzelbefehl verwendet, zum Beispiel:
mca-cli-op inform
mca-cli-op set-inform http://controller:8080/inform
mca-cli-op set-defaultDer Firmware-Wrapper ruft solche Befehle selbst auf. set-inform wird beispielsweise direkt an mca-cli-op weitergereicht, während set-default einen Werksreset einleitet.
Ohne Argument:
mca-cli-opöffnet es die interaktive Management-CLI:
UniFi#Das ist keine Linux-Shell und auch nicht dieselbe CLI wie cli. Deshalb kennt sie kein echo, awk, find oder Shell-Pipes.
Vereinfacht dargestellt
SSH-Shell
│
├── cli
│ └── FastPath-Switch-CLI
│ ├── VLANs
│ ├── Ports
│ ├── Trunks
│ └── running-config
│
└── mca-cli-op / mcad
└── UniFi-Management-Stack
├── Adoption
├── Provisionierung
├── Controller/Inform
├── mgmt-Konfiguration
└── Default-/Setup-Statusswctrl
swctrl ist eine interne UniFi-Switch-Control-Utility. Auf dem getesteten USW-Pro-48-US.7.5.6 meldet sie sich als Version 0.9. Sie liest hardwarenahe Switch-Zustände aus und enthält außerdem einige direkt verändernde Funktionen.
Sie ist weder die Cisco-ähnliche cli noch die UniFi-Management-CLI mca-cli-op. swctrl arbeitet näher an der laufenden Switch- und Hardware-Ebene. Änderungen sind deshalb nicht automatisch eine dauerhaft vom Controller verwaltete Konfiguration.
Aufruf und Optionen
swctrl FUNCTION
swctrl [OPTIONS]Auf diesem Firmware-Build werden folgende globale Optionen angezeigt:
-hzeigt die allgemeine Hilfe.-vaktiviert eine ausführlichere Ausgabe, sofern die aufgerufene Funktion zusätzliche Details bereitstellt.
Die Unterbefehle sind nicht vollständig in der allgemeinen Hilfe aufgeführt. Bei vielen Funktionsgruppen zeigt ein Aufruf ohne weiteren Unterbefehl die jeweilige Syntax:
swctrl
swctrl -h
swctrl mac
swctrl mac blockFunktionsgruppen
Die Hilfe von Firmware 7.5.6 nennt diese Funktionsgruppen:
port– Portstatus, Linkzustand, Geschwindigkeit, Zähler und modellabhängige Portoperationen.poe– PoE-Status und modellabhängige PoE-Steuerung. Die Funktionsgruppe kann auch auf Geräten ohne PoE im gemeinsamen Firmware-Binary vorhanden sein.env– Umgebungs- und Hardwarewerte, beispielsweise Temperatursensoren und vorhandene Lüfterinformationen.mac– gelernte MAC-/Client-Einträge sowie Block- und eine in der Hilfe genanntewhite-Funktionsgruppe.sfp– Status und Diagnosedaten vorhandener SFP-/SFP+-Module.led– modellabhängige LED-Funktionen.vlan– interne VLAN-bezogene Abfragen oder Operationen; die genaue Syntax muss mitswctrl vlanauf dem jeweiligen Build geprüft werden.lldp– LLDP-bezogene Status- und Nachbarinformationen.relay– eine auf diesem Build vorhandene, aber durch die allgemeine Hilfe nicht näher erklärte Funktionsgruppe. Bedeutung und Unterbefehle müssen mitswctrl relaygeprüft werden.
Wichtig: Eine aufgelistete Funktionsgruppe bedeutet nicht automatisch, dass die Hardware sie unterstützt oder dass jeder Unterbefehl auf jedem Switch identisch ist. swctrl ist stark firmware- und modellabhängig.
Typische lesende Diagnosebefehle
swctrl env show
swctrl poe show
swctrl sfp show
swctrl port show
swctrl port show counters
swctrl mac showport show, port show counters und mac show eignen sich besonders für Live-Diagnose, weil sie den aktuellen Zustand anzeigen und selbst keine Konfiguration ändern.
Hinweis zu poe
Eine leere Tabelle oder ein offensichtlich unsinniger Wert wie Total Power Limit(mW): -1091736708 ist kein gültiger Leistungswert und kein verlässlicher Modelltest. Solche Ausgaben müssen als nicht unterstützte, fehlerhafte oder nicht initialisierte PoE-Abfrage behandelt werden.
mac
swctrl mac bündelt die MAC-/Client-Funktionen der laufenden Switch-Ebene. Auf Firmware 7.5.6 zeigt die Hilfe folgende Bereiche:
swctrl mac show [ id PORT_ID ]
swctrl mac block
swctrl mac whitePORT_ID darf einzelne Ports, Bereiche und kombinierte Listen enthalten:
3
5-7
1,4,9-12mac show
swctrl mac show zeigt die vom Switch erfassten MAC-/Client-Einträge über alle Ports. Mit id lässt sich die Ausgabe auf bestimmte Ports begrenzen:
swctrl mac show
swctrl mac show id 52
swctrl mac show id 5-7
swctrl mac show id 1,4,9-12Die Ausgabe enthält auf diesem Build folgende Spalten:
port– Port, an dem die MAC-Adresse gelernt beziehungsweise dem Client-Eintrag zugeordnet wurde.vlan– VLAN-ID des Eintrags.mac-address– erkannte MAC-Adresse.ip-address– zugeordnete IP-Adresse, sofern sie der Management-Software bekannt ist.hostname– erkannter Hostname, sofern vorhanden.uptime– interner Laufzeitwert des Eintrags. Die Hilfe definiert seine genaue Bedeutung nicht; er sollte nicht ungeprüft als Geräte-Uptime bezeichnet werden.age– interner Alterswert, wahrscheinlich seit der letzten Aktualisierung oder Aktivität. Auch diese Einheit und Semantik wird von der Hilfe nicht erklärt.wireless-type– optionale WLAN-/Client-Klassifizierung; bei rein kabelgebunden erkannten Einträgen bleibt das Feld häufig leer.
Da die Ausgabe zusätzlich IP-Adresse, Hostname und WLAN-Metadaten enthalten kann, ist sie mehr als eine rohe Hardware-FDB. Fehlende IP- oder Hostname-Werte bedeuten nicht, dass die MAC-Adresse ungültig ist; die Zusatzinformationen sind schlicht nicht bekannt.
Mehrere MAC-Adressen auf demselben Port sind bei einem Uplink, einem nachgeschalteten Switch, einem Access Point, einer Bridge oder einem virtualisierten Host normal. Beim USW-Pro-48 sind neben 48 RJ45-Ports vier SFP+-Ports vorhanden. Ein Eintrag auf Port 52 passt daher zum letzten SFP+-Port; die konkrete Portzuordnung sollte trotzdem mit swctrl port show geprüft werden.
mac block
mac block verwaltet auf diesem Firmware-Build eine interne Blockliste. Die knappe Unterhilfe zeigt nur show an, tatsächlich wurden aber auch add und remove erfolgreich vom Parser akzeptiert.
swctrl mac block show
swctrl mac block add 00:87:31:73:1e:e0
swctrl mac block show
swctrl mac block remove 00:87:31:73:1e:e0
swctrl mac block showshowzeigt die aktuell eingetragenen MAC-Adressen und den zuletzt zugeordneten Port.add MACfügt die angegebene MAC-Adresse zur internen Blockliste hinzu.remove MACentfernt die MAC-Adresse wieder aus der Blockliste.lastUpdatedist ein interner Zähler beziehungsweise Zeitwert. Die Ausgabe belegt nicht, dass es sich um einen Unix-Zeitstempel oder eine bestimmte Zeiteinheit handelt.
Folgende Varianten sind auf dem getesteten Build nicht gültig:
swctrl mac block 00:87:31:73:1e:e0
swctrl mac block del 00:87:31:73:1e:e0
swctrl mac block delete 00:87:31:73:1e:e0
swctrl mac block drop 00:87:31:73:1e:e0Ein Aufruf wie swctrl mac block add ohne MAC-Adresse kann ohne verständliche Fehlermeldung zurückkehren. Das darf nicht als Erfolg gewertet werden. Nach jeder Änderung sollte die Blockliste erneut mit swctrl mac block show geprüft werden.
Der Eintrag in der Blockliste beweist zunächst nur, dass die MAC-Adresse in der laufenden internen Liste steht. Für eine saubere Prüfung der tatsächlichen Sperrwirkung muss der Datenverkehr des betroffenen Clients getestet werden. Ebenso sollte nach einem Reboot und nach einer Controller-Provisionierung geprüft werden, ob der Eintrag erhalten bleibt.
mac white
swctrl mac white wird von der Hilfe als weitere MAC-Funktionsgruppe genannt. Im vorliegenden Test wurde sie jedoch nicht weiter aufgerufen. Deshalb lässt sich aus den vorhandenen Daten weder die genaue Syntax noch sicher ableiten, ob sie als Whitelist, Ausnahme zur Blockliste oder für einen anderen internen Zweck verwendet wird.
Für eine belastbare Dokumentation sollte zuerst nur die Hilfe abgefragt werden:
swctrl mac whiteSicherheit und Persistenz
Eine MAC-Sperre ist keine starke Zugangskontrolle. MAC-Adressen können nachgeahmt werden. Für dauerhafte Sicherheitsregeln sind controllerverwaltete Switch-ACLs, Port-Isolation oder 802.1X geeigneter als eine manuell gesetzte Laufzeitliste.
Direkte Änderungen über swctrl sollten grundsätzlich als firmwareabhängige Laufzeitoperationen behandelt werden. Sie können nach Reboot, Firmware-Update oder erneuter Provisionierung verschwinden oder überschrieben werden.
Kurzfassung
swctrl -h
# Live-Diagnose
swctrl env show
swctrl port show
swctrl port show counters
swctrl sfp show
swctrl mac show
swctrl mac show id 52
# Laufende MAC-Blockliste
swctrl mac block show
swctrl mac block add 00:87:31:73:1e:e0
swctrl mac block remove 00:87:31:73:1e:e0Damit ist swctrl vor allem ein Werkzeug für hardwarenahe Live-Diagnose. Einige Funktionsgruppen verändern auch den laufenden Zustand, sind aber nicht mit einer dauerhaft vom UniFi-Controller verwalteten Konfiguration gleichzusetzen.
VLANs auf Ubiquiti-Switches per SSH konfigurieren
BookStack-Anleitung · Version 1.0 · Stand: 30. Juli 2026 · Zielgruppe: Administratoren und Homelab-Betreiber
Geltungsbereich
Diese Anleitung gilt für Ubiquiti-Switches, die über SSH eine Cisco-artige FastPath-/EdgeSwitch-CLI mit Befehlen wie vlan database, configure, switchport mode access und switchport mode trunk bereitstellen. Sie ist keine Behauptung, dass jeder UniFi-Switch, jede Firmware oder jede Produktfamilie dieselben Befehle unterstützt. Vor Änderungen wird die verfügbare CLI-Hilfe geprüft.
Wichtiger Hinweis zu UniFi Network
Bei einem durch UniFi Network verwalteten Switch können manuelle SSH-Änderungen bei der nächsten Provisionierung überschrieben werden. Für dauerhaft unterstützte Konfigurationen ist dort der Port Manager beziehungsweise ein Ethernet-Portprofil der vorgesehene Weg. Die SSH-CLI eignet sich vor allem zur Diagnose, für Laborumgebungen und für Geräte, deren lokale CLI und Speichermethode ausdrücklich geprüft wurden.
Inhalt
- 1. Grundlagen
- 2. VLAN-Planung
- 3. Vorbereitung und Sicherung
- 4. SSH und CLI öffnen
- 5. Mehrere VLANs erstellen
- 6. Access-Port konfigurieren
- 7. Trunk-Port konfigurieren
- 8. Typische Anschlussszenarien
- 9. Konfiguration prüfen
- 10. Änderungen speichern
- 11. Rückbau und Notfallplan
- 12. Häufige Fehler
- 13. Entsprechung in UniFi Network
- 14. Kurzreferenz
- 15. Quellen
1. Grundlagen
Ein VLAN trennt ein physisches Ethernet-Netz logisch in mehrere Layer-2-Netze. Geräte in unterschiedlichen VLANs teilen sich zwar möglicherweise denselben Switch, befinden sich aber in getrennten Broadcast-Domänen. Kommunikation zwischen VLANs benötigt einen Router, eine Firewall oder einen Layer-3-Switch mit passenden Regeln.
Begriff | Bedeutung |
|---|---|
VLAN-ID / VID | Numerische Kennung eines VLANs. Bei der hier beschriebenen CLI liegt der nutzbare Bereich typischerweise bei 1 bis 4093; VLAN 1 ist meist das Default-VLAN. |
Untagged / unmarkiert | Ein Ethernet-Frame verlässt den Port ohne 802.1Q-VLAN-Tag. Normale Endgeräte erwarten üblicherweise ungetaggte Frames. |
Tagged / markiert | Der Frame trägt ein 802.1Q-Tag mit VLAN-ID. Das Gegenüber muss VLAN-Tags verstehen. |
Access-Port | Transportiert genau ein VLAN ungetaggt. Geeignet für PCs, Drucker, Kameras und andere nicht VLAN-fähige Endgeräte. |
Trunk-Port | Transportiert mehrere VLANs. Ein VLAN kann als Native VLAN ungetaggt übertragen werden; weitere VLANs werden getaggt. |
Native VLAN / PVID | VLAN, dem ungetaggte eingehende Frames zugeordnet werden. Auf einem Trunk ist es üblicherweise zugleich das ungetaggt ausgehende VLAN. |
Allowed VLANs | Liste der VLANs, die über einen Trunk transportiert werden dürfen. |
Merksatz
Access bedeutet: ein VLAN, ungetaggt. Trunk bedeutet: mehrere VLANs, normalerweise ein Native VLAN ungetaggt und weitere VLANs getaggt.
2. VLAN-Planung
Vor der ersten Eingabe wird eine Port- und VLAN-Tabelle erstellt. Das Beispiel ist absichtlich generisch:
VLAN-ID | Name | Beispielzweck | Gateway/DHCP |
|---|---|---|---|
10 | Management | Switches, Access Points, Verwaltungszugänge | Auf Router/Firewall konfigurieren |
110 | Clients | Arbeitsplätze und normale Endgeräte | Auf Router/Firewall konfigurieren |
120 | Voice | VoIP-Telefone | Auf Router/Firewall konfigurieren |
130 | Guest | Gäste oder isolierte Geräte | Auf Router/Firewall konfigurieren |
Beispielhafter Portplan:
Port | Rolle | Native/Untagged | Tagged |
|---|---|---|---|
0/5 | Access-Port für Client | VLAN 110 | keine |
0/12 | Access-Port für Telefon oder Endgerät | VLAN 120 | keine |
0/24 | Access Point | VLAN 10 | VLAN 110 und 130 |
0/48 | Uplink zu Router oder weiterem Switch | VLAN 10 | VLAN 110, 120 und 130 |
Der Switch ersetzt keinen Router
Das Anlegen eines VLANs auf dem Switch erzeugt weder ein IP-Subnetz noch DHCP noch Firewallregeln. Router oder Firewall müssen für jedes benötigte VLAN eine passende Schnittstelle beziehungsweise Subinterface besitzen.
3. Vorbereitung und Sicherung
3.1 Notfallzugang vorbereiten
- Nicht zuerst den Port ändern, über den die aktuelle SSH-Sitzung läuft.
- Wenn möglich einen zweiten Verwaltungsweg, Konsolenzugang oder einen unveränderten Management-Port bereithalten.
- Uplink und Management-VLAN erst ändern, nachdem Access- und Trunk-Konzept auf beiden Seiten feststehen.
- Bei entfernten Standorten eine Rückfallmöglichkeit vor Ort einplanen. Ein falsches Native VLAN ist ein sehr effizienter Weg, sich selbst auszusperren.
3.2 Ist-Zustand dokumentieren
Vor Änderungen diese Befehle ausführen und die Ausgabe lokal speichern:
show version
show network
show vlan brief
show interfaces status all
show running-config
Nicht jedes Modell unterstützt jede Anzeige. Ein unbekannter show-Befehl ist kein Anlass, kreativ schreibende Befehle auszuprobieren; stattdessen mit show ? die lokale Hilfe verwenden.
4. SSH und CLI öffnen
4.1 SSH-Verbindung herstellen
ssh <benutzer>@<switch-ip>
4.2 Lokale Switch-CLI öffnen
Auf vielen UniFi-USW-Firmwares landet man zunächst in einer Linux-Shell:
cli
enable
Auf EdgeSwitch-Systemen kann SSH bereits direkt die Switch-CLI öffnen. Dann ist cli nicht erforderlich.
4.3 Syntax vorab prüfen
?
vlan database ?
configure
interface ?
exit
Abbruchkriterium
Fehlen vlan database, switchport mode access oder switchport mode trunk in der lokalen Hilfe, darf diese Befehlsfolge nicht blind auf das Gerät übertragen werden. Ubiquiti verwendet je nach Produktfamilie unterschiedliche CLIs.
5. Mehrere VLANs erstellen
5.1 VLAN-Datenbank öffnen
vlan database
5.2 VLANs einzeln anlegen und benennen
vlan 10
vlan name 10 Management
vlan 110
vlan name 110 Clients
vlan 120
vlan name 120 Voice
vlan 130
vlan name 130 Guest
exit
Einzelne Befehle sind meist kompatibler als eine zusammengefasste VLAN-Liste. Unterstützt die lokale Hilfe Listen, kann alternativ beispielsweise vlan 10,110,120,130 verwendet werden. Namen werden anschließend separat gesetzt.
5.3 VLANs kontrollieren
show vlan brief
Alle angelegten VLAN-IDs sollten als statische VLANs erscheinen.
6. Access-Port konfigurieren
Ein Access-Port ist für ein normales Endgerät gedacht. Eingehende ungetaggte Frames werden dem konfigurierten VLAN zugeordnet; ausgehende Frames verlassen den Port ungetaggt.
6.1 Einzelnen Port auf Access VLAN 110 setzen
configure
interface 0/5
switchport mode access
switchport access vlan 110
exit
exit
6.2 Optional eine Beschreibung setzen
Wenn die lokale CLI den Befehl anbietet:
configure
interface 0/5
description Client-Arbeitsplatz
exit
exit
6.3 Mehrere Access-Ports
Die sicherste universelle Methode ist, die Portkonfiguration pro Interface zu wiederholen. Manche Firmwarestände unterstützen Interface-Bereiche, deren Syntax jedoch abweicht. Vor Verwendung eines Bereichs immer interface ? prüfen.
configure
interface 0/5
switchport mode access
switchport access vlan 110
exit
interface 0/6
switchport mode access
switchport access vlan 110
exit
interface 0/7
switchport mode access
switchport access vlan 110
exit
exit
Endgerätetest
Ein nicht VLAN-fähiger Client an diesem Port sollte ohne eigene VLAN-Konfiguration eine Adresse aus dem Netz von VLAN 110 erhalten. Bekommt er keine Adresse, fehlen meist DHCP, Gateway-Konfiguration oder ein VLAN auf einem vorgelagerten Trunk.
7. Trunk-Port konfigurieren
Ein Trunk verbindet VLAN-fähige Geräte, zum Beispiel einen Router, einen weiteren Managed Switch, einen Hypervisor oder einen Access Point. Beide Seiten des Links müssen dieselbe VLAN-Logik verwenden.
7.1 Trunk mit Native VLAN und mehreren erlaubten VLANs
configure
interface 0/48
switchport mode trunk
switchport trunk native vlan 10
switchport trunk allowed vlan 10,110,120,130
exit
exit
In diesem Beispiel läuft VLAN 10 als Native VLAN ungetaggt. VLAN 110, 120 und 130 werden getaggt übertragen. Einige Implementierungen zeigen das Native VLAN zusätzlich in der Allowed-Liste, andere behandeln es getrennt. Entscheidend ist die Ausgabe der lokalen Prüfkommandos und eine identische Konfiguration am Gegenport.
7.2 VLAN zu einem bestehenden Trunk hinzufügen
configure
interface 0/48
switchport trunk allowed vlan add 140
exit
exit
7.3 VLAN von einem Trunk entfernen
configure
interface 0/48
switchport trunk allowed vlan remove 140
exit
exit
7.4 Allowed-Liste vollständig ersetzen
configure
interface 0/48
switchport trunk allowed vlan 10,110,120,130
exit
exit
add und vollständige Liste nicht verwechselnswitchport trunk allowed vlan add ... ergänzt die vorhandene Liste. Der Befehl ohne add kann die bisherige Liste ersetzen. Vorher show interfaces switchport trunk <port> prüfen, sonst verschwinden VLANs mit beeindruckender Effizienz.
8. Typische Anschlussszenarien
8.1 Arbeitsplatz, Drucker, Kamera oder Server
Das Endgerät versteht keine VLAN-Tags und gehört genau einem VLAN:
configure
interface 0/5
switchport mode access
switchport access vlan 110
exit
exit
8.2 Access Point mit Management- und SSID-VLANs
Das Management des Access Points läuft ungetaggt in VLAN 10. Zwei SSIDs verwenden VLAN 110 und VLAN 130 getaggt:
configure
interface 0/24
switchport mode trunk
switchport trunk native vlan 10
switchport trunk allowed vlan 10,110,130
exit
exit
Access-Point-Falle
Das VLAN einer getaggten SSID sollte am direkten AP-Uplink nicht gleichzeitig als Native VLAN konfiguriert werden. Außerdem muss jedes SSID-VLAN auf allen Trunks zwischen AP und Gateway erlaubt sein.
8.3 Uplink zu einem Router oder einer Firewall
configure
interface 0/48
switchport mode trunk
switchport trunk native vlan 10
switchport trunk allowed vlan 10,110,120,130
exit
exit
Auf dem Router beziehungsweise der Firewall werden dazu passende VLAN-Interfaces benötigt, beispielsweise:
VLAN | Routerfunktion |
|---|---|
10 | Management-Gateway und optional DHCP |
110 | Client-Gateway, DHCP und Firewallregeln |
120 | Voice-Gateway, DHCP-Optionen und QoS nach Bedarf |
130 | Gast-Gateway, DHCP und restriktive Firewallregeln |
8.4 Uplink zwischen zwei Switches
Beide Enden müssen dieselbe Native-VLAN- und Allowed-VLAN-Konfiguration besitzen:
configure
interface 0/48
switchport mode trunk
switchport trunk native vlan 10
switchport trunk allowed vlan 10,110,120,130
exit
exit
Native-VLAN-Mismatch
Wenn eine Seite VLAN 10 ungetaggt erwartet und die andere Seite ungetaggte Frames einem anderen VLAN zuordnet, entstehen schwer erkennbare Verbindungs- und Sicherheitsprobleme. Native VLANs müssen an beiden Enden übereinstimmen.
8.5 Hypervisor oder VLAN-fähiger Server
Ein Hypervisor kann mehrere virtuelle Netze über einen Trunk empfangen. Das Management-VLAN kann nativ oder ebenfalls getaggt sein, abhängig von der Serverkonfiguration. Die Switch- und Hostkonfiguration müssen exakt zusammenpassen.
configure
interface 0/20
switchport mode trunk
switchport trunk native vlan 10
switchport trunk allowed vlan 10,110,120,130
exit
exit
9. Konfiguration prüfen
9.1 VLAN-Inventar
show vlan brief
9.2 Access-Port prüfen
show interfaces switchport access 0/5
show vlan port 0/5
show running-config interface 0/5
9.3 Trunk-Port prüfen
show interfaces switchport trunk 0/48
show vlan port 0/48
show running-config interface 0/48
9.4 Linkstatus kontrollieren
show interfaces status all
9.5 Praktische Funktionstests
- Endgerät am Access-Port anschließen.
- Prüfen, ob es eine IP-Adresse aus dem vorgesehenen VLAN erhält.
- Gateway des VLANs anpingen.
- DNS und erforderliche Dienste testen.
- Bei Trunks jedes VLAN einzeln über ein geeignetes Testgerät oder eine VLAN-fähige Schnittstelle prüfen.
- Firewallregeln zwischen VLANs testen, nicht nur die reine Erreichbarkeit.
Erfolgskriterien
Der Access-Client erhält das richtige Subnetz, der Trunk transportiert nur die vorgesehenen VLANs, das Management bleibt erreichbar und unerwünschte Inter-VLAN-Kommunikation wird durch Router oder Firewall blockiert.
10. Änderungen speichern
10.1 EdgeSwitch-/UISP-CLI
Wenn die lokale Hilfe den Befehl ausweist, kann die Running-Config in den Startup-Speicher geschrieben werden:
write memory
Alternativ auf entsprechenden EdgeSwitch-Systemen:
copy system:running-config nvram:startup-config
10.2 UniFi-USW-Geräte
Keine universelle SSH-Persistenz
Bei UniFi-USW-Modellen ist die lokale FastPath-Konfiguration je nach Firmware möglicherweise nur laufzeitwirksam, wird bei einem Neustart verworfen oder durch UniFi Network überschrieben. Ein hersteller- und firmwareübergreifend sicherer SSH-Befehl zum dauerhaften Speichern existiert für diese Produktgruppe nicht.
Darum gilt:
write memory ?beziehungsweisecopy ?zuerst prüfen.- Keine undokumentierten Flash-,
cfgmtd- oder Dateisystembefehle aus fremden Anleitungen übernehmen. - Nach einem geplanten Neustart alle VLANs und Ports erneut kontrollieren.
- Bei controllerverwalteten UniFi-Switches die dauerhafte Konfiguration in UniFi Network nachbauen.
11. Rückbau und Notfallplan
11.1 Access-Port zurück auf VLAN 1
configure
interface 0/5
switchport mode access
switchport access vlan 1
exit
exit
11.2 Tagged VLAN aus einem Trunk entfernen
configure
interface 0/48
switchport trunk allowed vlan remove 130
exit
exit
11.3 Trunk-Liste auf einen bekannten Stand setzen
configure
interface 0/48
switchport mode trunk
switchport trunk native vlan 10
switchport trunk allowed vlan 10,110,120
exit
exit
11.4 Management verloren
- Lokalen Konsolen- oder Ersatzport verwenden.
- Portplan und zuletzt geänderten Uplink kontrollieren.
- Native VLAN beider Linkseiten vergleichen.
- Prüfen, ob das Management-VLAN auf jedem vorgelagerten Trunk erlaubt ist.
- Switch-IP, Gateway und DHCP beziehungsweise statische IP-Konfiguration kontrollieren.
- Erst als letzte Maßnahme einen Factory Reset erwägen.
12. Häufige Fehler
Symptom | Wahrscheinliche Ursache | Prüfung |
|---|---|---|
Access-Client erhält keine IP-Adresse | VLAN fehlt auf Uplink, DHCP fehlt oder Access-VLAN ist falsch |
, Access-Port und alle Trunks bis zum Gateway prüfen |
Ein VLAN funktioniert, andere nicht | Allowed-VLAN-Liste auf einem Trunk ist unvollständig | Jeden Port entlang des Pfades prüfen |
Switch nach Änderung nicht mehr erreichbar | Management-VLAN oder Native VLAN falsch, Gateway/IP nicht passend | Konsole oder unveränderten Port verwenden |
AP ist erreichbar, WLAN-Clients bekommen keine Adresse | SSID-VLAN nicht getaggt erlaubt oder fälschlich als Native VLAN gesetzt | AP-Uplink und alle vorgelagerten Trunks prüfen |
Änderungen verschwinden nach Neustart | Running-Config nicht gespeichert oder UniFi hat neu provisioniert | Startup-/Persistenzmethode des konkreten Modells prüfen |
Unerwartete Kommunikation zwischen VLANs | Router-/Firewallregeln erlauben Inter-VLAN-Verkehr | Routing- und Firewallregeln prüfen; VLAN allein ist keine Firewall |
Nur ungetaggter Verkehr funktioniert | Gegenstelle ist nicht VLAN-fähig oder Tags stimmen nicht überein | VLAN-Konfiguration auf beiden Linkseiten vergleichen |
Broadcast-Sturm oder instabiles Netz | Switching-Schleife oder falscher redundanter Link | STP/RSTP aktiv lassen und Topologie kontrollieren |
13. Entsprechung in UniFi Network
In aktuellen UniFi-Network-Oberflächen wird dieselbe Logik mit den Begriffen Native VLAN / Network und Tagged VLAN Management abgebildet:
SSH-/Switchbegriff | UniFi-Network-Einstellung |
|---|---|
Access-Port, VLAN 110 | Native VLAN / Network: VLAN 110; Tagged VLAN Management: Block All |
Trunk mit allen VLANs | Native VLAN auswählen; Tagged VLAN Management: Allow All |
Trunk mit ausgewählten VLANs | Native VLAN auswählen; Tagged VLAN Management: Custom und gewünschte VLANs freigeben |
| Native VLAN / Network: VLAN 10 |
| Tagged VLAN Management: Custom |
14. Kurzreferenz
VLANs anlegen
vlan database
vlan 110
vlan name 110 Clients
vlan 130
vlan name 130 Guest
exit
Access-Port
configure
interface 0/5
switchport mode access
switchport access vlan 110
exit
exit
Trunk-Port
configure
interface 0/48
switchport mode trunk
switchport trunk native vlan 10
switchport trunk allowed vlan 10,110,120,130
exit
exit
VLAN ergänzen oder entfernen
configure
interface 0/48
switchport trunk allowed vlan add 140
switchport trunk allowed vlan remove 130
exit
exit
Prüfen
show vlan brief
show interfaces switchport access 0/5
show interfaces switchport trunk 0/48
show vlan port all
show running-config
Speichern, nur wenn unterstützt
write memory
15. Quellen und weiterführende Dokumentation
- Ubiquiti Help Center: Switch Port VLAN Assignment (Trunk & Access Ports)
- Ubiquiti Help Center: Creating Virtual Networks (VLANs)
- Ubiquiti Help Center: Virtual Network (VLAN) Troubleshooting
- Ubiquiti Help Center: UniFi Switch Settings
- UISP Help Center: EdgeSwitch CLI Reference Guide
Diese Anleitung beschreibt allgemeine Netzwerkkonzepte und eine CLI-Familie. Vor produktiven Änderungen immer Modell, Firmware, lokale CLI-Hilfe, Sicherungsweg und Wiederherstellungsplan prüfen.
SSH - poe show
USW-Pro-48-PoE-US.7.4.1# swctrl poe show
Total Power Limit(mW): -1092015236
Port OpMode HpMode PwrLimit Class PoEPwr PwrGood Power(W) Voltage(V) Current(mA)
(mW)
---- ------ ------------ -------- ------- ------ ------- -------- ---------- -----------
1 Auto Dot3at -1 Class 0 On Good 8.20 53.25 154.00
2 Auto Dot3at -1 Class 0 On Good 4.00 52.63 76.00
3 Auto Dot3at -1 Class 0 On Good 6.10 53.98 113.00
4 Auto Dot3at -1 Class 0 On Good 3.90 53.42 73.00
5 Auto Dot3at -1 Class 4 On Good 4.90 53.85 91.00
6 Auto Dot3at -1 Class 4 On Good 5.00 53.76 93.00
7 Auto Dot3at -1 Class 0 On Good 2.00 52.63 38.00
8 Auto Dot3at -1 Class 0 On Good 2.10 52.50 40.00
9 Auto Dot3at -1 Class 0 On Good 1.90 52.78 36.00
10 Auto Dot3at -1 Class 0 On Good 1.80 52.94 34.00
11 Auto Dot3at -1 Unknown Off Bad 0.00 0.00 0.00
12 Auto Dot3at -1 Unknown Off Bad 0.00 0.00 0.00
13 Auto Dot3at -1 Unknown Off Bad 0.00 0.00 0.00
14 Auto Dot3at -1 Unknown Off Bad 0.00 0.00 0.00
15 Auto Dot3at -1 Unknown Off Bad 0.00 0.00 0.00
16 Auto Dot3at -1 Unknown Off Bad 0.00 0.00 0.00
17 Auto Dot3at -1 Unknown Off Bad 0.00 0.00 0.00
18 Auto Dot3at -1 Unknown Off Bad 0.00 0.00 0.00
19 Auto Dot3at -1 Unknown Off Bad 0.00 0.00 0.00
20 Auto Dot3at -1 Unknown Off Bad 0.00 0.00 0.00
21 Auto Dot3at -1 Unknown Off Bad 0.00 0.00 0.00
22 Auto Dot3at -1 Unknown Off Bad 0.00 0.00 0.00
23 Auto Dot3at -1 Unknown Off Bad 0.00 0.00 0.00
24 Auto Dot3at -1 Unknown Off Bad 0.00 0.00 0.00
25 Auto Dot3at -1 Unknown Off Bad 0.00 0.00 0.00
26 Auto Dot3at -1 Unknown Off Bad 0.00 0.00 0.00
27 Auto Dot3at -1 Unknown Off Bad 0.00 0.00 0.00
28 Auto Dot3at -1 Unknown Off Bad 0.00 0.00 0.00
29 Auto Dot3at -1 Unknown Off Bad 0.00 0.00 0.00
30 Auto Dot3at -1 Unknown Off Bad 0.00 0.00 0.00
31 Auto Dot3at -1 Unknown Off Bad 0.00 0.00 0.00
32 Auto Dot3at -1 Unknown Off Bad 0.00 0.00 0.00
33 Auto Dot3at -1 Unknown Off Bad 0.00 0.00 0.00
34 Auto Dot3at -1 Unknown Off Bad 0.00 0.00 0.00
35 Auto Dot3at -1 Unknown Off Bad 0.00 0.00 0.00
36 Auto Dot3at -1 Unknown Off Bad 0.00 0.00 0.00
37 Auto Dot3at -1 Unknown Off Bad 0.00 0.00 0.00
38 Auto Dot3at -1 Unknown Off Bad 0.00 0.00 0.00
39 Auto Dot3at -1 Unknown Off Bad 0.00 0.00 0.00
40 Auto Dot3at -1 Unknown Off Bad 0.00 0.00 0.00
41 Auto Dot3bt-type3 -1 Unknown Off Bad 0.00 0.00 0.00
42 Auto Dot3bt-type3 -1 Unknown Off Bad 0.00 0.00 0.00
43 Auto Dot3bt-type3 -1 Unknown Off Bad 0.00 0.00 0.00
44 Auto Dot3bt-type3 -1 Unknown Off Bad 0.00 0.00 0.00
45 Auto Dot3bt-type3 -1 Unknown Off Bad 0.00 0.00 0.00
46 Auto Dot3bt-type3 -1 Unknown Off Bad 0.00 0.00 0.00
47 Auto Dot3bt-type3 -1 Unknown Off Bad 0.00 0.00 0.00
48 Auto Dot3bt-type3 -1 Unknown Off Bad 0.00 0.00 0.00
USW-Pro-48-PoE-US.7.4.1# swctrl poe show | awk '
> {
> print
> if ($0 ~ /\(mW\):/) {
> key=$0
> sub(/:.*/, "", key)
>
> value=$0
> sub(/^.*:[[:space:]]*/, "", value)
> sub(/[[:space:]].*$/, "", value)
>
> if (value ~ /^-?[0-9]+$/) {
> printf " -> %-30s %.2f W\n", key, value / 1000
> }
> }
> }
> '
Total Power Limit(mW): -1097720964
-> Total Power Limit(mW) -1097720.96 W
Port OpMode HpMode PwrLimit Class PoEPwr PwrGood Power(W) Voltage(V) Current(mA)
(mW)
---- ------ ------------ -------- ------- ------ ------- -------- ---------- -----------
1 Auto Dot3at -1 Class 0 On Good 8.20 53.25 154.00
2 Auto Dot3at -1 Class 0 On Good 4.00 52.63 76.00
3 Auto Dot3at -1 Class 0 On Good 6.10 53.98 113.00
4 Auto Dot3at -1 Class 0 On Good 3.90 53.42 73.00
5 Auto Dot3at -1 Class 4 On Good 4.90 53.85 91.00
6 Auto Dot3at -1 Class 4 On Good 5.00 53.76 93.00
7 Auto Dot3at -1 Class 0 On Good 2.00 52.63 38.00
8 Auto Dot3at -1 Class 0 On Good 2.10 52.50 40.00
9 Auto Dot3at -1 Class 0 On Good 1.90 52.78 36.00
10 Auto Dot3at -1 Class 0 On Good 1.80 52.94 34.00
11 Auto Dot3at -1 Unknown Off Bad 0.00 0.00 0.00
12 Auto Dot3at -1 Unknown Off Bad 0.00 0.00 0.00
13 Auto Dot3at -1 Unknown Off Bad 0.00 0.00 0.00
14 Auto Dot3at -1 Unknown Off Bad 0.00 0.00 0.00
15 Auto Dot3at -1 Unknown Off Bad 0.00 0.00 0.00
16 Auto Dot3at -1 Unknown Off Bad 0.00 0.00 0.00
17 Auto Dot3at -1 Unknown Off Bad 0.00 0.00 0.00
18 Auto Dot3at -1 Unknown Off Bad 0.00 0.00 0.00
19 Auto Dot3at -1 Unknown Off Bad 0.00 0.00 0.00
20 Auto Dot3at -1 Unknown Off Bad 0.00 0.00 0.00
21 Auto Dot3at -1 Unknown Off Bad 0.00 0.00 0.00
22 Auto Dot3at -1 Unknown Off Bad 0.00 0.00 0.00
23 Auto Dot3at -1 Unknown Off Bad 0.00 0.00 0.00
24 Auto Dot3at -1 Unknown Off Bad 0.00 0.00 0.00
25 Auto Dot3at -1 Unknown Off Bad 0.00 0.00 0.00
26 Auto Dot3at -1 Unknown Off Bad 0.00 0.00 0.00
27 Auto Dot3at -1 Unknown Off Bad 0.00 0.00 0.00
28 Auto Dot3at -1 Unknown Off Bad 0.00 0.00 0.00
29 Auto Dot3at -1 Unknown Off Bad 0.00 0.00 0.00
30 Auto Dot3at -1 Unknown Off Bad 0.00 0.00 0.00
31 Auto Dot3at -1 Unknown Off Bad 0.00 0.00 0.00
32 Auto Dot3at -1 Unknown Off Bad 0.00 0.00 0.00
33 Auto Dot3at -1 Unknown Off Bad 0.00 0.00 0.00
34 Auto Dot3at -1 Unknown Off Bad 0.00 0.00 0.00
35 Auto Dot3at -1 Unknown Off Bad 0.00 0.00 0.00
36 Auto Dot3at -1 Unknown Off Bad 0.00 0.00 0.00
37 Auto Dot3at -1 Unknown Off Bad 0.00 0.00 0.00
38 Auto Dot3at -1 Unknown Off Bad 0.00 0.00 0.00
39 Auto Dot3at -1 Unknown Off Bad 0.00 0.00 0.00
40 Auto Dot3at -1 Unknown Off Bad 0.00 0.00 0.00
41 Auto Dot3bt-type3 -1 Unknown Off Bad 0.00 0.00 0.00
42 Auto Dot3bt-type3 -1 Unknown Off Bad 0.00 0.00 0.00
43 Auto Dot3bt-type3 -1 Unknown Off Bad 0.00 0.00 0.00
44 Auto Dot3bt-type3 -1 Unknown Off Bad 0.00 0.00 0.00
45 Auto Dot3bt-type3 -1 Unknown Off Bad 0.00 0.00 0.00
46 Auto Dot3bt-type3 -1 Unknown Off Bad 0.00 0.00 0.00
47 Auto Dot3bt-type3 -1 Unknown Off Bad 0.00 0.00 0.00
48 Auto Dot3bt-type3 -1 Unknown Off Bad 0.00 0.00 0.00
USW-Pro-48-PoE-US.7.4.1#
SSH - Port Counter
USW-Pro-48-PoE-US.7.4.1# swctrl port show counters id 1
Port: 1
-----------------------------------------------|----------------------------------------------
TX Total (Octets): 192034083002 |RX Total (Octets): 8120471529
TX 64 Octets: 57521 |RX 64 Octets: 85385
TX 65-127 Octets: 3071491 |RX 65-127 Octets: 7353855
TX 128-255 Octets: 1150313 |RX 128-255 Octets: 1833097
TX 256-511 Octets: 159020 |RX 256-511 Octets: 920988
TX 512-1023 Octets: 815981 |RX 512-1023 Octets: 238439
TX 1024-1518 Octets: 125794292 |RX 1024-1518 Octets: 4389299
TX over 1518 Octets: 0 |RX over 1518 Octets: 0
TX Pkt Successfully: 131048618 |RX Pkt Successfully: 14821063
TX Ucast Pkts: 130982906 |RX Ucast Pkts: 14755156
TX Mcast Pkts: 17865 |RX Mcast Pkts: 19921
TX Bcast Pkts: 47847 |RX Bcast Pkts: 45986
TX Pkt Discard: 0 |RX Pkt Discard: 0
TX Total Error: 0 |RX Total Error (MAC): 0
TX FCS Error: 0 |RX FCS Error: 0
TX Underrun Errors: 0 |RX Jabbers Received: 0
TX Total Collision: 0 |RX Fragments Received: 0
TX Single Collision Frames: 0 |RX Undersize Received: 0
TX Multiple Collision Pkts: 0 |RX Alignment Errors: 0
TX Excessive Collision Pkts: 0 |RX Overruns: 0
TX Pause Pkts: 0 |RX Pause Pkts: 0
TX STP BPDUs: 0 |RX STP BPDUs: 0
TX RSTP BPDUs: 4804 |RX RSTP BPDUs: 0
TX MSTP BPDUs: 0 |RX MSTP BPDUs: 0
USW-Pro-48-PoE-US.7.4.1# swctrl port show counters id 2
Port: 2
-----------------------------------------------|----------------------------------------------
TX Total (Octets): 373976202 |RX Total (Octets): 10811084
TX 64 Octets: 53389 |RX 64 Octets: 3688
TX 65-127 Octets: 16653 |RX 65-127 Octets: 14892
TX 128-255 Octets: 14480 |RX 128-255 Octets: 8046
TX 256-511 Octets: 13316 |RX 256-511 Octets: 1511
TX 512-1023 Octets: 4162 |RX 512-1023 Octets: 1118
TX 1024-1518 Octets: 269310 |RX 1024-1518 Octets: 4730
TX over 1518 Octets: 0 |RX over 1518 Octets: 0
TX Pkt Successfully: 371310 |RX Pkt Successfully: 33985
TX Ucast Pkts: 283249 |RX Ucast Pkts: 29699
TX Mcast Pkts: 32530 |RX Mcast Pkts: 2549
TX Bcast Pkts: 55531 |RX Bcast Pkts: 1737
TX Pkt Discard: 0 |RX Pkt Discard: 0
TX Total Error: 0 |RX Total Error (MAC): 0
TX FCS Error: 0 |RX FCS Error: 0
TX Underrun Errors: 0 |RX Jabbers Received: 0
TX Total Collision: 0 |RX Fragments Received: 0
TX Single Collision Frames: 0 |RX Undersize Received: 0
TX Multiple Collision Pkts: 0 |RX Alignment Errors: 0
TX Excessive Collision Pkts: 0 |RX Overruns: 0
TX Pause Pkts: 0 |RX Pause Pkts: 0
TX STP BPDUs: 0 |RX STP BPDUs: 0
TX RSTP BPDUs: 4808 |RX RSTP BPDUs: 0
TX MSTP BPDUs: 0 |RX MSTP BPDUs: 0
USW-Pro-48-PoE-US.7.4.1#
Alle Interfaces:
for PORT in $(seq 1 52); do
swctrl port show counters id "$PORT" | awk -v port="$PORT" '
function human(bytes) {
if (bytes >= 1000000000)
return sprintf("%.3f GB", bytes / 1000000000)
if (bytes >= 1000000)
return sprintf("%.2f MB", bytes / 1000000)
if (bytes >= 1000)
return sprintf("%.2f KB", bytes / 1000)
return sprintf("%.0f B", bytes)
}
BEGIN {
found = 0
}
{
count = split($0, entries, /\|/)
for (i = 1; i <= count; i++) {
entry = entries[i]
if (entry !~ /:/)
continue
key = entry
sub(/:.*/, "", key)
gsub(/^[[:space:]]+|[[:space:]]+$/, "", key)
value = entry
sub(/^[^:]*:[[:space:]]*/, "", value)
sub(/[[:space:]].*$/, "", value)
lower_key = tolower(key)
if (lower_key ~ /(byte|octet)/ && value ~ /^[0-9]+$/) {
if (!found) {
printf "\nInterface 0/%s\n", port
found = 1
}
printf " %-30s %s\n", key, human(value)
}
}
}
'
done
USW-Pro-48-PoE-US.7.4.1# for PORT in $(seq 1 52); do
> swctrl port show counters id "$PORT" | awk -v port="$PORT" '
> function human(bytes) {
> if (bytes >= 1000000000)
> return sprintf("%.3f GB", bytes / 1000000000)
> if (bytes >= 1000000)
> return sprintf("%.2f MB", bytes / 1000000)
> if (bytes >= 1000)
> return sprintf("%.2f KB", bytes / 1000)
> return sprintf("%.0f B", bytes)
> }
>
> BEGIN {
> found = 0
> }
>
> {
> count = split($0, entries, /\|/)
>
> for (i = 1; i <= count; i++) {
> entry = entries[i]
>
> if (entry !~ /:/)
> continue
>
> key = entry
> sub(/:.*/, "", key)
> gsub(/^[[:space:]]+|[[:space:]]+$/, "", key)
>
> value = entry
> sub(/^[^:]*:[[:space:]]*/, "", value)
> sub(/[[:space:]].*$/, "", value)
>
> lower_key = tolower(key)
>
> if (lower_key ~ /(byte|octet)/ && value ~ /^[0-9]+$/) {
> if (!found) {
> printf "\nInterface 0/%s\n", port
> found = 1
> }
>
> printf " %-30s %s\n", key, human(value)
> }
> }
> }
> '
> done
Interface 0/1
TX Total (Octets) 193.627 GB
RX Total (Octets) 8.132 GB
TX 64 Octets 0.000 GB
RX 64 Octets 0.000 GB
TX 65-127 Octets 0.003 GB
RX 65-127 Octets 0.007 GB
TX 128-255 Octets 0.001 GB
RX 128-255 Octets 0.002 GB
TX 256-511 Octets 0.000 GB
RX 256-511 Octets 0.001 GB
TX 512-1023 Octets 0.001 GB
RX 512-1023 Octets 0.000 GB
TX 1024-1518 Octets 0.127 GB
RX 1024-1518 Octets 0.004 GB
TX over 1518 Octets 0 B
RX over 1518 Octets 0 B
Interface 0/2
TX Total (Octets) 0.374 GB
RX Total (Octets) 0.011 GB
TX 64 Octets 0.000 GB
RX 64 Octets 0.000 GB
TX 65-127 Octets 0.000 GB
RX 65-127 Octets 0.000 GB
TX 128-255 Octets 0.000 GB
RX 128-255 Octets 0.000 GB
TX 256-511 Octets 0.000 GB
RX 256-511 Octets 0.000 GB
TX 512-1023 Octets 0.000 GB
RX 512-1023 Octets 0.000 GB
TX 1024-1518 Octets 0.000 GB
RX 1024-1518 Octets 0.000 GB
TX over 1518 Octets 0 B
RX over 1518 Octets 0 B
Interface 0/3
TX Total (Octets) 0.011 GB
RX Total (Octets) 0.004 GB
TX 64 Octets 0.000 GB
RX 64 Octets 0.000 GB
TX 65-127 Octets 0.000 GB
RX 65-127 Octets 0.000 GB
TX 128-255 Octets 0.000 GB
RX 128-255 Octets 0.000 GB
TX 256-511 Octets 0.000 GB
RX 256-511 Octets 0.000 GB
TX 512-1023 Octets 0.000 GB
RX 512-1023 Octets 0.000 GB
TX 1024-1518 Octets 0.000 GB
RX 1024-1518 Octets 0.000 GB
TX over 1518 Octets 0 B
RX over 1518 Octets 0 B
Interface 0/4
TX Total (Octets) 0.057 GB
RX Total (Octets) 0.006 GB
TX 64 Octets 0.000 GB
RX 64 Octets 0.000 GB
TX 65-127 Octets 0.000 GB
RX 65-127 Octets 0.000 GB
TX 128-255 Octets 0.000 GB
RX 128-255 Octets 0.000 GB
TX 256-511 Octets 0.000 GB
RX 256-511 Octets 0.000 GB
TX 512-1023 Octets 0.000 GB
RX 512-1023 Octets 0.000 GB
TX 1024-1518 Octets 0.000 GB
RX 1024-1518 Octets 0.000 GB
TX over 1518 Octets 0 B
RX over 1518 Octets 0 B
Interface 0/5
TX Total (Octets) 0.010 GB
RX Total (Octets) 0.000 GB
TX 64 Octets 0.000 GB
RX 64 Octets 0.000 GB
TX 65-127 Octets 0.000 GB
RX 65-127 Octets 0.000 GB
TX 128-255 Octets 0.000 GB
RX 128-255 Octets 1 B
TX 256-511 Octets 0.000 GB
RX 256-511 Octets 0.000 GB
TX 512-1023 Octets 0.000 GB
RX 512-1023 Octets 0 B
TX 1024-1518 Octets 0.000 GB
RX 1024-1518 Octets 0 B
TX over 1518 Octets 0 B
RX over 1518 Octets 0 B
Interface 0/6
TX Total (Octets) 0.011 GB
RX Total (Octets) 0.002 GB
TX 64 Octets 0.000 GB
RX 64 Octets 0.000 GB
TX 65-127 Octets 0.000 GB
RX 65-127 Octets 0.000 GB
TX 128-255 Octets 0.000 GB
RX 128-255 Octets 0.000 GB
TX 256-511 Octets 0.000 GB
RX 256-511 Octets 0.000 GB
TX 512-1023 Octets 0.000 GB
RX 512-1023 Octets 0.000 GB
TX 1024-1518 Octets 0.000 GB
RX 1024-1518 Octets 0.000 GB
TX over 1518 Octets 0 B
RX over 1518 Octets 0 B
Interface 0/7
TX Total (Octets) 0.010 GB
RX Total (Octets) 0.001 GB
TX 64 Octets 0.000 GB
RX 64 Octets 0.000 GB
TX 65-127 Octets 0.000 GB
RX 65-127 Octets 0.000 GB
TX 128-255 Octets 0.000 GB
RX 128-255 Octets 0.000 GB
TX 256-511 Octets 0.000 GB
RX 256-511 Octets 0.000 GB
TX 512-1023 Octets 0.000 GB
RX 512-1023 Octets 0 B
TX 1024-1518 Octets 0.000 GB
RX 1024-1518 Octets 0 B
TX over 1518 Octets 0 B
RX over 1518 Octets 0 B
Interface 0/8
TX Total (Octets) 0.010 GB
RX Total (Octets) 0.001 GB
TX 64 Octets 0.000 GB
RX 64 Octets 0.000 GB
TX 65-127 Octets 0.000 GB
RX 65-127 Octets 0.000 GB
TX 128-255 Octets 0.000 GB
RX 128-255 Octets 0.000 GB
TX 256-511 Octets 0.000 GB
RX 256-511 Octets 0.000 GB
TX 512-1023 Octets 0.000 GB
RX 512-1023 Octets 0 B
TX 1024-1518 Octets 0.000 GB
RX 1024-1518 Octets 0 B
TX over 1518 Octets 0 B
RX over 1518 Octets 0 B
Interface 0/9
TX Total (Octets) 0.010 GB
RX Total (Octets) 0.001 GB
TX 64 Octets 0.000 GB
RX 64 Octets 0.000 GB
TX 65-127 Octets 0.000 GB
RX 65-127 Octets 0.000 GB
TX 128-255 Octets 0.000 GB
RX 128-255 Octets 0.000 GB
TX 256-511 Octets 0.000 GB
RX 256-511 Octets 0.000 GB
TX 512-1023 Octets 0.000 GB
RX 512-1023 Octets 0 B
TX 1024-1518 Octets 0.000 GB
RX 1024-1518 Octets 0 B
TX over 1518 Octets 0 B
RX over 1518 Octets 0 B
Interface 0/10
TX Total (Octets) 0.010 GB
RX Total (Octets) 0.001 GB
TX 64 Octets 0.000 GB
RX 64 Octets 0.000 GB
TX 65-127 Octets 0.000 GB
RX 65-127 Octets 0.000 GB
TX 128-255 Octets 0.000 GB
RX 128-255 Octets 0.000 GB
TX 256-511 Octets 0.000 GB
RX 256-511 Octets 0.000 GB
TX 512-1023 Octets 0.000 GB
RX 512-1023 Octets 0 B
TX 1024-1518 Octets 0.000 GB
RX 1024-1518 Octets 0 B
TX over 1518 Octets 0 B
RX over 1518 Octets 0 B
Interface 0/11
TX Total (Octets) 0 B
RX Total (Octets) 0 B
TX 64 Octets 0 B
RX 64 Octets 0 B
TX 65-127 Octets 0 B
RX 65-127 Octets 0 B
TX 128-255 Octets 0 B
RX 128-255 Octets 0 B
TX 256-511 Octets 0 B
RX 256-511 Octets 0 B
TX 512-1023 Octets 0 B
RX 512-1023 Octets 0 B
TX 1024-1518 Octets 0 B
RX 1024-1518 Octets 0 B
TX over 1518 Octets 0 B
RX over 1518 Octets 0 B
Interface 0/12
TX Total (Octets) 0 B
RX Total (Octets) 0 B
TX 64 Octets 0 B
RX 64 Octets 0 B
TX 65-127 Octets 0 B
RX 65-127 Octets 0 B
TX 128-255 Octets 0 B
RX 128-255 Octets 0 B
TX 256-511 Octets 0 B
RX 256-511 Octets 0 B
TX 512-1023 Octets 0 B
RX 512-1023 Octets 0 B
TX 1024-1518 Octets 0 B
RX 1024-1518 Octets 0 B
TX over 1518 Octets 0 B
RX over 1518 Octets 0 B
Interface 0/13
TX Total (Octets) 0 B
RX Total (Octets) 0 B
TX 64 Octets 0 B
RX 64 Octets 0 B
TX 65-127 Octets 0 B
RX 65-127 Octets 0 B
TX 128-255 Octets 0 B
RX 128-255 Octets 0 B
TX 256-511 Octets 0 B
RX 256-511 Octets 0 B
TX 512-1023 Octets 0 B
RX 512-1023 Octets 0 B
TX 1024-1518 Octets 0 B
RX 1024-1518 Octets 0 B
TX over 1518 Octets 0 B
RX over 1518 Octets 0 B
Interface 0/14
TX Total (Octets) 0 B
RX Total (Octets) 0 B
TX 64 Octets 0 B
RX 64 Octets 0 B
TX 65-127 Octets 0 B
RX 65-127 Octets 0 B
TX 128-255 Octets 0 B
RX 128-255 Octets 0 B
TX 256-511 Octets 0 B
RX 256-511 Octets 0 B
TX 512-1023 Octets 0 B
RX 512-1023 Octets 0 B
TX 1024-1518 Octets 0 B
RX 1024-1518 Octets 0 B
TX over 1518 Octets 0 B
RX over 1518 Octets 0 B
Interface 0/15
TX Total (Octets) 0 B
RX Total (Octets) 0 B
TX 64 Octets 0 B
RX 64 Octets 0 B
TX 65-127 Octets 0 B
RX 65-127 Octets 0 B
TX 128-255 Octets 0 B
RX 128-255 Octets 0 B
TX 256-511 Octets 0 B
RX 256-511 Octets 0 B
TX 512-1023 Octets 0 B
RX 512-1023 Octets 0 B
TX 1024-1518 Octets 0 B
RX 1024-1518 Octets 0 B
TX over 1518 Octets 0 B
RX over 1518 Octets 0 B
Interface 0/16
TX Total (Octets) 0 B
RX Total (Octets) 0 B
TX 64 Octets 0 B
RX 64 Octets 0 B
TX 65-127 Octets 0 B
RX 65-127 Octets 0 B
TX 128-255 Octets 0 B
RX 128-255 Octets 0 B
TX 256-511 Octets 0 B
RX 256-511 Octets 0 B
TX 512-1023 Octets 0 B
RX 512-1023 Octets 0 B
TX 1024-1518 Octets 0 B
RX 1024-1518 Octets 0 B
TX over 1518 Octets 0 B
RX over 1518 Octets 0 B
Interface 0/17
TX Total (Octets) 0 B
RX Total (Octets) 0 B
TX 64 Octets 0 B
RX 64 Octets 0 B
TX 65-127 Octets 0 B
RX 65-127 Octets 0 B
TX 128-255 Octets 0 B
RX 128-255 Octets 0 B
TX 256-511 Octets 0 B
RX 256-511 Octets 0 B
TX 512-1023 Octets 0 B
RX 512-1023 Octets 0 B
TX 1024-1518 Octets 0 B
RX 1024-1518 Octets 0 B
TX over 1518 Octets 0 B
RX over 1518 Octets 0 B
Interface 0/18
TX Total (Octets) 0 B
RX Total (Octets) 0 B
TX 64 Octets 0 B
RX 64 Octets 0 B
TX 65-127 Octets 0 B
RX 65-127 Octets 0 B
TX 128-255 Octets 0 B
RX 128-255 Octets 0 B
TX 256-511 Octets 0 B
RX 256-511 Octets 0 B
TX 512-1023 Octets 0 B
RX 512-1023 Octets 0 B
TX 1024-1518 Octets 0 B
RX 1024-1518 Octets 0 B
TX over 1518 Octets 0 B
RX over 1518 Octets 0 B
Interface 0/19
TX Total (Octets) 0 B
RX Total (Octets) 0 B
TX 64 Octets 0 B
RX 64 Octets 0 B
TX 65-127 Octets 0 B
RX 65-127 Octets 0 B
TX 128-255 Octets 0 B
RX 128-255 Octets 0 B
TX 256-511 Octets 0 B
RX 256-511 Octets 0 B
TX 512-1023 Octets 0 B
RX 512-1023 Octets 0 B
TX 1024-1518 Octets 0 B
RX 1024-1518 Octets 0 B
TX over 1518 Octets 0 B
RX over 1518 Octets 0 B
Interface 0/20
TX Total (Octets) 0 B
RX Total (Octets) 0 B
TX 64 Octets 0 B
RX 64 Octets 0 B
TX 65-127 Octets 0 B
RX 65-127 Octets 0 B
TX 128-255 Octets 0 B
RX 128-255 Octets 0 B
TX 256-511 Octets 0 B
RX 256-511 Octets 0 B
TX 512-1023 Octets 0 B
RX 512-1023 Octets 0 B
TX 1024-1518 Octets 0 B
RX 1024-1518 Octets 0 B
TX over 1518 Octets 0 B
RX over 1518 Octets 0 B
Interface 0/21
TX Total (Octets) 0 B
RX Total (Octets) 0 B
TX 64 Octets 0 B
RX 64 Octets 0 B
TX 65-127 Octets 0 B
RX 65-127 Octets 0 B
TX 128-255 Octets 0 B
RX 128-255 Octets 0 B
TX 256-511 Octets 0 B
RX 256-511 Octets 0 B
TX 512-1023 Octets 0 B
RX 512-1023 Octets 0 B
TX 1024-1518 Octets 0 B
RX 1024-1518 Octets 0 B
TX over 1518 Octets 0 B
RX over 1518 Octets 0 B
Interface 0/22
TX Total (Octets) 0 B
RX Total (Octets) 0 B
TX 64 Octets 0 B
RX 64 Octets 0 B
TX 65-127 Octets 0 B
RX 65-127 Octets 0 B
TX 128-255 Octets 0 B
RX 128-255 Octets 0 B
TX 256-511 Octets 0 B
RX 256-511 Octets 0 B
TX 512-1023 Octets 0 B
RX 512-1023 Octets 0 B
TX 1024-1518 Octets 0 B
RX 1024-1518 Octets 0 B
TX over 1518 Octets 0 B
RX over 1518 Octets 0 B
Interface 0/23
TX Total (Octets) 0 B
RX Total (Octets) 0 B
TX 64 Octets 0 B
RX 64 Octets 0 B
TX 65-127 Octets 0 B
RX 65-127 Octets 0 B
TX 128-255 Octets 0 B
RX 128-255 Octets 0 B
TX 256-511 Octets 0 B
RX 256-511 Octets 0 B
TX 512-1023 Octets 0 B
RX 512-1023 Octets 0 B
TX 1024-1518 Octets 0 B
RX 1024-1518 Octets 0 B
TX over 1518 Octets 0 B
RX over 1518 Octets 0 B
c
Interface 0/24
TX Total (Octets) 0 B
RX Total (Octets) 0 B
TX 64 Octets 0 B
RX 64 Octets 0 B
TX 65-127 Octets 0 B
RX 65-127 Octets 0 B
TX 128-255 Octets 0 B
RX 128-255 Octets 0 B
TX 256-511 Octets 0 B
RX 256-511 Octets 0 B
TX 512-1023 Octets 0 B
RX 512-1023 Octets 0 B
TX 1024-1518 Octets 0 B
RX 1024-1518 Octets 0 B
TX over 1518 Octets 0 B
RX over 1518 Octets 0 B
Interface 0/25
TX Total (Octets) 0 B
RX Total (Octets) 0 B
TX 64 Octets 0 B
RX 64 Octets 0 B
TX 65-127 Octets 0 B
RX 65-127 Octets 0 B
TX 128-255 Octets 0 B
RX 128-255 Octets 0 B
TX 256-511 Octets 0 B
RX 256-511 Octets 0 B
TX 512-1023 Octets 0 B
RX 512-1023 Octets 0 B
TX 1024-1518 Octets 0 B
RX 1024-1518 Octets 0 B
TX over 1518 Octets 0 B
RX over 1518 Octets 0 B
Interface 0/26
TX Total (Octets) 0 B
RX Total (Octets) 0 B
TX 64 Octets 0 B
RX 64 Octets 0 B
TX 65-127 Octets 0 B
RX 65-127 Octets 0 B
TX 128-255 Octets 0 B
RX 128-255 Octets 0 B
TX 256-511 Octets 0 B
RX 256-511 Octets 0 B
TX 512-1023 Octets 0 B
RX 512-1023 Octets 0 B
TX 1024-1518 Octets 0 B
RX 1024-1518 Octets 0 B
TX over 1518 Octets 0 B
RX over 1518 Octets 0 B
Interface 0/27
TX Total (Octets) 0 B
RX Total (Octets) 0 B
TX 64 Octets 0 B
RX 64 Octets 0 B
TX 65-127 Octets 0 B
RX 65-127 Octets 0 B
TX 128-255 Octets 0 B
RX 128-255 Octets 0 B
TX 256-511 Octets 0 B
RX 256-511 Octets 0 B
TX 512-1023 Octets 0 B
RX 512-1023 Octets 0 B
TX 1024-1518 Octets 0 B
RX 1024-1518 Octets 0 B
TX over 1518 Octets 0 B
RX over 1518 Octets 0 B
Interface 0/28
TX Total (Octets) 0 B
RX Total (Octets) 0 B
TX 64 Octets 0 B
RX 64 Octets 0 B
TX 65-127 Octets 0 B
RX 65-127 Octets 0 B
TX 128-255 Octets 0 B
RX 128-255 Octets 0 B
TX 256-511 Octets 0 B
RX 256-511 Octets 0 B
TX 512-1023 Octets 0 B
RX 512-1023 Octets 0 B
TX 1024-1518 Octets 0 B
RX 1024-1518 Octets 0 B
TX over 1518 Octets 0 B
RX over 1518 Octets 0 B
Interface 0/29
TX Total (Octets) 0 B
RX Total (Octets) 0 B
TX 64 Octets 0 B
RX 64 Octets 0 B
TX 65-127 Octets 0 B
RX 65-127 Octets 0 B
TX 128-255 Octets 0 B
RX 128-255 Octets 0 B
TX 256-511 Octets 0 B
RX 256-511 Octets 0 B
TX 512-1023 Octets 0 B
RX 512-1023 Octets 0 B
TX 1024-1518 Octets 0 B
RX 1024-1518 Octets 0 B
TX over 1518 Octets 0 B
RX over 1518 Octets 0 B
Interface 0/30
TX Total (Octets) 0 B
RX Total (Octets) 0 B
TX 64 Octets 0 B
RX 64 Octets 0 B
TX 65-127 Octets 0 B
RX 65-127 Octets 0 B
TX 128-255 Octets 0 B
RX 128-255 Octets 0 B
TX 256-511 Octets 0 B
RX 256-511 Octets 0 B
TX 512-1023 Octets 0 B
RX 512-1023 Octets 0 B
TX 1024-1518 Octets 0 B
RX 1024-1518 Octets 0 B
TX over 1518 Octets 0 B
RX over 1518 Octets 0 B
Interface 0/31
TX Total (Octets) 0 B
RX Total (Octets) 0 B
TX 64 Octets 0 B
RX 64 Octets 0 B
TX 65-127 Octets 0 B
RX 65-127 Octets 0 B
TX 128-255 Octets 0 B
RX 128-255 Octets 0 B
TX 256-511 Octets 0 B
RX 256-511 Octets 0 B
TX 512-1023 Octets 0 B
RX 512-1023 Octets 0 B
TX 1024-1518 Octets 0 B
RX 1024-1518 Octets 0 B
TX over 1518 Octets 0 B
RX over 1518 Octets 0 B
Interface 0/32
TX Total (Octets) 0 B
RX Total (Octets) 0 B
TX 64 Octets 0 B
RX 64 Octets 0 B
TX 65-127 Octets 0 B
RX 65-127 Octets 0 B
TX 128-255 Octets 0 B
RX 128-255 Octets 0 B
TX 256-511 Octets 0 B
RX 256-511 Octets 0 B
TX 512-1023 Octets 0 B
RX 512-1023 Octets 0 B
TX 1024-1518 Octets 0 B
RX 1024-1518 Octets 0 B
TX over 1518 Octets 0 B
RX over 1518 Octets 0 B
Interface 0/33
TX Total (Octets) 0 B
RX Total (Octets) 0 B
TX 64 Octets 0 B
RX 64 Octets 0 B
TX 65-127 Octets 0 B
RX 65-127 Octets 0 B
TX 128-255 Octets 0 B
RX 128-255 Octets 0 B
TX 256-511 Octets 0 B
RX 256-511 Octets 0 B
TX 512-1023 Octets 0 B
RX 512-1023 Octets 0 B
TX 1024-1518 Octets 0 B
RX 1024-1518 Octets 0 B
TX over 1518 Octets 0 B
RX over 1518 Octets 0 B
Interface 0/34
TX Total (Octets) 0 B
RX Total (Octets) 0 B
TX 64 Octets 0 B
RX 64 Octets 0 B
TX 65-127 Octets 0 B
RX 65-127 Octets 0 B
TX 128-255 Octets 0 B
RX 128-255 Octets 0 B
TX 256-511 Octets 0 B
RX 256-511 Octets 0 B
TX 512-1023 Octets 0 B
RX 512-1023 Octets 0 B
TX 1024-1518 Octets 0 B
RX 1024-1518 Octets 0 B
TX over 1518 Octets 0 B
RX over 1518 Octets 0 B
Interface 0/35
TX Total (Octets) 0 B
RX Total (Octets) 0 B
TX 64 Octets 0 B
RX 64 Octets 0 B
TX 65-127 Octets 0 B
RX 65-127 Octets 0 B
TX 128-255 Octets 0 B
RX 128-255 Octets 0 B
TX 256-511 Octets 0 B
RX 256-511 Octets 0 B
TX 512-1023 Octets 0 B
RX 512-1023 Octets 0 B
TX 1024-1518 Octets 0 B
RX 1024-1518 Octets 0 B
TX over 1518 Octets 0 B
RX over 1518 Octets 0 B
Interface 0/36
TX Total (Octets) 0 B
RX Total (Octets) 0 B
TX 64 Octets 0 B
RX 64 Octets 0 B
TX 65-127 Octets 0 B
RX 65-127 Octets 0 B
TX 128-255 Octets 0 B
RX 128-255 Octets 0 B
TX 256-511 Octets 0 B
RX 256-511 Octets 0 B
TX 512-1023 Octets 0 B
RX 512-1023 Octets 0 B
TX 1024-1518 Octets 0 B
RX 1024-1518 Octets 0 B
TX over 1518 Octets 0 B
RX over 1518 Octets 0 B
Interface 0/37
TX Total (Octets) 0 B
RX Total (Octets) 0 B
TX 64 Octets 0 B
RX 64 Octets 0 B
TX 65-127 Octets 0 B
RX 65-127 Octets 0 B
TX 128-255 Octets 0 B
RX 128-255 Octets 0 B
TX 256-511 Octets 0 B
RX 256-511 Octets 0 B
TX 512-1023 Octets 0 B
RX 512-1023 Octets 0 B
TX 1024-1518 Octets 0 B
RX 1024-1518 Octets 0 B
TX over 1518 Octets 0 B
RX over 1518 Octets 0 B
Interface 0/38
TX Total (Octets) 0 B
RX Total (Octets) 0 B
TX 64 Octets 0 B
RX 64 Octets 0 B
TX 65-127 Octets 0 B
RX 65-127 Octets 0 B
TX 128-255 Octets 0 B
RX 128-255 Octets 0 B
TX 256-511 Octets 0 B
RX 256-511 Octets 0 B
TX 512-1023 Octets 0 B
RX 512-1023 Octets 0 B
TX 1024-1518 Octets 0 B
RX 1024-1518 Octets 0 B
TX over 1518 Octets 0 B
RX over 1518 Octets 0 B
Interface 0/39
TX Total (Octets) 0 B
RX Total (Octets) 0 B
TX 64 Octets 0 B
RX 64 Octets 0 B
TX 65-127 Octets 0 B
RX 65-127 Octets 0 B
TX 128-255 Octets 0 B
RX 128-255 Octets 0 B
TX 256-511 Octets 0 B
RX 256-511 Octets 0 B
TX 512-1023 Octets 0 B
RX 512-1023 Octets 0 B
TX 1024-1518 Octets 0 B
RX 1024-1518 Octets 0 B
TX over 1518 Octets 0 B
RX over 1518 Octets 0 B
Interface 0/40
TX Total (Octets) 0 B
RX Total (Octets) 0 B
TX 64 Octets 0 B
RX 64 Octets 0 B
TX 65-127 Octets 0 B
RX 65-127 Octets 0 B
TX 128-255 Octets 0 B
RX 128-255 Octets 0 B
TX 256-511 Octets 0 B
RX 256-511 Octets 0 B
TX 512-1023 Octets 0 B
RX 512-1023 Octets 0 B
TX 1024-1518 Octets 0 B
RX 1024-1518 Octets 0 B
TX over 1518 Octets 0 B
RX over 1518 Octets 0 B
Interface 0/41
TX Total (Octets) 0 B
RX Total (Octets) 0 B
TX 64 Octets 0 B
RX 64 Octets 0 B
TX 65-127 Octets 0 B
RX 65-127 Octets 0 B
TX 128-255 Octets 0 B
RX 128-255 Octets 0 B
TX 256-511 Octets 0 B
RX 256-511 Octets 0 B
TX 512-1023 Octets 0 B
RX 512-1023 Octets 0 B
TX 1024-1518 Octets 0 B
RX 1024-1518 Octets 0 B
TX over 1518 Octets 0 B
RX over 1518 Octets 0 B
Interface 0/42
TX Total (Octets) 0 B
RX Total (Octets) 0 B
TX 64 Octets 0 B
RX 64 Octets 0 B
TX 65-127 Octets 0 B
RX 65-127 Octets 0 B
TX 128-255 Octets 0 B
RX 128-255 Octets 0 B
TX 256-511 Octets 0 B
RX 256-511 Octets 0 B
TX 512-1023 Octets 0 B
RX 512-1023 Octets 0 B
TX 1024-1518 Octets 0 B
RX 1024-1518 Octets 0 B
TX over 1518 Octets 0 B
RX over 1518 Octets 0 B
Interface 0/43
TX Total (Octets) 0 B
RX Total (Octets) 0 B
TX 64 Octets 0 B
RX 64 Octets 0 B
TX 65-127 Octets 0 B
RX 65-127 Octets 0 B
TX 128-255 Octets 0 B
RX 128-255 Octets 0 B
TX 256-511 Octets 0 B
RX 256-511 Octets 0 B
TX 512-1023 Octets 0 B
RX 512-1023 Octets 0 B
TX 1024-1518 Octets 0 B
RX 1024-1518 Octets 0 B
TX over 1518 Octets 0 B
RX over 1518 Octets 0 B
Interface 0/44
TX Total (Octets) 0 B
RX Total (Octets) 0 B
TX 64 Octets 0 B
RX 64 Octets 0 B
TX 65-127 Octets 0 B
RX 65-127 Octets 0 B
TX 128-255 Octets 0 B
RX 128-255 Octets 0 B
TX 256-511 Octets 0 B
RX 256-511 Octets 0 B
TX 512-1023 Octets 0 B
RX 512-1023 Octets 0 B
TX 1024-1518 Octets 0 B
RX 1024-1518 Octets 0 B
TX over 1518 Octets 0 B
RX over 1518 Octets 0 B
Interface 0/45
TX Total (Octets) 0 B
RX Total (Octets) 0 B
TX 64 Octets 0 B
RX 64 Octets 0 B
TX 65-127 Octets 0 B
RX 65-127 Octets 0 B
TX 128-255 Octets 0 B
RX 128-255 Octets 0 B
TX 256-511 Octets 0 B
RX 256-511 Octets 0 B
TX 512-1023 Octets 0 B
RX 512-1023 Octets 0 B
TX 1024-1518 Octets 0 B
RX 1024-1518 Octets 0 B
TX over 1518 Octets 0 B
RX over 1518 Octets 0 B
Interface 0/46
TX Total (Octets) 0 B
RX Total (Octets) 0 B
TX 64 Octets 0 B
RX 64 Octets 0 B
TX 65-127 Octets 0 B
RX 65-127 Octets 0 B
TX 128-255 Octets 0 B
RX 128-255 Octets 0 B
TX 256-511 Octets 0 B
RX 256-511 Octets 0 B
TX 512-1023 Octets 0 B
RX 512-1023 Octets 0 B
TX 1024-1518 Octets 0 B
RX 1024-1518 Octets 0 B
TX over 1518 Octets 0 B
RX over 1518 Octets 0 B
Interface 0/47
TX Total (Octets) 0 B
RX Total (Octets) 0 B
TX 64 Octets 0 B
RX 64 Octets 0 B
TX 65-127 Octets 0 B
RX 65-127 Octets 0 B
TX 128-255 Octets 0 B
RX 128-255 Octets 0 B
TX 256-511 Octets 0 B
RX 256-511 Octets 0 B
TX 512-1023 Octets 0 B
RX 512-1023 Octets 0 B
TX 1024-1518 Octets 0 B
RX 1024-1518 Octets 0 B
TX over 1518 Octets 0 B
RX over 1518 Octets 0 B
Interface 0/48
TX Total (Octets) 0 B
RX Total (Octets) 0 B
TX 64 Octets 0 B
RX 64 Octets 0 B
TX 65-127 Octets 0 B
RX 65-127 Octets 0 B
TX 128-255 Octets 0 B
RX 128-255 Octets 0 B
TX 256-511 Octets 0 B
RX 256-511 Octets 0 B
TX 512-1023 Octets 0 B
RX 512-1023 Octets 0 B
TX 1024-1518 Octets 0 B
RX 1024-1518 Octets 0 B
TX over 1518 Octets 0 B
RX over 1518 Octets 0 B
Interface 0/49
TX Total (Octets) 0 B
RX Total (Octets) 0 B
TX 64 Octets 0 B
RX 64 Octets 0 B
TX 65-127 Octets 0 B
RX 65-127 Octets 0 B
TX 128-255 Octets 0 B
RX 128-255 Octets 0 B
TX 256-511 Octets 0 B
RX 256-511 Octets 0 B
TX 512-1023 Octets 0 B
RX 512-1023 Octets 0 B
TX 1024-1518 Octets 0 B
RX 1024-1518 Octets 0 B
TX over 1518 Octets 0 B
RX over 1518 Octets 0 B
Interface 0/50
TX Total (Octets) 0 B
RX Total (Octets) 0 B
TX 64 Octets 0 B
RX 64 Octets 0 B
TX 65-127 Octets 0 B
RX 65-127 Octets 0 B
TX 128-255 Octets 0 B
RX 128-255 Octets 0 B
TX 256-511 Octets 0 B
RX 256-511 Octets 0 B
TX 512-1023 Octets 0 B
RX 512-1023 Octets 0 B
TX 1024-1518 Octets 0 B
RX 1024-1518 Octets 0 B
TX over 1518 Octets 0 B
RX over 1518 Octets 0 B
Interface 0/51
TX Total (Octets) 0 B
RX Total (Octets) 0 B
TX 64 Octets 0 B
RX 64 Octets 0 B
TX 65-127 Octets 0 B
RX 65-127 Octets 0 B
TX 128-255 Octets 0 B
RX 128-255 Octets 0 B
TX 256-511 Octets 0 B
RX 256-511 Octets 0 B
TX 512-1023 Octets 0 B
RX 512-1023 Octets 0 B
TX 1024-1518 Octets 0 B
RX 1024-1518 Octets 0 B
TX over 1518 Octets 0 B
RX over 1518 Octets 0 B
Interface 0/52
TX Total (Octets) 8.151 GB
RX Total (Octets) 194.560 GB
TX 64 Octets 0.000 GB
RX 64 Octets 0.000 GB
TX 65-127 Octets 0.007 GB
RX 65-127 Octets 0.003 GB
TX 128-255 Octets 0.002 GB
RX 128-255 Octets 0.001 GB
TX 256-511 Octets 0.001 GB
RX 256-511 Octets 0.000 GB
TX 512-1023 Octets 0.000 GB
RX 512-1023 Octets 0.001 GB
TX 1024-1518 Octets 0.004 GB
RX 1024-1518 Octets 0.127 GB
TX over 1518 Octets 0.004 GB
RX over 1518 Octets 0 B
USW-Pro-48-PoE-US.7.4.1#
UDM - Firewall
Ubiquity UDM - Geräte sperren
Client-Quarantäne auf dem UniFi Gateway
Die Client-Quarantäne dient dazu, einen verdächtigen oder kompromittierten Netzwerk-Client im Ernstfall innerhalb weniger Sekunden über SSH zu sperren. Der Client wird anhand seiner MAC-Adresse identifiziert, sodass ein Wechsel der IPv4-Adresse die Sperre nicht umgeht.
Der Hauptgrund für diese Lösung ist, dass unsere Client-Netzwerke teilweise Zugriff auf viele andere Netzwerkzonen besitzen. Im Sicherheitsvorfall wäre es zu langsam und fehleranfällig, für jede einzelne Zone manuell eine Firewallregel anzulegen. Stattdessen wird die Quarantäne direkt vor den regulären UniFi-Firewallregeln eingehängt.
Dabei werden IPv4, IPv6 und über das Gateway laufender Netzwerkverkehr des betroffenen Clients blockiert. Bestehende Verbindungen werden zusätzlich aus Conntrack entfernt.
Wichtig: Verkehr zwischen zwei Geräten innerhalb desselben VLANs kann unter Umständen direkt über einen Switch oder Access Point laufen und das Gateway gar nicht erreichen. Bei einem besonders kritischen Sicherheitsvorfall sollte daher zusätzlich der Switch-Port deaktiviert oder der WLAN-Client isoliert werden.
Hinweis: Die hier verwendeten Regeln werden direkt per SSH verwaltet und liegen außerhalb der normalen UniFi-Konfiguration. Nach Firmware-Updates, Neustarts oder einer Neu-Provisionierung sollte der Status der Quarantäne geprüft und gegebenenfalls mit quarantine-client apply erneut angewendet werden.
Installation
Installation
Die Installation erfolgt als root direkt per SSH auf dem UniFi Gateway. Das Skript und seine Konfiguration werden unter /persistent/client-quarantine gespeichert.
Der folgende Block installiert das komplette Quarantäne-Werkzeug:
install -d -m 700 -o root -g root /persistent/client-quarantine
cat > /persistent/client-quarantine/quarantine-client <<'QUARANTINE_SCRIPT'
#!/bin/bash
set -Eeuo pipefail
PATH='/usr/sbin:/usr/bin:/sbin:/bin'
umask 077
readonly BASE_DIR='/persistent/client-quarantine'
readonly STATE_FILE="${BASE_DIR}/blocked-macs"
readonly LOCK_FILE="${BASE_DIR}/lock"
readonly IPT4_CHAIN='QRTN_MAC_V4'
readonly IPT6_CHAIN='QRTN_MAC_V6'
readonly EBT_BR_CHAIN='QRTN_MAC_BR'
readonly EBT_IN_CHAIN='QRTN_MAC_IN'
readonly EBT_FWD_CHAIN='QRTN_MAC_FWD'
readonly EBT_OUT_CHAIN='QRTN_MAC_OUT'
die() {
printf 'Fehler: %s\n' "$*" >&2
exit 1
}
log_message() {
logger -t client-quarantine -- "$*" 2>/dev/null || true
printf '%s\n' "$*"
}
require_root() {
[ "${EUID}" -eq 0 ] ||
die 'Dieses Werkzeug muss als root ausgeführt werden.'
}
require_commands() {
local command_name
for command_name in \
awk sort mktemp install ip \
iptables ip6tables ebtables \
conntrack logger flock
do
command -v "${command_name}" >/dev/null 2>&1 ||
die "Benötigter Befehl fehlt: ${command_name}"
done
}
prepare_storage() {
install -d -m 700 -o root -g root "${BASE_DIR}"
touch "${STATE_FILE}" "${LOCK_FILE}"
chown root:root "${STATE_FILE}" "${LOCK_FILE}"
chmod 600 "${STATE_FILE}" "${LOCK_FILE}"
}
normalize_mac() {
local mac="${1,,}"
[[ "${mac}" =~ ^([0-9a-f]{2}:){5}[0-9a-f]{2}$ ]] ||
die 'Ungültige MAC-Adresse. Erwartet wird aa:bb:cc:dd:ee:ff.'
[ "${mac}" != '00:00:00:00:00:00' ] ||
die 'Die Null-MAC ist nicht zulässig.'
[ "${mac}" != 'ff:ff:ff:ff:ff:ff' ] ||
die 'Die Broadcast-MAC ist nicht zulässig.'
local first_octet="${mac%%:*}"
(( (16#${first_octet} & 1) == 0 )) ||
die 'Multicast-MAC-Adressen sind nicht zulässig.'
printf '%s\n' "${mac}"
}
reject_gateway_mac() {
local target="$1"
local address_file
local local_mac
for address_file in /sys/class/net/*/address; do
[ -r "${address_file}" ] || continue
IFS= read -r local_mac < "${address_file}" || true
local_mac="${local_mac,,}"
[ "${target}" != "${local_mac}" ] ||
die "Abbruch: ${target} gehört zu einer Gateway-Schnittstelle."
done
}
get_ssh_peer_mac() {
[ -n "${SSH_CONNECTION:-}" ] || return 0
local peer_ip="${SSH_CONNECTION%% *}"
ip neigh show to "${peer_ip}" 2>/dev/null |
awk '
{
for (i = 1; i <= NF; i++) {
if ($i == "lladdr") {
print tolower($(i + 1))
exit
}
}
}
'
}
reject_current_ssh_peer() {
local target="$1"
local peer_mac
peer_mac="$(get_ssh_peer_mac || true)"
if [ -n "${peer_mac}" ] && [ "${target}" = "${peer_mac}" ]; then
die 'Diese MAC gehört zum aktuellen SSH-Gegenüber. Verwende add --force nur bei bewusstem Verbindungsabbruch.'
fi
}
read_macs() {
awk '
/^[[:space:]]*$/ {
next
}
{
print tolower($1)
}
' "${STATE_FILE}" |
sort -u
}
add_to_state() {
local mac="$1"
local temporary_file
temporary_file="$(mktemp "${BASE_DIR}/blocked-macs.XXXXXX")"
{
read_macs
printf '%s\n' "${mac}"
} |
sort -u > "${temporary_file}"
chown root:root "${temporary_file}"
chmod 600 "${temporary_file}"
mv -f "${temporary_file}" "${STATE_FILE}"
}
remove_from_state() {
local mac="$1"
local temporary_file
temporary_file="$(mktemp "${BASE_DIR}/blocked-macs.XXXXXX")"
awk -v remove_mac="${mac}" '
NF && tolower($1) != remove_mac {
print tolower($1)
}
' "${STATE_FILE}" |
sort -u > "${temporary_file}"
chown root:root "${temporary_file}"
chmod 600 "${temporary_file}"
mv -f "${temporary_file}" "${STATE_FILE}"
}
prepare_iptables_chain() {
local binary="$1"
local custom_chain="$2"
"${binary}" -w 5 -t mangle -N "${custom_chain}" 2>/dev/null ||
true
"${binary}" -w 5 -t mangle -F "${custom_chain}"
while "${binary}" \
-w 5 \
-t mangle \
-C PREROUTING \
-j "${custom_chain}" \
2>/dev/null
do
"${binary}" \
-w 5 \
-t mangle \
-D PREROUTING \
-j "${custom_chain}"
done
"${binary}" \
-w 5 \
-t mangle \
-I PREROUTING 1 \
-j "${custom_chain}"
}
prepare_ebtables_chain() {
local table="$1"
local builtin_chain="$2"
local custom_chain="$3"
ebtables \
-t "${table}" \
-N "${custom_chain}" \
2>/dev/null ||
true
ebtables \
-t "${table}" \
-F "${custom_chain}"
while ebtables \
-t "${table}" \
-D "${builtin_chain}" \
-j "${custom_chain}" \
2>/dev/null
do
:
done
ebtables \
-t "${table}" \
-I "${builtin_chain}" 1 \
-j "${custom_chain}"
}
apply_rules() {
local mac
prepare_iptables_chain iptables "${IPT4_CHAIN}"
prepare_iptables_chain ip6tables "${IPT6_CHAIN}"
prepare_ebtables_chain \
broute \
BROUTING \
"${EBT_BR_CHAIN}"
prepare_ebtables_chain \
filter \
INPUT \
"${EBT_IN_CHAIN}"
prepare_ebtables_chain \
filter \
FORWARD \
"${EBT_FWD_CHAIN}"
prepare_ebtables_chain \
filter \
OUTPUT \
"${EBT_OUT_CHAIN}"
while IFS= read -r mac; do
[ -n "${mac}" ] || continue
iptables \
-w 5 \
-t mangle \
-A "${IPT4_CHAIN}" \
-m mac \
--mac-source "${mac}" \
-j DROP
ip6tables \
-w 5 \
-t mangle \
-A "${IPT6_CHAIN}" \
-m mac \
--mac-source "${mac}" \
-j DROP
ebtables \
-t broute \
-A "${EBT_BR_CHAIN}" \
-s "${mac}" \
-j RETURN
ebtables \
-t filter \
-A "${EBT_IN_CHAIN}" \
-s "${mac}" \
-j DROP
ebtables \
-t filter \
-A "${EBT_FWD_CHAIN}" \
-s "${mac}" \
-j DROP
ebtables \
-t filter \
-A "${EBT_FWD_CHAIN}" \
-d "${mac}" \
-j DROP
ebtables \
-t filter \
-A "${EBT_OUT_CHAIN}" \
-d "${mac}" \
-j DROP
done < <(read_macs)
}
known_addresses_for_mac() {
local family="$1"
local mac="$2"
ip "-${family}" -o neigh show 2>/dev/null |
awk -v mac="${mac}" '
{
for (i = 1; i <= NF; i++) {
if ($i == "lladdr" && tolower($(i + 1)) == mac) {
print $1
break
}
}
}
' |
sort -u
}
clear_conntrack_for_mac() {
local mac="$1"
local address
while IFS= read -r address; do
[ -n "${address}" ] || continue
conntrack \
-D \
-f ipv4 \
-s "${address}" \
>/dev/null 2>&1 ||
true
conntrack \
-D \
-f ipv4 \
-d "${address}" \
>/dev/null 2>&1 ||
true
done < <(known_addresses_for_mac 4 "${mac}")
while IFS= read -r address; do
[ -n "${address}" ] || continue
conntrack \
-D \
-f ipv6 \
-s "${address}" \
>/dev/null 2>&1 ||
true
conntrack \
-D \
-f ipv6 \
-d "${address}" \
>/dev/null 2>&1 ||
true
done < <(known_addresses_for_mac 6 "${mac}")
}
command_add() {
local force=0
local mac
if [ "${1:-}" = '--force' ]; then
force=1
shift
fi
[ "$#" -eq 1 ] ||
die 'Verwendung: quarantine-client add [--force] MAC'
mac="$(normalize_mac "$1")"
reject_gateway_mac "${mac}"
if [ "${force}" -eq 0 ]; then
reject_current_ssh_peer "${mac}"
fi
add_to_state "${mac}"
apply_rules
clear_conntrack_for_mac "${mac}"
log_message "Client ${mac} wurde quarantänisiert."
}
command_remove() {
local mac
[ "$#" -eq 1 ] ||
die 'Verwendung: quarantine-client remove MAC'
mac="$(normalize_mac "$1")"
remove_from_state "${mac}"
apply_rules
log_message "Quarantäne für ${mac} wurde aufgehoben."
}
command_apply() {
[ "$#" -eq 0 ] ||
die 'Verwendung: quarantine-client apply'
apply_rules
log_message 'Gespeicherte Quarantäne-Regeln wurden angewendet.'
}
command_list() {
[ "$#" -eq 0 ] ||
die 'Verwendung: quarantine-client list'
if [ ! -s "${STATE_FILE}" ]; then
printf 'Keine Clients in Quarantäne.\n'
return
fi
read_macs
}
command_status() {
[ "$#" -eq 0 ] ||
die 'Verwendung: quarantine-client status'
printf 'Gespeicherte MAC-Adressen:\n'
command_list
printf '\nIPv4-Hook:\n'
iptables -w 5 -t mangle -S PREROUTING |
awk -v chain="${IPT4_CHAIN}" '$0 ~ chain'
printf '\nIPv6-Hook:\n'
ip6tables -w 5 -t mangle -S PREROUTING |
awk -v chain="${IPT6_CHAIN}" '$0 ~ chain'
printf '\nBridge-Hooks:\n'
ebtables -t broute -L BROUTING 2>/dev/null |
awk -v chain="${EBT_BR_CHAIN}" '$0 ~ chain'
ebtables -t filter -L INPUT 2>/dev/null |
awk -v chain="${EBT_IN_CHAIN}" '$0 ~ chain'
ebtables -t filter -L FORWARD 2>/dev/null |
awk -v chain="${EBT_FWD_CHAIN}" '$0 ~ chain'
ebtables -t filter -L OUTPUT 2>/dev/null |
awk -v chain="${EBT_OUT_CHAIN}" '$0 ~ chain'
}
command_self_test() {
[ "$#" -eq 0 ] ||
die 'Verwendung: quarantine-client self-test'
normalize_mac '02:00:00:00:00:01' >/dev/null
printf 'Selbsttest erfolgreich. Es wurde kein Client gesperrt.\n'
}
show_usage() {
cat <<'USAGE'
Verwendung:
quarantine-client add [--force] MAC
quarantine-client remove MAC
quarantine-client list
quarantine-client apply
quarantine-client status
quarantine-client self-test
USAGE
}
main() {
require_root
require_commands
prepare_storage
exec 9>"${LOCK_FILE}"
flock -x 9
local action="${1:-}"
if [ "$#" -gt 0 ]; then
shift
fi
case "${action}" in
add)
command_add "$@"
;;
remove)
command_remove "$@"
;;
apply)
command_apply "$@"
;;
list)
command_list "$@"
;;
status)
command_status "$@"
;;
self-test)
command_self_test "$@"
;;
help|-h|--help|'')
show_usage
;;
*)
die "Unbekannte Aktion: ${action}"
;;
esac
}
main "$@"
QUARANTINE_SCRIPT
chown root:root /persistent/client-quarantine/quarantine-client
chmod 700 /persistent/client-quarantine/quarantine-client
ln -sfn \
/persistent/client-quarantine/quarantine-client \
/usr/local/sbin/quarantine-clientSyntax prüfen
bash -n /persistent/client-quarantine/quarantine-client && echo "Syntax OK"Erwartete Ausgabe:
Syntax OKSelbsttest durchführen
quarantine-client self-test
quarantine-client listErwartete Ausgabe:
Selbsttest erfolgreich. Es wurde kein Client gesperrt.
Keine Clients in Quarantäne.Damit ist die Installation abgeschlossen. Der Selbsttest selbst legt keine Firewall-Sperre für einen Client an.
Nutzung
Nutzung
MAC-Adresse anhand einer IP-Adresse ermitteln
Wenn die aktuelle IP-Adresse des verdächtigen Clients bekannt ist, kann die dazugehörige MAC-Adresse über die Neighbor-Tabelle ermittelt werden:
ip neigh show to 10.15.37.80Beispielausgabe:
10.15.37.80 dev br40 lladdr bc:24:11:34:bb:e1 REACHABLEIn diesem Beispiel lautet die MAC-Adresse des Clients:
bc:24:11:34:bb:e1Client sofort quarantänisieren
quarantine-client add bc:24:11:34:bb:e1Erwartete Ausgabe:
Client bc:24:11:34:bb:e1 wurde quarantänisiert.Die MAC-Adresse wird dabei dauerhaft in der Quarantäne-Liste gespeichert. Die Firewallregeln werden unmittelbar neu aufgebaut und bekannte bestehende IPv4- und IPv6-Verbindungen des Clients werden aus Conntrack gelöscht.
Schutz vor versehentlichem Aussperren
Das Skript versucht zu erkennen, ob die angegebene MAC-Adresse zum Rechner gehört, über den die aktuelle SSH-Verbindung aufgebaut wurde. In diesem Fall wird die Sperre standardmäßig abgebrochen.
Beispiel:
Fehler: Diese MAC gehört zum aktuellen SSH-Gegenüber. Verwende add --force nur bei bewusstem Verbindungsabbruch.Soll der aktuell verwendete SSH-Client tatsächlich absichtlich gesperrt werden, kann die Schutzfunktion mit --force übergangen werden:
quarantine-client add --force bc:24:11:34:bb:e1Achtung: Ist dies tatsächlich der aktuelle Administrationsrechner, kann dadurch die SSH-Verbindung sofort abbrechen.
Quarantänisierte Clients anzeigen
quarantine-client listBeispielausgabe:
bc:24:11:34:bb:e1Wenn kein Client quarantänisiert ist:
Keine Clients in Quarantäne.Status der Firewall-Hooks anzeigen
quarantine-client statusDer Befehl zeigt die gespeicherten MAC-Adressen sowie die aktuell installierten IPv4-, IPv6- und Bridge-Hooks an.
Gespeicherte Quarantäne erneut anwenden
Wenn UniFi die Firewall neu aufgebaut hat oder das Gateway neu gestartet wurde, können alle gespeicherten Quarantäne-Einträge erneut in die laufende Firewall übernommen werden:
quarantine-client applyErwartete Ausgabe:
Gespeicherte Quarantäne-Regeln wurden angewendet.Quarantäne eines Clients aufheben
quarantine-client remove bc:24:11:34:bb:e1Erwartete Ausgabe:
Quarantäne für bc:24:11:34:bb:e1 wurde aufgehoben.Danach kontrollieren
quarantine-client listWenn die MAC-Adresse nicht mehr in der Ausgabe vorhanden ist, wurde die Quarantäne aufgehoben.
Kurzreferenz für den Ernstfall
MAC zu einer bekannten IP ermitteln:
ip neigh show to IP-ADRESSEClient sperren:
quarantine-client add MAC-ADRESSEGesperrte Clients anzeigen:
quarantine-client listClient wieder freigeben:
quarantine-client remove MAC-ADRESSEQuarantäne-System vollständig entfernen
Vollständige Deinstallation
Bei der Deinstallation sollten zuerst alle gespeicherten Clients aus der Quarantäne entfernt werden.
Aktuelle Quarantäne-Liste anzeigen
quarantine-client listJede dort aufgeführte MAC-Adresse mit folgendem Befehl entfernen:
quarantine-client remove bc:24:11:34:bb:e1Danach sollte die Liste leer sein:
Keine Clients in Quarantäne.Firewall-Hooks und Quarantäne-Ketten entfernen
Mit folgendem Block werden die von diesem Werkzeug angelegten IPv4-, IPv6- und Bridge-Firewallketten vollständig aus der laufenden Firewall entfernt:
for spec in \
"iptables QRTN_MAC_V4" \
"ip6tables QRTN_MAC_V6"
do
set -- $spec
binary="$1"
chain="$2"
while "$binary" \
-w 5 \
-t mangle \
-C PREROUTING \
-j "$chain" \
2>/dev/null
do
"$binary" \
-w 5 \
-t mangle \
-D PREROUTING \
-j "$chain"
done
"$binary" \
-w 5 \
-t mangle \
-F "$chain" \
2>/dev/null || true
"$binary" \
-w 5 \
-t mangle \
-X "$chain" \
2>/dev/null || true
done
for spec in \
"broute BROUTING QRTN_MAC_BR" \
"filter INPUT QRTN_MAC_IN" \
"filter FORWARD QRTN_MAC_FWD" \
"filter OUTPUT QRTN_MAC_OUT"
do
set -- $spec
table="$1"
builtin_chain="$2"
custom_chain="$3"
while ebtables \
-t "$table" \
-D "$builtin_chain" \
-j "$custom_chain" \
2>/dev/null
do
:
done
ebtables \
-t "$table" \
-F "$custom_chain" \
2>/dev/null || true
ebtables \
-t "$table" \
-X "$custom_chain" \
2>/dev/null || true
doneProgrammdateien entfernen
rm -f /usr/local/sbin/quarantine-client
rm -rf /persistent/client-quarantineKontrolle
Der folgende Befehl sollte anschließend keine Quarantäne-Ketten mehr anzeigen:
{
iptables -t mangle -S 2>/dev/null
ip6tables -t mangle -S 2>/dev/null
ebtables -t broute -L 2>/dev/null
ebtables -t filter -L 2>/dev/null
} | awk '/QRTN_MAC_/ { print }'Wenn keine Ausgabe erscheint, sind die Quarantäne-Firewallregeln vollständig entfernt.
Zusätzlich sollte der Befehl nicht mehr vorhanden sein:
command -v quarantine-client || echo "quarantine-client wurde entfernt."Erwartete Ausgabe:
quarantine-client wurde entfernt.Wichtige Grenzen der Quarantäne
Die Quarantäne greift auf dem UniFi Gateway und kann damit insbesondere Verkehr zur Firewall selbst, zwischen gerouteten Netzwerken und zum Internet unterbinden.
Befinden sich zwei Geräte jedoch im selben VLAN und wird deren Verkehr direkt über einen externen Switch oder Access Point vermittelt, muss dieser Datenverkehr das Gateway möglicherweise überhaupt nicht passieren. Eine Gateway-Firewall kann solchen Verkehr folglich nicht zuverlässig stoppen.
Bei einem bestätigten Angriff oder einer akuten Kompromittierung sollte deshalb zusätzlich eine physische beziehungsweise Layer-2-Isolation erfolgen, beispielsweise durch das Deaktivieren des betreffenden Switch-Ports oder das Trennen des WLAN-Clients.
Notfall-Zusammenfassung
1. MAC-Adresse feststellen:
ip neigh show to IP-ADRESSE
2. Client sofort sperren:
quarantine-client add MAC-ADRESSE
3. Sperre kontrollieren:
quarantine-client list
quarantine-client status
4. Client wieder freigeben:
quarantine-client remove MAC-ADRESSE