++network

This commit is contained in:
Nico Schottelius 2020-01-19 09:16:29 +01:00
commit b847260768
2 changed files with 17 additions and 2 deletions

View file

@ -3,6 +3,8 @@ import argparse
from uncloud.hack.vm import VM
from uncloud.hack.config import Config
from uncloud.hack.mac import MAC
from uncloud.hack.net import VXLANBridge, DNSRA
from uncloud import UncloudException
arg_parser = argparse.ArgumentParser('hack', add_help=False)
@ -10,6 +12,8 @@ arg_parser = argparse.ArgumentParser('hack', add_help=False)
arg_parser.add_argument('--create-vm', 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('--init-network', help="Initialise networking")
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")
@ -33,6 +37,15 @@ def main(arguments):
if arguments['get_new_mac']:
print(MAC(config).get_next())
if arguments['init_networking!']:
if not arguments['management_network']:
raise UncloudException("Initialising the network requires an IPv6 network. You can use fd00::/64 for testing (non production!)")
vb = VXLANBridge(arguments['management_network'])
vb.setup()
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!)")
dnsra = DNSRA(arguments['management_network'])
dnsra.setup()