All Projects → vincentbernat → Network Lab

vincentbernat / Network Lab

Networking lab using root-less VM

Programming Languages

shell
77523 projects

Projects that are alternatives of or similar to Network Lab

Polymorph
Polymorph is a real-time network packet manipulation framework with support for almost all existing protocols
Stars: ✭ 364 (-13.54%)
Mutual labels:  network
Wfn
Windows Firewall Notifier extends the default Windows embedded firewall by allowing to handle and notify about outgoing connections, offers real time connections monitoring, connections map, bandwidth usage monitoring and more...
Stars: ✭ 404 (-4.04%)
Mutual labels:  network
Hp Socket
High Performance TCP/UDP/HTTP Communication Component
Stars: ✭ 4,420 (+949.88%)
Mutual labels:  network
Cs Wiki
🎉 致力打造完善的 Java 后端知识体系,不仅仅帮助各位小伙伴快速且系统的准备面试,更指引学习的方向
Stars: ✭ 369 (-12.35%)
Mutual labels:  network
Bagel
a little native network debugging tool for iOS
Stars: ✭ 4,005 (+851.31%)
Mutual labels:  network
Sifter
Sifter aims to be a fully loaded Op Centre for Pentesters
Stars: ✭ 403 (-4.28%)
Mutual labels:  network
Tbox
🎁 A glib-like multi-platform c library
Stars: ✭ 3,800 (+802.61%)
Mutual labels:  network
Vue D3 Network
Vue component to graph networks using d3-force
Stars: ✭ 415 (-1.43%)
Mutual labels:  network
Httplib2
Small, fast HTTP client library for Python. Features persistent connections, cache, and Google App Engine support. Originally written by Joe Gregorio, now supported by community.
Stars: ✭ 402 (-4.51%)
Mutual labels:  network
Gcping
Measure your latency to GCP regions
Stars: ✭ 405 (-3.8%)
Mutual labels:  network
Sandwich
🥪 A lightweight and standardized Android network response interface for handling successful data and error responses.
Stars: ✭ 370 (-12.11%)
Mutual labels:  network
Stats
macOS system monitor in your menu bar
Stars: ✭ 7,134 (+1594.54%)
Mutual labels:  network
Eternalrocks
EternalRocks worm
Stars: ✭ 404 (-4.04%)
Mutual labels:  network
Bgpalerter
Software to monitor streams of BGP data. Pre-configured for real-time detection of visibility loss, RPKI invalid announcements, hijacks, and more.
Stars: ✭ 367 (-12.83%)
Mutual labels:  network
Docker Ipsec Vpn Server
Docker image to run an IPsec VPN server, with IPsec/L2TP, Cisco IPsec and IKEv2
Stars: ✭ 4,356 (+934.68%)
Mutual labels:  network
Cocoadebug
iOS Debugging Tool 🚀
Stars: ✭ 3,769 (+795.25%)
Mutual labels:  network
Ntopng
Web-based Traffic and Security Network Traffic Monitoring
Stars: ✭ 4,313 (+924.47%)
Mutual labels:  network
Packet Agent
A toolset for network packet capture in Cloud/Kubernetes and Virtualized environment.
Stars: ✭ 419 (-0.48%)
Mutual labels:  network
Hellraiser
Vulnerability scanner using Nmap for scanning and correlating found CPEs with CVEs.
Stars: ✭ 413 (-1.9%)
Mutual labels:  network
2020
2020 😀😁😀😁😀 秋招笔试面试合集,以及2019届公司真题模拟题集 & 附上自己的后端指南,💻🎓包括(C/C++基础、数据结构、算法、操作系统💻、计算机网络、MySQL、shell(ps:sed、awk、grep))
Stars: ✭ 402 (-4.51%)
Mutual labels:  network

Various network related labs

I use those labs to test various stuff. Most of them are tailored to my need. The most recent ones are more likely to work than the older ones.

They are expected to run without being root on top of an up-to-date Debian sid. Some of them are using User-Mode-Linux, some other are using KVM.

lab-generic should always contain the latest iteration of the lab and be used as a base for other labs.

Previously, labs were self-contained. This was done to avoid any breakage when introducing "new features". However, this didn't work as expected and labs become broken because of external changes (kernel changes, systemd changes, etc.). Therefore, new labs are now sourcing some common files (in common/). This means that older labs may broke due to more recent changes. In this case, get the latest commit for a lab (git log --oneline -1 lab-generic for example) and get a checkout for it (git checkout 22f22864632a).

This lab doesn't work on Ubuntu because they are missing VDE support in QEMU. The easiest way is to use schroot to work on a Debian Buster:

#!/bin/sh
sudo debootstrap buster buster
cat <<EOF | sudo tee /etc/schroot/chroot.d/lab
[lab]
type=directory
description=Network lab
directory=$PWD/buster
users=$USER
shell=$SHELL
profile=default
EOF
sudo schroot -c lab apt install \
    qemu-system-x86 sudo tmux busybox ssh vde2 python3 binutils \
    dosfstools mtools ansible jq linux-image-amd64 nginx

You may need to uncomment /dev/shm line in /etc/schroot/default/fstab. You also have to add yourself to kvm group (sudo adduser $USER kvm). Then, run:

schroot -c lab ./setup /boot/$(schroot -c lab ls /boot | grep vmlinuz | head -1)

The ./setup script takes a Linux kernel as first argument. Have a look at eudyptula-boot's minimal-configuration script to compile a kernel that should work with the lab as well.

License

All the labs are distributed under the ISC license:

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

Other tools

There exist many other tools to run network labs that may not be as hacky as this one:

  • CORE. It uses Linux network namespaces and provides a GUI tool. This is a very good tool. Please, have a look at it. It doesn't use disk images and the whole lab configuration fits into a single file that's easy to share. Integration with Quagga or BIRD is very good.

  • GNS3. It uses virtual machines and emulators to build the network. It also comes with a GUI tool. You can emulate Cisco, Juniper, Arista and other brands network equipments. However, it relies heavily on disk images for anything else than Cisco devices and it makes it harder to share your work on GitHub.

You will find a more comprehensive list (with tests) on Brian Linkletter's blog.

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