Introduction to μNet
μNet (pronounced "micro-net") is a network configuration management system that helps you document, monitor, and automate your network infrastructure.
What Problems Does μNet Solve?
📋 Network Documentation Chaos
- Problem: Network topology scattered across spreadsheets, diagrams, and tribal knowledge
- Solution: Centralized device inventory with relationships, locations, and lifecycle tracking
🔍 Configuration Drift
- Problem: Devices gradually drift from standards without detection
- Solution: Declarative policies that continuously check compliance
🔧 Manual Operations
- Problem: Repetitive configuration tasks prone to human error
- Solution: Automated actions triggered by policy rules
📊 Lack of Visibility
- Problem: Limited insight into device status and performance
- Solution: Real-time SNMP monitoring with historical tracking
Core Concepts
Devices & Topology
μNet models your network as Nodes (devices), Links (connections), and Locations (physical sites):
Campus
├── Building A
│ ├── Floor 1
│ │ └── Rack 1
│ │ ├── core-01 (Core Router)
│ │ └── dist-01 (Distribution Switch)
│ └── Floor 2
└── Building B
Policy-Driven Compliance
Define network standards as declarative rules:
# Ensure production devices are monitored
WHEN node.lifecycle == "Production"
THEN SET custom_data.monitoring_enabled TO true
# Cisco devices should use SNMPv3
WHEN node.vendor == "Cisco"
THEN ASSERT custom_data.snmp_version == "v3"
Real-Time Monitoring
μNet polls your devices via SNMP to collect:
- System information (uptime, description, contact)
- Interface status and statistics
- Performance metrics (CPU, memory, temperature)
- Custom vendor-specific data
Key Features
✅ What μNet Does Today (v0.1.0)
- Complete Device Management: Add, update, and organize network devices
- Topology Mapping: Document connections and physical locations
- Policy Engine: Write and evaluate compliance rules
- SNMP Monitoring: Real-time device status collection
- REST API: Full HTTP API for automation
- Rich CLI: Command-line interface with multiple output formats
- Data Import/Export: Bulk operations for network data
🚧 In Development
- Background SNMP Integration: Automatic device polling and database updates
- API Completeness: Full implementation of location/link endpoints
- Derived State Tracking: Historical device status and metrics
🔮 Future Planned Features
- Configuration Templates: Generate device configs from templates (NOT STARTED)
- Historical Analytics: Time-series data and trend analysis (NOT STARTED)
- Configuration Push: Deploy generated configs to devices (NOT STARTED)
- Advanced Alerting: Notifications for policy violations (NOT STARTED)
Architecture Overview
μNet consists of three main components:
┌─────────────┐ HTTP/JSON ┌─────────────┐
│ unet-cli │ ◄──────────────► │ unet-server │
│ │ │ │
│ • Commands │ │ • REST API │
│ • Local DB │ │ • SNMP Poll │
│ • Policies │ │ • Policies │
└─────────────┘ └─────────────┘
│ │
▼ ▼
┌─────────────────────────────────────────────┐
│ SQLite Database │
│ • Devices • Links • Locations • Status │
└─────────────────────────────────────────────┘
Design Principles:
- Single Binary: No external dependencies, easy deployment
- SQLite Backend: Zero-ops database for up to 10K+ devices
- API-First: Everything available via HTTP API
- Incremental Adoption: Start small, grow capabilities over time
Use Cases
Network Documentation
- Device Inventory: Comprehensive database of all network equipment
- Topology Mapping: Visual representation of network connections
- Lifecycle Tracking: Manage devices from planning to decommission
- Change Auditing: Track modifications and policy compliance
Compliance Monitoring
- Security Standards: Ensure devices meet security baselines
- Configuration Validation: Check for required settings and features
- Vendor Consistency: Enforce consistent configurations by vendor
- Lifecycle Policies: Different rules for production vs. staging
Operational Automation
- Bulk Updates: Apply changes across multiple devices
- Automated Validation: Continuous compliance checking
- Integration Workflows: Connect with existing automation tools
- Reporting: Generate compliance and inventory reports
Getting Started
Ready to try μNet?
- Quick Start Guide - Get running in 10 minutes
- CLI Reference - Learn the commands
- Policy Guide - Write your first compliance rules
Questions? Check the Troubleshooting Guide or open an issue.
Why Choose μNet?
Built for Network Engineers
- Domain-specific: Designed for network operations, not generic IT
- Practical: Solves real daily challenges network teams face
- Flexible: Adapt to your existing processes and tools
Modern Technology
- Rust Performance: Fast, memory-safe, reliable
- Simple Deployment: Single binary, SQLite database
- API-First: Easy integration with existing tools
Open Source
- MIT/Apache License: Use freely in commercial environments
- Active Development: Regular releases with new features
- Community Driven: Contributions and feedback welcome
Next: Quick Start Guide →