summaryrefslogtreecommitdiff
path: root/hosts/dishwasher/mcvm-network.nix
blob: 22114b30b9cb37e331e215452685af55b05a48fc (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
{ config, pkgs, ... }: {
  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" ];
  };

}