This repository has no description
0

Configure Feed

Select the types of activity you want to include in your feed.

superconfig / 2configs / gg23.nix
3.2 kB 138 lines
1{ lib, pkgs, ... }: 2{ 3 # vodafone router drifts out of time 4 services.timesyncd.servers = [ 5 "0.pool.ntp.org" 6 "1.pool.ntp.org" 7 "2.pool.ntp.org" 8 "3.pool.ntp.org" 9 ]; 10 systemd.network.networks."50-et0" = { 11 matchConfig.Name = "et0"; 12 DHCP = "yes"; 13 linkConfig = { 14 RequiredForOnline = "routable"; 15 }; 16 networkConfig = { 17 IPv6AcceptRA = true; 18 IPv6Forwarding = true; 19 }; 20 }; 21 boot.kernel.sysctl."net.ipv4.ip_forward" = 1; 22 boot.kernel.sysctl."net.ipv6.conf.all.forwarding" = 1; 23 systemd.network.networks."10-int0" = { 24 name = "int0"; 25 address = [ 26 "10.42.0.1/24" 27 "fd42:7d6a::1/64" 28 ]; 29 networkConfig = { 30 IPv4Forwarding = true; 31 IPv6Forwarding = true; 32 ConfigureWithoutCarrier = true; 33 DHCPServer = "yes"; 34 IPv6SendRA = true; 35 }; 36 ipv6Prefixes = [ 37 { 38 ipv6PrefixConfig = { 39 Prefix = "fd42:7d6a::/64"; 40 }; 41 } 42 ]; 43 dhcpServerStaticLeases = [ 44 { 45 # printer 46 dhcpServerStaticLeaseConfig = { 47 Address = "10.42.0.4"; 48 MACAddress = "94:dd:f8:23:c5:ac"; 49 }; 50 } 51 { 52 # firetv 53 dhcpServerStaticLeaseConfig = { 54 Address = "10.42.0.11"; 55 MACAddress = "84:28:59:f0:d2:a8"; 56 }; 57 } 58 # { 59 # dhcpServerStaticLeaseConfig = { 60 # Address = "10.42.0.10"; 61 # MACAddress = "ea:4d:12:94:74:2a"; 62 # }; 63 # } 64 { 65 dhcpServerStaticLeaseConfig = { 66 Address = "10.42.0.10"; 67 MACAddress = "fe:fe:fe:fe:fe:fe"; 68 }; 69 } 70 ]; 71 }; 72 networking.networkmanager.unmanaged = [ "int0" ]; 73 krebs.iptables.tables.filter.INPUT.rules = [ 74 { 75 predicate = "-i int0"; 76 target = "ACCEPT"; 77 } 78 ]; 79 krebs.iptables.tables.filter.FORWARD.rules = [ 80 { 81 predicate = "-i int0"; 82 target = "ACCEPT"; 83 } 84 { 85 predicate = "-o int0"; 86 target = "ACCEPT"; 87 } 88 { 89 predicate = "-p ipv6-icmp"; 90 target = "ACCEPT"; 91 v4 = false; 92 } 93 ]; 94 krebs.iptables.tables.nat.PREROUTING.rules = lib.mkBefore [ 95 { 96 v6 = false; 97 predicate = "-s 10.42.0.0/24"; 98 target = "ACCEPT"; 99 } 100 ]; 101 krebs.iptables.tables.nat.POSTROUTING.rules = [ 102 { 103 v6 = false; 104 predicate = "-s 10.42.0.0/24"; 105 target = "MASQUERADE"; 106 } 107 { 108 v4 = false; 109 predicate = "-s fd42:7d6a::/64"; 110 target = "MASQUERADE"; 111 } 112 ]; 113 114 networking.domain = "gg23"; 115 116 networking.useHostResolvConf = false; 117 services.resolved.settings.Resolve.DNSStubListener = "no"; 118 services.dnsmasq = { 119 enable = true; 120 resolveLocalQueries = false; 121 122 settings = { 123 local = "/gg23/"; 124 domain = "gg23"; 125 expand-hosts = true; 126 listen-address = "10.42.0.1,10.233.0.1"; 127 interface = "int0"; 128 }; 129 }; 130 131 environment.systemPackages = [ 132 (pkgs.writers.writeDashBin "restart_router" '' 133 ${pkgs.mosquitto}/bin/mosquitto_pub -h localhost -t 'cmnd/router/POWER' -u gg23 -P gg23-mqtt -m OFF 134 sleep 2 135 ${pkgs.mosquitto}/bin/mosquitto_pub -h localhost -t 'cmnd/router/POWER' -u gg23 -P gg23-mqtt -m ON 136 '') 137 ]; 138}