-
Notifications
You must be signed in to change notification settings - Fork 368
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Uniform BGP router ID selection for IPv4 and IPv6 #6605
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think that for IPv4 / dual-stack we should keep using the Node's IPv4 address, as this is common practice AFAIK.
Issue #6550 was more about making sure that the node.antrea.io/bgp-router-id
annotation is always honored, not just for IPv6-only clusters.
So if i understand correctly, it means that incase of IPv4/dual-stack -
|
@Atish-iaf correct.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM overall
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If the Node's IPv4 address is updated, the router ID will stay the same. I believe this is slightly different than the previous behavior, as the router ID would have been updated the next time the BGPPolicy CR was synced. I don't see a simple way to achieve this anymore: once we set the annotation, we will keep using the annotation value indefinitely. Is this an issue @tnqn @hongliangl ?
Router id must be unique within AS, However for already established session, if the Router ID changes when a node restarts, can cause Graceful Restart to fail, the annotation allows to keep using the annotation value as router id which will work well for graceful restart case. |
I'm not sure if other functions can really work if a Node IP changes. We had one connectvity issue caused by it before and had it fixed, but the scenario has never been validated comprehensively and I have never heard of a real use case needing dynamic Node IP. Node IP was usually updated by accident, like DHCP not working properly. And given this can be resolved by just removing or updating the annotation, I feel ok to just document it clearly: If a router ID is not specified via the annotation, Antrea will automatically generate a default value based on the Node's IPv4 address or a hash of the Node's name and set it in the annotation. This default value is assigned once and will not change if the Node's IPv4 address is updated. |
Looking into this a bit more, it seems that even if the IP address changes, it won't be reflected in K8s until kubelet is restarted, so there would be manual steps involved anyway.
That sounds good to me. @Atish-iaf can you make this explicit in the documentation: the router ID is generated once and will not be updated if the Node configuration changes (e.g., if the Node's IPv4 address is updated). |
Fixes antrea-io#6550 Signed-off-by: Kumar Atish <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
/test-all |
Fixes #6550