Coder Social home page Coder Social logo

mmalesev / scion Goto Github PK

View Code? Open in Web Editor NEW

This project forked from netsec-ethz/scion

0.0 1.0 0.0 32.83 MB

SCION Internet Architecture

Home Page: https://www.scion-architecture.net/

License: Apache License 2.0

Makefile 0.08% Shell 2.26% Go 67.45% Cap'n Proto 0.32% Python 29.24% Ruby 0.05% Dockerfile 0.03% Lua 0.53% Standard ML 0.01% TSQL 0.01% ANTLR 0.02%

scion's Introduction

SCION

Documentation Build Status Go Report Card GitHub issues Release license

An implementation of SCION, a future Internet architecture.

Necessary steps in order to run SCION:

  1. Make sure that you are using a clean and recently updated Ubuntu 16.04. This environment assumes you're running as a non-root user with sudo access.

  2. Install Bazel version 0.26.1:

    sudo apt-get install pkg-config zip g++ zlib1g-dev unzip python3
    wget https://github.com/bazelbuild/bazel/releases/download/0.26.1/bazel-0.26.1-installer-linux-x86_64.sh
    bash ./bazel-0.26.1-installer-linux-x86_64.sh --user
    rm ./bazel-0.26.1-installer-linux-x86_64.sh
  3. Make sure that you have a Go workspace setup, and that ~/.local/bin, and $GOPATH/bin can be found in your $PATH variable. For example:

    echo 'export GOPATH="$HOME/go"' >> ~/.profile
    echo 'export PATH="$HOME/.local/bin:$GOPATH/bin:$PATH"' >> ~/.profile
    source ~/.profile
    mkdir -p "$GOPATH"
  4. Check out scion into the appropriate directory inside your go workspace (or put a symlink into the go workspace to point to your existing scion checkout):

    mkdir -p "$GOPATH/src/github.com/scionproto"
    cd "$GOPATH/src/github.com/scionproto"
    git clone https://github.com/netsec-ethz/scion
    cd scion
  5. Install required packages with dependencies:

    ./env/deps
  6. Install docker and docker-compose. Please follow the instructions for docker-ce and docker-compose. Add your user to the docker group: sudo usermod -a -G docker $LOGNAME. Log out and log back in so that your group membership is re-evaluated.

  7. Create the topology and configuration files (according to topology/Default.topo):

    ./scion.sh topology

    The resulting directory structure will be created:

    ./gen/ISD{X}/AS{Y}/
        {elem}{X}-{Y}-{Z}/
            as.yml
            path_policy.yml
            supervisord.conf
            topology.yml
            certs/
                ISD{X}-AS{Y}-V0.crt
                ISD{X}-V0.trc
            keys/
                as-sig.key

    The default topology looks like this.

  8. Run the infrastructure:

    ./scion.sh run

  9. Stop the infrastructure:

    ./scion.sh stop

Notes about topology/Default.topo:

  • defaults.subnet (optional): override the default subnet of 127.0.0.0/8.

  • core (optional): specify if this is a core AS or not (defaults to 'false').

  • beacon_servers, certificate_servers, path_servers, (all optional): number of such servers in a specific AS (override the default value 1).

  • links: keys are ISD_ID-AS_ID (format also used for the keys of the JSON file itself) and values can either be PARENT, CHILD, PEER, or CORE.

Tests

In order to run the unit tests:

./scion.sh test

scion's People

Contributors

aznair avatar benrothen avatar chrispappas12 avatar cschutijser avatar dharmanik avatar ercanucan avatar fr4nk-w avatar hermain avatar jinankjain avatar juagargi avatar klausman avatar kormat avatar lukedirtwalker avatar matzf avatar mkowalski avatar mskd12 avatar oncilla avatar prateshg avatar pratyakshs avatar pszal avatar reischuk avatar scrye avatar sezergueler avatar sgmonroy avatar shitz avatar shyamjvs avatar sustrik avatar syclops avatar tonyo avatar worxli avatar

Watchers

 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.