summaryrefslogtreecommitdiff
path: root/hosts/dishwasher/mcvm-network.nix
blob: b471c2e14986f1a42eb2358f9ba613dce83fe57e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
{ ... }:
{
  systemd.network = {
    netdevs."microvm-bridge".netdevConfig = {
      Kind = "bridge";
      Name = "microvm-bridge";
    };

    networks."0-microvm-bridge" = {
      matchConfig.Name = "microvm-bridge";
      networkConfig = {
        DHCPServer = false;
        IPv6SendRA = true;
      };
      addresses = [
        {
          addressConfig.Address = "10.99.99.1/24";
        }
        {
          addressConfig.Address = "fd12:3456:789a::1/64";
        }
      ];
      ipv6Prefixes = [{
        ipv6PrefixConfig.Prefix = "fd12:3456:789a::/64";
      }];
      # networkConfig = {
      #   Address = "10.99.99.1/24";
      #   IPForward = "ipv4";
      # };
      # routes = [{
      #   routeConfig = {
      #   GatewayOnLink = true;
      # };}];
      # IPForward = "ipv4";
      # DHCPServer = true;
      # IPv6SendRA = true;
      # addresses = [{
      #   addressConfig.Address = "10.99.99.1/24";
      # }];
    };

    networks."1-microvm-bridge" = {
      matchConfig.Name = "vm-*";
      networkConfig.Bridge = "microvm-bridge";
    };
  };

  networking.nat = {
    enable = true;
    enableIPv6 = true;
    externalInterface = "enp1s0";
    internalInterfaces = [ "microvm-bridge" ];
  };

}