configuration.nix (1209B)
1 { config, pkgs, ... }: 2 let 3 inherit (pkgs.liminix.services) target; 4 svc = config.system.service; 5 in 6 rec { 7 services.lan4 = svc.network.address.build { 8 interface = config.hardware.networkInterfaces.lan; 9 family = "inet"; 10 address = "192.168.19.1"; 11 prefixLength = 24; 12 }; 13 14 imports = [ 15 ../../modules/ppp 16 ../../modules/dnsmasq 17 ../../modules/network 18 ../../modules/firewall 19 ]; 20 21 services.pppoe = svc.pppoe.build { 22 interface = config.hardware.networkInterfaces.wan; 23 username = "db123@a.1"; 24 password = "NotReallyTheSecret"; 25 }; 26 27 services.firewall = svc.firewall.build { 28 zones = { 29 wan = [ services.pppoe ]; 30 lan = [ services.lan4 ]; 31 }; 32 }; 33 34 services.defaultroute4 = svc.network.route.build { 35 via = "$(output ${services.pppoe} address)"; 36 target = "default"; 37 dependencies = [ services.pppoe ]; 38 }; 39 40 services.packet_forwarding = svc.network.forward.build { 41 dependencies = [ services.pppoe ]; 42 }; 43 44 services.dns = svc.dnsmasq.build { 45 interface = services.lan4; 46 ranges = [ "192.168.19.10,192.168.19.253" ]; 47 domain = "fake.liminix.org"; 48 }; 49 50 defaultProfile.packages = with pkgs; [ 51 nftables 52 hello 53 ]; 54 }