All Projects → tinynetwork → tinet

tinynetwork / tinet

Licence: Apache-2.0 license
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.

Programming Languages

go
31211 projects - #10 most used programming language
Dockerfile
14818 projects
Makefile
30231 projects
c
50402 projects - #5 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to tinet

tinet
This is moved to http://github.com/tinynetwork/tinet
Stars: ✭ 41 (-59.8%)
Mutual labels:  container-networking, network-simulation
cf-networking-release
Container Networking for CloudFoundry
Stars: ✭ 66 (-35.29%)
Mutual labels:  container-networking
Network-Simulation-Using-Cisco-Packet-Tracer
🖧 Designed this network configuration for the network of three companies, given some constraints. Its an interesting problem demonstrating the concepts of Classless IP Subnetting and using RIPv2 Protocol.
Stars: ✭ 47 (-53.92%)
Mutual labels:  network-simulation
Weave
Simple, resilient multi-host containers networking and more.
Stars: ✭ 6,221 (+5999.02%)
Mutual labels:  container-networking
cni-benchmarks
A simple program to benchmark various container networking (CNI) plugins.
Stars: ✭ 85 (-16.67%)
Mutual labels:  container-networking
virl2-client
Client library for the Cisco VIRL 2 Network Simulation Platform
Stars: ✭ 39 (-61.76%)
Mutual labels:  network-simulation

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

curl -Lo /usr/bin/tinet https://github.com/tinynetwork/tinet/releases/download/v0.0.2/tinet
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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].