Skip to content

A sophisticated network automation and monitoring system that simulates and manages BGP-based networks using Docker containers, with advanced fault injection and monitoring capabilities.

Notifications You must be signed in to change notification settings

Yash-Chandrani/NetBot

Repository files navigation

NetBot - Self-Diagnostic Network Automation

A sophisticated network automation and monitoring system that simulates and manages BGP-based networks using Docker containers, with advanced fault injection and monitoring capabilities.

Features

  • BGP Network Simulation using FRRouting (FRR)
  • Automated Fault Injection
  • Real-time Network Monitoring
  • Anomaly Detection
  • Automated Remediation
  • Prometheus & Grafana Integration

Architecture

The project consists of the following components:

  1. Network Simulation

    • Docker containers running FRRouting
    • BGP peering between nodes
    • Configurable network topology
  2. Fault Injection System

    • Link loss simulation
    • Interface down scenarios
    • CPU stress testing
  3. Monitoring Agent

    • BGP route monitoring
    • Latency tracking
    • Peer availability checks
    • Anomaly detection
  4. Automation Framework

    • Ansible playbooks for remediation
    • Container management
    • Network interface control
    • BGP route manipulation
  5. Metrics & Visualization

    • Prometheus metrics collection
    • Grafana dashboards
    • Real-time monitoring
    • Historical data analysis

Prerequisites

  • Docker
  • Python 3.8+
  • Ansible
  • Prometheus
  • Grafana

Installation

  1. Clone the repository:

    git clone https://github.com/yourusername/netbot.git
    cd netbot
  2. Install Python dependencies:

    pip install -r requirements.txt
  3. Start the network simulation:

    docker-compose up -d
  4. Start the monitoring agent:

    python src/monitoring/agent.py
  5. Access Grafana dashboard at http://localhost:3000

Project Structure

netbot/
├── docker/
│   ├── Dockerfile
│   └── frr/
│       └── configs/
├── src/
│   ├── monitoring/
│   │   ├── agent.py
│   │   └── metrics.py
│   ├── fault_injection/
│   │   └── injector.py
│   └── utils/
│       └── network.py
├── ansible/
│   └── playbooks/
├── prometheus/
│   └── prometheus.yml
├── grafana/
│   └── dashboards/
├── docker-compose.yml
├── requirements.txt
└── README.md

Usage

  1. Starting the Network

    docker-compose up -d
  2. Injecting Faults

    python src/fault_injection/injector.py --type link_loss --node r1 --duration 60
  3. Monitoring

    python src/monitoring/agent.py
  4. Viewing Metrics

    • Access Grafana at http://localhost:3000
    • Default credentials: admin/admin

Contributing

  1. Fork the repository
  2. Create your feature branch
  3. Commit your changes
  4. Push to the branch
  5. Create a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

About

A sophisticated network automation and monitoring system that simulates and manages BGP-based networks using Docker containers, with advanced fault injection and monitoring capabilities.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published