feat: kea setup routes for dhcp clients
This commit is contained in:
parent
e07c904c56
commit
68d9dbe2b6
1 changed files with 24 additions and 4 deletions
28
vm/vm.nix
28
vm/vm.nix
|
@ -225,13 +225,17 @@ in
|
|||
});
|
||||
})
|
||||
];
|
||||
systemd.services.kea-dhcp4-server.serviceConfig = {
|
||||
AmbientCapabilities = [ "CAP_NET_ADMIN" ];
|
||||
CapabilityBoundingSet = [ "CAP_NET_ADMIN" ];
|
||||
};
|
||||
services = {
|
||||
resolved.enable = false;
|
||||
kea.dhcp4 = {
|
||||
enable = true;
|
||||
settings = {
|
||||
interfaces-config = {
|
||||
interfaces = [ "*" ];
|
||||
interfaces = map router_vtep_name vni-list;
|
||||
dhcp-socket-type = "raw";
|
||||
outbound-interface = "same-as-inbound";
|
||||
service-sockets-require-all = true;
|
||||
|
@ -259,9 +263,25 @@ in
|
|||
{
|
||||
library = "${pkgs.kea}/lib/kea/hooks/libdhcp_run_script.so";
|
||||
parameters = {
|
||||
name = pkgs.writeShellScript "hook.sh" ''
|
||||
echo $1 $QUERY4_IFACE_NAME >> /var/lib/kea/scriptlog
|
||||
'';
|
||||
name = lib.getExe <| pkgs.writeShellApplication {
|
||||
name = "hook.sh";
|
||||
runtimeInputs = [ pkgs.busybox ];
|
||||
text = ''
|
||||
case "$1" in
|
||||
"leases4_committed")
|
||||
for i in $(seq 0 $((LEASES4_SIZE-1))); do
|
||||
LEASE4_ADDRESS=$(eval "echo \$LEASES4_AT''${i}_ADDRESS")
|
||||
ip r add dev "$QUERY4_IFACE_NAME" "$LEASE4_ADDRESS"
|
||||
done
|
||||
for i in $(seq 0 $((DELETED_LEASES4_SIZE-1))); do
|
||||
LEASE4_ADDRESS=$(eval "echo \$DELETED_LEASES4_AT''${i}_ADDRESS")
|
||||
ip r del dev "$QUERY4_IFACE_NAME" "$LEASE4_ADDRESS"
|
||||
done
|
||||
;;
|
||||
*) echo "$1" unmanaged;;
|
||||
esac
|
||||
'';
|
||||
};
|
||||
sync = false;
|
||||
};
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue