Quagga 路由软件包

Quagga 中文翻译斑驴,是一种先进的路由软件包,提供一套基于 TCP/IP 的路由协议。

实际上,Quagga 是 GNU Zebra 的一个分支,它为类 Unix 平台提供了所有主流路由协议的实现,例如开放最短路径优先(OSPF),路由信息协议(RIP),边界网关协议(BGP)和中间系统到中间系统协议(IS-IS)。尽管 Quagga 实现了 IPv4 和 IPv6 的路由协议,但它并不是一个完整的路由器。一个真正的路由器不仅实现了所有路由协议,而且还有转发网络流量的能力。 Quagga 仅仅实现了路由协议栈,而转发网络流量的工作则由 Linux 内核处理。

Quagga 通过特定协议的守护程序实现不同的路由协议。守护程序名称与路由协议相同,加了字母“d”作为后缀。Zebra 是核心,也是与协议无关的守护进程,它为内核提供了一个抽象层,并通过 TCP 套接字向 Quagga 客户端提供 Zserv API。每个特定协议的守护程序负责运行相关的协议,并基于交换的信息来建立路由表。

+----+  +----+  +-----+  +-----+
|bgpd|  |ripd|  |ospfd|  |zebra|
+----+  +----+  +-----+  +-----+
                            |
+---------------------------|--+
|                           v  |
|  UNIX Kernel  routing table  |
|                              |
+------------------------------+

    Quagga System Architecture

Quagga 的架构如上图所示:

  • ripd,负责处理 RIP 协议
  • ospfd,负责处理 ospf v2 协议
  • bgpd,负责处理 BGP v4 协议
  • zebra,作为内核路由表管理器

其他守护进程:

  • ripngd
  • ospf6d

Leave a Reply