Hi Sander,

That is dynamic BGP. You daemon accpets connections from any allowed
adress, then it will spawn a dynamic bgp protocol. It works because
the other side knows your IP and tries to connect to it.

Regards,
Alexander

On Tue, Sep 10, 2024 at 3:58 PM Sander P <m...@sanderp.se> wrote:
>
> Hi Alexander,
>
> Many thanks for the clarification!
>
> I found a solution that works. It seems to be possible to specify link-local 
> as a range and the neighbor as external.
> Not sure how this works with bfd, but I'll do some more investigations. 
> Obviously needs more testing and what not before rolling it out to production.
>
> Pasting config in case someone else stumble on the same use-case. But 
> essentially I know have leaf switches dialing up my servers and establishing 
> a session.
>
> template bgp ebgp_client_v6 {
>   local as system_as_number;
>   ipv6 {
>     import none;
>     export none;
>   };
>   bfd graceful;
>   connect delay time 1;
>   connect retry time 5;
>   error wait time 1,5;
>   error forget time 10;
> };
>
> protocol bgp leaf_auto_1 from ebgp_client_v6 {
>   interface "enp67s0f0np0";
>   neighbor range fe80::0/64 external;
>   dynamic name "leaf";
>   dynamic name digits 2;
> };
>
> protocol bgp leaf_auto_2 from ebgp_client_v6 {
>   interface "enp67s0f1np1";
>   neighbor range fe80::0/64 external;
>   dynamic name "leaf";
>   dynamic name digits 2;
> };
>
> Best regards,
> Sander
>
> On Tue, Sep 10, 2024 at 9:25 AM Alexander Zubkov <gr...@qrator.net> wrote:
>>
>> Hi Sander,
>>
>> Yes, a specific interface often not required, because it can be determined 
>> by the routing table. But, for example, in case when you neighbor IP is 
>> considered directly reachable (connected) on several interfaces, connection 
>> might be initiated not on the interface that you expect. And for IPv6 given 
>> its link local addresses idea, this situation is very common.
>> And I'm not aware of the protocol to autodetermine a bgp neighbor. And I do 
>> not remember of something like that in BIRD. The best you can get, I think, 
>> is dynamic BGP on one side, that accepts a connection from any neighbor. So 
>> only one side has to know the exact neighbor IP.
>>
>> Regards,
>> Alexander
>>
>> On Tue, Sep 10, 2024, 08:44 Sander P <m...@sanderp.se> wrote:
>>>
>>> Hi Alexander,
>>>
>>> Thanks for the fast reply!
>>>
>>> Yes, that I do understand. But what I'm trying to do here is to auto 
>>> discover the peers via the interface (IPv6 link-local).
>>> So, I'm struggling to understand what the interface option is for if you 
>>> still need to define the list of neighbors and their ip addresses. It kinda 
>>> defeats the purpose (I think).
>>>
>>> Br,
>>> Sander
>>>
>>> On Mon, Sep 9, 2024 at 6:31 PM Alexander Zubkov <gr...@qrator.net> wrote:
>>>>
>>>> Hi Sander,
>>>>
>>>> The error indicates that you are missing the neighbor's address in
>>>> your configuration.
>>>>
>>>> Regards,
>>>> Alexander
>>>>
>>>> On Mon, Sep 9, 2024 at 4:54 PM Sander P <m...@sanderp.se> wrote:
>>>> >
>>>> > Hi,
>>>> >
>>>> > I'm on Bird 2.0.8
>>>> > The background is that I'm trying to configure link local BGP sessions 
>>>> > towards Juniper switches.
>>>> > I'm trying to follow the the documentation that indicates that it should 
>>>> > be possible to define a interface.
>>>> >
>>>> > 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;). The option may also be used for non 
>>>> > link-local sessions when it is necessary to explicitly specify an 
>>>> > interface, but only for direct (not multihop) sessions
>>>> >
>>>> > Here is my config:
>>>> >
>>>> > template bgp ebgp_client_v6 {
>>>> >   local as system_as_number;
>>>> >   ipv6 {
>>>> >     import all;
>>>> >     export filter export_bgp;
>>>> >   };
>>>> >   bfd graceful;
>>>> >   connect delay time 1;
>>>> >   connect retry time 5;
>>>> >   error wait time 1,5;
>>>> >   error forget time 10;
>>>> > };
>>>> >
>>>> > protocol bgp auto_disc_2 from ebgp_client_v6 {
>>>> >   interface "enp67s0f0np0";
>>>> > };
>>>> >
>>>> > and from my understanding it should be enough with just that. But I do 
>>>> > get the error:
>>>> > /etc/bird/peers.conf:53:1 Neighbor must be configured
>>>> >
>>>> > I've also tried to add "neighbor as asn_of_neighbor;" To the config with 
>>>> > the same results.
>>>> >
>>>> > Any help would be much appreciated!
>>>> >
>>>> > Br,
>>>> > Sander

Reply via email to