gonetem

module
v0.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 17, 2024 License: GPL-3.0

README

gonetem

Description

gonetem is a network emulator written in go based on

  • docker to emulate nodes (host, server or router)
  • OpenvSwitch to emulate switch

Architecture

gonetem is composed of 2 parts:

  • gonetem-server: it's the core of gonetem to emulate networks. It needs root access to create/launch docker nodes / switches and to create links between them.
  • gonetem-console: it's the console client to control gonetem-server

Requirements

  • gonetem-server depends on docker
  • gonetem-console depends on:
    • xterm to open console
    • wireshark to capture trafic

Installation

You can compile gonetem with the command

$make build-[amd64|armv7|arm64]

The 2 binaries are then available in the bin folder

Import docker images

Before using gonetem, you need to pull from docker hub images used by gonetem.

  • mroy31/gonetem-frr -> to emulate router based on frr software
  • mroy31/gonetem-host -> tp emulate host
  • mroy31/gonetem-server -> to emulate server
  • mroy31/gonetem-ovs -> to emulate switch with Openvswitch

To do that, you can use the following command:

$gonetem-console pull

Usage

To use gonetem, firstly you have lo launch gonetem-server with the root right. You can use the following command for example:

$sudo gonetem-server

Then, you can use gonetem-console to create/launch project. For example to create an empty project:

$gonetem-console create ./myproject.gnet

And after to open it

$gonetem-console open ./myproject.gnet
$[myproject]> edit # if you want to edit the topology
$[myproject]> reload # to reload the new topology
$[myproject]> console all # to open all consoles
$[myproject]> quit

License

GNU General Public License v3.0 or later

See COPYING to see the full text.

Directories

Path Synopsis
cmd
internal
ovs

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL