Closed Cellebyte closed 1 week ago
I've did some testing and I've created draft PR on this: #144
It seems that the only thing that differentiates the L2 VNI from L3 VNI for FRR is whether or not it is defined in the config file. For example, if we define interfaces in the config file:
vrf vr.test10030
vni 10030
exit-vrf
But the interface is not yet created it will be present in FRR as L3 interface with no VxLAN interface.
VNI Type VxLAN IF # MACs # ARPs # Remote VTEPs Tenant VRF
10032 L3 None 0 0 n/a Unknown
After the interface VxLAN interface is created, FRR will automatically discover it and add as L3 without transitioning from L2.
VNI Type VxLAN IF # MACs # ARPs # Remote VTEPs Tenant VRF
10032 L3 vx.test10030 0 0 n/a vx.test10030
In current implementation we do as follow:
So, in the PR I've changed order of operations:
With this order I did not see the transition to L3-VNI
messages. However I am not sure if this approach to FRR configuration is correct, so it would be best if someone with more knowledge on FRR could take a look at this.
Additionally, I've fixed the second issue you've reported - during the configuration of the interfaces operator will now try to set up
any interface that was already existing (was created in previous iteration of reconciliation loop). For example, if L3 named test
was created but never got up
due to some other errors, the operator will try to bring it up in next iteration.
Description
When a node is booted it starts with a baseline configuration to bring up the necessary interfaces to form a cluster. After the intial configuration is loaded
nwop
starts reconciling additional configuration from the kube-apiserver.When it then reconciles this new configuration by running
systemctl reload frr
the daemon does not always load the configuration as desired. And instead of L3 VNIs the daemon just load L2 VNIs.It rather loads only parts into the configuration. E.g.
Hints
It seems we already tried to mitigate this behaviour in these code lines.
https://github.com/telekom/das-schiff-network-operator/blob/28a37d84370870e9f30044b37b2ad932cc28a490/pkg/reconciler/layer3.go#L68-L96
Hotfix
Run this command and the vnis are correctly configured in frr