mirror of
https://github.com/grandir66/UnifiMultimirror.git
synced 2026-10-02 15:24:42 +02:00
582f1f045b95448fe8c3645c7c49f83dafe0e103
Fotografia del lavoro in corso prima del riordino del parco, così il trasloco non deve indovinare cosa era lavoro buono. Nessun segreto nei file aggiunti (scansione valori-credenziale eseguita prima del commit). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
UnifiMultimirror
Tool per la gestione del port mirroring multi-porta su switch Ubiquiti UniFi/EdgeSwitch.
Il controller UniFi supporta nativamente solo una singola porta in mirroring. Questo tool permette di configurare multiple porte source via CLI SSH, superando questa limitazione.
Caratteristiche
- Interfaccia TUI (Text User Interface) con navigazione da tastiera
- Visualizzazione porte con stato link, VLAN (PVID e Tagged), ruolo mirroring
- Configurazione interattiva con selezione checkbox delle porte source
- Generazione script riutilizzabili (Bash, Python, comandi puri)
- Applicazione diretta della configurazione via SSH
- Supporto per porte fisiche e LAG (Link Aggregation Groups)
Screenshot
┌──────────────────────────────────────────────────────────────────────────────┐
│ │ Porta │ Descrizione │ Stato │ PVID │ Tagged │ Ruolo│
├─────┼───────┼──────────────────────────┼───────┼──────┼───────────────┼──────┤
│ ◀◀ │ 0/3 │ SFP_ 3 - MONITORING PORT │ UP │ 1 │ 2,4-7,15-16.. │ DEST │
│ [X] │ 0/4 │ SFP_ 4 - SW CED 237 │ UP │ 1 │ 2,4-7,15-16.. │ SRC │
│ [ ] │ 0/5 │ SFP_ 5 - SW 239 CLIENT │ UP │ 1 │ 2,4-7,15-16.. │ - │
│ [X] │ 0/8 │ SFP_ 8 - SW CED 245 AP │ UP │ 1 │ 2,4-7,15-16.. │ SRC │
└─────┴───────┴──────────────────────────┴───────┴──────┴───────────────┴──────┘
Requisiti
- Python 3.8+
- Switch Ubiquiti UniFi o EdgeSwitch con accesso SSH abilitato
- Credenziali admin
Installazione
# Clona il repository
git clone https://github.com/tuousername/UnifiMultimirror.git
cd UnifiMultimirror
# Installa le dipendenze
pip install -r requirements.txt
Dipendenze
paramiko- Connessione SSHcryptography- Crittografia passwordrich- Formattazione output CLItextual- Interfaccia TUI
Utilizzo
Interfaccia TUI (consigliata)
python tui_app.py
Navigazione:
↑/↓- Muovi cursoreSpazio/Enter- Seleziona/deseleziona porta sourceD- Imposta porta come destinationA- Seleziona tutte le porteN- Deseleziona tutteF10- Conferma configurazioneESC- Annulla
Schermata principale:
R- Ricarica configurazione dal deviceC- Configura mirroringG- Genera scriptF5- Applica configurazioneQ- Esci
Interfaccia CLI classica
python main.py
Menu testuale con opzioni numerate.
Script Generati
Quando selezioni "Genera Script", vengono creati 3 file nella cartella generated/:
| File | Descrizione |
|---|---|
mirror_config_*.sh |
Script Bash (richiede sshpass) |
mirror_config_*.py |
Script Python standalone |
mirror_commands_*.txt |
Comandi puri per uso manuale |
Esempio script Bash
./generated/mirror_config_20260205_143000.sh
# oppure con password come argomento
./generated/mirror_config_20260205_143000.sh "mypassword"
Comandi CLI EdgeSwitch
Il tool genera automaticamente i seguenti comandi:
cli
enable
configure
no monitor session 1 # Rimuove sessione esistente
monitor session 1 destination interface 0/3 # Porta monitor
monitor session 1 source interface 0/4 # Porta da monitorare
monitor session 1 source interface 0/8 # Altra porta source
...
monitor session 1 mode # Attiva sessione
exit
Note Importanti
- Le modifiche via CLI sono temporanee e potrebbero essere sovrascritte dal controller UniFi al prossimo provisioning
- Usa gli script generati per riapplicare la configurazione dopo un reboot o provisioning
- L'utente SSH deve essere
admin
Struttura Progetto
UnifiMultimirror/
├── tui_app.py # Interfaccia TUI (Textual)
├── main.py # Interfaccia CLI classica
├── ssh_manager.py # Gestione connessione SSH
├── config_parser.py # Parser configurazione switch
├── ui.py # UI per CLI classica (Rich)
├── script_generator.py # Generatore script
├── requirements.txt # Dipendenze Python
├── generated/ # Script generati
│ └── .gitkeep
└── README.md
Compatibilità
Testato su:
- USW-Pro-Aggregation (firmware 7.1.26)
- Altri switch UniFi/EdgeSwitch con CLI simile
Licenza
MIT License
Autore
Progetto sviluppato per semplificare la gestione del port mirroring multi-porta su reti Ubiquiti.
Description
Tool for managing multi-port port mirroring on Ubiquiti UniFi/EdgeSwitch switches.
The UniFi controller natively supports only a single mirrored port. This tool allows you to configure multiple source ports via CLI SSH, overcoming this limitation.
76 KiB
0 Stars
1 Watchers
0 Forks
Languages
Python
98.8%
Shell
1.2%