Jump to content

FRRouting: Difference between revisions

From Official NixOS Wiki
Nicof2000 (talk | contribs)
init
 
Nicof2000 (talk | contribs)
m monitoring: init
 
(One intermediate revision by the same user not shown)
Line 2: Line 2:


=== Configuration ===
=== Configuration ===
The frr nixos module in nixpkgs does currently not implement structured settings, the config or configFile option have to be used. The configuration is described in the frr documentation: [https://docs.frrouting.org/en/latest/index.html docs.frrouting.org].
The frr nixos module in nixpkgs does not currently support structured settings, the config or configFile options have to be used. The configuration is described in the frr documentation: [https://docs.frrouting.org/en/latest/index.html docs.frrouting.org].


[https://github.com/secshellnet/frr.nix/ github:secshellnet/frr.nix] introduced settings for access-lists, prefix-lists and route-maps.
[https://github.com/secshellnet/frr.nix/ github:secshellnet/frr.nix] introduced settings for access-lists, prefix-lists and route-maps.
==== Monitoring ====
[https://github.com/tynany/frr_exporter prometheus-frr-exporter] can be used to generate prometheus metrics. By default, the bfd, bgp, ospf, and route collectors are enabled. Review and adjust them to match your requirements. A complete list is available in the help page.<syntaxhighlight lang="nixos">
{
  services.prometheus.exporters.frr = {
    enable = true;
    disabledCollectors = [ "ospf" ];
    enabledCollectors = [
      "bgp6"
      "bgpl2vpn"
      "rpki"
    ];
  };
}
</syntaxhighlight>


=== Examples ===
=== Examples ===
Several example configurations have been implemented using the NixOS test framework in [https://github.com/secshellnet/nixos-tests github:secshellnet/nixos-tests], to test the interoperability with other routing daemons (like BIRD and GoBGP) and different networking implementations (like [[IfState]], [[Systemd/networkd|systemd-networkd]], [[NetworkManager]] and [[Networking|scripted networking]]).
Several example configurations have been implemented using the NixOS test framework in [https://github.com/secshellnet/nixos-tests github:secshellnet/nixos-tests]. These tests verify interoperability with other routing daemons (such as BIRD and GoBGP) and different networking implementations (like [[IfState]], [[Systemd/networkd|systemd-networkd]], [[NetworkManager]] and [[Networking|scripted networking]]).

Latest revision as of 18:27, 17 August 2026

FRRouting (FRR) is a free and open source Internet routing protocol suite for Linux and Unix platforms. It implements BGP, OSPF, RIP, IS-IS, PIM, LDP, BFD, Babel, PBR, OpenFabric and VRRP, with alpha support for EIGRP and NHRP.

Configuration

The frr nixos module in nixpkgs does not currently support structured settings, the config or configFile options have to be used. The configuration is described in the frr documentation: docs.frrouting.org.

github:secshellnet/frr.nix introduced settings for access-lists, prefix-lists and route-maps.

Monitoring

prometheus-frr-exporter can be used to generate prometheus metrics. By default, the bfd, bgp, ospf, and route collectors are enabled. Review and adjust them to match your requirements. A complete list is available in the help page.

{
  services.prometheus.exporters.frr = {
    enable = true;
    disabledCollectors = [ "ospf" ];
    enabledCollectors = [
      "bgp6"
      "bgpl2vpn"
      "rpki"
    ];
  };
}

Examples

Several example configurations have been implemented using the NixOS test framework in github:secshellnet/nixos-tests. These tests verify interoperability with other routing daemons (such as BIRD and GoBGP) and different networking implementations (like IfState, systemd-networkd, NetworkManager and scripted networking).