Ir al contenido

Referencia de la CLI (dtvsol)

dtvsol es la línea de comandos del DTVSOL Super Router. Se ejecuta en el propio router, como root o con sudo. La mayoría de los comandos los responde el daemon del router dtvsold, el mismo daemon que sirve la API HTTP. El resto (versiones de configuración, configuración de red, licencia, NTP, usuarios del monitor de OLT) se ejecuta como root en el equipo, por lo que sigue funcionando incluso cuando la API está caída.

Ventana de terminal
dtvsol <group> <command> [arguments]
dtvsol help # the full help
dtvsol ? <group> # one group's detailed help (same as: dtvsol help <group>)

Los grupos con ayuda detallada son clients, iface, networks, net6, routes, nat, protect, firewall, antispoof, olt, service y api.

Autocompletado con Tab. Presione <TAB><TAB> para completar comandos, y luego interfaces, VLAN y MAC. Se instala una sola vez con dtvsol init.

En las tablas siguientes, Modifica marca los comandos que cambian el router, una OLT o la configuración almacenada. Los comandos sin esa marca solo leen.

Los clientes son el modelo anterior: una dirección MAC con una IP fija. Para los abonados aprovisionados junto con su ONT, consulte Servicios. API: Clientes.

Comando Propósito Modifica
clients list Lista todos los clientes registrados
clients list-net <network> Lista los clientes de una red (CIDR)
clients search <keyword> Busca por MAC, IP, hostname, comentario o interfaz
clients get <mac|ip|hostname> Consulta un cliente
clients add <mac> <ip> [hostname] [comment] [--ipv6 <addr>] Registra un cliente con una IP fija. La red, la interfaz y el gateway se detectan a partir de la IP. El hostname se genera a partir de la MAC si usted lo omite. --ipv6 también crea una entrada de host DHCPv6 sí
clients delete <mac> Elimina un cliente del DHCP y del firewall sí
clients plan <mac> <plan|none> Asigna un plan de ancho de banda (none = ilimitado) sí
clients suspend <mac> / clients resume <mac> Corta el servicio a un cliente, o lo restablece (también dtvsol suspend <mac> / dtvsol resume <mac>) sí
clients expires <mac> <YYYY-MM-DD|never> Fija la fecha de fin del servicio. El cliente se suspende automáticamente en esa fecha sí
clients active [online|recent|offline] Actividad de los clientes según ARP/NDP y los leases DHCP (también dtvsol active)
clients6 [iface] [--routers] Vista IPv6: cada MAC con la dirección que tiene y su prefijo delegado
ips [network] Uso de IP estáticas por red: usadas, libres, siguiente libre, y dispositivos en la red que no están registrados
graph <mac|iface> [hour|day|week|month|year] [outfile.png] Guarda una gráfica de tráfico como PNG (período por defecto: day)
Ventana de terminal
dtvsol clients add AA:BB:CC:DD:EE:FF 10.110.0.5 client-1 "Client 1 - 50 Mbps"
dtvsol clients add AA:BB:CC:DD:EE:FF 10.110.0.5 client-1 "Client 1" --ipv6 XXXX:XXXX::5
dtvsol clients list-net 10.110.0.0/21
dtvsol clients search 10.110.0
dtvsol clients plan AA:BB:CC:DD:EE:FF plan_50_10
dtvsol clients expires AA:BB:CC:DD:EE:FF 2026-12-31
dtvsol clients suspend AA:BB:CC:DD:EE:FF
dtvsol clients6 vlan100 --routers
dtvsol ips 10.110.0.0/21
dtvsol graph AA:BB:CC:DD:EE:FF week /tmp/client.png

Un servicio es la unidad con la que trabaja el sistema de facturación: un cliente, una ONT, una velocidad, una dirección y un id permanente. Los abonados de un puerto PON comparten la VLAN de ese puerto (v<svlan>.<cvlan>, una /24 y una /64). Cada ONT recibe una dirección fija, que se entrega solo a la solicitud DHCP cuya Option 82 (insertada por la OLT) indica ese puerto y esa ONT, por lo que no se necesita ninguna MAC. Un solo comando registra la ONT en la OLT y configura el lado del router. API: Servicios.

Comando Propósito Modifica
service unregistered [--olt n] La lista del técnico: ONT no registradas en cada OLT registrada (serial, PON, fabricante)
service add <sn> --name "..." (--plan p | --down d --up u) [--olt n] [--pon f/s/p] [--user-vlan v] [--ref r] [--contract c] [--expires YYYY-MM-DD|never] [--comment ...] [--iptv] [--no-ipv6] Aprovisiona un abonado en una sola llamada: ONT, VLAN, dirección y velocidad. Muestra la VLAN que se debe configurar en la ONU. Si usted omite --pon, se busca en autofind. --down/--up crean el plan plan_<down>_<up> si no existe. --ref es idempotente: la misma ref devuelve el mismo servicio sí
service add none --svlan s --pon f/s/p --ont-id n --name ... --plan ... Agrega un abonado cuya ONT se aprovisionó a mano sí
service list [--state active|suspended|error] [--olt n] [-q text] [--fast] [--json] Lista los servicios
service get <id> Muestra un servicio. También puede buscarlo por ref, serial, contrato, dirección o interfaz
service set <id> [--plan p | --down d --up u] [--name] [--contract] [--expires] [--comment] [--retry] Modifica un servicio. Un cambio de plan también cambia el límite de velocidad de la ONT en la OLT sí
service suspend <id> / service resume <id> Desactiva la ONT en la OLT y bloquea la dirección en el router, o lo revierte. Las fechas de fin lo hacen automáticamente sí
service migrate <id> Mueve un servicio a la VLAN y la /24 de su puerto PON sin tocar la ONU. La OLT traduce la VLAN que la ONU ya envía sí
service del <id> [--keep-ont] Elimina el servicio en el router, y la ONT en la OLT salvo con --keep-ont sí
service graph <id> [hour|day|week|month|year] [out.png] [--olt|--errors] Gráfica de tráfico a partir de los contadores del router. --olt muestra el tráfico de la ONT según lo cuenta la OLT, --errors muestra sus errores de fibra (BIP, FEC)

Numeración: svlan es la S-VLAN de este router en la OLT (dtvsol olt set <olt> --svlan n) y cvlan es 100 + card*16 + pon. La /24 del puerto es svc_ipv4_pool + (cvlan-100)*256 (la VLAN 100 recibe 100.64.0.0/24), y la dirección de la ONT es .2 + ONT id. Para IPv6, cada puerto recibe una /64 de svc_ipv6_pool y 256 /64 delegadas de svc_pd_pool. La OLT aplica el límite de velocidad.

Ventana de terminal
dtvsol service unregistered --olt olt-1
dtvsol service add 48575443A1B2C3D4 --name "Customer 1" --plan plan_200_200 --olt olt-1 --pon 0/0/3 --ref 1001
dtvsol service add 48575443A1B2C3D4 --name "Customer 2" --down 100 --up 50 --contract C-2002 --expires 2026-12-31
dtvsol service list --state suspended --olt olt-1
dtvsol service get 1001
dtvsol service set svc_1 --plan plan_300_300
dtvsol service suspend svc_1
dtvsol service del svc_1 --keep-ont
dtvsol service graph svc_1 week --errors

Los planes de ancho de banda son velocidades de bajada y subida con nombre. Un cliente sin plan es ilimitado. API: Planes.

Comando Propósito Modifica
plans list Lista los planes, con el número de clientes en cada uno
plans add <name> <down_mbps> <up_mbps> [comment] Crea un plan sí
plans del <name> Elimina un plan sí
Ventana de terminal
dtvsol plans add plan_50_10 50 10 "Home 50"
dtvsol plans del plan_50_10

API: VLAN, IP y rutas.

Comando Propósito Modifica
iface Lista todas las interfaces agrupadas por tipo (física, VLAN, QinQ), con su estado, IP, IDs de VLAN e interfaz padre
vlan list Muestra las VLAN administradas. Las deshabilitadas aparecen atenuadas
vlan add Interactivo: elija la interfaz padre y luego ingrese el ID de VLAN, el protocolo, la IP y la etiqueta. Por defecto la VLAN sirve DHCPv4, DHCPv6 y delegación de prefijos. Persiste tras los reinicios sí
vlan disable <name> [reason] Apaga una VLAN y conserva toda su configuración. El enlace se cae, y se detienen su DHCPv4/v6, los router advertisements, las reglas NAT, los reenvíos de puertos y las rutas. El rango de delegación queda reservado. Se permite incluso con clientes en la VLAN sí
vlan enable <name> Restaura una VLAN deshabilitada exactamente como estaba, con los mismos prefijos sí
vlan del [name] Elimina una VLAN (interactivo si no se da un nombre). Se rechaza mientras haya clientes registrados en ella. No se puede deshacer sí
ip add [iface] [ip/cidr] Agrega una dirección IP a una interfaz (interactivo sin argumentos) sí
ip del <iface> <ip/cidr> Elimina una dirección IP. Se rechaza mientras haya clientes registrados que la usen como gateway sí
Ventana de terminal
dtvsol vlan disable vlan100 "OLT maintenance"
dtvsol vlan enable vlan100
dtvsol ip add vlan100 10.110.96.1/21
dtvsol ip del vlan100 10.110.96.1/21

API: Redes y DHCP.

Comando Propósito Modifica
networks Muestra las interfaces, redes y gateways detectados
net list Lista las interfaces con su estado DHCP (verde = servida, rojo = no configurada)
net add Interactivo: agrega una interfaz al DHCP. Escribe la subred con su pool, agrega la interfaz a la lista de escucha del DHCP, prueba la configuración (se revierte si falla) y reinicia el DHCP sí
net del Interactivo: quita una interfaz del DHCP. Se rechaza mientras haya clientes registrados en ella sí
net6 list Las interfaces con su estado DHCPv6
net6 add / net6 del Interactivo: agrega una interfaz al DHCPv6, o la quita sí
net6 pool <iface> [start end] Completa el rango DHCPv6 (y el DNS) para la subred IPv6 de la interfaz sí
net6 lease <valid> [preferred] Fija los tiempos de vida de las direcciones y prefijos DHCPv6, en segundos sí
Ventana de terminal
dtvsol net6 pool vlan100
dtvsol net6 lease 86400 43200

Los resolvers que el DHCP entrega a los abonados. API: Redes y DHCP.

Comando Propósito Modifica
dns Muestra los resolvers que sirve cada VLAN, y qué VLAN no sirven ninguno
dns set [iface] v4=<a,b> [v6=<c,d>] [domain=<name>] [apply=all|missing] Fija los resolvers globales, o la configuración propia de una VLAN cuando usted indica una interfaz. Con apply=all, las VLAN existentes también adoptan el nuevo valor por defecto sí
dns del <iface> Quita la configuración propia de una VLAN para que herede los resolvers globales sí
dns del global <v4|v6|domain|all> Borra un ajuste global (vuelve a no servir nada) sí
Ventana de terminal
dtvsol dns set v4=XXX.XXX.XXX.53,XXX.XXX.XXX.53 v6=XXXX:XXXX::53 domain=example.net apply=all
dtvsol dns set vlan100 v4=10.0.0.53
dtvsol dns del vlan100

API: VLAN, IP y rutas y Redes y DHCP (delegación de prefijos).

Comando Propósito Modifica
route list Lista las rutas administradas y las rutas activas (IPv4 e IPv6)
route add <prefix|default> [via <gw>] [dev <iface>] [comment] Agrega una ruta persistente sí
route del <prefix> [via <gw>] [dev <iface>] Elimina una ruta sí
pd list Delegación de prefijos DHCPv6: pools, capacidad, prefijos fijados, rutas
pd add <iface> [size] Delega prefijos LAN a cada CPE de una VLAN sí
pd resize <iface> <size> Cambia cuántos abonados caben en la porción de la VLAN sí
pd del <iface> Deja de delegar en una VLAN sí
pd assign <mac> [prefix] Fija el prefijo de un abonado. Si usted lo omite, se elige uno automáticamente sí
pd unassign <mac> Libera un prefijo fijado sí
pd sync [--dry-run] Reconcilia ahora las rutas de los prefijos delegados sí (no con --dry-run)
nat list Lista los pools de NAT dinámico y las reglas NAT activas
nat add <iface> <pool_start> [pool_end] [exempt <cidr,cidr>] [comment] Agrega un pool NAT a una interfaz sí
nat del <iface> Quita el pool NAT de una interfaz sí
Ventana de terminal
dtvsol route add default via XXX.XXX.XXX.1 dev vlan100
dtvsol route add 10.20.0.0/16 via 10.0.0.2 "to olt-1 management"
dtvsol pd add vlan100 256
dtvsol pd assign AA:BB:CC:DD:EE:FF XXXX:XXXX:b:5::/64
dtvsol pd sync --dry-run
dtvsol nat add vlan100 XXX.XXX.XXX.10 XXX.XXX.XXX.20 exempt 10.0.0.0/30

La red propia del router (puertos, bonds, sus direcciones, ruta por defecto y DNS) se almacena en la base de datos de configuración y se escribe en netplan. netcfg necesita el binario del daemon. Una aplicación se deshace a menos que usted la confirme en 120 segundos, y se rechaza una aplicación que cortaría su propia sesión SSH. API: Configuración de red.

Comando Propósito Modifica
netcfg show Muestra la configuración de red almacenada, además de las VLAN y las rutas estáticas
netcfg import [--save [--force]] Lee la red en ejecución (kernel y netplan) y muestra el cambio clave por clave. --save la almacena, pero rechaza cualquier cosa que haría perder un ajuste de netplan a menos que usted agregue --force sí (con --save)
netcfg render [--proposed] Imprime el archivo netplan que escribiría (--proposed: el archivo para lo que import almacenaría)
netcfg diff Compara la configuración almacenada, el kernel en vivo y /etc/netplan, e indica si se permite una aplicación
netcfg apply [--try] [--force] Escribe el archivo netplan y lo aplica. Confírmelo en 120 s o se revierte. --try solo lo verifica con netplan generate sí
netcfg confirm Conserva la red aplicada sí
netcfg rollback Restaura ahora la red anterior sí
Ventana de terminal
dtvsol netcfg import
dtvsol netcfg diff
dtvsol netcfg apply --try
dtvsol netcfg apply
dtvsol netcfg confirm

CGNAT determinístico: cada dirección privada se asigna a una dirección pública y un bloque de puertos fijos. API: CGNAT y anti-spoofing.

Comando Propósito Modifica
cgnat / cgnat status Estado: interfaz, pool, rango de puertos, tamaño de bloque, capacidad, asignados y libres
cgnat set [enable|disable] [iface <if>] [pool <range>] [block <n>] [exempt <cidrs>] Configura el CGNAT sí
cgnat lookup <public_ip> <port> Averigua qué abonado usó una IP pública y un puerto
Ventana de terminal
dtvsol cgnat set enable iface vlan200 pool XXX.XXX.XXX.0/28 block 2048 exempt 10.0.0.0/30
dtvsol cgnat lookup XXX.XXX.XXX.5 40123

Vincula IP, MAC y VLAN: un paquete procedente de una VLAN se reenvía solo cuando su MAC e IP de origen forman un par conocido, y lo mismo aplica a ARP. Todo lo demás se descarta y se registra con la MAC que lo envió. Para IPv6, la dirección reservada de un cliente, su dirección DHCPv6 y su prefijo delegado quedan vinculados a su MAC. El tráfico link-local siempre pasa, y los router advertisements o redirects procedentes de los abonados se descartan. API: CGNAT y anti-spoofing.

Comando Propósito Modifica
antispoof Estado: el modo por VLAN, los vínculos y los descartes de la última hora
antispoof on / antispoof off Aplica en cada VLAN que sirve el DHCP, o quita todas las reglas (la configuración se conserva) sí
antispoof set [mode strict|dynamic] [log on|off] [exempt <cidr,...>|none] strict: solo los clientes registrados reciben servicio (los dispositivos no registrados siguen recibiendo DHCP, por lo que aparecen en dtvsol ips). dynamic: también permite los dispositivos no registrados en la dirección que el DHCP les asignó. log: un log del kernel de los descartes, con límite de tasa. exempt: direcciones permitidas desde cualquier MAC (por ejemplo, la dirección de relay de una OLT) sí
antispoof iface <vlan> <strict|dynamic|off|default> Fija el modo de una VLAN. off excluye la VLAN. Una configuración propia en una VLAN que el DHCP no sirve la agrega sí
antispoof log [since] [limit] Paquetes descartados agrupados por dispositivo. since: 30m, 2h, 1d (por defecto 1 hora)
antispoof sync Reconstruye las reglas ahora. Normalmente no es necesario, porque cada cambio de cliente o de VLAN y cada cambio de lease lo hace sí
Ventana de terminal
dtvsol antispoof set mode strict exempt 10.0.0.0/30 && dtvsol antispoof on
dtvsol antispoof iface vlan100 dynamic
dtvsol antispoof log 2h 100

API: Protección.

Comando Propósito Modifica
protect list Lista las redes que pueden llegar al puerto de la API (y al monitor de OLT)
protect add <network> [comment] Permite una red sí
protect del <network> Quita una red sí
firewall list Muestra las reglas de filtrado por MAC
firewall vlan <svlan> Muestra las reglas MAC de una interfaz VLAN
portforward list Lista los reenvíos de puertos (también pf)
portforward add <tcp|udp> <pub_port> <client_ip> <client_port> [pub_ip] [comment] Reenvía un puerto público a un cliente sí
portforward del <tcp|udp> <pub_port> [pub_ip] Elimina un reenvío de puerto sí
fail2ban / fail2ban status Bloqueos por claves de API fallidas e inicios de sesión SSH fallidos, por jail
fail2ban unban <ip> Levanta un bloqueo sí
option82 Muestra los circuit ID y remote ID del relay DHCP (OLT y puerto) vistos en los leases actuales
option82 enable|disable Activa o desactiva la captura de Option 82 sí
snmp / snmp status Estado del agente SNMP del router
snmp set [community <c>] [location <l>] [contact <ct>] Configura el agente SNMP sí

Después de dtvsol init, la protección siempre está activa y solo localhost puede llegar a la API. Agregue sus redes de facturación, middleware y oficina.

Ventana de terminal
dtvsol protect add 10.10.10.0/24 "Office network"
dtvsol protect add XXX.XXX.XXX.7 "Billing server"
dtvsol portforward add tcp 8443 10.110.0.5 443 XXX.XXX.XXX.10 "Customer camera"
dtvsol portforward del tcp 8443 XXX.XXX.XXX.10
dtvsol fail2ban unban XXX.XXX.XXX.20
dtvsol snmp set location "POP 1" contact noc@example.net

Un listener en el puerto 8728 que habla la API de MikroTik RouterOS, para que los sistemas de facturación escritos para MikroTik puedan crear, modificar, suspender y eliminar clientes DHCP/IPoE y fijar su velocidad. PPPoE se rechaza. La red del servidor de facturación debe estar en la lista de permitidos (dtvsol protect add). API: API compatible con MikroTik.

Comando Propósito Modifica
mkapi / mkapi status Muestra el estado del servicio, el puerto, el usuario, si hay una contraseña configurada, la identidad reportada y el número de clientes mapeados
mkapi set user <u> password <p> [port <n>] [identity <name>] [model <m>] [version <v>] Cambia la configuración y reinicia el listener sí
Ventana de terminal
dtvsol mkapi set user billing password 'CHOOSE-A-PASSWORD' identity router-1

Control de OLT Huawei de la familia MA5600T (MA5608T, MA5680T, MA5683T). Elija la OLT con --olt <name>, que por defecto es la única OLT registrada, o haga una llamada puntual con --host <ip> --user <u> --pass <p> (más --ssh, --port <n> y --raw opcionales). Para llamadas puntuales también puede definir las variables de entorno OLT_HOST, OLT_USER y OLT_PASS, o dejar que la herramienta las pida (la contraseña no se muestra). No se guarda nada de una OLT puntual. API: OLT.

Registro y mantenimiento

Comando Propósito Modifica
olt list Lista las OLT registradas (nunca la contraseña)
olt add <name> <host> [user] [--pass p] [--ssh] [--svlan n] [--iptv n] [--operator|--owner] Registra una OLT. --svlan es la S-VLAN de este router en ella, e --iptv su VLAN de IPTV sí
olt set <name> ... Modifica una OLT registrada (mismas opciones) sí
olt del <name> Quita una OLT del registro sí
olt sync [--dry-run] [--olt n] Envía los planes de este router a cada OLT registrada (perfiles y tablas de velocidad) sí (no con --dry-run)
olt init [--olt n] [--svlan n] [--iptv n] [--operator] [--ntp ip] [--parent iface] [--apply] Deja una OLT con la configuración base para este router. Es un dry-run salvo con --apply sí (con --apply)
olt backup Respalda ahora la configuración de la OLT en git
olt backups El historial de respaldos, y si los cambios de la OLT están guardados en flash
olt diff [c] [c2] Qué cambió entre respaldos
olt doctor Igual que dtvsol doctor, que verifica la OLT contra los registros del router
olt vault status|bind|rebind ... Estado del almacén de los secretos de las OLT, que están vinculados a esta máquina. rebind los recupera después de reemplazar el hardware del router sí (bind, rebind)

Un temporizador de mantenimiento guarda los cambios en flash y los respalda automáticamente.

Lectura

Comando Propósito
olt info Producto, versión, uptime, tarjetas, reloj, NTP
olt autofind ONT no registradas (F/S/P, serial, fabricante, cuándo se vieron)
olt onus [f/s/p] ONT registradas: id, serial, estado de ejecución, de configuración y de coincidencia
olt vlans La tabla de VLAN y las VLAN etiquetadas en cada puerto de uplink
olt sp Service-ports (flujos de abonados)
olt profiles Perfiles DBA, de línea y de servicio
olt config [out.txt] La configuración actual (un respaldo)
olt run "display ..." Cualquier comando display, con la salida sin procesar

Escritura (no se guarda nada en flash hasta olt save)

Comando Propósito
olt vlan add <id> [uplinks 0/3/0,0/3/1] [desc "text"] [type smart|standard] Crea una VLAN en la OLT
olt vlan del <id> [uplinks ...] Elimina una VLAN
olt uplink add|del <vlan> <f/s/p> Etiqueta una VLAN en un puerto de uplink, o quita la etiqueta
olt profile add <vlan> [dba <id>] [eth <ports>] Crea un perfil de línea y de servicio dtvsol-v<vlan>
olt profile del <id> Elimina un perfil
olt ont add <f/s/p> <sn> <vlan> [desc] [--plan p] [--iptv-on] Registra una ONT por serial, con una VLAN nativa en eth 1 y un service-port en <vlan>. --plan aplica los perfiles y las tablas de velocidad del plan, e --iptv-on agrega IPTV en eth 2 con un segundo service-port
olt ont del <f/s/p> <id> [--force] Elimina una ONT y sus service-ports
olt ont reboot <f/s/p> <id> [--force] Reinicia una ONT. Tanto del como reboot rechazan una ONT cuyos service-ports están en la S-VLAN de otro operador. --force solo funciona con una ONT que no tiene service-ports
olt ont desc <f/s/p> <id> "text" Fija la descripción de una ONT
olt ont optical <f/s/p> [id] Lecturas ópticas: potencia rx/tx, temperatura, voltaje (solo lectura)
olt ntp <server> Apunta la OLT a un servidor NTP
olt sysname <name> Fija el nombre de sistema de la OLT
olt save Guarda la configuración en flash
olt exec "<cmd>" ["<cmd>" ...] Ejecuta comandos de configuración en orden, en modo config. Se detiene en el primero que la OLT rechace
Ventana de terminal
# typical first subscriber on a bare OLT
dtvsol olt vlan add 100 uplinks 0/3/0
dtvsol olt profile add 100 dba 5
dtvsol olt autofind
dtvsol olt ont add 0/0/0 48575443A1B2C3D4 100 "Customer 1"
dtvsol olt save
dtvsol olt add olt-1 10.20.0.2 admin --ssh --svlan 400 --iptv 200
dtvsol olt sync --dry-run
dtvsol olt ont optical 0/0/3 --olt olt-1
dtvsol olt diff
Comando Propósito Modifica
ntp / ntp status Muestra el servicio de hora para las OLT que este router administra
ntp setup Sirve la hora desde aquí (chrony) y apunta cada OLT administrada al router sí

El monitor de OLT es la página web del router para el NOC. Solo es accesible desde la lista de permitidos de la API (dtvsol protect list) y usa un certificado autofirmado.

Comando Propósito Modifica
monitor / monitor status Dónde está el monitor (su URL), si está en ejecución y cuántos usuarios tiene
monitor users Lista los usuarios que pueden iniciar sesión
monitor user add <name> [admin|viewer] Agrega un usuario. La contraseña se pide dos veces. Un usuario nuevo es viewer a menos que usted indique admin sí
monitor user passwd <name> Cambia la contraseña de un usuario sí
monitor user del <name> Elimina un usuario sí
monitor user role <name> admin|viewer Cambia el rol de un usuario. Un admin puede cambiar la configuración desde la página, y un viewer solo puede verla sí
monitor wall add <name> Agrega una pantalla para la sala de soporte (el wall 24/7). Muestra el enlace que se debe abrir en esa pantalla sí
monitor wall del <name> Elimina una pantalla del wall sí
monitor walls Lista las pantallas del wall
Ventana de terminal
dtvsol monitor user add alice admin
dtvsol monitor user add noc1
dtvsol monitor user role noc1 admin
dtvsol monitor wall add noc-room
dtvsol monitor walls

API: Alarmas y salud y Sistema.

Comando Propósito
doctor [--no-olt] Una auditoría completa de la configuración y de lo que sobrevive a un reinicio. Cuando hay una OLT registrada, se verifica contra los registros de este router (S-VLAN, uplinks, Option 82, la ONT y el service-port de cada servicio). --no-olt omite la OLT, lo que es más rápido (también dtvsol check)
alerts Condiciones actuales que merecen atención
alarms El registro de alarmas: qué está mal ahora y desde cuándo (se verifica cada minuto)
alarms all Lo mismo, más las alarmas despejadas en los últimos 7 días
alarms history [n] Las últimas n activaciones y despejes (por defecto 50)

La configuración del router se guarda en versiones, como la flash de un switch, en la base de datos de configuración. Estos comandos se ejecutan como root en el equipo, por lo que una restauración funciona incluso cuando la API no. API: Sistema.

Comando Propósito Modifica
config / config status Estado del almacén y de la configuración en ejecución
config save ["comment"] Guarda la configuración en ejecución como una nueva versión sí
config versions [n] Lista las versiones guardadas
config diff <a> [b|running] Compara dos versiones, o una versión con la configuración en ejecución
config show <id> [path] Muestra una versión, o un archivo de ella
config restore <id> --yes Restaura una versión sí
config docs Dónde se encuentra cada documento de configuración (archivo o base de datos)
config migrate <name>|all Mueve documentos a la base de datos sí
config export <name> Imprime un documento
config edit <name> Edita un documento de forma segura: se verifica el JSON y antes se guarda una versión sí
Ventana de terminal
dtvsol config save "before adding vlan100"
dtvsol config versions 10
dtvsol config diff 41 running
dtvsol config restore 41 --yes
dtvsol config edit plans

API: Sistema.

Comando Propósito Modifica
backup [outfile.tar.gz] Descarga un respaldo puntual de la configuración y los datos del router
backup now Ejecuta ahora el respaldo diario (una copia local más una copia cifrada fuera del sitio)
backup list Lista los respaldos locales
backup status Último respaldo local y fuera del sitio, errores y la próxima ejecución programada
restore <file.tar.gz> Restaura desde un archivo de respaldo sí
Ventana de terminal
dtvsol backup /root/router-1-backup.tar.gz
dtvsol backup status
Comando Propósito Modifica
licence / licence status Muestra la licencia de plataforma del router
licence refresh [-v] Obtiene la licencia ahora. Un temporizador diario también lo hace sí
licence enrol <router-id> <token|-> Inscribe el router con el ID y el token de la plataforma de gestión. - lee el token de la entrada estándar sí
Ventana de terminal
echo "$TOKEN" | dtvsol licence enrol router-1 -

(El grupo se llamaba service antes de la v2.8. Ese nombre ahora corresponde al servicio del abonado.)

Comando Propósito Modifica
daemon status Estado de la API y del DHCP, y el número de clientes por red
daemon reload Fuerza una recarga del DHCP sí
daemon start / stop / restart Controla el servicio de la API (systemd) sí
daemon log Las últimas 50 líneas del log de la API
daemon logf Sigue el log de la API en vivo
Comando Propósito Modifica
init Configuración inicial: PATH, unidades systemd, protección, autocompletado con Tab sí
version La versión del software del router, el commit y los estados de los servicios