Compilation of ruleset is not happening strictly identical as nft tools does it, resulting in broken programmed rules in the kernel.
Description
In our evaluation setup we use a bastion to carry all talosctl command which is in the subnet of the controle-plane nodes. We end up with a firewall rule like this:
Applying this ruleset results in blocking the port 50001 (but port 50000, 4240 and 10250 and other firewall rules are applied correctly and working correctly)
Logs
There nothing suspicious looking at the generated ruleset :
Bug Report
Compilation of ruleset is not happening strictly identical as nft tools does it, resulting in broken programmed rules in the kernel.
Description
In our evaluation setup we use a bastion to carry all talosctl command which is in the subnet of the controle-plane nodes. We end up with a firewall rule like this:
Applying this ruleset results in blocking the port 50001 (but port 50000, 4240 and 10250 and other firewall rules are applied correctly and working correctly)
Logs
There nothing suspicious looking at the generated ruleset :
After calling for help the nftables community (thanks to them btw), looks like the problem comes from rule compilation
if we apply ruleset via nft tools
Now the port 50001 is opened correctly, we can diff the compiled set of ports
So nft create a config that look like one generated by a range
50000-50001
(and this is the workaround) even with a port list rulesetThis looks like a similar reproduction of:
You may find interesting the discussion linked at the end of the issue:
Environment
talosctl version --nodes <problematic nodes>
]kubectl version --short
]AMD64 baremetal (metal iso)