BIRD(8)

πŸ¦‹ BIRD(8) β€” the internet routing daemon, bestie edition

okay so. hi. you're here because bird is the Internet Routing Daemon and you want to know what's up. and because you're my bestie, I'm gonna explain all of it. this is from the BIRD User Manual and it's giving networking main character energy ✨


🌸 NAME

  • bird β€” BIRD Internet Routing Daemon
  • birdc β€” BIRD Internet Routing Daemon remote control
  • birdcl β€” BIRD Internet Routing Daemon remote control light

literally three icons in one manpage. obsessed πŸ’…


✨ SYNOPSIS

the way that you just run things:

bird [-c config-file] [-d] [-D debug-file] [-f] [-g group] [-l] [-p]
     [-P pid-file] [-R] [-s control-socket] [-u user]

birdc [-l] [-r] [-s control-socket] [-v]

birdcl [-l] [-r] [-s control-socket] [-v]

look at them. so tidy. so structured. πŸŽ€


πŸ’– DESCRIPTION

so. bird is an Internet Routing Daemon. no cap. what that means is: it sends and receives messages using different protocols, in order to discover and exchange routing information with other routing daemons present on the same network. that's the whole job. it's basically the girl in the group chat who knows everyone and relays the tea, except the tea is routing information. 🫢

it is able to talk the most widely known routing protocols (such as BGPv4, RIPv2, OSPFv2 and OSPFv3), both on IPv4 and IPv6, and it features a very powerful language for route filtering. powerful. very powerful. lowkey intimidating but highkey slay.

birdc is a remote control for bird. while bird is running, the system administrator can connect to it using birdc, to inspect its internal status and reconfigure it. the two processes use a Unix socket to communicate β€” that's their little private line, iykyk. once started, bird will give access to an interactive shell: commands can be completed with TAB and help can be requested by pressing the key ?. more documentation on the available commands can be found on the website, see below. 🌈

birdcl is a light version of birdc remote control for bird without readline/ncurses support. TAB completion isn't available. so it's the no-frills version. still valid. still doing the job. πŸ’…


πŸ’… OPTIONS

the bird accepts these options:

  • -c config-file β€” use given configuration file instead of the default /etc/bird/bird.conf. your config, your rules.
  • -d β€” enable debug messages to stderr, and run bird in foreground. debug girlies rise up πŸ”₯
  • -D debug-file β€” enable debug messages to given file. more permanent. more organized. we love a paper trail ✨
  • -f β€” run bird in foreground. no hiding in the background.
  • -g group β€” run bird with given group ID.
  • --help β€” display command-line options to bird. when in doubt, ask for help, bestie 🫢
  • -l β€” look for a configuration file and a communication socket in the current working directory instead of in default system locations. however, paths specified by options -c, -s have higher priority. so like, -l is the vibe check but -c and -s are the main characters. periodt.
  • -p β€” just parse the config file and exit. return value is zero if the config file is valid, nonzero if there are some errors. dry run girlies, this one's for you 🌸
  • -P pid-file β€” create a PID file with given filename.
  • -R β€” apply graceful restart recovery after start.
  • -s control-socket β€” use given filename for a socket for communications with the client (remote control), default is /run/bird/bird.ctl.
  • -u user β€” drop privileges and run as given user instead of root. bird would keep CAP_NET_ADMIN and other network-related capabilities necessary for its function. so it's giving humble but still holding the keys πŸ”‘
  • --version β€” display bird version.

πŸŽ€ birdc and birdcl options

birdc and birdcl accept these options:

  • -l β€” look for a communication socket in the current working directory.
  • -r β€” run birdc in restricted mode: only the `show ...' commands are allowed. so it's the supervised-visit version of the remote control 🧚
  • -s control-socket β€” use given filename for a socket for communications with the server, default is /run/bird/bird.ctl.
  • -v β€” numeric return codes are dumped along with messages, making them easily parsable by a program. see the programmer's documentation for information about their meanings. for the script girlies. for the automation besties. πŸ€–

πŸ“ FILES

  • /etc/bird/bird.conf β€” the system-wide configuration file to control the behaviour of bird. see the website for more documentation.

(it's the default, if you were wondering, and yes we just said that in -c. consistency icon πŸ’–)


πŸ”₯ SEE ALSO

more documentation can be found on the website: https://bird.nic.cz/


πŸ‘‘ AUTHORS

  • Giovanni Mascellani <mascellani@poisson.phc.unipi.it> β€” wrote this manpage for the Debian system.
  • Jakub RuΕΎička <jru@debian.org> β€” updated this manpage for birdcl.

not me thanking the actual authors. thank you both, fr fr πŸ«‘πŸ’œ


Copyright © 2010 Giovanni Mascellani Copyright © 2022 Jakub Ružička

this manual page was written for the Debian system (and may be used by others).

permission is granted to copy, distribute and/or modify this document under the terms of the GNU General Public License, Version 2 or (at your option) any later version published by the Free Software Foundation.

on Debian systems, the complete text of the GNU General Public License can be found in /usr/share/common-licenses/GPL.

so yeah, copy it, share it, remix it, just keep it GPL and keep the credit. that's the deal, bestie 🀝

okay that's the whole thing!! πŸ’– this was the BIRD(8) page from the bird manual, dated 08/02/2026 β€” go route something iconic, you've got this πŸŒˆβœ¨πŸ¦‹

πŸ“¦ where this page comes from