Giter VIP home page Giter VIP logo

scion-box's People

Contributors

fr4nk-w avatar jonghoonkwon avatar juagargi avatar matzf avatar mlegner avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

mlegner fr4nk-w

scion-box's Issues

update_gen should restart SCION iff the topology file has changed

Right now, it will restart if there are pending changes, independently of whether those changes provoked changes in the topology file or not.
E.g. right now due to another bug, update_gen is not modifying the topology file, nor telling the Coordinator to mark the change as processed, and it keeps restarting SCION every time we run update_gen in the attachment points.

Full sync or delta sync?

We have to decide how to instruct the APs to run a full sync or a (up to now) tradicional delta sync.
We have several options:

  • Two timers in AP: one for delta sync, the other for the full one. How do we exclude simultaneous runs?
  • One timer, static condition: the script checks a condition (time of day, times since last full sync) and chooses one mode
  • Coordinator decides: a condition evaluated in the Coordinator that tells the AP it should run full or delta sync.
  • Others?

update_gen.py fails when local gen folder and coordinator differ

update_local_gen() inside update_gen.py fails in case the local gen folder and the ASes stored in the SCION coordinator differ. Specifically, request_server throws a missed pk value error for AS configurations that don't exist on the coordinator side. See also netsec-ethz/scion-coord#168

Expected behavior: update_gen.py should ignore ASes from the local gen folder that do not exist in the coordinator and leave them untouched.

Support for multiple attachment points on one host

The scionlabtesting machine runs four ASes in two ISDs, with one of the ASes in each ISD being a SCIONLab attachment points (APs). I have observed at least two issues with this setup:

  • the initial supervisor.conf for the sciond and certificate-server use the default.sock which will clash because both AP-ASes use this; I don't know where the initial configuration is obtained from. Is it from scion-web?
  • the port for the internal addresses used by the border routers can clash, as they are based only on the client-AS-number.

Not sure whether this issue should rather be in scion-coord.

Some further issues with running multiple APs on one host are addressed in #42.

Mechanism for automatically setting up an Attachment Point

There should be an automatic way to download the necessary scripts for an Attachment point and moving them to the correct directories.
This should also set up a cron job or systemd service that automatically executes the scripts.

Load as.yml instead of line parsing

return line[13:-1]

line[13:-1]

Commented on PR #3 before realizing this has an upstream source:
'This looks dangerous, if the format even only slightly changes, some static predictable string might be used as AS master key.
Since the conf_file is a YAML file, there is no good reason to extract characters from hard-coded indices. Load it as a dict with yaml.load and access the value via its key.'

Are there practical reasons for the current way (line parsing, extracting from fixed offsets)? @mlegner, @jonghoonkwon

Script that calls the Coordinator init_box API

This Script will be inside the docker image. It calls the init_box API at the coordinator, receives a list of potential neighbors, runs connection tests and sends back the results by calling the connect_box API.
Afterwards the script receives the gen folder from the coordinator and starts SCION.
Progress: Initial Version is done. But will need to be adjusted to the changed Database.
TODO: Run Connection test server on multiple udp ports to check if enough ports are open for RTT/BW tests aswell as SCION border routers.

Initial configuration script

Call scion-coord init_box API, run connectivity tests on retrieved AS neightbor information, call connect API

PCEngines image

Check format required for the image.
Prepare this binary image to be preinstalled by PCEngines.

Error codes from/to Coordinator

Communication from/to Coordinator should follow a protocol. Decide which error codes to use and the semantics of them.
Also decide how to document this (is it a state machine? etc.)

Workaround: 12 interfaces per border router

Due to an existing limitation in the implementation of the border routers (see scionproto/scion#1981), we cannot have an arbitrary number of interfaces for a single border router. Change the update_gen script to have up to 12 interfaces per border router, and as many border routers as needed to complete the links.
Why 12? Because the BR has 1024 buffers, and each interface will need ~64, and we want to have some slack because of the different traffic patterns: 1024 - (12*2*32) = 256 should be a reasonable headroom.

Rollback the 12 interfaces per BR workaround

With the SCIONLab next version we are introducing soon, we can go back to the better performing many interfaces per border router, and remove the changes introduced solving #46 .

  • Test that the approach works
  • Adapt UTs in test back to use many interfaces

DHCP server

After detecting the network configuration on the main interface, the DHCP server running on the SCIONBox should hand out leases for IPs in the subnet 172.16.0.0/12 on the two remaining interfaces.

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.