From a305a69aad9c7e2eb9d51d68ce34ff9550890d6c Mon Sep 17 00:00:00 2001 From: catvayor Date: Wed, 5 Feb 2025 14:02:00 +0100 Subject: [PATCH] fix(bridge01/network): hack! resolve arp of the router --- machines/nixos/bridge01/network.nix | 154 +++++++++++++++------------- 1 file changed, 85 insertions(+), 69 deletions(-) diff --git a/machines/nixos/bridge01/network.nix b/machines/nixos/bridge01/network.nix index 7cd573e..a916373 100644 --- a/machines/nixos/bridge01/network.nix +++ b/machines/nixos/bridge01/network.nix @@ -3,8 +3,17 @@ # # SPDX-License-Identifier: EUPL-1.2 -_: - +{ + pkgs, + utils, + lib, + ... +}: +let + inherit (lib) + getExe' + ; +in { networking = { useNetworkd = true; @@ -14,77 +23,84 @@ _: firewall.allowedUDPPorts = [ 67 ]; }; - systemd.network = { - networks = { - "10-enp1s0f0" = { - name = "enp1s0f0"; - # description = "To the switch"; - networkConfig = { - VLAN = [ - "vlan-admin" - ]; + systemd = { + services."arp-resolve-router" = { + wantedBy = [ "systemd-networkd.service" ]; + after = [ "systemd-networkd-wait-online.service" ]; + bindsTo = [ "systemd-networkd-wait-online.service" ]; + serviceConfig.ExecStart = utils.escapeSystemdExecArgs [ + (getExe' pkgs.iputils "ping") + "-c" + 1 + "10.120.33.245" + ]; - LinkLocalAddressing = false; - LLDP = false; - EmitLLDP = false; - IPv6AcceptRA = false; - IPv6SendRA = false; - }; - }; - - "10-eno1" = { - name = "eno1"; - # description = "Uplink cri"; - address = [ - "10.120.33.246/30" - "129.199.195.158/32" - ]; - routes = [ - { - PreferredSource = "129.199.195.158"; - Gateway = "10.120.33.245"; - } - ]; - - networkConfig = { - LLDP = false; - EmitLLDP = false; - IPv6AcceptRA = false; - IPv6SendRA = false; - }; - - }; - - "10-vlan-admin" = { - name = "vlan-admin"; - # DHCP for the BMC - networkConfig.DHCPServer = "yes"; - - dhcpServerConfig = { - PoolOffset = 128; - EmitDNS = false; - EmitNTP = false; - EmitSIP = false; - EmitPOP3 = false; - EmitSMTP = false; - EmitLPR = false; - UplinkInterface = ":none"; - }; - - address = [ - "fd26:baf9:d250:8000::ffff/64" - "192.168.222.1/24" - ]; - }; }; + network = { + wait-online.anyInterface = true; + networks = { + "10-enp1s0f0" = { + name = "enp1s0f0"; + # description = "To the switch"; + networkConfig = { + VLAN = [ + "vlan-admin" + ]; - netdevs = { - "10-vlan-admin" = { - netdevConfig = { - Name = "vlan-admin"; - Kind = "vlan"; + LinkLocalAddressing = false; + LLDP = false; + EmitLLDP = false; + IPv6AcceptRA = false; + IPv6SendRA = false; + }; + }; + + "10-eno1" = { + name = "eno1"; + # description = "Uplink cri"; + address = [ + "10.120.33.246/30" + "129.199.195.158/32" + ]; + routes = [ + { + PreferredSource = "129.199.195.158"; + Gateway = "10.120.33.245"; + } + ]; + }; + + "10-vlan-admin" = { + name = "vlan-admin"; + # DHCP for the BMC + networkConfig.DHCPServer = "yes"; + + dhcpServerConfig = { + PoolOffset = 128; + EmitDNS = false; + EmitNTP = false; + EmitSIP = false; + EmitPOP3 = false; + EmitSMTP = false; + EmitLPR = false; + UplinkInterface = ":none"; + }; + + address = [ + "fd26:baf9:d250:8000::ffff/64" + "192.168.222.1/24" + ]; + }; + }; + + netdevs = { + "10-vlan-admin" = { + netdevConfig = { + Name = "vlan-admin"; + Kind = "vlan"; + }; + vlanConfig.Id = 3000; }; - vlanConfig.Id = 3000; }; }; };