• Stars
    star
    201
  • Rank 194,491 (Top 4 %)
  • Language
    Go
  • License
    Apache License 2.0
  • Created almost 5 years ago
  • Updated 5 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

TiNET is network emulator environment for network function developer, routing software developer and networking educator. this is very simple tool that generate just shell script to construct virtual network.

tinet

test release License Go Report Card

An instant virtual network on your laptop with light-weight virtualization. Here we introduce the Container Network Simulation tools. Users can generate, from the YAML configuration file, the script to build the L2 container network. Quickstart guide is provided in QUICKSTART.md. It is tested on Ubuntu 16.04 LTS and later.

Requirements

  • Docker
  • OpenvSwitch (optional)
  • graphviz (optional)

Quick Install

There is only linux_amd64 pre-built binary

curl -Lo /usr/bin/tinet https://github.com/tinynetwork/tinet/releases/download/v0.0.3/tinet.linux_amd64
chmod +x /usr/bin/tinet
tinet --version

for ubuntu user

sudo apt update
sudo apt install -y linux-image-extra-virtual
sudo reboot

upgrading the kernel

$ sudo apt list "linux-image-5.15.*-generic"
linux-image-5.15.0-33-generic/focal-updates,focal-security 5.15.0-33.34~20.04.1 amd64
$ sudo apt install linux-image-5.15.0-33-generic linux-modules-5.15.0-33-generic linux-modules-extra-5.15.0-33-generic
$ sudo reboot
$ sudo grep 'menuentry ' $(sudo find /boot -name "grub.cfg") | cut -f 2 -d "'" | nl -v 0
     0  Ubuntu
     1  Ubuntu, with Linux 5.15.0-33-generic
     2  Ubuntu, with Linux 5.15.0-33-generic (recovery mode)
     3  Ubuntu, with Linux 5.4.0-113-generic
     4  Ubuntu, with Linux 5.4.0-113-generic (recovery mode)
$ sudo grub-set-default 3
$ sudo reboot

Build

git clone https://github.com/tinynetwork/tinet tinet && cd $_
docker run --rm -i -t -v $PWD:/v -w /v golang:1.12 go build
mv tinet /usr/local/bin

Usage

tinet up -c spec.yaml | sudo sh -x
tinet conf -c spec.yaml | sudo sh -x
tinet test -c spec.yaml | sudo sh -x
tinet down -c spec.yaml | sudo sh -x
docker run -it --rm --privileged --net=container:R1 nicolaka/netshoot bash

Command Options

# tinet
NAME:
   tinet - tinet: Tiny Network

USAGE:
   tinet [global options] command [command options] [arguments...]

VERSION:
   0.0.1 (rev:)

AUTHOR:
   ak1ra24 <[email protected]>

COMMANDS:
   check    check config
   conf     configure Node from tinet config file
   down     Down Node from tinet config file
   exec     Execute Command on Node from tinet config file.
   img      visualize network topology by graphviz from tinet config file
   init     Generate tinet config template file
   ps       docker and netns process
   pull     Pull Node docker image from tinet config file
   reconf   Stop, remove, create, start and config
   reup     Stop, remove, create, start
   test     Execute test commands from tinet config file.
   up       create Node from tinet config file
   upconf   Create, start and config
   help, h  Shows a list of commands or help for one command

GLOBAL OPTIONS:
   --help, -h     show help (default: false)
   --version, -v  print the version (default: false)

Contribute

Simply fork and create a pull-request. We'll try to respond in a timely fashion.

Links