dotfiles/example.nix
2025-11-06 16:35:10 -06:00

265 lines
5.2 KiB
Nix
Executable file

# This is someone else's network config, however they use VLANs. I am not using VLANs. I'm just connecting my microVMs to the general LAN for now.
{
enable = true;
netdevs = {
"vlan-mgmt" = {
netdevConfig = {
Name = "vlan-mgmt";
Kind = "vlan";
};
vlanConfig.Id = 50;
};
"br-mgmt" = {
netdevConfig = {
Name = "br-mgmt";
Kind = "bridge";
};
};
"vlan-minio" = {
netdevConfig = {
Name = "vlan-minio";
Kind = "vlan";
};
vlanConfig.Id = 51;
};
"br-minio" = {
netdevConfig = {
Name = "br-minio";
Kind = "bridge";
};
bridgeConfig = {
STP = true;
};
};
"vlan-forgejo" = {
netdevConfig = {
Name = "vlan-forgejo";
Kind = "vlan";
};
vlanConfig.Id = 52;
};
"br-forgejo" = {
netdevConfig = {
Name = "br-forgejo";
Kind = "bridge";
};
bridgeConfig = {
STP = true;
};
};
"vlan-nexus" = {
netdevConfig = {
Name = "vlan-nexus";
Kind = "vlan";
};
vlanConfig.Id = 53;
};
"br-nexus" = {
netdevConfig = {
Name = "br-nexus";
Kind = "bridge";
};
bridgeConfig = {
STP = true;
};
};
"vlan-cloud" = {
netdevConfig = {
Name = "vlan-cloud";
Kind = "vlan";
};
vlanConfig.Id = 54;
};
"br-cloud" = {
netdevConfig = {
Name = "br-cloud";
Kind = "bridge";
};
bridgeConfig = {
STP = true;
};
};
"vlan-caddy" = {
netdevConfig = {
Name = "vlan-caddy";
Kind = "vlan";
};
vlanConfig.Id = 55;
};
"br-caddy" = {
netdevConfig = {
Name = "br-caddy";
Kind = "bridge";
};
bridgeConfig = {
STP = true;
};
};
"vlan-website" = {
netdevConfig = {
Name = "vlan-website";
Kind = "vlan";
};
vlanConfig.Id = 56;
};
"br-website" = {
netdevConfig = {
Name = "br-website";
Kind = "bridge";
};
bridgeConfig = {
STP = true;
};
};
};
networks = {
"trunk-nic" = {
matchConfig.Name = "enp3s0f0";
vlan = [
"vlan-mgmt"
"vlan-minio"
"vlan-forgejo"
"vlan-nexus"
"vlan-cloud"
"vlan-caddy"
"vlan-website"
];
};
"vlan-mgmt-net" = {
matchConfig.Name = "vlan-mgmt";
bridge = [ "br-mgmt" ];
};
"host-on-mgmt" = {
matchConfig.Name = "br-mgmt";
networkConfig = {
Address = [ "10.0.50.2/24" ];
Gateway = "10.0.50.1";
DNS = [ "10.0.50.1" ];
};
};
"vlan-minio-net" = {
matchConfig.Name = "vlan-minio";
bridge = [ "br-minio" ];
};
"host-on-minio" = {
matchConfig.Name = "br-minio";
};
"vlan-forgejo-net" = {
matchConfig.Name = "vlan-forgejo";
bridge = [ "br-forgejo" ];
};
"host-on-forgejo" = {
matchConfig.Name = "br-forgejo";
};
"vlan-nexus-net" = {
matchConfig.Name = "vlan-nexus";
bridge = [ "br-nexus" ];
};
"host-on-nexus" = {
matchConfig.Name = "br-nexus";
};
"vlan-cloud-net" = {
matchConfig.Name = "vlan-cloud";
bridge = [ "br-cloud" ];
};
"host-on-cloud" = {
matchConfig.Name = "br-cloud";
};
"vlan-caddy-net" = {
matchConfig.Name = "vlan-caddy";
bridge = [ "br-caddy" ];
};
"host-on-caddy" = {
matchConfig.Name = "br-caddy";
};
"vlan-website-net" = {
matchConfig.Name = "vlan-website";
bridge = [ "br-website" ];
};
"host-on-website" = {
matchConfig.Name = "br-website";
};
"vm-taps-minio" = {
matchConfig = {
Name = "vm-minio";
};
networkConfig = {
Description = "minio VM tap interface";
Bridge = "br-minio";
ConfigureWithoutCarrier = true;
};
};
"vm-taps-forgejo" = {
matchConfig = {
Name = "vm-forgejo";
};
networkConfig = {
Description = "forgejo VM tap interface";
Bridge = "br-forgejo";
ConfigureWithoutCarrier = true;
};
};
# VM tap interfaces for Nexus
"vm-taps-nexus" = {
matchConfig = {
Name = "vm-nexus";
};
networkConfig = {
Description = "nexus VM tap interface";
Bridge = "br-nexus";
ConfigureWithoutCarrier = true;
};
};
"vm-taps-cloud" = {
matchConfig = {
Name = "vm-cloud";
};
networkConfig = {
Description = "cloud VM tap interface";
Bridge = "br-cloud";
ConfigureWithoutCarrier = true;
};
};
"vm-taps-caddy" = {
matchConfig = {
Name = "vm-caddy";
};
networkConfig = {
Description = "caddy VM tap interface";
Bridge = "br-caddy";
ConfigureWithoutCarrier = true;
};
};
"vm-taps-website" = {
matchConfig = {
Name = "vm-website";
};
networkConfig = {
Description = "website VM tap interface";
Bridge = "br-website";
ConfigureWithoutCarrier = true;
};
};
};
}