Skip to content

GNS3 Simulation

Jack Wampler edited this page Oct 18, 2021 · 16 revisions

GNS3 logo

Simulating Conjure in GNS3

GNS3 provides a convenient network simulation platform for testing and developing the Conjure refraction networking system. This page will walk through the setup of GNS3 (and some sharp corners to avoid) as well as the setup of the conjure system.

Note: This is just one way to set up the environment - there are likely better, more convenient, or easier ways to accomplish the same goal. This document is a work in progress. Make a PR if you find an improvement to the setup or workflow involving the GNS3 simulation environment.

GNS3 Overview & installation

VM Environments

While GNS3 does support Virtualbox, this is as of yet, untested and the current simulation instructions use VMWare Workstation.

Note: It is suggested to use the GNS3 VM to run network topologies, however this must be the same version as your local client (major, minor, and patch) - i.e GNS3 VM v2.2.25 will not work with GNS3 client v2.2.26. See the GNS3 page about upgrading the VM if you run into this issue.

VMWare

Tap Topology

Configuration

Once the network topology is properly configured and the station is built and ingesting packets we can turn to the client to ensure that connections will be picked up by the station.

Workflow

Station

The station runs on the Ubuntu_20.04_server image in a docker container. The development workflow for station development will typically consist of software updates, followed by a docker build and docker-compose up. To use local changes in the docker build (rather than pulling committed changes) the docker-compose file should be modified to include CUSTOM_BUILD: "1" in the environment args for ALL services.

    service_name:
      ...
      build:
        args:
          CUSTOM_BUILD: "1"

Client