Skip to main content

Overview

This template provides a production‑ready BIRD routing daemon instance as a Monk runnable. You can:
  • Run it directly to get a managed dynamic routing daemon with sensible defaults
  • Inherit it in your own runnable to seamlessly add BGP, OSPF, RIP, and other routing protocols to your network infrastructure
BIRD (BIRD Internet Routing Daemon) is a fully functional dynamic IP routing daemon for Unix-like systems. It supports IPv4 and IPv6 with all major routing protocols including BGP, OSPF, RIP, and static routes, making it ideal for ISP, datacenter, and enterprise networking.

What this template manages

  • BIRD routing daemon container (configurable image tag)
  • Network service with routing protocols
  • Persistent volumes for configuration and state
  • IPv4 and IPv6 routing support
  • Protocol debugging and logging

Quick start (run directly)

  1. Load templates
  1. Run BIRD with defaults
  1. Customize configuration (recommended via inheritance)
Running directly uses the defaults defined in this template’s variables. For production use:
  • Preferred: inherit and customize variables with your own configuration as shown below.
  • Alternative: fork/clone and edit the variables in bird/bird.yaml, then monk load MANIFEST and run.
Once started, BIRD will load configuration and establish routing sessions. Interact with it using birdc commands.

Configuration

Key variables you can customize in this template:
Configuration is persisted under ${monk-volume-path}/bird on the host. State files are stored in ${monk-volume-path}/bird/var:/var/run/bird. Inherit the BIRD runnable in your network infrastructure and customize the routing configuration. Example:
Then run your network infrastructure:

Persistence and configuration

  • Config path: ${monk-volume-path}/bird/etc:/etc/bird
  • State path: ${monk-volume-path}/bird/var:/var/run/bird
  • You can mount custom BIRD configuration files into the config path to tune routing behavior.

Features

  • Multi-Protocol: BGP-4, OSPFv2, OSPFv3, RIPv2, RIPng
  • IPv6 Support: Full IPv4 and IPv6 routing
  • BGP Features: Route reflection, confederations, graceful restart
  • Filtering: Powerful route filtering language
  • Multiple RIBs: Support for multiple routing tables
  • Fast Convergence: Efficient route updates
  • Scripting: Extensive configuration language

BGP Configuration

Example BGP peering:

OSPF Configuration

Example OSPF:

Static Routes

BIRD Control

Interact with BIRD using birdc:

Use cases

BIRD excels at:
  • ISP and datacenter routing
  • BGP peering and internet exchange points (IXP)
  • Enterprise OSPF networks
  • Route servers
  • Anycast routing
  • Software-defined networking (SDN)
  • Combine with monitoring tools for network observability
  • See other networking templates in this repository for complementary services

Troubleshooting

  • If routing protocols are not establishing sessions, verify neighbor IPs are reachable and firewall rules allow routing traffic (TCP 179 for BGP).
  • Ensure configuration syntax is correct by testing with birdc configure after changes.
  • Check logs:
  • Verify BIRD status:
  • View protocol states:
  • Debug specific protocol by adding debug all; to the protocol configuration in bird.conf
  • For BGP session issues:
    • Verify neighbor IP is reachable
    • Check AS numbers match configuration
    • Verify firewall allows TCP 179
  • For OSPF issues, check interface configurations and area settings
  • Use birdc show route to inspect routing table entries