nsec/the-internet

The code of our Internet simulator

Go

414

58 commits

updated Dec 11, 2018

See the code

README

Dependencies

  • linux (>= 3.16 for all features or >= 3.13 for basic features)
  • golang (>= 1.5)
  • lxd

Kernel

The simulation is intended to run inside nested unprivileged LXC containers. As a result, a kernel with full support for unprivileged containers is required, that is any kernel >= 3.13 with all the options required by LXC enabled (see lxc-checkconfig).

Additionally, unprivileged qdisc operations requires a >= 3.16 kernel to work, so if you want to get the simulated latencies and speeds, you need to run a very recent kernel.

Starting the whole thing

This tool is meant to be run on a machine or inside a container on which a LXD daemon is running.

First build it with:

  • go get -v -x github.com/nsec/the-internet

Creating an Internet simulation is basically as simple as:

  • the-internet create <path>
  • the-internet start

Generate an html/js map of your Internet with:

  • the-internet generate-map <destination path>

You can stop the simulation with:

  • the-internet stop

Or create a new one by calling the start command again.

Finally, once you want it all off your disk, you can call:

  • the-internet destroy

Contributors

stgraber

52 commits

mjeanson

4 commits

caglar10ur

1 commits

hnjslater

1 commits

nsec/the-internet

The code of our Internet simulator

Go

414

58 commits

updated Dec 11, 2018

See the code

README

Dependencies

  • linux (>= 3.16 for all features or >= 3.13 for basic features)
  • golang (>= 1.5)
  • lxd

Kernel

The simulation is intended to run inside nested unprivileged LXC containers. As a result, a kernel with full support for unprivileged containers is required, that is any kernel >= 3.13 with all the options required by LXC enabled (see lxc-checkconfig).

Additionally, unprivileged qdisc operations requires a >= 3.16 kernel to work, so if you want to get the simulated latencies and speeds, you need to run a very recent kernel.

Starting the whole thing

This tool is meant to be run on a machine or inside a container on which a LXD daemon is running.

First build it with:

  • go get -v -x github.com/nsec/the-internet

Creating an Internet simulation is basically as simple as:

  • the-internet create <path>
  • the-internet start

Generate an html/js map of your Internet with:

  • the-internet generate-map <destination path>

You can stop the simulation with:

  • the-internet stop

Or create a new one by calling the start command again.

Finally, once you want it all off your disk, you can call:

  • the-internet destroy

Contributors

stgraber

52 commits

mjeanson

4 commits

caglar10ur

1 commits

hnjslater

1 commits

Languages

Go

66.6%

CSS

18.9%

Shell

11.8%

JavaScript

1.1%

Smarty

1.0%