Link Search Menu Expand Document

Building from sources (Linux)

If you are planning to make modifications to the SCION implementation, you can build SCION from sources and run your SCIONLab AS with your own version of SCION. For developers’ convenience, SCIONLab supports generating configurations that are compatible with the scripts and machinery intended to run SCION in a development environment.

Building SCION from sources requires following a lengthy setup procedure and installing various development dependencies. The development setup is currently supported/documented for Ubuntu 16.04 or Ubuntu 18.04. It is possible to build SCION on other systems, but no guidance is provided. To keep it simple, just run Ubuntu in a VM or container if you can’t/don’t want to set it up on your workstation.

Please follow the instructions in the GitHub README to clone and build SCION.

Configuration

After having managed to build SCION and after creating or modifying your AS in the SCIONLab coordination website, you can deploy the generated configuration to your machine.

  1. Download the configuration tarfile from the SCIONLab coordination website.
  2. If you plan on using a VPN, unpack the client-scionlab-<attachment point ISD-AS>.conf to /etc/openvpn/ and start OpenVPN
    sudo systemctl restart openvpn@client-scionlab-<attachment point ISD-AS>
    
  3. Extract the gen/ subdirectory to your $SC directory.
  4. Restart SCION
    cd $SC
    scion.sh stop
    supervisor/supervisor.sh reload  # necessary if supervisor.conf files changed
    scion.sh start
    

Running SCION

To build, start and stop SCION, use the scion.sh developer script, located in the SCION repository.

cd $SC
scion.sh start          # Build and start SCION services
scion.sh start nobuild  # Start, without building
scion.sh status         # Lists failed SCION services
scion.sh stop           # Stop all SCION services

The commands above are essentially a wrapper around supervisord. Alternatively, use the supervisor commands directly, using the supervisor/supervisor.sh helper script.

cd $SC
supervisor/supervisor.sh reload   # Reload supervisord configuration
supervisor/supervisor.sh status   # Show status of all SCION services
supervisor/supervisor.sh          # Starts the supervisor shell

Copyright © 2020, Network Security Group, ETH Zurich