You can use the command-line client birdc to talk with
a running BIRD. Communication is done using a bird.ctl UNIX
domain socket (unless changed with the -s
option given to both
the server and the client). The commands can perform simple actions
such as enabling/disabling of protocols, telling BIRD to show various
information, telling it to show routing table filtered by filter, or
asking BIRD to reconfigure. Press ?
at any time to get online
help. Option -r
can be used to enable a restricted mode of BIRD
client, which allows just read-only commands (show ...
). Option
-v
can be passed to the client, to make it dump numeric return
codes along with the messages. You do not necessarily need to use
birdc to talk to BIRD, your own applications could do that, too
-- the format of communication between BIRD and birdc is stable
(see the programmer's documentation).
Many commands have the name of the protocol instance as an argument. This argument can be omitted if there exists only a single instance.
Here is a brief list of supported functions:
dump resources|sockets|interfaces|neighbors|attributes|routes|protocols
Dump contents of internal data structures to the debugging output.
show status
Show router status, that is BIRD version, uptime and time from last reconfiguration.
show protocols [all]
Show list of protocol instances along with tables they are connected to and protocol status, possibly giving verbose information, if all
is specified.
show ospf interface [name] ["interface"]
Show detailed information about OSPF interfaces.
show ospf neighbors [name] ["interface"]
Show a list of OSPF neighbors and a state of adjacency to them.
show ospf state [all] [name]
Show detailed information about OSPF areas based on a content
of the link-state database. It shows network topology, stub
networks, aggregated networks and routers from other areas and
external routes. The command shows information about reachable
network nodes, use option all
to show information about
all network nodes in the link-state database.
show ospf topology [all] [name]
Show a topology of OSPF areas based on a content of the link-state database. It is just a stripped-down version of 'show ospf state'.
show ospf lsadb [global | area id | link] [type num] [lsid id] [self | router id] [name]
Show contents of an OSPF LSA database. Options could be used to filter entries.
show static [name]
Show detailed information about static routes.
show interfaces [summary]
Show the list of interfaces. For each interface, print its type, state, MTU and addresses assigned.
show symbols [table|filter|function|protocol|template|roa|symbol]
Show the list of symbols defined in the configuration (names of protocols, routing tables etc.).
show route [[for] prefix|IP] [table sym] [filter f|where c] [(export|preexport) p] [protocol p] [options]
Show contents of a routing table (by default of the main one),
that is routes, their metrics and (in case the all
switch is given)
all their attributes.
You can specify a prefix if you want to print routes for a
specific network. If you use for prefix or IP
, you'll get
the entry which will be used for forwarding of packets to the given
destination. By default, all routes for each network are printed with
the selected one at the top, unless primary
is given in which case
only the selected route is shown.
You can also ask for printing only routes processed and accepted by
a given filter (filter name
or filter { filter }
or matching a given condition (where condition
).
The export
and preexport
switches ask for printing of entries
that are exported to the specified protocol. With preexport
, the
export filter of the protocol is skipped.
You can also select just routes added by a specific protocol.
protocol p
.
If BIRD is configured to keep filtered routes (see import keep filtered/ option), you can show them instead of routes by using filtered/ switch.
The stats
switch requests showing of route statistics (the
number of networks, number of routes before and after filtering). If
you use count
instead, only the statistics will be printed.
show roa [prefix | in prefix | for prefix] [as num] [table t>]
Show contents of a ROA table (by default of the first one).
You can specify a prefix to print ROA entries for a
specific network. If you use for prefix
, you'll
get all entries relevant for route validation of the network
prefix; i.e., ROA entries whose prefixes cover the network
prefix. Or you can use in prefix
to get ROA entries
covered by the network prefix. You could also use as
option
to show just entries for given AS.
add roa prefix max num] as num [table t>]
Add a new ROA entry to a ROA table. Such entry is called dynamic compared to static entries specified in the config file. These dynamic entries survive reconfiguration.
delete roa prefix max num] as num [table t>]
Delete the specified ROA entry from a ROA table. Only dynamic
ROA entries (i.e., the ones added by add roa
command) can
be deleted.
flush roa [table t>]
Remove all dynamic ROA entries from a ROA table.
configure [soft] ["config file"] [timeout [num]]
Reload configuration from a given file. BIRD will smoothly switch itself to the new configuration, protocols are reconfigured if possible, restarted otherwise. Changes in filters usually lead to restart of affected protocols.
If soft
option is used, changes in filters does not cause
BIRD to restart affected protocols, therefore already accepted
routes (according to old filters) would be still propagated,
but new routes would be processed according to the new
filters.
If timeout
option is used, config timer is activated. The
new configuration could be either confirmed using
configure confirm
command, or it will be reverted to the
old one when the config timer expires. This is useful for cases
when reconfiguration breaks current routing and a router becames
inaccessible for an administrator. The config timeout expiration is
equivalent to configure undo
command. The timeout duration
could be specified, default is 300 s.
configure confirm
Deactivate the config undo timer and therefore confirm the current configuration.
configure undo
Undo the last configuration change and smoothly switch back to the previous (stored) configuration. If the last configuration change was soft, the undo change is also soft. There is only one level of undo, but in some specific cases when several reconfiguration requests are given immediately in a row and the intermediate ones are skipped then the undo also skips them back.
configure check ["config file"]
Read and parse given config file, but do not use it. useful for checking syntactic and some semantic validity of an config file.
enable|disable|restart name|"pattern"|all
Enable, disable or restart a given protocol instance,
instances matching the pattern
or
all
instances.
reload [in|out] name|"pattern"|all
Reload a given protocol instance, that means re-import routes
from the protocol instance and re-export preferred routes to
the instance. If in
or out
options are used, the
command is restricted to one direction (re-import or
re-export).
This command is useful if appropriate filters have changed but
the protocol instance was not restarted (or reloaded),
therefore it still propagates the old set of routes. For example
when configure soft
command was used to change filters.
Re-export always succeeds, but re-import is protocol-dependent
and might fail (for example, if BGP neighbor does not support
route-refresh extension). In that case, re-export is also
skipped. Note that for the pipe protocol, both directions are
always reloaded together (in
or out
options are
ignored in that case).
down
Shut BIRD down.
debug protocol|pattern|all all|off|{ states | routes | filters | events | packets }
Control protocol debugging.