Git Product home page Git Product logo

wireguard-demo's Introduction

Wireguard Demonstration

A repository containing setup files for the demonstration of usage of wireguard with namespaces.

Video Demonstration Link: https://youtu.be/7mjxThBZwro

Important Note:The setup.sh files in each Experiment's folders may not complete the entire setup to run simulations. One would need to follow along with the presentation to know the extra commands necessary to complete the experimental setup. Also if one wishes to directly create the entire setup with a single bash script to directly start with the experiments, please run the bash scripts inside the full_setup folders present inside each experiment's folder instead. Also if you wish to confirgure the wireguard interfaces yourself in Experiment2 and Experiment3, please comment out the latter section (the section that confgures the wireguard interfaces is clearly indicated in the script) in their respective bash setup.sh files.

Experiment 1

It is about create a direct node to node topology.It only creates the initial topology. One may follow the demonstration video or the presentation to follow with the steps to create and configure the wireguard interfaces.

  • setup1.sh - This file will create the topology for you and one may continue configuring wireguard interfaces following the presentation parallely.
  • clean_setup1.sh - This will delete all namespaces created to perform the simulation.
  • full_setup1/
    • full_setup1.sh - This will directly create all namespaces and configure all the wireguard interfaces.
    • keys/ - This has the key pairs that the wireguard interfaces will use.
    • clean_setup1.sh - This will delete all namespaces created to perform the simulation.

Screenshot from 2021-09-19 08-34-30

Experiment 2

This is a setup with a relay/bouncing server and 2 VPN clients. One may follow the demonstration to see observations one can make using tcpdump, traceroute and ping post running this script.

  • setup2.sh - This file will create the topology for you and configure all the wireguard interfaces. This time the wireguard interfaces are pre configured in the script because Experiment1 has already taught how one must configure any wireguard interface.
  • clean_setup2.sh - This will delete all namespaces created to perform the simulation.
  • keys/ - This has the key pairs that the wireguard interfaces will use.
  • full_setup2/
    • full_setup2.sh - This will directly create all namespaces and configure all the wireguard interfaces.
    • keys/ - This has the key pairs that the wireguard interfaces will use.
    • clean_setup2.sh - This will delete all namespaces created to perform the simulation.

Screenshot from 2021-09-19 09-04-31

Experiment 3

This is a setup with a VPN server, a VPN client, and a node outside the VPN network. This toplogy shows the namespace integration with wireguard to avoid classical routing table hacks. It also shows how wireguard can be used to access resources on a network outside the VPN securely. One may follow the demonstration to see observations one can make using tcpdump, traceroute and ping post running this script.

  • setup3.sh - This file will create the topology for you and configure all wireguard interfaces. This time the wireguard interfaces are pre configured in the script because Experiment1 has already taught how one must configure any wireguard interface. But how must enable the NAT gateway at the VPN server must be followed in the demonstration.
  • clean_setup3.sh - This will delete all namespaces created to perform the simulation.
  • keys/ - This has the key pairs that the wireguard interfaces will use.
  • full_setup2/
    • full_setup3.sh - This will directly create all namespaces, configure all the wireguard interfaces, and enable the NAT gateway at the VPN server.
    • keys/ - This has the key pairs that the wireguard interfaces will use.
    • clean_setup3.sh - This will delete all namespaces created to perform the simulation.

Screenshot from 2021-09-19 09-04-20

Author: Aditya Chirania

wireguard-demo's People

Contributors

adityachirania avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.