FRR路由套件简介(一)

2023-02-25 14:59:16 浏览数 (1)

一、什么是FRR

FRR is a fully featured, high performance, free software IP routing suite.

FRR它是以太网通信领域一个功能齐全、高性能的免费IP路由软件套件。

二、它解决什么问题

FRR implements all standard routing protocols such as BGP, RIP, OSPF, IS-IS and more (see Feature Matrix), as well as many of their extensions.

frr实现所有标准路由协议,如BGP、RIP、OSPF、IS-IS等(参见特性矩阵),以及它们的许多扩展。

FRR is a high performance suite written primarily in C. It can easily handle full Internet routing tables and is suitable for use on hardware ranging from cheap SBCs to commercial grade routers. It is actively used in production by hundreds of companies, universities, research labs and governments.

它是一个主要用c语言编写的高性能套件,它可以轻松地处理完整的Internet路由表,适用于从廉价的sbc到商用级路由器的各种硬件。它被数百家公司、大学、研究实验室和政府用于生产。

FRR is distributed under GPLv2, with development modeled after the Linux kernel. Anyone may contribute features, bug fixes, tools, documentation updates, or anything else.

它是在GPLv2下发布的,其开发模型模仿了Linux内核。任何人都可以贡献特性、bug修复、工具、文档更新或其他任何东西。

FRR is a fork of Quagga.

它是Quagga的一个分支,感兴趣的朋友可以阅读阅读guagga软件源码。

三、如何获取FRR

官方网址:https://frrouting.org/

一些发行版为FRR提供了包。检查发行版的存储库以确定是否有合适的版本可用。最新的Debian&Redhat软件包可在https://deb.frrouting.org/和 https://rpm.frrouting.org/分别下载对应的deb或者rpm软件包。

有关从源代码安装的说明,请参阅开发人员文档。

四、FRR的软件架构简介

frr的软件架构图

传统的路由软件是一个进程程序,它提供了所有的路由协议功能,相比之下FRR采取了不同的方法。FRR是一组守护进程,不同的协议为独立的进程运行,它们一起构建路由表。每个主要协议都在自己的守护进程中实现,这些守护进程与一个中间人守护进程(zebra)通信,后者负责协调路由决策并与数据平面通信。这种架构具有很高的弹性,因为一个协议守护进程中的错误、崩溃或漏洞通常不会影响其他协议守护进程。它还具有灵活性和可扩展性,因为模块化可以轻松实现新协议并将其绑定到套件中。此外,每个守护进程实现一个插件系统,允许在运行时加载新功能。

五、FRR支持哪些特性

Daemon / Feature

Linux

OpenBSD

FreeBSD

NetBSD

FRR Core

zebra

Y

Y

Y

Y

VRF

≥4.8

N

N

N

MPLS

≥4.5

Y

N

N

pbrd (Policy Routing)

Y

N

N

N

WAN / Carrier protocols

bgpd (BGP)

Y

Y

Y

Y

VRF / L3VPN

≥4.8 †4.3

CP

CP

CP

EVPN

≥4.18 †4.9

CP

CP

CP

VNC (Virtual Network Control)

CP

CP

CP

CP

Flowspec

CP

CP

CP

CP

ldpd (LDP)

≥4.5

Y

N

N

VPWS / PW

N

≥5.8

N

N

VPLS

N

≥5.8

N

N

nhrpd (NHRP)

Y

N

N

N

Link-State Routing

ospfd (OSPFv2)

Y

Y

Y

Y

Segment Routing

≥4.12

N

N

N

ospf6d (OSPFv3)

Y

Y

Y

Y

isisd (IS-IS)

Y

Y

Y

Y

Distance-Vector Routing

ripd (RIPv2)

Y

Y

Y

Y

ripngd (RIPng)

Y

Y

Y

Y

babeld (BABEL)

Y

Y

Y

Y

eigrpd (EIGRP)

Y

Y

Y

Y

Multicast Routing

pimd (PIM)

≥4.19

N

Y

Y

SSM (Source Specific)

Y

N

Y

Y

ASM (Any Source)

Y

N

N

N

EVPN BUM Forwarding

≥5.0

N

N

N

vrrpd (VRRP)

≥5.1

N

N

N

0 人点赞