/netconsole

Configure Switch Interface, Show ARP, MAC Address, IP Address

Primary LanguageTypeScriptMIT LicenseMIT

Network Console Tool

Technology Stack and Features

  • FastAPI for the Python backend API.
  • 🚀 React for the frontend.
  • 🐋 Docker Compose for development and production.
  • Features:
    • Switches: get system information. Support: Cisco, Juniper
    • Interfaces: show running config, configure interface mode access|trunk (Juniper view only)
    • Collect information: MAC, ARP, IP Interfaces and tracking first seen, last seen.
    • Apply config multiple switches via nornir-netmiko: Group Config features

Demo

Netconsole Demo: https://youtu.be/HtHIZleYdnw

Dashboard Login

API docs

Dashboard - Admin

API docs

Dashboard - Interfaces

API docs API docs API docs API docs

Dashboard - MAC Address

API docs

Dashboard - ARP

API docs

Dashboard - IP interfaces

API docs

Interactive API Documentation

API docs API docs API docs

How To Use It

git clone https://github.com/thangphan205/netconsole
  • Enter into the directory:
cd netconsole

Configure

You can then update configs in the .env files to customize your configurations.

Before deploying it, make sure you change at least the values for:

  • SECRET_KEY
  • FIRST_SUPERUSER_PASSWORD
  • POSTGRES_PASSWORD

You can (and should) pass these as environment variables from secrets.

Read the deployment.md docs for more details.

Generate Secret Keys

Some environment variables in the .env file have a default value of changethis.

You have to change them with a secret key, to generate secret keys you can run the following command:

python -c "import secrets; print(secrets.token_urlsafe(32))"

Copy the content and use that as password / secret key. And run that again to generate another secure key.

Docker up and running

In the netconsole directory

docker compose build
docker compose up -d

Web access: http://localhost

API Docs: http://localhost/docs

DB admin: http://localhost:8080

traefik dashboard: http://localhost:8090

Docker stop

docker compose down

Switch configuration to work with netconsole.

  • Cisco IOS: Tested WS-C3750G-48T
username netconsole privilege 15 secret changethis
  • Cisco Nexus
role name netconsole
  rule 4 permit read-write feature interface
  rule 3 permit read-write feature copy
  rule 2 permit read
  rule 1 permit command show running-config *

username netconsole password changethis role netconsole
  • Juniper JUNOS
set system login class read-only-all permissions view
set system login class read-only-all permissions view-configuration
set system login user netconsole class read-only-all
set system login user netconsole authentication plaintext <changethis>