Saltar al contenido principal

Small ISP con Containerlab

Small ISP - Redundancia SRRP

Laboratorio de ISP con redundancia SRRP entre BNG MASTER y SLAVE, con BGP Traffic Engineering dinámico vía EHS

Nokia SROS + SR Linux

Integración de Nokia 7750 SR-7 (BNG), SR Linux (OLT, Carriers) y contenedores Linux en un único lab

Stack de Telemetría

Monitoreo y logs con gNMIC, Prometheus, Grafana, Alloy y Loki

Autenticación RADIUS + LUDB Fallback

Autenticación de suscriptores con FreeRADIUS y fallback a Local User Database

NAT64 + CGNAT + One-to-One

Tres perfiles de NAT: NAT64 para IPv6-only, CGNAT determinístico para dual-stack, y One-to-One para VIP

Lawful Interception + LEA Console

Interceptación legal con mirror destination ip-udp-shim y consola web para visualización en tiempo real

Descripción General

Este laboratorio implementa un Small ISP completo utilizando Containerlab como plataforma de virtualización. La arquitectura incluye redundancia activo/respaldo entre dos BNG Nokia 7750 SR-7 con SRRP (Subscriber Routed Redundancy Protocol) y BGP Traffic Engineering dinámico controlado por EHS (Event Handling System).

Componentes Principales

ComponenteModelo/ImagenIP GestiónFunción
BNG MASTERNokia 7750 SR-7 (SRSIM)10.99.1.2BNG primario con SRRP priority 200
BNG SLAVENokia 7750 SR-7 (SRSIM)10.99.1.3BNG secundario con SRRP priority 50
OLTNokia SR Linux 25.1010.99.1.4Terminal de línea óptica (MAC-VRF)
Carrier 1Nokia SR Linux 25.1010.99.1.252Router carrier upstream (AS 65501)
Carrier 2Nokia SR Linux 25.1010.99.1.253Router carrier upstream (AS 65502)
ONT1ont-ds:0.3 o superior (IPoE)10.99.1.5Terminal óptica - 3 WANs (IPv6, Dual, VIP)
ONT2ont-ds:0.3 o superior (PPPoE)10.99.1.6Terminal óptica - 1 WAN PPPoE IPv6
RADIUSFreeRADIUS10.99.1.8Servidor de autenticación
gNMICOpenConfig gNMIC10.99.1.9Colector de telemetría
PrometheusPrometheus10.99.1.10Base de datos de métricas
GrafanaGrafana 10.3.510.99.1.11Visualización de métricas
LIGnetwork-multitool + Python10.99.1.12Lawful Interception Gateway
DNS64BIND910.99.1.13Servidor DNS64 para NAT64
Internetnetwork-multitool10.99.1.14Simulador de Internet
Lokigrafana/loki:latest10.99.1.15Almacenamiento e índice de logs
Alloygrafana/alloy:latest10.99.1.16Colector syslog y normalización de labels
Containerbotghcr.io/abelperezr/containerbot:0.0.110.99.1.200Bot de automatización Telegram

Características Técnicas

Tecnologías Implementadas
  • SRRP (Subscriber Routed Redundancy Protocol): Redundancia activo/backup entre BNGs
  • EHS (Event Handling System): Scripts pySROS para ajuste dinámico de políticas BGP según estado SRRP
  • BGP Traffic Engineering: AS-Path Prepend diferenciado por carrier y rol SRRP
  • Multi-Chassis Redundancy: Sincronización de sesiones DHCP/SRRP/ESM entre BNGs
  • ESM (Enhanced Subscriber Management): Tres Group Interfaces: ipv6-only, dual-stack, vip
  • NAT64: Traducción IPv6→IPv4 con prefijo 64:ff9b::/96
  • CGNAT Determinístico: NAT44 con mapeo determinístico 100.80.0.0/29 → 99.99.99.99
  • NAT One-to-One: IP pública dedicada 88.88.88.88/29 para suscriptores VIP
  • Lawful Interception: Mirror destination con ip-udp-shim hacia LEA Console
  • IPoE + PPPoE: Soporte completo para ambos protocolos
  • Dual-Stack IPv4/IPv6: DHCPv4, DHCPv6 WAN y Prefix Delegation
  • DNS64: Resolución DNS con síntesis de registros AAAA para NAT64
  • Logs centralizados: pipeline syslog con Alloy + Loki integrado en Grafana
  • Containerbot: Bot Telegram para ejecutar scripts de prueba y monitoreo

Demos destacadas

Estas son las pruebas más vistosas del laboratorio para una demo rápida. Todas tienen procedimiento detallado dentro del ATP y también están agrupadas en Demos destacadas.

Acceso al Laboratorio

ServicioURL/PuertoCredenciales
Grafanahttp://localhost:3030admin/admin
Prometheushttp://localhost:9090N/A
Loki APIhttp://localhost:3101N/A
Alloy UIhttp://localhost:12345N/A
LEA/LIGhttp://localhost:8092admin/multit00l
ONT1 Web GUIhttp://localhost:8090N/A
ONT2 Web GUIhttp://localhost:8091N/A
ONT1docker exec -it ont1 bashuser/test
ONT2docker exec -it ont2 bashuser/test
BNG MASTER SSHssh -p 56612 admin@localhostadmin/lab123
BNG SLAVE SSHssh -p 56613 admin@localhostadmin/lab123
OLT SSHssh -p 56614 admin@localhostadmin/lab123
Carrier 1 SSHssh -p 56610 admin@localhostadmin/lab123
Carrier 2 SSHssh -p 56611 admin@localhostadmin/lab123
Radiusssh -p 56617 admin@localhostadmin/admin
PC1docker exec -it pc1 bashadmin/multit00l
Internetssh -p 56620 admin@localhostadmin/multit00l
DNSssh -p 56621 admin@localhostadmin/multit00l
GNMICdocker exec -it gnmic /bin/shN/A

Inicio Rápido

# Clonar el repositorio
git clone https://github.com/abelperezr/small-isp-lab.git
cd small-isp-lab

# Desplegar el laboratorio
sudo containerlab deploy -t lab.yml

# Verificar estado de los nodos
sudo containerlab inspect -t lab.yml

# Acceder a Grafana
firefox http://localhost:3030

# Acceder a LEA Console
firefox http://localhost:8092
Requisitos Previos
  • Docker instalado y funcionando
  • Containerlab v0.50+ instalado
  • Imagen Nokia SRSIM 25.10.R2 disponible
  • Imagen Nokia SR Linux 25.10 disponible
  • Imagen ONT-DS 0.3 o superior disponible
  • Imagen Containerbot 0.0.1 disponible
  • Al menos 24 GB de RAM
  • Recomendado: 32 GB para ejecutar el lab con más margen
  • Licencia Nokia válida para SRSIM