Tuesday, October 6, 2026

Free Range Routing (FRR)

Free Range Routing (FRR) is a highly modular, open-source IP routing software suite designed for Linux and Unix platforms. It acts as a virtual control plane that transforms a standard operating system or container into an advanced enterprise router.

Here are the key characteristics of FRR:

• Protocol Powerhouse: It natively runs all major industry-standard routing protocols including BGP (including EVPN), OSPF (v2/v3), IS-IS, RIP, PIM (Multicast), and LDP (MPLS).

• Architecture: FRR uses a unique, decoupled architecture where each protocol runs as its own separate background engine (daemon). These engines are managed by a central supervisor daemon called Zebra, which builds the master routing table and interacts with the operating system's kernel data plane.

• Industry Standard Interface: It provides a unified Command Line Interface (CLI) called vtysh, which uses an interactive syntax that closely mirrors commercial systems like Cisco IOS or Arista EOS.

• Massive Adoption: Due to its speed, low resource footprint, and cloud-scale stability, FRR is widely deployed in modern data center fabrics, network simulation labs (like GNS3), and powers the core routing brains inside next-generation network operating systems like SONiC and Cumulus Linux.

Dockerfile:


FROM quay.io/frrouting/frr:10.7.0

# 1. Create the persistent vtysh.conf configuration file
RUN touch /etc/frr/vtysh.conf && echo "service integrated-vtysh-config" > /etc/frr/vtysh.conf

# 2. Rewrite the daemons file with all key routing protocols pre-enabled
RUN echo 'zebra=yes'          > /etc/frr/daemons && \
    echo 'bgpd=yes'          >> /etc/frr/daemons && \
    echo 'ospfd=yes'         >> /etc/frr/daemons && \
    echo 'ospf6d=yes'        >> /etc/frr/daemons && \
    echo 'isisd=yes'         >> /etc/frr/daemons && \
    echo 'ripd=yes'          >> /etc/frr/daemons && \
    echo 'pimd=yes'          >> /etc/frr/daemons && \
    echo 'ldpd=yes'          >> /etc/frr/daemons && \
    echo 'staticd=yes'       >> /etc/frr/daemons && \
    echo 'bfdd=yes'          >> /etc/frr/daemons && \
    echo 'fabricd=yes'       >> /etc/frr/daemons && \
    echo 'watchfrr_enable=yes' >> /etc/frr/daemons

Building Dockerfile:

	$ docker build -t my-custom-frr:latest .

No comments:

Post a Comment