All Projects → imunes → Imunes

imunes / Imunes

Licence: other
Integrated Multiprotocol Network Emulator/Simulator

Programming Languages

tcl
693 projects

Projects that are alternatives of or similar to Imunes

Clsync
file live sync daemon based on inotify/kqueue/bsm (Linux, FreeBSD), written in GNU C
Stars: ✭ 115 (-41.92%)
Mutual labels:  freebsd
Pfsense Api
The missing REST API package for pfSense
Stars: ✭ 126 (-36.36%)
Mutual labels:  freebsd
Terrible
An Ansible playbook that apply the principle of the Infrastructure as Code on a QEMU/KVM environment.
Stars: ✭ 161 (-18.69%)
Mutual labels:  freebsd
Mg
Micro (GNU) Emacs-like text editor ❤️ public-domain
Stars: ✭ 117 (-40.91%)
Mutual labels:  freebsd
Serverfarmer
Manage multiple servers with different operating systems, configurations, requirements etc. for many separate customers in an outsourcing model.
Stars: ✭ 122 (-38.38%)
Mutual labels:  freebsd
Rust Battop
Interactive batteries viewer
Stars: ✭ 133 (-32.83%)
Mutual labels:  freebsd
Libtuntap
The portable Tun/Tap devices configuration utility
Stars: ✭ 107 (-45.96%)
Mutual labels:  freebsd
Cacule Cpu Scheduler
The CacULE CPU scheduler is based on interactivity score mechanism. The interactivity score is inspired by the ULE scheduler (FreeBSD scheduler).
Stars: ✭ 185 (-6.57%)
Mutual labels:  freebsd
Bsdrp
BSD Router Project
Stars: ✭ 126 (-36.36%)
Mutual labels:  freebsd
Durden
Desktop Environment for Arcan
Stars: ✭ 158 (-20.2%)
Mutual labels:  freebsd
Wikiman
Wikiman is an offline search engine for manual pages, Arch Wiki, Gentoo Wiki and other documentation.
Stars: ✭ 117 (-40.91%)
Mutual labels:  freebsd
Freebsd Vscode
Visual Studio Code port for FreeBSD
Stars: ✭ 121 (-38.89%)
Mutual labels:  freebsd
Homura
Windows Games Launcher for FreeBSD 🎮
Stars: ✭ 134 (-32.32%)
Mutual labels:  freebsd
Openbsm
OpenBSM open audit implementation
Stars: ✭ 116 (-41.41%)
Mutual labels:  freebsd
Objfw
[Official Mirror] A portable framework for the Objective-C language.
Stars: ✭ 161 (-18.69%)
Mutual labels:  freebsd
Fisy Fuzz
This is the full file system fuzzing framework that I presented at the Hack in the Box 2020 Lockdown Edition conference in April.
Stars: ✭ 110 (-44.44%)
Mutual labels:  freebsd
Warzone2100
Command the forces of The Project in a battle to rebuild the world after mankind has been nearly destroyed by nuclear missiles. A 100% free and open source real-time strategy game for Windows, macOS, Linux, BSD+
Stars: ✭ 2,094 (+957.58%)
Mutual labels:  freebsd
Fnt
apt for fonts, the missing font manager for macOS/linux
Stars: ✭ 187 (-5.56%)
Mutual labels:  freebsd
Libxo
The libxo library allows an application to generate text, XML, JSON, and HTML output using a common set of function calls. The application decides at run time which output style should be produced.
Stars: ✭ 185 (-6.57%)
Mutual labels:  freebsd
Rar2fs
FUSE file system for reading RAR archives
Stars: ✭ 155 (-21.72%)
Mutual labels:  freebsd

IMUNES - an Integrated Multiprotocol Network Emulator / Simulator


IMUNES GUI is a simple Tcl/Tk based management console, allowing for specification and management of virtual network topologies. The emulation execution engine itself operates within the operating system kernel.

System requirements

Operating system (FreeBSD)

Note: Since FreeBSD 12.0, kernel option VIMAGE is already included in the kernel, so there is no need to recompile the kernel with it.

Note: FreeBSD 12.0 RELEASE version had some instabilities, so we recommend installing IMUNES on FreeBSD-12.0-STABLE-20190418-r346338 or newer.

When IMUNES is used on top of FreeBSD 8 (or higher) it requires a kernel that is compiled with the VIMAGE option included. A sample kernel config file is as follows:

include GENERIC
nooptions FLOWTABLE
options VIMAGE
options VNET_DEBUG
options KDB
options DDB

options IPSEC
device  crypto
options IPSEC_DEBUG
#options IPSEC_NAT_T not needed for FreeBSD versions 11.2+

To compile the VIMAGE enabled kernel you must have a copy of the FreeBSD kernel and create the config file with the above mentioned lines.

# cd /usr/src/sys/amd64/conf/ #for 64bit machines
# cd /usr/src/sys/i386/conf/  #for 32bit machines
# vi VIMAGE

Then you need to compile and install the kernel and reboot.

# config VIMAGE
# cd ../compile/VIMAGE

### standard compilation (single thread)
# make depend && make
### concurrent compliation (e.g. 4 threads)
# make -j4 depend && make -j4

# make install
# reboot

FreeBSD packages

First we need to install the packages required for IMUNES. To do this execute the following command (on FreeBSD 9.3 and higher):

# pkg install tk86 ImageMagick6 tcllib wireshark socat git gmake

Operating system (Linux)

When IMUNES is used on top of Linux a 3.10 Linux kernel is the minimum requirement.

Linux packages

First we need to install the packages required for IMUNES:

tcl (version 8.6 or greater)
tk (version 8.6 or greater)
tcllib
wireshark (with GUI)
ImageMagick
Docker (version 1.6 or greater)
OpenvSwitch
nsenter (part of the util-linux package since version 2.23 and later)
xterm
make (used for installation)

To run IMUNES experiments, you must run the Docker daemon and start the ovs-vswitchd service (starting these services depends on your Linux distribution).

Note: on some distributions the netem module sch_netem required for link configuration is only available by installing additional kernel packages. Please check the availability of the module:

# modinfo sch_netem

Arch

# pacman -S tk tcllib wireshark-gtk imagemagick docker \
    make openvswitch xterm

Debian 9 and testing(buster)

(https://docs.docker.com/install/linux/docker-ce/debian/)[https://docs.docker.com/install/linux/docker-ce/debian/]
# apt-get update
# apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common
# curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add -
# add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"
# apt-get update
# apt-get install docker-ce openvswitch-switch xterm wireshark \
    imagemagick tk tcllib util-linux make

Debian 8

### add jessie-backports to your sources.list and update
# echo "deb http://http.debian.net/debian jessie-backports main" >> /etc/apt/sources.list
# apt-get update

### install packages
# apt-get install openvswitch-switch docker.io xterm wireshark \
    ImageMagick tcl tcllib tk util-linux make

Fedora 22

# dnf install openvswitch docker-io xterm wireshark-gnome \
    ImageMagick tcl tcllib tk kernel-modules-extra util-linux
    
### add /usr/local/bin to root PATH variable to execute imunes as root
# echo 'PATH=$PATH:/usr/local/bin' >> /root/.bashrc

### add /usr/local/bin to sudo secure_path for executing sudo imunes
# visudo
Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin

Ubuntu 18.04 LTS (Mint 19, 19.1)

# apt install openvswitch-switch docker.io xterm wireshark \
    make imagemagick tk tcllib util-linux

Ubuntu 15.04

# apt-get install openvswitch-switch docker.io xterm wireshark \
    make ImageMagick tk tcllib user-mode-linux util-linux

Ubuntu 14.04 LTS

### install needed packages
# apt-get install openvswitch-switch xterm wireshark make \
    ImageMagick tk tcllib user-mode-linux util-linux
    
### install new version of docker and start it
# wget -qO- https://get.docker.com/ | sh
# service docker start

### fetch remote nsenter which is not part of util-linux in ubuntu 14.04
# sudo docker run -v /usr/local/bin:/target jpetazzo/nsenter

OpenSUSE 13.2

### add repo with openvswitch
# zypper addrepo http://download.opensuse.org/repositories/network/openSUSE_13.2/network.repo
# zypper refresh

### install packages
# zypper install openvswitch-switch xterm wireshark docker \
    make ImageMagick tk tcllib uml-utilities util-linux
    
### add /usr/local/bin to sudo secure_path for executing sudo imunes
# visudo
Defaults secure_path="/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/bin"

Performance

For best performance please run Docker with either Aufs or Overlay storage driver. Depending on your kernel version and distribution, Docker will automatically select its storage driver based on what is available and what the particular default setup for your distribution is. Aufs is not part of vanilla kernel but some distributions package it in their modified kernel and Overlay is only available from kernel version 3.18. Worst case scenario: Docker will use the extremely slow devicemapper available everywhere. Please view either Docker or distro docs on how to set this up for your particular Linux distribution.

Enabling overlayfs (kernel 3.18 and higher)
Debian testing, Ubuntu 14.04 LTS, Ubuntu 15.04:
# echo 'DOCKER_OPTS="-s overlay"' >> /etc/default/docker
# service docker restart

Fedora 22
# echo 'DOCKER_STORAGE_OPTIONS="-s overlay"' >> /etc/sysconfig/docker-storage
# systemctl restart docker

Arch:
# cp /usr/lib/systemd/system/docker.service /etc/systemd/system/docker.service
### add overlay to ExecStart
ExecStart=/usr/bin/docker daemon -s overlay -H fd://
### reload systemd files and restart docker.service
# systemctl daemon-reload
# systemctl restart docker


Check status with docker info:
# docker info | grep Storage
Storage Driver: overlay

Installing IMUNES

Checkout the last fresh IMUNES source through the public github repository:

# git clone https://github.com/imunes/imunes.git

Now we need to install IMUNES and populate the virtual file system with predefined and required data. To install imunes on the system execute (as root):

# cd imunes
# make install

Filesystem for virtual nodes

For the topologies to work a template filesystem must be created. This is done by issuing the following command (as root):

# imunes -p

Now the IMUNES GUI can be ran just by typing the imunes command in the terminal:

# imunes

To execute experiments, run it as root.

IMUNES wiki

Visit our wiki for more:

For additional information visit our web site: http://imunes.net/

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].