mirror of
https://github.com/Swarsel/.dotfiles.git
synced 2025-12-06 09:07:21 +01:00
feat: full nix-topology
This commit is contained in:
parent
ed15ef02bb
commit
c7132d2d85
38 changed files with 2464 additions and 807 deletions
154
topology/default.nix
Normal file
154
topology/default.nix
Normal file
|
|
@ -0,0 +1,154 @@
|
|||
{ config, ... }:
|
||||
let
|
||||
inherit (config.lib.topology)
|
||||
mkInternet
|
||||
mkDevice
|
||||
mkSwitch
|
||||
mkRouter
|
||||
mkConnection
|
||||
;
|
||||
in
|
||||
{
|
||||
renderer = "elk";
|
||||
|
||||
networks = {
|
||||
home-lan = {
|
||||
name = "Home LAN";
|
||||
cidrv4 = "192.168.1.0/24";
|
||||
};
|
||||
wg = {
|
||||
name = "Wireguard Tunnel";
|
||||
cidrv4 = "192.168.3.0/24";
|
||||
};
|
||||
};
|
||||
|
||||
nodes = {
|
||||
internet = mkInternet {
|
||||
connections = [
|
||||
(mkConnection "moonside" "wan")
|
||||
(mkConnection "pfsense" "wan")
|
||||
(mkConnection "sync" "wan")
|
||||
];
|
||||
};
|
||||
|
||||
sync.interfaces.wan = { };
|
||||
moonside.interfaces.wan = { };
|
||||
|
||||
pfsense = mkRouter "pfSense" {
|
||||
info = "HUNSN RM02";
|
||||
image = ../topology/images/hunsn.png;
|
||||
interfaceGroups = [
|
||||
[
|
||||
"eth2"
|
||||
"eth3"
|
||||
"eth4"
|
||||
"eth5"
|
||||
"eth6"
|
||||
]
|
||||
[ "wan" ]
|
||||
];
|
||||
interfaces.wg0 = {
|
||||
addresses = [ "192.168.3.1" ];
|
||||
network = "wg";
|
||||
virtual = true;
|
||||
type = "wireguard";
|
||||
};
|
||||
|
||||
connections = {
|
||||
eth2 = mkConnection "switch-livingroom" "eth1";
|
||||
eth4 = mkConnection "winters" "eth1";
|
||||
eth3 = mkConnection "switch-bedroom" "eth1";
|
||||
eth6 = mkConnection "wifi-ap" "eth1";
|
||||
wg = mkConnection "moonside" "wg";
|
||||
};
|
||||
interfaces = {
|
||||
eth2 = {
|
||||
addresses = [ "192.168.1.1" ];
|
||||
network = "home-lan";
|
||||
};
|
||||
eth3 = {
|
||||
addresses = [ "192.168.1.1" ];
|
||||
network = "home-lan";
|
||||
};
|
||||
eth4 = {
|
||||
addresses = [ "192.168.1.1" ];
|
||||
network = "home-lan";
|
||||
};
|
||||
eth6 = {
|
||||
addresses = [ "192.168.1.1" ];
|
||||
network = "home-lan";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
winters.interfaces."eth1" = { };
|
||||
|
||||
wifi-ap = mkSwitch "Wi-Fi AP" {
|
||||
info = "Huawei";
|
||||
image = ../topology/images/huawei.png;
|
||||
interfaceGroups = [
|
||||
[
|
||||
"eth1"
|
||||
"wifi"
|
||||
]
|
||||
];
|
||||
};
|
||||
|
||||
switch-livingroom = mkSwitch "Switch Livingroom" {
|
||||
info = "TL-SG108";
|
||||
image = ../topology/images/TL-SG108.png;
|
||||
interfaceGroups = [
|
||||
[
|
||||
"eth1"
|
||||
"eth2"
|
||||
"eth3"
|
||||
"eth4"
|
||||
"eth5"
|
||||
"eth6"
|
||||
"eth7"
|
||||
"eth8"
|
||||
]
|
||||
];
|
||||
connections = {
|
||||
eth2 = mkConnection "nswitch" "eth1";
|
||||
eth7 = mkConnection "pc" "eth1";
|
||||
eth8 = mkConnection "nbl-imba-2" "eth1";
|
||||
};
|
||||
};
|
||||
|
||||
nswitch = mkDevice "Nintendo Switch" {
|
||||
info = "Nintendo Switch";
|
||||
image = ../topology/images/nintendo-switch.png;
|
||||
interfaces.eth1 = { };
|
||||
};
|
||||
|
||||
pc = mkDevice "Windows Gaming Server" {
|
||||
info = "i7-4790k, GTX970, 32GB RAM";
|
||||
image = ../topology/images/pc.png;
|
||||
interfaces.eth1 = { };
|
||||
};
|
||||
|
||||
nbl-imba-2.interfaces.eth1 = { };
|
||||
|
||||
switch-bedroom = mkSwitch "Switch Bedroom" {
|
||||
info = "TL-SG1005D";
|
||||
image = ../topology/images/TL-SG1005D.png;
|
||||
interfaceGroups = [
|
||||
[
|
||||
"eth1"
|
||||
"eth2"
|
||||
"eth3"
|
||||
"eth4"
|
||||
"eth5"
|
||||
]
|
||||
];
|
||||
connections.eth2 = mkConnection "printer" "eth1";
|
||||
};
|
||||
|
||||
printer = mkDevice "Printer" {
|
||||
info = "DELL C2665dnf";
|
||||
image = ../topology/images/DELL-C2665dnf.png;
|
||||
interfaces.eth1 = { };
|
||||
};
|
||||
};
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue