其他分享
首页 > 其他分享> > 【FRRouting User Guide】(一)概述

【FRRouting User Guide】(一)概述

作者:互联网

    FRR是一个功能齐全、高性能的免费软件IP路由套件。
    FRR实现了所有的标准路由协议,如BGP、RIP、OSPF、IS-IS等(参见功能矩阵),以及它们的许多扩展。
    FRR是一个主要用C语言编写的高性能套件,它可以轻松地处理完整的Internet路由表,并且适用于从廉价sbc(系统基础芯片)到商用级路由器的硬件。它被数百家公司、大学、研究实验室和政府积极用于生产。
    FRR是在GPLv2下发布的,其开发是模仿Linux内核的。任何人都可以提供功能、错误修复、工具、文档更新或其他任何内容。
 

如何获取FRR 
     

        FRR官方网站位于https://frrouting.org/并包含更多信息,以及指向其他资源的链接。
        一些发行版为FRR提供了包。检查发行版的存储库以确定是否有合适的版本可用。
       最新的Debian&Redhat软件包可在https://deb.frrouting.org/& https://rpm.frrouting.org/分别。
       有关从源代码安装的说明,请参阅开发人员文档。

 

关于FRR


        FRR提供IP路由服务。它在网络栈中的作用是与其他路由器交换路由信息,做出路由和策略决策,并将这些决策通知其他层。在最常见的场景中,FRR将路由决策安装到OS内核中,允许内核网络堆栈做出相应的转发决策。
        除了动态路由外,FRR还支持全范围的L3配置,包括静态路由、地址、路由器广告等。它还具有一些轻L2功能,但这主要是留给平台的。这使得它适用于从具有静态路由的小型家庭网络到运行完整Internet表的Internet交换的部署。
       FRR在所有现代的*NIX操作系统上运行,包括Linux和BSDs。功能支持因平台而异;请参见功能矩阵。

 

系统架构


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

+----+  +----+  +-----+  +----+  +----+  +----+  +-----+
|bgpd|  |ripd|  |ospfd|  |ldpd|  |pbrd|  |pimd|  |.....|
+----+  +----+  +-----+  +----+  +----+  +----+  +-----+
     |       |        |       |       |       |        |
+----v-------v--------v-------v-------v-------v--------v
|                                                      |
|                         Zebra                        |
|                                                      |
+------------------------------------------------------+
       |                    |                   |
       |                    |                   |
+------v------+   +---------v--------+   +------v------+
|             |   |                  |   |             |
| *NIX Kernel |   | Remote dataplane |   | ........... |
|             |   |                  |   |             |
+-------------+   +------------------+   +-------------+

       所有FRR守护进程都可以通过一个名为vtysh集成用户界面shell进行管理。vtysh通过UNIX域套接字连接到每个守护进程,然后作为用户输入的代理。除了统一的前端之外,vtysh还提供了通过集成配置模式使用单个配置文件配置所有守护进程的能力。这避免了为每个守护进程维护单独配置文件的开销。

       FRR目前正在实施一个基于YANG数据模型的新的内部配置系统。当这项工作完成后,FRR将是一个完全可编程的路由栈。

 

支持的平台


        目前FRR支持GNU/Linux和BSD。将FRR移植到其他平台并不太困难,因为依赖于平台的代码应该主要局限于Zebra守护进程。协议守护进程基本上是独立于平台的。如果您能让FRR在以下未列出的平台上运行,请告知我们:

       这些平台的版本从其原始版本开始已经超过2年(对于GNU/Linux,这是因为内核是在上发布的)https://kernel.org/)可能需要一些工作。同样,以下平台可能需要一些努力:

以下编译器的最新版本经过了很好的测试:

 

不支持的平台

        一般来说,如果上面没有列出您尝试使用的平台,那么FRR不支持在该平台上运行。这里唯一需要注意的是,Solaris 7.5及之前的版本受到了有限的支持。

 

特征矩阵


       下表列出了所有交叉引用到所有至少具有CI构建测试的操作系统的协议。注意,对于功能,这里只包含系统依赖项的功能;如果您没有看到您感兴趣的特性,则应在平台上支持该功能。

Daemon / FeatureLinuxOpenBSDFreeBSDNetBSD
FRR Core    
zebraYYYY
VRF≥4.8NNN
MPLS≥4.5YNN
pbrd (Policy Routing)YNNN
WAN / Carrier protocols    
bgpd (BGP)YYYY
VRF / L3VPN≥4.8†4.3CPCPCP
EVPN≥4.18†4.9CPCPCP
VNC (Virtual Network Control)CPCPCPCP
FlowspecCPCPCPCP
ldpd (LDP)≥4.5YNN
VPWS / PWN≥5.8NN
VPLSN≥5.8NN
nhrpd (NHRP)YNNN
Link-State Routing    
ospfd (OSPFv2)YYYY
Segment Routing≥4.12NNN
ospf6d (OSPFv3)YYYY
isisd (IS-IS)YYYY
Distance-Vector Routing    
ripd (RIPv2)YYYY
ripngd (RIPng)YYYY
babeld (BABEL)YYYY
eigrpd (EIGRP)YYYY
Multicast Routing    
pimd (PIM)≥4.18NYY
SSM (Source Specific)YNYY
ASM (Any Source)YNNN
EVPN BUM Forwarding≥5.0NNN
vrrpd (VRRP)≥5.1NNN

标志具有以下语义:

 

Known Kernel Issues

 

支持的RFC


        FRR实施以下RFC:

注意,此列表不完整。

BGP

OSPF

ISIS

RIP

PIM

BFD

MPLS

VRRP

SNMP

When SNMP support is enabled, the following RFCs are also supported:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

标签:BGP,Protocol,June,RFC,FRR,User,FRRouting,Guide,路由
来源: https://blog.csdn.net/weixin_39094034/article/details/115133953