summaryrefslogtreecommitdiff
path: root/custom/tinc/yggdrasil.nix
blob: a43092781dbbd5ce2d61ba1dd963ce9e422ab288 (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
{ stdenv
, nettools
, openresolv
, connect ? true
, ipConf ? {}
}


let
  connectTo = if connect then "" else "ConnectTo = ymir"
{
  "yggdrasil" = {
    name = name;
    debugLevel = 2;
    hosts = ( import ./yggdrasil-hosts.nix );
    extraConfig = connectTo;
    scripts = {
      tinc-up = ''
        #!${stdenv.shell}
        ${nettools}/bin/route add -net 10.141.1.0 netmask 255.255.255.0 gw 10.141.1.1 dev $INTERFACE metric 9999
        ${openresolv}/bin/resolvconf -m 0 -a tinc.yggdrasil <<EOF
        domain yggdrasil
        nameserver 10.141.1.1
        EOF
      '';
      tinc-down = ''
        #!${stdenv.shell}
        ${openresolv}/bin/resolvconf -d tinc.yggdrasil
      '';
    };
    interfaceConfig = ipConf;
  };
}