e523398fa8
- apps/device-agent-embedded/: ESP32 WireGuard agent (C, ESP-IDF, mbedTLS) - reference/namespace-vrf/: Linux namespace/VRF network isolation docs - apps/android-agent: VPN permission check, StartResult sealed class
254 lines
8.1 KiB
Markdown
254 lines
8.1 KiB
Markdown
# Namespace + VRF Summary
|
|
|
|
> Enterprise Network Isolation for NexusGuard SD-WAN — Reference Architecture
|
|
|
|
## Executive Summary
|
|
|
|
This document provides a high-level summary of the Namespace + VRF architecture for enterprise-grade network isolation in NexusGuard.
|
|
|
|
## Key Concepts
|
|
|
|
### 1. Network Namespace
|
|
|
|
**What:** Complete network stack isolation at kernel level
|
|
|
|
**Benefits:**
|
|
- Isolated network interfaces
|
|
- Isolated routing tables
|
|
- Isolated nftables rules
|
|
- Isolated socket bindings
|
|
|
|
**Use Case:** Multi-tenant SD-WAN, compliance isolation
|
|
|
|
### 2. VRF (Virtual Routing and Forwarding)
|
|
|
|
**What:** Routing table isolation within a namespace
|
|
|
|
**Benefits:**
|
|
- Multiple routing tables per namespace
|
|
- Same IP across different VRFs
|
|
- Policy routing support
|
|
|
|
**Use Case:** Development/testing isolation, network segmentation
|
|
|
|
### 3. Multi-User API Access
|
|
|
|
**What:** Role-based access control per namespace
|
|
|
|
**Benefits:**
|
|
- Multiple users per namespace
|
|
- Different permission levels (admin, operator, viewer)
|
|
- Audit trail per user
|
|
|
|
**Use Case:** Enterprise deployments, team collaboration
|
|
|
|
## Architecture Overview
|
|
|
|
```
|
|
┌─────────────────────────────────────────────────────────┐
|
|
│ Linux Kernel │
|
|
│ │
|
|
│ ┌──────────────────────────────────────────────────┐ │
|
|
│ │ Default Namespace (root) │ │
|
|
│ │ └── eth0, wg0 (server mgmt) │ │
|
|
│ └──────────────────────────────────────────────────┘ │
|
|
│ │
|
|
│ ┌──────────────────────────────────────────────────┐ │
|
|
│ │ Namespace: ns_zerocode │ │
|
|
│ │ ├── VRF: vrf_main (table 100) │ │
|
|
│ │ │ └── wg-z-main (10.100.0.1/24) │ │
|
|
│ │ │ ├── Device A: 10.100.0.2 │ │
|
|
│ │ │ └── Device B: 10.100.0.3 │ │
|
|
│ │ └── nftables (isolated rules) │ │
|
|
│ └──────────────────────────────────────────────────┘ │
|
|
│ │
|
|
│ ┌──────────────────────────────────────────────────┐ │
|
|
│ │ Namespace: ns_alice │ │
|
|
│ │ ├── VRF: vrf_main (table 100) │ │
|
|
│ │ │ └── wg-a-main (10.100.0.1/24) ← SAMA! │ │
|
|
│ │ │ ├── Device C: 10.100.0.2 │ │
|
|
│ │ │ └── Device D: 10.100.0.3 │ │
|
|
│ │ └── nftables (isolated rules) │ │
|
|
│ └──────────────────────────────────────────────────┘ │
|
|
└─────────────────────────────────────────────────────────┘
|
|
```
|
|
|
|
## Document Index
|
|
|
|
| Document | Description | Key Topics |
|
|
|----------|-------------|------------|
|
|
| [architecture.md](architecture.md) | Main architecture document | Concept, data model, API design |
|
|
| [quick-reference.md](quick-reference.md) | Kernel commands cheat sheet | Namespace, VRF, WireGuard commands |
|
|
| [comparison.md](comparison.md) | Comparison with current architecture | Pros/cons, use cases, decision matrix |
|
|
| [implementation-guide.md](implementation-guide.md) | Step-by-step implementation | Database, API, testing, deployment |
|
|
| [troubleshooting.md](troubleshooting.md) | Troubleshooting guide | Common issues, debugging, logs |
|
|
| [security.md](security.md) | Security considerations | Isolation, attacks, compliance |
|
|
| [performance.md](performance.md) | Performance considerations | Overhead, benchmarks, optimization |
|
|
|
|
## Key Features
|
|
|
|
### 1. Complete Isolation
|
|
|
|
```
|
|
✅ Network interfaces (per namespace)
|
|
✅ Routing tables (per VRF)
|
|
✅ nftables rules (per namespace)
|
|
✅ Socket bindings (per namespace)
|
|
✅ API access (per namespace)
|
|
```
|
|
|
|
### 2. IP Conflict Prevention
|
|
|
|
```
|
|
✅ Same IP across different namespaces
|
|
✅ Same IP across different VRFs
|
|
✅ Automatic isolation
|
|
✅ No manual configuration
|
|
```
|
|
|
|
### 3. Multi-User Access
|
|
|
|
```
|
|
✅ Role-based access control
|
|
✅ Multiple users per namespace
|
|
✅ Admin, operator, viewer roles
|
|
✅ Audit trail per user
|
|
```
|
|
|
|
### 4. Compliance Ready
|
|
|
|
```
|
|
✅ PCI DSS isolation
|
|
✅ HIPAA data isolation
|
|
✅ SOC 2 monitoring
|
|
✅ Audit logging
|
|
```
|
|
|
|
## Implementation Timeline
|
|
|
|
| Phase | Description | Duration | Status |
|
|
|-------|-------------|----------|--------|
|
|
| Phase 1 | Database schema | 1 week | Not started |
|
|
| Phase 2 | Namespace manager | 1 week | Not started |
|
|
| Phase 3 | VRF manager | 1 week | Not started |
|
|
| Phase 4 | WireGuard integration | 1 week | Not started |
|
|
| Phase 5 | Firewall integration | 1 week | Not started |
|
|
| Phase 6 | API gateway | 1 week | Not started |
|
|
| Phase 7 | Dashboard UI | 1 week | Not started |
|
|
| Phase 8 | Testing & documentation | 1 week | Not started |
|
|
| **Total** | | **8 weeks** | |
|
|
|
|
## Resource Requirements
|
|
|
|
### Small Deployment (< 10 users)
|
|
|
|
```
|
|
CPU: 2 cores
|
|
RAM: 4GB
|
|
Network: 1Gbps
|
|
Storage: 50GB
|
|
```
|
|
|
|
### Medium Deployment (10-100 users)
|
|
|
|
```
|
|
CPU: 8 cores
|
|
RAM: 16GB
|
|
Network: 10Gbps
|
|
Storage: 200GB
|
|
```
|
|
|
|
### Large Deployment (100-1000 users)
|
|
|
|
```
|
|
CPU: 32 cores
|
|
RAM: 64GB
|
|
Network: 40Gbps
|
|
Storage: 1TB
|
|
```
|
|
|
|
## Performance Impact
|
|
|
|
| Metric | Current | Namespace + VRF | Overhead |
|
|
|--------|---------|-----------------|----------|
|
|
| Memory per user | ~10KB | ~1.1MB | +10x |
|
|
| Routing latency | ~0.1ms | ~0.2ms | +100% |
|
|
| Throughput | ~950Mbps | ~900Mbps | -5% |
|
|
| Setup time | ~5ms | ~15ms | +200% |
|
|
|
|
## Security Guarantees
|
|
|
|
| Aspect | Isolation Level | Notes |
|
|
|--------|-----------------|-------|
|
|
| Network interfaces | HIGH | Complete per namespace |
|
|
| Routing tables | HIGH | Complete per VRF |
|
|
| nftables rules | HIGH | Complete per namespace |
|
|
| Kernel | LOW | Shared |
|
|
| Filesystem | LOW | Shared |
|
|
|
|
## Use Cases
|
|
|
|
### 1. Multi-Tenant SD-WAN
|
|
|
|
```
|
|
Company A → ns_company_a → vrf_main → wg-a-main
|
|
Company B → ns_company_b → vrf_main → wg-b-main
|
|
Same IP, complete isolation!
|
|
```
|
|
|
|
### 2. Development/Testing
|
|
|
|
```
|
|
Developer → ns_dev → vrf_dev → wg-dev
|
|
QA Team → ns_qa → vrf_test → wg-test
|
|
Same IPs, no conflicts!
|
|
```
|
|
|
|
### 3. Compliance Isolation
|
|
|
|
```
|
|
PCI DSS → ns_pci → vrf_pci → wg-pci
|
|
HIPAA → ns_hipaa → vrf_hipaa → wg-hipaa
|
|
Isolated workloads!
|
|
```
|
|
|
|
## Decision Matrix
|
|
|
|
### Choose Current Architecture If:
|
|
|
|
- [ ] Single tenant deployment
|
|
- [ ] Simple network requirements
|
|
- [ ] Limited resources
|
|
- [ ] Quick time-to-market
|
|
- [ ] Low complexity tolerance
|
|
|
|
### Choose Namespace + VRF If:
|
|
|
|
- [ ] Multi-tenant deployment
|
|
- [ ] Strong isolation requirements
|
|
- [ ] Compliance needs (PCI DSS, HIPAA)
|
|
- [ ] Same IP across tenants
|
|
- [ ] Role-based API access
|
|
|
|
## Next Steps
|
|
|
|
1. **Review** — Read all reference documents
|
|
2. **Decide** — Choose architecture based on requirements
|
|
3. **Plan** — Create detailed implementation plan
|
|
4. **Implement** — Follow implementation guide
|
|
5. **Test** — Verify isolation and performance
|
|
6. **Deploy** — Roll out to production
|
|
|
|
## References
|
|
|
|
- Linux Network Namespaces: `man ip-netns`
|
|
- Linux VRF: `man ip-link` (vrf type)
|
|
- WireGuard: `man wg`
|
|
- nftables: `man nft`
|
|
|
|
---
|
|
|
|
**Status:** Reference architecture — not yet implemented
|
|
**Last Updated:** 2026-07-10
|
|
**Author:** NexusGuard Team
|