Progress with networking

This commit is contained in:
Nico Schottelius 2020-01-15 13:26:05 +01:00
parent 8a451ff4ff
commit 1b5a3f6d2e
3 changed files with 25 additions and 0 deletions

View file

@ -23,3 +23,14 @@ You need to have python3 installed.
python -m venv venv python -m venv venv
. ./venv/bin/activate . ./venv/bin/activate
./bin/uncloud-run-reinstall ./bin/uncloud-run-reinstall
Install os requirements
-----------------------
Install the following software packages: **dnsmasq**.
If you already have a working IPv6 SLAAC and DNS setup,
this step can be skipped.
Note that you need at least one /64 IPv6 network to run uncloud.

View file

@ -3,12 +3,18 @@ import argparse
from uncloud.hack.vm import VM from uncloud.hack.vm import VM
from uncloud.hack.config import Config from uncloud.hack.config import Config
from uncloud.hack.mac import MAC from uncloud.hack.mac import MAC
from uncloud import UncloudException
arg_parser = argparse.ArgumentParser('hack', add_help=False) arg_parser = argparse.ArgumentParser('hack', add_help=False)
#description="Commands that are unfinished - use at own risk") #description="Commands that are unfinished - use at own risk")
arg_parser.add_argument('--create-vm', action='store_true') arg_parser.add_argument('--create-vm', action='store_true')
arg_parser.add_argument('--last-used-mac', action='store_true') arg_parser.add_argument('--last-used-mac', action='store_true')
arg_parser.add_argument('--get-new-mac', action='store_true') arg_parser.add_argument('--get-new-mac', action='store_true')
arg_parser.add_argument('--management-network', help="IPv6 management network")
arg_parser.add_argument('--run-dns-ra', action='store_true',
help="Provide router advertisements and DNS resolution via dnsmasq")
def main(arguments): def main(arguments):
@ -26,3 +32,7 @@ def main(arguments):
if arguments['get_new_mac']: if arguments['get_new_mac']:
print(MAC(config).get_next()) print(MAC(config).get_next())
if arguments['run_dns_ra']:
if not arguments['management_network']:
raise UncloudException("Providing DNS/RAs requires a /64 IPv6 network. You can use fd00::/64 for testing (non production!)")

View file

@ -19,3 +19,7 @@ class VXLANBridge(object):
class DNSRA(object): class DNSRA(object):
def __init__(self): def __init__(self):
pass pass
class Firewall(object):
pass