BGP: Only possible to set neigbor once

Gerdriaan Mulder gmulder+birdcz at freedom.nl
Sun Dec 31 18:24:31 CET 2023


Hi,

An earlier paragraph under "Protocol configuration" 
(<https://bird.network.cz/?get_doc&v=20&f=bird-6.html#bgp-proto-config>) 
gives a bit more context (emphasis added):

---8<---
Each instance of the BGP corresponds to **one neighboring router**. This 
allows to set routing policy and all the other parameters differently 
for each neighbor using the following configuration parameters:

local [ip] [port number] [as number]
    [..] The parameter may be used multiple times with different 
sub-options (e.g., both local 10.0.0.1 as 65000; and local 10.0.0.1; 
local as 65000; are valid).

neighbor [ip | range prefix] [port number] [as number] [internal|external]
    [..] Like local parameter, this parameter may also be used multiple 
times with different sub-options.
--->8---

With the context of "one neighboring router" and the examples from the 
`local` stanza, the example Nico gives in

> protocol bgp client1  {
> 	neighbor 10.0.1.1 as 65000;
> 	neighbor 10.0.1.2 as 65000;
> 
>     ipv4;
> }

is indeed not possible. It would be possible to say (as noted by Alexander):

```
protocol bgp client1  {
	neighbor 10.0.1.1;
	neighbor as 65000;

	ipv4;
}
```

On 30/12/2023 14:30, Nico Schottelius via Bird-users wrote:
>   - a) the documentation wrong
>   - b) the code wrong or
>   - c) the reader wrong?

I'm opting for c in this case :-).

One option for multiple BGP instances is by using templates, e.g.

```
template bgp TPL_CLIENT {
	local as 65042;
	neighbor as 65000;
	ipv4;
}

protocol bgp client1 from TPL_CLIENT {
	neighbor 10.0.1.1;
}

protocol bgp client2 from TPL_CLIENT {
	neighbor 10.0.1.2;
}
```

Best regards,
Gerdriaan Mulder


More information about the Bird-users mailing list