Skip to content

BGP simulators using docker containers that represent as a single router communicating to each other

License

Notifications You must be signed in to change notification settings

FrancescaCapra/Bgp-Simulator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BGP Protocol Simulator

Overview

This project presents a fully-featured simulator for the Border Gateway Protocol (BGP), specifically designed for modeling inter-AS (Autonomous System) routing in a scalable and customizable environment. Each router operates as an independent Docker container, ensuring modularity, flexibility, and ease of deployment. The simulator integrates essential BGP functionalities, error simulation, and an innovative trust-based voting mechanism to enhance routing decisions.


Key Features

  • Customizable Topology: Easily define network links and routing policies for each simulation.
  • Dynamic Routing Tables: Automatically constructs and updates routing tables to reflect topology changes.
  • Comprehensive BGP Message Support: Includes KEEPALIVE, UPDATE, and error messages.
  • Trust-Based Routing: Incorporates direct and neighbor-voted trust metrics to influence routing decisions.
  • Error Simulation: Allows testing of failure scenarios, such as router outages and link drops.
  • Modular Design: A Docker-based architecture facilitates easy scaling and maintenance.

Prerequisites


Installation and Setup

Step 1: Clone the Repository

Clone the project repository to your local system:

git clone <https://github.com/FrancescaCapra/bgp-simulator.git>
cd bgp-simulator

Step 2: Build Docker Images

Build the Docker images for the BGP routers using:

docker-compose build

Step 3: Start the Simulation

Start the simulation with:

docker-compose up

Step 4: Stop the Simulation

Stop the simulation and clean up resources using:

docker-compose down

Configuration

Router Configuration

Router settings are defined in the configs/ directory. Configuration files specify:

  • Neighbor relationships.
  • Routing policies.
  • Trust and voting parameters.

To add or modify routers:

  1. Update or create new configuration files in configs/.
  2. Reflect changes in docker-compose.yml.
  3. Rebuild and restart the simulation.

Network Topology

The network topology is fully customizable. Use the configuration files to define router links, ensuring alignment with the service definitions in docker-compose.yml.

About

BGP simulators using docker containers that represent as a single router communicating to each other

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published