feat(machines/ap01): add default VLAN and admin VLAN
Put DHCPv4 on the default VLAN now. Signed-off-by: Ryan Lahfa <ryan@dgnum.eu>
This commit is contained in:
parent
25eee32a22
commit
e5f31469ee
4 changed files with 44 additions and 37 deletions
|
@ -3,16 +3,18 @@ let
|
||||||
svc = config.system.service;
|
svc = config.system.service;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
services.dhcpv4 = svc.network.dhcp.client.build {
|
services.init-dhcpv4 = svc.network.dhcp.client.build {
|
||||||
interface = config.services.int;
|
interface = config.services.int;
|
||||||
dependencies = [
|
dependencies = [
|
||||||
config.services.bridge.components.lan
|
config.services.bridge.components.lan
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
services.defaultroute4 = svc.network.route.build {
|
services.init-defaultroute4 = svc.network.route.build {
|
||||||
via = "$(output ${config.services.dhcpv4} router)";
|
via = "$(output ${config.services.init-dhcpv4} router)";
|
||||||
target = "default";
|
target = "default";
|
||||||
dependencies = [ config.services.dhcpv4 ];
|
dependencies = [ config.services.init-dhcpv4 ];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# TODO: ensure SLAAC for admin-vlan.
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,17 +8,18 @@ in
|
||||||
# TODO: support dynamic reconfiguration once we are in the target VLAN?
|
# TODO: support dynamic reconfiguration once we are in the target VLAN?
|
||||||
services.resolvconf = oneshot rec {
|
services.resolvconf = oneshot rec {
|
||||||
name = "resolvconf";
|
name = "resolvconf";
|
||||||
|
# TODO: imho, DNS should be static and provided by the router?
|
||||||
up = ''
|
up = ''
|
||||||
. ${serviceFns}
|
. ${serviceFns}
|
||||||
( in_outputs ${name}
|
( in_outputs ${name}
|
||||||
for i in $(output ${config.services.dhcpv4} dns); do
|
for i in $(output ${config.services.init-dhcpv4} dns); do
|
||||||
echo "nameserver $i" >> resolv.conf
|
echo "nameserver $i" >> resolv.conf
|
||||||
done
|
done
|
||||||
)
|
)
|
||||||
'';
|
'';
|
||||||
|
|
||||||
dependencies = [
|
dependencies = [
|
||||||
config.services.dhcpv4
|
config.services.init-dhcpv4
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -3,12 +3,21 @@ let
|
||||||
svc = config.system.service;
|
svc = config.system.service;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
services.int = svc.bridge.primary.build {
|
# Our bridging is a bit complicated, therefore, we need iproute2.
|
||||||
|
programs.iproute2.enable = true;
|
||||||
|
|
||||||
|
services = {
|
||||||
|
int = svc.bridge.primary.build {
|
||||||
ifname = "int";
|
ifname = "int";
|
||||||
macAddressFromInterface = config.hardware.networkInterfaces.lan;
|
macAddressFromInterface = config.hardware.networkInterfaces.lan;
|
||||||
|
untagged = {
|
||||||
|
enable = true;
|
||||||
|
pvid = 1;
|
||||||
|
default-pvid = 1;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
services.bridge = svc.bridge.members.build {
|
bridge = svc.bridge.members.build {
|
||||||
primary = config.services.int;
|
primary = config.services.int;
|
||||||
members = {
|
members = {
|
||||||
lan.member = config.hardware.networkInterfaces.lan;
|
lan.member = config.hardware.networkInterfaces.lan;
|
||||||
|
@ -25,15 +34,10 @@ in
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# Default VLAN
|
admin-vlan = svc.vlan.build {
|
||||||
# services.vlan-apro = svc.vlan.build {
|
ifname = "admin";
|
||||||
# vlanId = 0;
|
primary = config.services.int;
|
||||||
# interface = config.services.int;
|
vid = "3001";
|
||||||
# };
|
};
|
||||||
|
};
|
||||||
# # Administration VLAN
|
|
||||||
# services.vlan-admin = svc.vlan.build {
|
|
||||||
# vlan = 3001;
|
|
||||||
# interface = config.services.int;
|
|
||||||
# };
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -131,9 +131,9 @@
|
||||||
"url": "https://git.dgnum.eu/DGNum/liminix"
|
"url": "https://git.dgnum.eu/DGNum/liminix"
|
||||||
},
|
},
|
||||||
"branch": "main",
|
"branch": "main",
|
||||||
"revision": "473d6acc3de70bd6dbbb4a77af54f508f25c3c9c",
|
"revision": "1322de1ee0cdb19fead79e12ab279ee0b575019a",
|
||||||
"url": null,
|
"url": null,
|
||||||
"hash": "00slsh0yqd8n8jcx3sbxgcmw1z28bnszy87pfs0ynfkl3bldzs3d"
|
"hash": "07nk6nik97k8a57cf17dcj3gn2lbhw1myymrxpqc2aqa3haj754k"
|
||||||
},
|
},
|
||||||
"linkal": {
|
"linkal": {
|
||||||
"type": "Git",
|
"type": "Git",
|
||||||
|
|
Loading…
Reference in a new issue