Skip to content

Switches — SP

Switches — SP

Documentacao dos switches do cluster CPPS em SP, do UniFi Network Controller que os gerencia e dos procedimentos de acesso/operacao via terminal.

Cobertura:

  • US-16-XG (Ubiquiti, 10G) — backbone do plano LINSTOR
  • USW Pro Aggregation (Ubiquiti, 10G) — distribui o backbone para ippri-11/12
  • TP-Link SG2218 (1G) — intranet gerencial / acesso dos workstations
  • UniFi Network Controller (self-hosted em pve-ippri-31) — adocao e configuracao

Inventario fisico

SwitchModeloPortasIP mgmtFuncao
US-16-XGUbiquiti USXG12x SFP+ 10G + 4x RJ45 10GbaseT10.10.20.2/24LAGs LINSTOR (ippri-31, ippri-32) + uplink ao Pro Agg
USW Pro AggregationUbiquiti USAGGPRO28x SFP+ 10G + 4x SFP28 25G10.10.20.3/24LAGs LINSTOR (ippri-11, ippri-12) + downlink ao XG
TP-Link SG2218TL-SG2218 (L2 managed)16x RJ45 1G + 2x SFP 1G192.168.10.1/24 (nao mudar para /23 — switch nao aceita)Intranet 1G, LAN principal

UniFi — identificacao detalhada

Saida de info via mca-cli-op (terminal do switch):

US-16-XG:
Model: US-16-XG
Version: 7.4.1.16850
MAC Address: 74:83:c2:07:05:25
IP Address: 10.10.20.2
Hostname: USXG16
Status: Connected (http://10.10.20.31:8080/inform)
USW Pro Aggregation:
Model: USW-Pro-Aggregation
Version: 7.4.1.16850
MAC Address: 9c:05:d6:51:a3:cf
IP Address: 10.10.20.3
Hostname: USWProAggregation
Status: Connected (http://10.10.20.31:8080/inform)

Credenciais SSH dos switches UniFi: inventory/vault.yaml (vault_unifi_switch_user, vault_unifi_switch_password). Nao commitadas.

Topologia do backbone 10G

ippri-31 (controller UniFi, 10.10.20.31/24 em bond1)
│ LAG 1 = 2×10G = 20 GbE
│ (bond1: enp5s0f0+enp5s0f1 → XG 15+16)
US-16-XG ─── LAG 3 (ports 11/12) ──── ippri-32 (bond1)
10.10.20.2 10.10.20.32
│ LAG 2 = 3×10G = 30 GbE
│ (XG 2/4/6 ↔ Pro Agg 26/27/28)
USW Pro Aggregation ─── port 23 ─── ippri-11 (ens3f0) 10.10.20.11
10.10.20.3 ─── port 25 ─── ippri-12 (ens6f1) 10.10.20.12

Observacoes:

  • As “uplink speed” exibidas pelo controller (20 GbE no XG, 30 GbE no Pro Agg) refletem o LAG em direcao ao controller desde cada switch — nao sao inconsistencia.
  • LAG 3 foi dimensionada com 2 links porque o ippri-32 so tem 2 NICs 10G disponiveis no bond. LAG 2 tem 3 links para evitar gargalo quando ippri-11 e ippri-12 somam ~20G simultaneos.

Mapa de portas

US-16-XG (10.10.20.2)

PortaConexaoModoLAGObservacao
2USW Pro Agg porta 26aggregateLAG 2
4USW Pro Agg porta 27aggregateLAG 2
6USW Pro Agg porta 28aggregateLAG 2
7ippri-31 enp8s0Desativada 2026-04-20 (mgmt migrou p/ 10.10.10.0/24)
11ippri-32 bond1 slaveaggregateLAG 3
12ippri-32 bond1 slaveaggregateLAG 3
13ippri-33 enp5s0f0aggregateLAG 4Habilitada 2026-04-22 (era disabled de 21/04 a 22/04)
14ippri-33 enp5s0f1aggregateLAG 4Habilitada 2026-04-22 (era disabled de 21/04 a 22/04)
15ippri-31 enp5s0f0aggregateLAG 1Port Profile: Native VLAN = default
16ippri-31 enp5s0f1aggregateLAG 1Port Profile: Native VLAN = default

USW Pro Aggregation (10.10.20.3)

PortaConexaoModoLAG
23ippri-11 ens3f0switch (access)
25ippri-12 ens6f1switch (access)
26US-16-XG porta 2aggregateLAG 2
27US-16-XG porta 4aggregateLAG 2
28US-16-XG porta 6aggregateLAG 2

Nao documentado em detalhe ainda — acesso por SSH/CLI pendente (ver TP-Link SG2218 abaixo).

UniFi Network Controller

Instalado em pve-ippri-31 para gerenciar US-16-XG e USW Pro Aggregation. Instalacao self-hosted (nao depende de Cloud Key nem UniFi OS).

Detalhes da instalacao

AspectoValor
Hostpve-ippri-31
Pacoteunifi 10.2.105-33556-1 (deb oficial)
Servicounifi.service (systemd, enabled)
JavaOpenJDK 25.0.2 (Debian 1deb13u2)
BancoMongoDB 7.0.31 (mongodb-org-server)
Bind0.0.0.0 em todas as portas — acessivel via LAN e via 10G
Portas8080 (inform), 8443 (Web UI HTTPS), 8843, 8880, 27117 (Mongo local)
Dados/var/lib/unifi (owner unifi:unifi)
Binarios/usr/lib/unifi
BackupsNa tela Settings → System → Backup da Web UI

Parametros da JVM (do systemd unit):

-Xmx1024M
-XX:+UseParallelGC
-XX:+ExitOnOutOfMemoryError
-XX:+CrashOnOutOfMemoryError

Mongo roda embutido como subprocesso (--bind_ip 127.0.0.1 --port 27117, cache 256M).

Instalacao (procedimento oficial)

Repositorio oficial do UniFi no Debian/Proxmox 13:

Terminal window
# 1. Chave GPG e repo
curl -fsSL https://dl.ui.com/unifi/unifi-repo.gpg \
| gpg --dearmor -o /etc/apt/trusted.gpg.d/unifi-repo.gpg
echo 'deb https://www.ui.com/downloads/unifi/debian stable ubiquiti' \
> /etc/apt/sources.list.d/100-ubnt-unifi.list
# 2. MongoDB 7 (pre-requisito do UniFi 10.x em Debian 13)
curl -fsSL https://www.mongodb.org/static/pgp/server-7.0.asc \
| gpg --dearmor -o /etc/apt/trusted.gpg.d/mongodb-server-7.0.gpg
echo 'deb https://repo.mongodb.org/apt/debian bookworm/mongodb-org/7.0 main' \
> /etc/apt/sources.list.d/mongodb-org-7.0.list
# 3. Instalacao
apt update
apt install -y unifi
systemctl enable --now unifi
# 4. Acesso inicial
# Abrir https://<IP-do-host>:8443 na LAN — wizard cria conta admin local

Configuracao do controller

Uma vez aberto o wizard:

  1. Controller Name: cpps-sp (ou qualquer identificador)
  2. Criar conta local (nao vincular a Ubiquiti Cloud) — assim o controller nao precisa de internet para operar os switches. Conta local fica em /var/lib/unifi/data/db.
  3. Adopcao dos switches:
    • Os switches UniFi aparecem em Devices → Pending Adoption assim que enxergarem o controller via rede (ver secao set-inform abaixo).
    • Clicar em “Adopt” em cada switch.
  4. Site default basta — nao e necessario criar sites adicionais.
  5. Settings → System → Updates: manter em “manual” evita upgrades automaticos de firmware nos switches.

IP forwarding (roteamento entre LANs)

Como o controller vive em ippri-31 e escuta em 0.0.0.0, ele atende tanto a LAN principal (192.168.10.31) quanto a rede 10G (10.10.20.31). Para que os switches em 10.10.20.0/24 consigam consultar DNS/NTP externo via ippri-31, e para garantir roteamento consistente, o IP forward esta habilitado:

Terminal window
# Ja aplicado em pve-ippri-31:
cat /etc/sysctl.d/99-linstor-forward.conf
# net.ipv4.ip_forward=1
sysctl net.ipv4.ip_forward # = 1

Rede de inform

Depois de adotados, cada switch guarda o inform URL localmente e continua falando com o controller por esse endereco, mesmo que o IP mude em ambos os lados. Se o switch for migrado para outra rede e o inform URL ficar incorreto, use o procedimento set-inform descrito na secao Acesso via terminal.

Valor atual (switches em 10.10.20.0/24):
inform URL = http://10.10.20.31:8080/inform

Acesso via terminal

Matriz de metodos

MetodoOrigemDestinoExemplo
UniFi Web UIWorkstation/LANControllerhttps://192.168.10.31:8443
SSH diretoNode LINSTOR (11/12/31/32)Switch UniFissh <user>@10.10.20.2
SSH ProxyJumpWorkstationSwitch UniFissh -J root@192.168.10.11 <user>@10.10.20.2
mca-cli-opDentro do SSH do switchShell UniFi internomca-cli-opinfo / set-inform
Script set-informWorkstationSwitch UniFiuv run config/scripts/unifi-set-inform.py <ip> <url>

SSH aos switches UniFi

As credenciais SSH sao configuradas pelo controller (Settings → System → Advanced → Device Authentication). Ficam armazenadas em inventory/vault.yaml:

vault_unifi_switch_user: <user>
vault_unifi_switch_password: <pass>

De qualquer node LINSTOR (ippri-11, 12, 31, 32):

Terminal window
ssh <user>@10.10.20.2 # US-16-XG
ssh <user>@10.10.20.3 # USW Pro Aggregation

De workstation (fora da rede 10G), via ProxyJump por qualquer node LINSTOR. Adicionar em ~/.ssh/config:

Host unifi-xg
HostName 10.10.20.2
User <user>
ProxyJump root@192.168.10.11
Host unifi-aggpro
HostName 10.10.20.3
User <user>
ProxyJump root@192.168.10.11

Depois: ssh unifi-xg ou ssh unifi-aggpro.

Comandos uteis nos switches UniFi

O shell SSH padrao do switch e uma versao limitada de busybox. Comandos uteis disponiveis diretamente (sem entrar em mca-cli-op):

Terminal window
# Estado das portas (link, rate, LAG, STP)
swctrl port show
# MACs aprendidos por porta (com IP se o switch conseguir associar)
swctrl mac show
# Dump da config efetiva (arquivo em /tmp/system.cfg)
cat /tmp/system.cfg | less
# Uptime, versao, memoria
uname -a
cat /proc/meminfo | head -5

Para comandos privilegiados de gerencia (reboot, set-inform, adocao manual), entre no shell mca-cli-op:

Terminal window
mca-cli-op
UniFi# info # versao, IP, status, inform URL
UniFi# set-inform http://10.10.20.31:8080/inform # reaponta inform
UniFi# reboot # reinicializa o switch
UniFi# exit

Script helper: unifi-set-inform.py

Arquivo: config/scripts/unifi-set-inform.py.

Reaponta o inform URL de um switch UniFi sem expor senha em command line — le credenciais de inventory/vault.yaml e usa SSH via jump host.

Terminal window
uv run config/scripts/unifi-set-inform.py <switch_ip> <inform_url> [--jump <host>]
# Exemplos:
uv run config/scripts/unifi-set-inform.py 10.10.20.2 http://10.10.20.31:8080/inform
uv run config/scripts/unifi-set-inform.py 10.10.20.3 http://10.10.20.31:8080/inform \
--jump 192.168.10.11

Uso tipico: apos migrar o switch de rede de mgmt, o inform URL antigo para de funcionar (o controller mudou de IP ou o switch mudou de subnet). O script entra no shell mca-cli-op, executa set-inform, valida com info e retorna 0 se o novo URL apareceu no output.

Informacoes conhecidas:

  • IP mgmt: 192.168.10.1/24 (na LAN principal).
  • Subnet mask nao pode ser alterada para /23 (limitacao do firmware TP-Link nesse modelo — aceita apenas /24 no mgmt).
  • Workstations e LAN principal sao /23 (192.168.10.0/23), entao o switch so enxerga metade do range. Isso nao tira funcionalidade L2 (a comutacao acontece em hw, independente da mask), mas impede acesso direto ao Web UI a partir de IPs em 192.168.11.x — esses precisam vir via o gateway (192.168.10.5) ou por algum nó com IP em 192.168.10.0/24.

Estado atual do acesso (teste em 2026-04-21):

$ ping 192.168.10.1
0% reply (sem resposta ARP nem ICMP)
$ nmap -p 22,23,80,443 192.168.10.1
all ports filtered/closed

Possibilidades que justificariam isso:

  • Switch pode estar desligado ou com link down no momento do teste.
  • ACL/firewall no switch restringindo o mgmt a determinadas VLANs/portas.
  • Mgmt IP pode ter sido movido e 192.168.10.1 ja nao e mais o IP correto.

Proximo passo sugerido (quando o switch estiver acessivel):

  1. Descobrir IP real — arp-scan 192.168.10.0/23 a partir de um host em 192.168.10.x e procurar MAC OUI da TP-Link (inicios comuns: 50:C7:BF, 14:CC:20, AC:84:C6, 70:4F:57, 98:DA:C4, E4:C3:2A, 30:DE:4B).
  2. Verificar se o console serial esta acessivel — o modelo tem porta console RJ45 com baud 38400/8N1. Permite reset do admin via menu.
  3. Documentar aqui: credenciais (vault), habilitar SSH (esta desabilitado por padrao — precisa ir em System → Access Security → SSH Config → Enable na Web UI), registrar firmware e config.

Ate o acesso ser recuperado, operar o switch via console/Web UI fisicamente.

Operacao e troubleshooting

Verificar estado dos switches UniFi

Terminal window
# Estado de LAGs e portas em um unico ssh:
ssh <user>@10.10.20.2 "swctrl port show" # US-16-XG
ssh <user>@10.10.20.3 "swctrl port show" # Pro Aggregation
# Ler a coluna "LAG" — ex "LAG 1(U)" = agregada e Up.
# O prefixo A/AU na primeira coluna indica Aggregated (A) + Uplink (U).

Do lado do host, validar LACP do bond1 do ippri-31/32:

Terminal window
cat /proc/net/bonding/bond1
# O que procurar:
# Number of ports: 2 (ambas NICs ativas no aggregator)
# Partner Mac Address: 74:83:c2:07:05:25 (MAC do XG — nao zerado)
# Partner Churn State: monitoring ou none (nunca 'churned')

Verificar estado do controller

Terminal window
# Em pve-ippri-31:
systemctl status unifi
ss -tlnp | grep -E '(:8080|:8443|:27117)'
# Logs:
journalctl -u unifi -f
tail -f /usr/lib/unifi/logs/server.log

Troubleshooting comum

SintomaDiagnosticoAcao
Switch “Disconnected” na Web UIinfo mostra inform URL antigoset-inform http://10.10.20.31:8080/inform
Switch sem IP de mgmtDHCP cai ou IP estatico erradoReset de fabrica (botao ~10s) → re-adocao
Bond sem partner (LACP 00:00:…)Portas do switch nao estao em LAGUniFi Web UI → Devices → switch → Port Manager → Aggregate
LAG com Native VLAN NoneFrames chegam tagged VLAN 1 (ver bug resolvido em rede-10g-sp.md)Port Profile da LAG → Native VLAN: default
Upgrades automaticos indesejadosPolitica default do site e “auto”Settings → System → Updates → Manual
Web UI lentaMongo DB inchado com logs antigosmongo --port 27117 ace → limpar coleções *.log
Firmware do switch nao atualizaCache local estragadoDevices → switch → Config → Force Provision

Runbook: migrar mgmt de switches UniFi para outra rede

Procedimento usado em 2026-04-20 para mover mgmt de 192.168.1.0/24 (rede isolada L2) para 10.10.20.0/24 (rede 10G compartilhada). Replicavel em outros clusters e util apos reset de fabrica dos switches.

Pre-requisitos:

  • Controller UniFi self-hosted em execucao.
  • Rede alvo (ex: 10.10.20.0/24) ja presente nas portas fisicas dos switches.
  • Gateway na rede alvo disponivel e escutando o controller em 0.0.0.0:8080.
  • Credenciais SSH dos switches em inventory/vault.yaml.

Passo 1 — IP forwarding no gateway (ippri-31):

Terminal window
sysctl -w net.ipv4.ip_forward=1
echo 'net.ipv4.ip_forward=1' > /etc/sysctl.d/99-linstor-forward.conf

Passo 2 — Mudar IP de mgmt via UniFi Web UI:

Para cada switch em Devices → <switch> → Settings → Network:

IP Address: 10.10.20.X (.2 para XG, .3 para Pro Agg)
Subnet Mask: 255.255.255.0
Gateway: 10.10.20.31
DNS: 10.10.20.31

Ao salvar, o switch fica Disconnected — ele aplica o novo IP mas continua com o inform URL antigo apontando para o IP antigo do controller.

Passo 3 — Validar alcance:

Terminal window
ssh root@pve-ippri-11 "ping -c 3 10.10.20.X"

Passo 4 — Apontar inform para o novo endereco:

Terminal window
uv run config/scripts/unifi-set-inform.py 10.10.20.2 http://10.10.20.31:8080/inform
uv run config/scripts/unifi-set-inform.py 10.10.20.3 http://10.10.20.31:8080/inform

Esperado: Status: Connected (http://10.10.20.31:8080/inform) no output do info. Web UI agora mostra o switch Online.

Passo 5 — Atualizar inventario Ansible (inventory/hosts.yaml):

usw-pro-aggregation:
ansible_host: 10.10.20.3
unifi_switch_jump_host: pve-ippri-11
us-16-xg:
ansible_host: 10.10.20.2
unifi_switch_jump_host: pve-ippri-11

Passo 6 — Limpar a rede mgmt antiga (opcional):

Terminal window
# Em pve-ippri-31, se a mgmt antiga usava uma NIC dedicada (ex: enp8s0):
ip link set enp8s0 down
# Editar /etc/network/interfaces:
# Comentar 'auto enp8s0', trocar 'iface enp8s0 inet static' por 'inet manual'.

Historico de mudancas

DataMudanca
2026-04-20Mgmt dos UniFi migrado de 192.168.1.0/24 (isolado) para 10.10.10.0/24 (rede 10G)
2026-04-20enp8s0 do ippri-31 desativado (era a NIC da mgmt antiga)
2026-04-21LAG do ippri-31 no XG movido das portas 13/14 para 15/16
2026-04-21Bug “VLAN 1 tagged nos LAGs” resolvido (Native VLAN: None → default em LAG 1 e LAG 3)
2026-04-21Sub-interface bond1.1 (workaround) removida dos ippri-31/32 — IP voltou direto em bond1
2026-04-22Portas 13/14 do XG reativadas como LAG 4 para ippri-33 (bond1, 10.10.10.33)
2026-04-22ippri-33 enp9s0 voltou a 1 Gbps (antes estava a 100 Mbps por problema de cabo)

Referencias cruzadas