A simple generator of a bunch of virtual routers. Used for testing software related to dynamic routing.
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
LEdoian 0f6bca1c15 Add hint on using cssh to README 2 months ago
templates Use area 1 in the swarm 1 year ago
.gitignore Add re-createable disk images to .gitignore 2 years ago
IDEA Add note about router ids 3 years ago
README.md Add hint on using cssh to README 2 months ago
alpine_install Install bird 2 years ago
alpine_postinst postinst: Add iproute and set up DNS 1 year ago
gen_disks.sh Enable forwarding in all the routers 2 years ago
gen_dummy.sh Add initial version of disk generation scripts 2 years ago
gen_machines.py Add note about connecting the herd 2 years ago
manage_all.sh Do not care for fails 1 year ago
ssh_key Add an SSH key 2 years ago
ssh_key.pub Add an SSH key 2 years ago

README.md

This is a simple tool to generate testing networks of virtual machines. It was written primarilly for my bachelor's thesis, which lives at https://gitea.ledoian.cz/LEdoian/bc_thesis.

Usage:

  1. Edit gen_machines.py to define the desired network
  2. Optionally edit the templates of config files in the templates/ folder
  3. Run gen_machines.py
  4. Create pre-installed Alpine Linux 3.15.4 disk image in dummydisk.img
    • you can use gen_dummy.sh for that
    • To automatically install alpine, alpine_install can be used as the install script. See comment in that file for explanation
    • After installation, alpine_postinst sets up the SSH key and add basic packages.
  5. Run gen_disks.sh as root this creates customized disk images for all the machines
  6. Append output/bridge.conf to your /etc/qemu/bridge.conf in order to be able to connect your VMs to bridges as regular user
  7. Run output/gen_bridges.sh to create the bridge interfaces on your machine.

Now, the machines may be started. Either use qemu.sh script in the respective directory under output/, or run ./manage_all.sh start. To attach, use SPICE on the spice.sock, or SSH there using the key in this repo, if you already have connectivity.

Loging in as root should not ask for password.

Have a lot of fun!\cite{suse}


The idea behind current addressing system is sketched in IDEA.

Tips & Tricks

Using clusterssh: cssh -l root -o -o\ IdentityFile=./ssh_key <IPs>