bgpwtf/machines: init edge01.waw

This configures our WAW edge router using NixOS. This replaces our
previous Ubuntu installation.

Change-Id: Ibd72bde66ec413164401da407c5b268ad83fd3af
diff --git a/bgpwtf/machines/modules/bootstrap.nix b/bgpwtf/machines/modules/bootstrap.nix
new file mode 100644
index 0000000..09f2555
--- /dev/null
+++ b/bgpwtf/machines/modules/bootstrap.nix
@@ -0,0 +1,77 @@
+# Functionality that used to live in bootstrap.hswaw.net, a VM.
+# PXE boot support has been removed and the functionality moved back to
+# edge01.waw.bgp.wtf.
+
+{ config, pkgs, ... }: {
+  networking.bridges.bootstrap.interfaces = [];
+  networking.interfaces.bootstrap.ipv4.addresses = [
+    { address = "185.236.240.18"; prefixLength = 32; }
+  ];
+  services.dhcpd4 = {
+    enable = true;
+    interfaces = [ "bootstrap" "vl-dcsw-l3" ];
+    extraConfig = ''
+      # ISC DHCP is trash. We only use it in relay mode, yet we have to do
+      # this.
+      subnet 185.236.240.18 netmask 255.255.255.255 {}
+
+      subnet 185.236.240.6 netmask 255.255.255.254 {}
+
+      subnet 185.236.240.24 netmask 255.255.255.248 {
+          option routers 185.236.240.25;
+          range 185.236.240.29 185.236.240.30;
+          option domain-name-servers 8.8.8.8;
+      }
+
+      subnet 185.236.240.32 netmask 255.255.255.240 {
+          range 185.236.240.45 185.236.240.46;
+          option routers 185.236.240.33;
+          option domain-name-servers 8.8.8.8;
+      }
+
+      host bc01n01 {
+          hardware ethernet 00:23:ae:fe:83:20;
+          fixed-address 185.236.240.35;
+          option host-name "bc01n01";
+      }
+      host bc01n02 {
+          hardware ethernet 00:23:ae:fe:83:c4;
+          fixed-address 185.236.240.36;
+          option host-name "bc01n02";
+      }
+      host bc01n03 {
+          hardware ethernet 00:23:ae:fe:42:80;
+          fixed-address 185.236.240.37;
+          option host-name "bc01n03";
+      }
+      host boston-packets {
+          hardware ethernet 00:23:ae:fe:45:8c;
+          fixed-address 185.236.240.38;
+          option host-name "boston-packets.hackerspace.pl";
+          #filename "ipxe.efi";
+      }
+      host dcr01s22 {
+          hardware ethernet 90:1b:0e:08:12:b8;
+          fixed-address 185.236.240.39;
+          option host-name "dcr01s22";
+          #filename "ipxe.efi";
+      }
+      host dcr01s24 {
+          hardware ethernet 90:1b:0e:31:bb:6a;
+          fixed-address 185.236.240.40;
+          option host-name "dcr01s24";
+          #filename "ipxe.efi";
+      }
+      host dsctf {
+          hardware ethernet 00:23:ae:fe:45:50;
+          fixed-address 185.236.240.41;
+          option host-name "dsctf";
+      }
+      host dcr03s32b1 {
+          hardware ethernet 02:01:87:4a:9a:b9;
+          fixed-address 185.236.240.26;
+          option host-name "dcr03s32b1";
+      }
+    '';
+  };
+}