Quagga 开源路由协议套件:BGP、OSPF、RIP 多协议选路完整指南

发布时间:2026/8/22 16:36:53
Quagga 开源路由协议套件:BGP、OSPF、RIP 多协议选路完整指南 Quagga 开源路由协议套件BGP、OSPF、RIP 多协议选路完整指南【免费下载链接】quaggaQuagga Tracking repository - Master is at http://git.savannah.gnu.org/cgit/quagga.git项目地址: https://gitcode.com/gh_mirrors/qu/quaggaQuagga 是一套用 C 语言编写的开源路由协议守护进程提供 zebra、bgpd、ospfd、ripd 等可直接落地的路由进程适合本地实验多协议选路与重分布也常用于协议行为学习和测试环境搭建。一、场景与定位为什么需要它想在本地复现一次 BGP 邻居选路或者验证OSPF 引入 RIP 之后哪条路径生效用商业软件要过许可云环境又常缺内核路由表权限。自己手写协议栈则要处理选路比较、收敛时序、状态机这些琐碎但容易出错的部分。Quagga 把 BGP4、OSPF、RIP 等协议拆成各自独立的守护进程再交给 zebra 统一对接内核路由表在本机或容器里编译后即可运行整条路由数据留在本机处理。二、它能做什么单播选路内置 BGP4/BGP4、OSPFv2、OSPFv3、RIPv1/v2、RIPng 守护进程另含早期 IS-IS 支持覆盖常见的多协议选路与重分布实验。内核路由统一管理zebra 是唯一对接内核路由表的进程负责路由下发、协议间重分布和下一跳跟踪避免多个协议各自写路由表。策略过滤prefix-list、route-map 等机制用于邻居间的路由进出口控制适合验证某条前缀为什么没被宣告这类问题。统一 CLIvtysh 一次登录即可切换 zebra 和各协议进程不用在多个 telnet 会话之间来回切。可观测性协议守护进程提供 SNMP 支持路由表状态可接入现有监控。组播选路附带 PIM-SSM 守护进程用于 SSM 组播环境的转发测试。三、三步跑起来第一步获取代码git clone https://gitcode.com/gh_mirrors/qu/quagga cd quagga cat bootstrap.sh # 先看一下构建脚本内容第二步编译并安装./bootstrap.sh # 生成 configure ./configure --prefix/usr/local make make install # 生成的 *.conf.sample 可作配置起点第三步启动进程并接收选路结果先起 zebra再起协议进程本例只演示 bgpdzebra -d bgpd -d vtysh # 统一 CLI按进程名切换在 vtysh 中给 bgpd 配一个邻居configure router bgp 65001 neighbor 10.0.0.2 remote-as 65002 network 10.1.0.0/16保存后SIGHUP或重启进程即可重新加载配置。四、常用配置参数速查各守护进程共享同一组命令行参数bgpd --help可查看全部选项参数默认值作用-f, --config_file无指定配置文件路径-A, --vty_addr127.0.0.1VTY 监听地址远程管理时改成本机 IP-P, --vty_port2601VTY 端口与 vtysh 约定一致即可-u / -groot降权运行的用户/组-n, --no_kernel关不向内核写路由适合纯学习场景-C, --dryrun关只校验配置文件合法性后退出-z, --socket/var/run/zebra/zebra.path与 zebra 通信的 socket 路径-i, --pid_file无指定 pid 文件位置五、BGP 选路机制与源码导读普通 BGP 选路流程路由从多个邻居进入经过最佳路径选择写入本地 RIB每个邻居独立保留入方向和出方向过滤器。仓库文档中的这张图把整条链路画得比较清楚。Route Server 场景下除主 RIB 外每个客户端还有专属 Loc-RIB叠加导出/导入策略对比两张图能直观看到 RS 模式与普通邻居处理的差异。生态上Quagga 是 FRRFree Range Routing的前身FRR 中大量代码可追溯到这里的实现把它当作理解现代开源路由栈的入口很合适。仓库本身也适合源码导读BGP 状态机在 bgpd/ 目录OSPF 洪泛与 SPF 计算在 ospfd/RIB 管理集中在 zebra/zebra_rib.c各协议还自带示例配置如 bgpd/bgpd.conf.sample、ospfd/ospfd.conf.sample可直接拷进配置文件修改。六、社区与贡献安装说明INSTALL.quagga.txt构建脚本说明bootstrap.sh问题报告流程REPORTING-BUGS提交规范HACKING.md版本变更与待办ChangeLog、TODOQuagga 的价值在于把多协议选路的复杂逻辑拆成独立守护进程再由 zebra 统一落到内核本地编译、启动 zebra 加协议进程、用 vtysh 完成配置就是一条可完整跑通的多协议选路实验链路。【免费下载链接】quaggaQuagga Tracking repository - Master is at http://git.savannah.gnu.org/cgit/quagga.git项目地址: https://gitcode.com/gh_mirrors/qu/quagga创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考