Skip to content
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

Add support for BGP on link-local addresses #2423

Open
2 tasks done
doka380 opened this issue Jun 6, 2024 · 3 comments
Open
2 tasks done

Add support for BGP on link-local addresses #2423

doka380 opened this issue Jun 6, 2024 · 3 comments
Assignees

Comments

@doka380
Copy link

doka380 commented Jun 6, 2024

Is your feature request related to a problem?

At the moment, it's not possible to use link-local addresses for building BGP peering, since there is no ability to specify interface where peer can be found. Value e.g. fe80::xxxx:xxxx:xxxx:xxxx%enp1s0 for peerAddress in BGPPeer rejected with the error Error from server (Forbidden): error when creating "metlb-conf.yaml": admission webhook "bgppeersvalidationwebhook.metallb.io" denied the request: parsing peer gk-peer-v6: invalid BGPPeer address "fe80::b8a3:17ff:fe0c:c54a%enp1s0"

Describe the solution you'd like

This is already supported by FRR:

 neighbor fe80::a876:4dff:fe77:408 remote-as 64501
 neighbor fe80::a876:4dff:fe77:408 interface enp1s0

and the second line of the config above (interface specification) can be generated based on the following BGPPeer specification:

spec:
  peerASN: 64501
  peerAddress: fe80::a876:4dff:fe77:408
  peerInterface: enp1s0

Additional context

This change will allow to use any available addressing in IPv6 environment, including link-local addresses.

There was a discussion here about this - https://kubernetes.slack.com/archives/C8FSTGU56/p1717574500705649

I've read and agree with the following

  • I've checked all open and closed issues and my request is not there.
  • I've checked all open and closed pull requests and my request is not there.
@fedepaol
Copy link
Member

fedepaol commented Jun 7, 2024

Thanks for raising this! We are working on it!
At some point we'll create a design proposal.

@doka380
Copy link
Author

doka380 commented Jun 7, 2024

Just to make it clear - this is not something exotic, the same approach also implemented in another routing software - Bird - https://bird.network.cz/?get_doc&v=20&f=bird-6.html#ss6.4 -

interface string
     Define interface we should use for link-local BGP IPv6 sessions. Interface can also be specified
     as a part of neighbor address (e.g., neighbor fe80::1234%eth0 as 65000;).

@karampok
Copy link
Contributor

@fedepaol you could assign that to me, it might relevant to the unnumber BGP peering (as we would add interface name in the config), thanks

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants