Skip to content

mmereu/huawei-vlan-viewer

Repository files navigation

Huawei Switch VLAN Viewer

Visualizza Porte Switch Huawei - Web application Flask per il monitoraggio e la visualizzazione delle porte degli switch Huawei tramite SNMP.

Huawei Switch Port Viewer - Flask web application for monitoring and visualizing Huawei switch ports via SNMP.


Funzionalita / Features

  • Mappa porte switch / Switch Port Mapper: Visualizzazione grafica di tutte le porte di uno switch con stato (up/down), VLAN assegnata, modalita (access/trunk)
  • Discovery di rete / Network Discovery: Scansione automatica di una subnet per trovare switch Huawei raggiungibili via SNMP
  • Visualizzatore VLAN / VLAN Visualizer: Vista a griglia, tabella e albero delle VLAN configurate
  • Supporto Stack: Rilevamento automatico di switch in configurazione stack
  • Query SNMP ottimizzate / Optimized SNMP: Query parallele per ridurre i tempi di risposta da 60+ secondi a meno di 5
  • Dashboard monitoraggio / Monitoring Dashboard: Monitoraggio in tempo reale dello stato delle porte

Architettura / Architecture

app_switch_mapper.py     # Main app - Switch Port Mapper (porta 5002)
app_huawei_vlan.py       # VLAN Visualizer app (porta 5001)
snmp_client.py           # Client SNMP con parsing Q-BRIDGE-MIB
snmp_optimized.py        # Client SNMP ottimizzato con query parallele
snmp_client_enhanced.py  # Funzioni aggiuntive (stato porte, stack detection)
frontend/dist/           # Frontend React + HTML per il port mapper
web/                     # Frontend HTML per il VLAN visualizer

Prerequisiti / Prerequisites

  • Python 3.8+
  • net-snmp tools (snmpget, snmpwalk)
    • Linux: apt-get install snmp
    • macOS: brew install net-snmp
  • Switch Huawei raggiungibili via SNMP v2c

Installazione / Installation

# Clona il repository / Clone the repository
git clone https://github.com/mmereu/huawei-vlan-viewer.git
cd huawei-vlan-viewer

# Crea virtual environment / Create virtual environment
python3 -m venv .venv
source .venv/bin/activate

# Installa dipendenze / Install dependencies
pip install -r requirements.txt

# Configura le variabili d'ambiente / Configure environment variables
cp .env.example .env
# Modifica .env con i tuoi valori / Edit .env with your values

Configurazione / Configuration

Modifica il file .env con i valori del tuo ambiente:

Edit the .env file with your environment values:

# Community SNMP dei tuoi switch / SNMP community of your switches
SNMP_COMMUNITY=public

# Origini CORS consentite / Allowed CORS origins
CORS_ORIGINS=http://localhost:3000,http://localhost:3001

# Lista switch predefiniti (JSON) / Default switch list (JSON)
SWITCH_LIST=[{"ip":"192.168.1.1","hostname":"Switch-01","location":"Server Room"}]

# IP switch di test / Test switch IP
TEST_SWITCH_IP=192.168.1.1

Avvio / Usage

Switch Port Mapper (porta 5002)

python app_switch_mapper.py --host 0.0.0.0 --port 5002

Apri il browser su http://localhost:5002 per visualizzare la mappa delle porte.

VLAN Visualizer (porta 5001)

python app_huawei_vlan.py --host 0.0.0.0 --port 5001

Apri il browser su http://localhost:5001 per il visualizzatore VLAN.

API Endpoints

Switch Port Mapper (app_switch_mapper.py)

Metodo Endpoint Descrizione
POST /api/switch/map Mappa completa porte switch
POST /api/discover Discovery switch sulla rete
GET /api/health Health check

VLAN Visualizer (app_huawei_vlan.py)

Metodo Endpoint Descrizione
GET /api/switches/<ip>/vlans VLAN di uno switch
POST /api/switches/<ip>/refresh Svuota cache per uno switch
GET /api/switches Lista switch configurati
GET /api/health Health check

Esempio di utilizzo API / API Usage Example

# Mappa porte di uno switch / Map switch ports
curl -X POST http://localhost:5002/api/switch/map \
  -H "Content-Type: application/json" \
  -d '{"switch_ip": "192.168.1.1"}'

# Discovery di una subnet / Discover a subnet
curl -X POST http://localhost:5002/api/discover \
  -H "Content-Type: application/json" \
  -d '{"network": "192.168.1.0/24"}'

Systemd Service (opzionale / optional)

Per eseguire l'app come servizio su Linux:

[Unit]
Description=Huawei Switch Port Mapper
After=network.target

[Service]
Type=simple
User=your-user
WorkingDirectory=/path/to/huawei-vlan-viewer
Environment=PATH=/path/to/huawei-vlan-viewer/.venv/bin
ExecStart=/path/to/huawei-vlan-viewer/.venv/bin/python app_switch_mapper.py --port 5002
Restart=always

[Install]
WantedBy=multi-user.target

License

MIT License - See LICENSE for details.

About

Visualizza Porte Switch Huawei - Flask web app per monitoraggio porte switch

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors