{ config, lib, ... }: let inherit (lib) mkOption types; cfg = config.vogon; in { options.vogon = { networking = { last-octet = mkOption { type = types.ints.between 161 174; description = ''' Dernier octet de l'IPv4 de la machine. ''; example = 163; }; wan-mac = mkOption { type = types.str; description = ''' Adresse MAC de l'interface réseau WAN qui portera l'IPv4 interne. ''; example = "BC:24:11:B7:AE:80"; }; }; }; config.systemd.network = { links."10-wan" = { matchConfig.MACAddress = cfg.networking.wan-mac; linkConfig.Name = "wan"; }; networks."10-wan" = { matchConfig.Name = "wan"; address = [ "193.54.193.${toString cfg.networking.last-octet}/28" ]; routes = [ { Gateway = "193.54.193.174"; } ]; linkConfig.RequiredForOnline = "routable"; }; }; }