GithubHelp home page GithubHelp logo

srv6_sandbox's Introduction

SRv6 Sandbox

This project is a SRv6 Sandbox base on Mininet.

Requirements

  • Linux Kernel higher than 4.15

  • Latest Mininet Installed

  • Quagga Installed

  • Python Installed

Install Guide

The install guide is base on Ubuntu 18.04 LTS version

  1. Upgrade Kernel to the recommended version

    apt-get install linux-headers-4.15.0-38 linux-headers-4.15.0-38-generic linux-image-4.15.0-38-generic linux-modules-4.15.0-38-generic linux-modules-extra-4.15.0-38-generic
  2. Reboot and check if the kernel is upgraded

    uname -a
    Linux ubuntu 4.15.0-38-generic #41-Ubuntu SMP Wed Oct 10 10:59:38 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
    
  3. Install Mininet and Quagga

    apt-get install mininet gawk libreadline-dev libc-ares-dev
    wget http://download.savannah.gnu.org/releases/quagga/quagga-1.2.4.tar.gz
    tar -xzvf ./quagga-1.2.4.tar.gz
    cd ./quagga-1.2.4
    ./configure --enable-vtysh --enable-user=root --enable-group=root --enable-vty-group=root
    make install
  4. Install iproute2

    wget https://mirrors.edge.kernel.org/pub/linux/utils/net/iproute2/iproute2-4.9.0.tar.gz
    tar -xzvf ./iproute2-4.9.0.tar.gz
    cd ./iproute2-4.9.0
    apt-get install bison flex
    make
    make install
  5. Install python dependencies

    pip install mako ipaddress ipmininet --no-deps
  6. Run Environment

    sudo python topo.py

Usage Guide

In file topo.py:

You can define topology by adding Host/Router and adding Links.

Use build_dx4_tunnel to build a DX4 Tunnel Use build_dx6_tunnel to build a DX6 Tunnel Use RouterConfiguration to Initialize a Router to SRv6 Router.

For manual configuration

For manual configuration, run dx4_r1.sh on R1 and dx4_r3 on R3

Mininet Simple tutorial

After running sudo python topo.py, you will be promoted to a Mininet shell.

Run "xterm " to go to the destinated host shell

For example, xterm R1 will give you access to R1 shell.

srv6_sandbox's People

Contributors

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