let pvvv4 = hostPart: "129.241.210.${toString hostPart}"; pvvv6 = hostPart: let fieldCount = builtins.length (builtins.split "(:)" (toString hostPart)); partSep = if (fieldCount < 4) then "::" else ":"; in "2001:700:300:1900${partSep}${toString hostPart}"; pvvHost = hostPart: { ipv4 = pvvv4 hostPart; ipv6 = pvvv6 hostPart; }; dhcpStart = 136; dhcpEnd = 160; dhcpHosts = builtins.listToAttrs ( builtins.genList (n: { name = "dhcp-${builtins.substring 2 2 (toString (n + 1001))}"; value.ipv4 = pvvv4 (n + dhcpStart); }) (dhcpEnd - dhcpStart) ); in { # Note: See ./README.md for usage # Hosts specified here will be included in the default/general DNS setup, with records in # - pvv.org. # - pvv.ntnu.no. # - 210.241.129.in-addr.arpa. (reverse-ipv4, where applicable) # - 9.1.0.0.3.0.0.0.7.0.1.0.0.2.ip6.arpa. (reverse-ipv6, where applicable) # Servere # 130 er ledig # 131 er ledig # 132 er ledig # 133 er ledig # 134 er ledig # 135 er ledig # 136-160 er DHCP, se dhcpHosts # 161 er ledig # 162 er ledig # 163 er kanskje andresbu, ellers ledig # 164 er ledig # 165 er ledig # 166 er ledig temmie = pvvHost 167; bekkalokk = pvvHost 168 // { aliases = [ "alps" "idp" "idp2" "pw" "snappymail" "webmail" "wiki" "www" "www2" ]; }; # 169 er ledig # 170 er sanctuary? TODO: sjekk joshua = pvvHost 171; ambidextrous = pvvHost 172; # 173 er ledig # 174 er ledig isvegg = pvvHost 175 // { ipv6 = pvvv6 "1:a"; aliases = [ "gopher" ]; }; hildring = pvvHost 176 // { ipv6 = pvvv6 "1:9"; aliases = [ "login" "fwlogin" ]; }; # 177 er ledig # 178 er ledig (var spikkjeposche) microbel = pvvHost 179 // { ipv6 = pvvv6 "1:2"; # TODO - Change aliases = [ "homepvv" "homepvva" "homepvvb" "homepvvc" "homepvvd" "homepvvh" "homepvvi" "homepvvj" "homepvvk" "homepvvl" "homepvvm" "homepvvt" "homepvvz" "samba" # TODO: Remove? "sambapvv" # TODO: Remove? "list" # MX/A record handled in ./zones/pvv.ntnu.no.nix "mail" # Special alias handled in ./zones/pvv.ntnu.no.nix ]; }; tom = pvvHost 180; mirage = pvvHost 181; # 182 er ledig # 183 er ledig (var knakelibrak) # 184 er ledig # 185 er ledig # 186 er ledig # 187 er ledig # 188 er ledig # 189 er ledig knutsen.ipv4 = pvvv4 190; knutsen-vpn.ipv4 = pvvv4 191; balduzius = { ipv4 = pvvv4 192; # TODO: Add IPv6. Note present in ye olde zone file: # ; Kommentert ut IPv6 foreloepig -- maskinen klarer ikke naa default gw paa v6 # ipv6 = pvvv6 "1:42"; aliases = [ "kdc" "kerberos" ]; }; sleipner = pvvHost 193 // { ipv6 = pvvv6 "fab:cab:dab:7ab"; # TODO - Change aliases = [ "lommel" "puppet" # TODO - Remove? "rdist" # TODO - Remove? "salt" ]; }; # 194 er ledig # 195 er ledig # 196 er shark? # 197 er ledig # 198 er ledig # 199 er ledig # 200 er ledig demiurgen = pvvHost 201 // { aliases = [ "demirurgen" "rurgen" ]; }; # 202 er ledig # TODO: is eirin ded? eirin = pvvHost 203 // { ipv6 = pvvv6 "1:4d"; # TODO - Change }; georg = pvvHost 204 // { ipv6 = pvvv6 "1:4f"; # TODO - Change aliases = [ "georg-backend" "georg-old" ]; }; brzeczyszczykiewicz = pvvHost 205 // { ipv6 = pvvv6 "1:50"; # TODO - Change aliases = [ "bokhylle" "brzeczyszczykiewicz-backend" "brzeczyszczykiewicz-old" ]; }; kvernberg = pvvHost 206 // { ipv6 = pvvv6 "1:206"; # TODO - Change aliases = [ "bank.kvernberg" "exchange.kvernberg" ]; }; # 207 er ledig # 208 er ledig bicep = pvvHost 209 // { aliases = [ "chat" "hookshot" "matrix" "mirrors" "mysql" "ooye" "postgres" "slidingsync" # TODO - Remove? ]; }; orchid = pvvHost 210; dvask.ipv4 = pvvv4 211; # 212 er ledig turn = pvvHost 213; innovation = pvvHost 214 // { ipv6 = pvvv6 "1:56"; # TODO - Change }; # 215 er ledig # 216 er ledig drolsum = pvvHost 217 // { ipv6 = pvvv6 "1:217"; aliases = [ "login2" ]; }; wegonke = pvvHost 218 // { ipv6 = pvvv6 "1:218"; # TODO - Change }; kana = pvvHost 219 // { aliases = [ "ap" ]; }; blossom = pvvHost 220; bubbles = pvvHost 221; buttercup = pvvHost 222; kommode = pvvHost 223 // { aliases = [ "git" "gitea" "pages" ]; }; lupine-1 = pvvHost 224; lupine-2 = pvvHost 225; lupine-3 = pvvHost 226; lupine-4 = pvvHost 227; lupine-5 = pvvHost 228; homeassistant = pvvHost 229 // { ipv6 = pvvv6 "4:229"; # TODO - Change }; ameno = pvvHost 230 // { ipv6 = pvvv6 "4:230"; # TODO - Change }; buskerud = pvvHost 231; # 232 er ledig # 233 er merkelig - "se principal" principal = pvvHost 233 // { ipv6 = pvvv6 "4:233"; aliases = [ "alphys" # TODO - Remove? "loghost" "nosferatu" # TODO - Remove? ]; }; ustetind = pvvHost 234; # 235 er ledig (var skrott) tallulah = pvvHost 236 // { ipv6 = pvvv6 "ca60:ff:fe5f:c5e0"; # TODO - Change }; skrot = pvvHost 237; # 238 er ledig # 239 er ledig wenche = pvvHost 240; # 241 er ledig smask = pvvHost 242; # 243 er ledig # 244 er ledig # 245 er ledig # 246 er ledig # 247 er ledig # Midlertidige maskiner på PVV: guest1 = pvvHost 248; guest2 = pvvHost 249; guest3 = pvvHost 250; # 251 er ledig # 252 er ledig knutsen-tap.ipv4 = pvvv4 253; ludvigsen-tap.ipv4 = pvvv4 254; # Outside 129.241.210.128/25: "ildkule.stackit.pvv.ntnu.no.".aliases = [ "ildkule" "grafana" "journald" "status" ]; "gluttony.stackit.pvv.ntnu.no.".aliases = [ "gluttony" ]; # TODO - Make less quirky syntax for this "ircnet.underworld.no.".aliases = [ "irc" ]; } // dhcpHosts