Project

General

Profile

Actions

Task #6685

open

Task #6679: Create ungleich game, a flask based game to show system engineering skills

Implement game challenges 1-6

Added by Nico Schottelius over 2 years ago. Updated over 2 years ago.

Status:
New
Priority:
Normal
Assignee:
-
Target version:
-
Start date:
05/13/2019
Due date:
05/31/2019 (over 2 years late)
% Done:

0%

Estimated time:
PM Check date:

Description

  • challenge 1: register an ipv6 network (10 points)
    • we generate a random ip in that network, name it "user ip"
  • challenge 2: the user needs to configure the "user ip" to be ping'able; gets points when the user triggers/submits and at that time we can ping the ip address (20 points)
  • challenge 3: the user needs to be reachable by http on her "user ip" (30 points if reachable)
  • challenge 4: the user needs to configure a DNS server that is answering requests in the domain "$username.ungleich.cloud" (120 points)
  • challenge 5: the user needs setup a second DNS server; we generate a 2nd random IP and let the user know the ip address; successful if it answers requests in "$username.ungleich.cloud" (20 points)
  • challenge 6: setup https: we generate a DNS name ("$username.something") and the user needs to retrieve an SSL certificate from letsencrypt and should be reachable via https (80 points)
Actions #1

Updated by Nico Schottelius over 2 years ago

  • Due date set to 05/31/2019
  • Description updated (diff)
  • Subject changed from Implement game challenges 1-10 to Implement game challenges 1-6
Actions #2

Updated by Roland Zweifel over 2 years ago

  • Status changed from New to Seen
Actions #3

Updated by Roland Zweifel over 2 years ago

Nico Schottelius

i need more time to understand how to code python with a html website.

Actions #4

Updated by Roland Zweifel over 2 years ago

  • Status changed from Seen to Waiting
Actions #5

Updated by Nico Schottelius over 2 years ago

Why is the status waiting and not in progress Roli?

writes:

Actions #6

Updated by Roland Zweifel over 2 years ago

  • Status changed from Waiting to In Progress

Nico Schottelius

The Status was on waiting, because i need to understand the structure of my solution. Need to find out how i can solve it with input/output. For my solution need to know how the "coding" works. I cant see the structure in this language yet. I know the challenge, but im e newby in flask.

Actions #7

Updated by Roland Zweifel over 2 years ago

Nico Schottelius wrote:

  • challenge 1: register an ipv6 network (10 points)
    • we generate a random ip in that network, name it "user ip"
  • challenge 2: the user needs to configure the "user ip" to be ping'able; gets points when the user triggers/submits and at that time we can ping the ip address (20 points)
  • challenge 3: the user needs to be reachable by http on her "user ip" (30 points if reachable)
  • challenge 4: the user needs to configure a DNS server that is answering requests in the domain "$username.ungleich.cloud" (120 points)
  • challenge 5: the user needs setup a second DNS server; we generate a 2nd random IP and let the user know the ip address; successful if it answers requests in "$username.ungleich.cloud" (20 points)
  • challenge 6: setup https: we generate a DNS name ("$username.something") and the user needs to retrieve an SSL certificate from letsencrypt and should be reachable via https (80 points)

Questions to Nico:

CH 1:

Define register: When registering means to add a IPv6 Address the user has to find a IPv6 DHCP client somewhere. (How to register a ipv6? ip addr add :: /dev/eth ? Then Ping)

CH 2:

When i add a IPv6 Address in a IPv4 Network, is this ip ping-able?

Actions #8

Updated by Nico Schottelius over 2 years ago

Challenge 1

How the user gets a /64, is NOT part of the challenge. The user has to
have access to a /64 before starting the game.

To join the game, the user will register her /64 and gets the first 10
points.

I.e. the user POSTs the network to /game/register:

{ "net": "2a0a:e5c1:111:111::/64" }

Challenge 2

We select a random IP address (pyhon: range(0,2**64)) and the user can
retrieve this address from our game

(
for instance:

GET /game/my-ip returns

{ "ipv6-address": "2a0a:e5c1:111:111:3185:e802:6548:658c" }

Then the user has to setup the IP address on her system. When she is
ready, she tells the game that she is ready:

POST-OR-GET /challenge/ping

Then our game tries to ping that IPv6 address. If it is sucessful, she
gets 20 points.

All clear?

writes:

Actions #9

Updated by Nico Schottelius over 2 years ago

  • Status changed from In Progress to Rejected
Actions #10

Updated by Nico Schottelius over 2 years ago

  • Assignee deleted (Roland Zweifel)
  • Status changed from Rejected to New
Actions

Also available in: Atom PDF