Compare commits
2 commits
e1d4a1019a
...
7d0515d6f0
Author | SHA1 | Date | |
---|---|---|---|
7d0515d6f0 | |||
84b473d38c |
5 changed files with 78 additions and 17 deletions
|
@ -1,5 +1,6 @@
|
||||||
{
|
{
|
||||||
specialArgs,
|
specialArgs,
|
||||||
|
hostBridge,
|
||||||
hostAddress,
|
hostAddress,
|
||||||
localAddress,
|
localAddress,
|
||||||
imapsPort ? 993,
|
imapsPort ? 993,
|
||||||
|
@ -227,5 +228,5 @@
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
inherit hostAddress localAddress;
|
inherit hostBridge hostAddress localAddress;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
{
|
{
|
||||||
specialArgs,
|
specialArgs,
|
||||||
|
hostBridge,
|
||||||
hostAddress,
|
hostAddress,
|
||||||
localAddress,
|
localAddress,
|
||||||
syncthingPort ? 22000,
|
syncthingPort ? 22000,
|
||||||
|
@ -56,5 +57,5 @@
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
inherit hostAddress localAddress;
|
inherit hostBridge hostAddress localAddress;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
{
|
{
|
||||||
specialArgs,
|
specialArgs,
|
||||||
|
hostBridge,
|
||||||
hostAddress,
|
hostAddress,
|
||||||
localAddress,
|
localAddress,
|
||||||
httpPort,
|
httpPort,
|
||||||
|
@ -330,5 +331,5 @@ in {
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
inherit hostAddress localAddress;
|
inherit hostBridge hostAddress localAddress;
|
||||||
}
|
}
|
||||||
|
|
|
@ -87,13 +87,16 @@
|
||||||
then bridgeInterfaceName
|
then bridgeInterfaceName
|
||||||
else "${bridgeInterfaceName}.${toString vlanid}";
|
else "${bridgeInterfaceName}.${toString vlanid}";
|
||||||
|
|
||||||
dmzExposedHost = "sj-srv1.dmz.internal";
|
dmzExposedHost = "sj-srv1";
|
||||||
|
dmzExposedHostDomain = "dmz.internal";
|
||||||
|
dmzExposedHostFQDN = "${dmzExposedHost}.${dmzExposedHostDomain}";
|
||||||
dmzExposedHostIpv4 = mkVlanIpv4HostAddr {
|
dmzExposedHostIpv4 = mkVlanIpv4HostAddr {
|
||||||
vlanid = vlansByName.dmz.id;
|
vlanid = vlansByName.dmz.id;
|
||||||
host = 99;
|
host = 99;
|
||||||
cidr = false;
|
cidr = false;
|
||||||
};
|
};
|
||||||
# "sj-srv1.dmz.internal";
|
|
||||||
|
dmzExposedHostMACaddr = repoFlake.nixosConfigurations.${dmzExposedHost}.config.systemd.network.netdevs."10-dmz0".netdevConfig.MACAddress;
|
||||||
in {
|
in {
|
||||||
imports = [
|
imports = [
|
||||||
nixos-sbc.nixosModules.default
|
nixos-sbc.nixosModules.default
|
||||||
|
@ -1126,8 +1129,11 @@ in {
|
||||||
)
|
)
|
||||||
vlanRangeWith0;
|
vlanRangeWith0;
|
||||||
|
|
||||||
# TODO: double-check that this works
|
dhcp-host = builtins.concatStringsSep "," [
|
||||||
dhcp-host = "1c:69:7a:07:08:5f,${dmzExposedHostIpv4},${dmzExposedHost}";
|
dmzExposedHostMACaddr
|
||||||
|
dmzExposedHostIpv4
|
||||||
|
dmzExposedHostFQDN
|
||||||
|
];
|
||||||
|
|
||||||
expand-hosts = true;
|
expand-hosts = true;
|
||||||
|
|
||||||
|
|
|
@ -25,15 +25,64 @@
|
||||||
networking.usePredictableInterfaceNames = false;
|
networking.usePredictableInterfaceNames = false;
|
||||||
|
|
||||||
networking.useNetworkd = true;
|
networking.useNetworkd = true;
|
||||||
networking.useDHCP = true;
|
networking.useDHCP = false;
|
||||||
|
|
||||||
networking.nat = {
|
networking.nat = {
|
||||||
enable = true;
|
enable = true;
|
||||||
internalInterfaces = ["ve-*"];
|
internalInterfaces = ["br0"];
|
||||||
externalInterface = "eth0";
|
externalInterface = "dmz0";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
networking.bridges = {
|
||||||
|
br0 = {
|
||||||
|
interfaces = [];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
networking.interfaces = {
|
||||||
|
br0 = {
|
||||||
|
ipv4.addresses = [
|
||||||
|
{
|
||||||
|
address = "192.168.101.1";
|
||||||
|
prefixLength = 24;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.network.netdevs."10-dmz0" = {
|
||||||
|
enable = true;
|
||||||
|
netdevConfig = {
|
||||||
|
Name = "dmz0";
|
||||||
|
Kind = "macvlan";
|
||||||
|
MACAddress = "1c:69:7a:07:08:6f";
|
||||||
|
};
|
||||||
|
|
||||||
|
macvlanConfig = {
|
||||||
|
Mode = "bridge";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.network.networks."20-eth0" = {
|
||||||
|
enable = true;
|
||||||
|
matchConfig.Name = "eth0";
|
||||||
|
|
||||||
|
# TODO: i'm not sure if and if so why this is required
|
||||||
|
macvlan = [
|
||||||
|
"dmz0"
|
||||||
|
];
|
||||||
|
|
||||||
|
DHCP = "no";
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.network.networks."30-dmz0" = {
|
||||||
|
enable = true;
|
||||||
|
matchConfig.Name = "dmz0";
|
||||||
|
DHCP = "yes";
|
||||||
|
};
|
||||||
|
|
||||||
boot.kernel.sysctl = {
|
boot.kernel.sysctl = {
|
||||||
"net.ipv4.ip_forward" = 1;
|
"net.ipv4.ip_forward" = 1;
|
||||||
|
"net.ipv6.ip_forward" = 1;
|
||||||
};
|
};
|
||||||
|
|
||||||
# virtualization
|
# virtualization
|
||||||
|
@ -84,14 +133,15 @@
|
||||||
|
|
||||||
autoStart = true;
|
autoStart = true;
|
||||||
|
|
||||||
hostAddress = "192.168.100.10";
|
hostBridge = "br0";
|
||||||
localAddress = "192.168.100.11";
|
hostAddress = "192.168.101.1";
|
||||||
|
localAddress = "192.168.101.10/24";
|
||||||
|
|
||||||
imapsPort = 993;
|
imapsPort = 993;
|
||||||
sievePort = 4190;
|
sievePort = 4190;
|
||||||
};
|
};
|
||||||
|
|
||||||
websrv0 =
|
webserver =
|
||||||
import ../../containers/webserver.nix
|
import ../../containers/webserver.nix
|
||||||
{
|
{
|
||||||
specialArgs = {
|
specialArgs = {
|
||||||
|
@ -100,8 +150,9 @@
|
||||||
|
|
||||||
autoStart = true;
|
autoStart = true;
|
||||||
|
|
||||||
hostAddress = "192.168.100.12";
|
hostBridge = "br0";
|
||||||
localAddress = "192.168.100.13";
|
hostAddress = "192.168.101.1";
|
||||||
|
localAddress = "192.168.101.11/24";
|
||||||
|
|
||||||
httpPort = 80;
|
httpPort = 80;
|
||||||
httpsPort = 443;
|
httpsPort = 443;
|
||||||
|
@ -114,8 +165,9 @@
|
||||||
};
|
};
|
||||||
autoStart = true;
|
autoStart = true;
|
||||||
|
|
||||||
hostAddress = "192.168.100.14";
|
hostBridge = "br0";
|
||||||
localAddress = "192.168.100.15";
|
hostAddress = "192.168.101.1";
|
||||||
|
localAddress = "192.168.101.12/24";
|
||||||
|
|
||||||
syncthingPort = 22000;
|
syncthingPort = 22000;
|
||||||
};
|
};
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue