Hi, please help me understand the configuration logic for BIRD2. In BIRD 1 we have a config file common.conf that gets included from bird.conf and bird6.conf. It holds common configuration applicable to both IPv4 and IPv6 like this: table bgpext; protocol pipe p_bgpext { table master; peer table bgpext; import all; export none; } For BIRD2 I seem to have to rewrite that simple configuration to: ipv4 table bgpext4; ipv6 table bgpext6; protocol pipe p_bgpext4 { table master4; peer table bgpext4; import all; export none; } protocol pipe p_bgpext6 { table master6; peer table bgpext6; import all; export none; } Why do I have to double the configuration now? Did I miss something? This is a quite simple example. There are more complex protocol templates and filter functions that all would have to be doubled. Kindest Regards -- Robert Sander Heinlein Consulting GmbH Schwedter Str. 8/9b, 10119 Berlin https://www.heinlein-support.de Tel: 030 / 405051-43 Fax: 030 / 405051-19 Amtsgericht Berlin-Charlottenburg - HRB 220009 B Geschäftsführer: Peer Heinlein - Sitz: Berlin
Hello Robert, Robert Sander <r.sander@heinlein-support.de> writes:
Hi,
please help me understand the configuration logic for BIRD2.
In BIRD 1 we have a config file common.conf that gets included from bird.conf and bird6.conf. It holds common configuration applicable to both IPv4 and IPv6 like this:
I believe you might be using a side effect of the include (i.e. a config snippet being usable in both contexts), that now with only one config will not help you anymore. I'd assume that using protocol templates can to some degree reduce the overhead though. We also started using MP BGP quite a lot with bird2, routing IPv4 over IPv6, as you can now have 2 channels per BGP session. HTH, Nico -- Sustainable and modern Infrastructures by ungleich.ch
On 10/13/23 16:58, Nico Schottelius wrote:
Hello Robert,
Robert Sander <r.sander@heinlein-support.de> writes:
Hi,
please help me understand the configuration logic for BIRD2.
In BIRD 1 we have a config file common.conf that gets included from bird.conf and bird6.conf. It holds common configuration applicable to both IPv4 and IPv6 like this:
I believe you might be using a side effect of the include (i.e. a config snippet being usable in both contexts), that now with only one config will not help you anymore.
Yes. For example with the OSPF configuration we only had to define the interfaces with their weights once and could include that in both protocol configurations. Now I have to double that which makes maintenance harder. Maybe I have to play a little bit more with the include option. Regards -- Robert Sander Heinlein Consulting GmbH Schwedter Str. 8/9b, 10119 Berlin https://www.heinlein-support.de Tel: 030 / 405051-43 Fax: 030 / 405051-19 Amtsgericht Berlin-Charlottenburg - HRB 220009 B Geschäftsführer: Peer Heinlein - Sitz: Berlin
Hi, You can try to still have separate IPv4/IPv6 daemons and that may help not to repeat the protocol sections. But simple include might not help still, as the syntax requires you sometimes to specify "ipv4"/"ipv6" for tables and channels for example. Some templating might be helpful here though. Regards, Alexander On Fri, Oct 13, 2023 at 5:10 PM Robert Sander <r.sander@heinlein-support.de> wrote:
On 10/13/23 16:58, Nico Schottelius wrote:
Hello Robert,
Robert Sander <r.sander@heinlein-support.de> writes:
Hi,
please help me understand the configuration logic for BIRD2.
In BIRD 1 we have a config file common.conf that gets included from bird.conf and bird6.conf. It holds common configuration applicable to both IPv4 and IPv6 like this:
I believe you might be using a side effect of the include (i.e. a config snippet being usable in both contexts), that now with only one config will not help you anymore.
Yes. For example with the OSPF configuration we only had to define the interfaces with their weights once and could include that in both protocol configurations.
Now I have to double that which makes maintenance harder.
Maybe I have to play a little bit more with the include option.
Regards -- Robert Sander Heinlein Consulting GmbH Schwedter Str. 8/9b, 10119 Berlin
https://www.heinlein-support.de
Tel: 030 / 405051-43 Fax: 030 / 405051-19
Amtsgericht Berlin-Charlottenburg - HRB 220009 B Geschäftsführer: Peer Heinlein - Sitz: Berlin
Hello! I'd recommend doing some templating, and even reconsider whether the pipe and auxiliary table is really needed. With BIRD 2 and import table / export table BGP setting, the pipes are just unnecessary burden in most cases. More on this in Rome (Nov 27, RIPE 87). Maria On 2023-10-13 21:11, Alexander Zubkov via Bird-users wrote:
Hi,
You can try to still have separate IPv4/IPv6 daemons and that may help not to repeat the protocol sections. But simple include might not help still, as the syntax requires you sometimes to specify "ipv4"/"ipv6" for tables and channels for example. Some templating might be helpful here though.
Regards, Alexander
On Fri, Oct 13, 2023 at 5:10 PM Robert Sander <r.sander@heinlein-support.de> wrote:
On 10/13/23 16:58, Nico Schottelius wrote:
Hello Robert,
Robert Sander<r.sander@heinlein-support.de> writes:
Hi,
please help me understand the configuration logic for BIRD2.
In BIRD 1 we have a config file common.conf that gets included from bird.conf and bird6.conf. It holds common configuration applicable to both IPv4 and IPv6 like this: I believe you might be using a side effect of the include (i.e. a config snippet being usable in both contexts), that now with only one config will not help you anymore. Yes. For example with the OSPF configuration we only had to define the interfaces with their weights once and could include that in both protocol configurations.
Now I have to double that which makes maintenance harder.
Maybe I have to play a little bit more with the include option.
Regards -- Robert Sander Heinlein Consulting GmbH Schwedter Str. 8/9b, 10119 Berlin
https://www.heinlein-support.de
Tel: 030 / 405051-43 Fax: 030 / 405051-19
Amtsgericht Berlin-Charlottenburg - HRB 220009 B Geschäftsführer: Peer Heinlein - Sitz: Berlin
-- Maria Matejka (she/her) | BIRD Team Leader | CZ.NIC, z.s.p.o.
Hi, On 14.10.23 00:57, Maria Matejka wrote:
I'd recommend doing some templating
The OSPF protocol does not allow templating. I wa able to solve that with an include of the area configuration in both protocols for IPv4 (OSPFv2) and IPv6 (OSPFv3). What I discovered is that filters are now IP family agnostic, i.e. I can use both IPv4 and IPv6 (e.g. network lists etc) in one filter definition. This makes it easier again. It would be good if the documentation (esp. the wiki) would contain examples for BIRD 2 for the most common use cases in IPv4 and IPv6. Currently there are only examples for IPv4 in BIRD 1. Kindest Regards -- Robert Sander Heinlein Consulting GmbH Schwedter Str. 8/9b, 10119 Berlin http://www.heinlein-support.de Tel: 030 / 405051-43 Fax: 030 / 405051-19 Zwangsangaben lt. §35a GmbHG: HRB 220009 B / Amtsgericht Berlin-Charlottenburg, Geschäftsführer: Peer Heinlein -- Sitz: Berlin
On 10/13/23 16:58, Nico Schottelius wrote:
We also started using MP BGP quite a lot with bird2, routing IPv4 over IPv6, as you can now have 2 channels per BGP session.
Yes, I migrated the configuration to this for our internal BGP connections. But the peer has to also support this which does not work on a public peering exchange for example. Regards -- Robert Sander Heinlein Consulting GmbH Schwedter Str. 8/9b, 10119 Berlin https://www.heinlein-support.de Tel: 030 / 405051-43 Fax: 030 / 405051-19 Amtsgericht Berlin-Charlottenburg - HRB 220009 B Geschäftsführer: Peer Heinlein - Sitz: Berlin
participants (4)
-
Alexander Zubkov -
Maria Matejka -
Nico Schottelius -
Robert Sander