NSL-Graph é unha ferramenta libre para modelar, visualizar e auditar infraestruturas de rede. Tres caras nun mesmo modelo: CLI en Go, API HTTP e interfaz web en PHP. _Parsing_ de configuracións reais de OPNsense, OpenWrt e Fortinet. Xeración idempotente de configuracións. Exportación a diagramas D2. Licenza AGPL-3.0.
As infraestruturas de rede dependen, no mellor dos casos, de NMS propietarios opacos; no peor, de scripts ad hoc cuxa lóxica reside na cabeza dunha persoa. Auditar unha configuración de firewall require acceso ao sistema, e xerar un diagrama de topoloxía require debuxar á man. NSL-Graph ofrece unha alternativa: un modelo de datos declarativo, _parsing_ de configuracións reais, e _push_ idempotente cara aos dispositivos.
Todo o que precisas para describir e operar unha rede, baixo unha única licenza copyleft forte.
Xera diagramas de topoloxía a partir do modelo declarativo. Dispositivos, portos, conexións, VLANs, SSID e zonas de seguridade, todo nun só ficheiro D2 exportable.
Modela VLANs con cores diferenciadas, conexións _trunk_ e _access_, e detección de inconsistencias entre o declarado e o real.
OPNsense, OpenWrt, Fortinet. _Parsers_ escritos desde cero a partir das especificacións públicas, sen código propietario embebido.
Coordena datos operacionais SNMP coa configuración declarativa. Detecta deriva (drift) entre o que _dixes_ que tes e o que realmente hai.
Almacén _vault_ local con golang.org/x/crypto. As chaves SSH e API non abandonan o disco en claro.
Aplicación aditiva de NTP, VLAN e rutas contra OPNsense e OpenWrt. Podes re-executar o mesmo _push_ sen romper nada.
CLI con cobra, API REST con gorilla/mux, e interfaz web en PHP. Usa a que máis conveña ao teu fluxo.
unha vintena de _suites_ con stretchr/testify. Cada cambio pasa por probas automatizadas en CI.
Necesitas Go 1.21+ e, opcionalmente, PHP para a interfaz web e D2 para os diagramas.
git clone https://github.com/Talleyrand-34/nsl
cd nsl
go build -o nsl-graph main.go
./nsl-graph server --port 8081
php -S localhost:8091 -t frontend/php
NSL-Graph distribúese baixo a GNU Affero General Public License v3 (AGPL-3.0-or-later). A escolla non é casualidade: a sección 13 da AGPL é a única cláusula estándar que pecha a ASP loophole, obrigando a ofrecer o _Corresponding Source_ a calquera persoa usuaria que interactúe remotamente co servizo. Unha licenza permí-siva deixaría un terceiro despregar o servizo en produción sen contribuír nada de volta.
Os 374 ficheiros fonte do proxecto declaran SPDX-License-Identifier: AGPL-3.0-or-later de forma consistente co LICENSE.md raíz. Auditoría previa corrixiu 50 cabeceiros que contradicían a licenza do proxecto.
Todas as dependencias importadas son permí-sivas (BSD-3-Clause, Apache-2.0, MIT), absorbidas sen risco pola AGPL. Non se importa _copyleft_ forte alleo (LGPL, GPL, EUPL) que crearía conflitos de compatibilidade.
O proxecto está en fase de estabilización do núcleo. _Forks_, _issues_ e _pull requests_ son benvidos. Se tes unha infraestrutura real con OPNsense ou OpenWrt, o _parsing_ xa está listo; o _push_ idempotente está en maduración.