Frr

Quagga is a free software routing suite. Quagga supports static routing, and dynamic routing protocols.

Installation
Before starting zebra you have to configure it, by creating a file.

Start zebra daemon:

Verify zebra is running:

Architecture
The Quagga routing suite consists of 2 parts:
 * zebra daemon
 * routing proceses (RIP,OSPF,BGP,IS-IS,Babel,OLSR,LDP,BFD)

The zebra daemon is a abstraction layer between the kernel and between the running routing processes. Each routing protocol has its own specific daemon.

Quagga installed on a physical host acts as a dedicated router. Quagga updates the kernel routing table. It modifies interface IP addressing, sets static routes and enables dynamic routing.

A linux host has usually 2 dedicated management tools to manage IP networking on interfaces:

These tools work only if the user has root access or some kind of privileged access to the physical host.

Quagga can modify, add and change the physical host interface configuration and routing table, without the need user having privileged root access to a dedicated machine. Quagga is basically a another tool for iproute2 and, with additional networking functionality.

All routing daemons listed communicate with the zebra daemon, not directly with the kernel. A abstracted layer view of communication dependencies

Usage
Following steps will explain howto configure a IP address on a loopback interface using Quagga suite .Finally we will show the configured IP address outside of the Quagga suite. This will explain some basic usage of Quagga, how it works and interacts with linux kernel and IP configuration.

We assume following IP networking settings on a example host:

Display IP settings using iproute2

Show the linux routing table:

Login
The default quagga configuration has following user credentials for login:

Use these credentials to Login to local zebra daemon

Show routing table
Compare output shown below to the linux, shows exactly the same routing table.

Using help
Show basic mode commands, use ? key for help.

After chosing initial entry command  in this example, continue using ? key to display further possible commands

The help function is setup like a tree, where using the ? key displays further levels of commands.

Privileged mode
The privileged mode is used to add, change, modify interface IP settings. To get into privileged mode use, the default password zebra.

Run once again help in privileged mode, notice different commands available in this mode.

Show configuration
To display current configuration use the  command.

Configure IP address
Get into edit mode

Chose the IP loopback interface

Configure the IP address 192.168.0.100/32 on loopback interface

End the edit mode mode session:

Show running quagga configuration

Show loopback interface IP configuration:

Save running configuration:

Exit quagga

Verify IP configuration using. Notice the additional IP address setup on loopback interface:

Test connectivity
Now you can verify this IP address is reachable on localhost as well on the network.

Review the file

External resources

 * Official Quagga documentation