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 https://github.com/Quagga/quagga/releases/download/quagga-1.2.4/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

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

srv6_sandbox's Issues

Quagga failed

Part2: install the Quagga, the project's web site is 404

pip error

Hi!
when l run pip install ipmininet --no-deps, it always makes mistakes.

temp
I changed the pip source, but it still didn't work.
Could you help me?

SRv6对IPv4主机做 over IPv6 VPN

你好,我在运行你的代码(./topo.py )时发现主机a 发出 ICMP ping 主机b时,由于R1配了 ip route add 10.0.2.0/24 encap seg6 mode encap segs fc00:3::bb,fc00:4::bb dev r1-eth1 这条命令,会将原有 ICMP 包封装到新的IPv6+SRH报文中,但是现在的报文顺序是IPV6/ICMPv6/IPv6+SRH/IPv4/ICMP(本应该是IPv6+SRH/IPv4/ICMP),请问下为啥这里会出现 ICMPv6 的封装头呢?我自己在 Mininet 上验证也出现了这个问题。

Vagrant failed

I counter errors during the running of "vagrant up" in multiple platforms (Mac OS, win10, win11), so I guess this may comes from the version of Virtual Box that I used (latest version in this issues posted).

image

Could you please update your sandbox to the new version?

Thanks!

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.