bgpd
bgpd 是 Zebra/Quagga/FRRouting 等开源路由软件套件中专门实现 BGP(Border Gateway Protocol) 协议的守护进程(daemon)。它的核心功能是让设备(如 Linux 服务器或路由器)支持 BGP 协议,用于在大型网络(如互联网或企业骨干网)中交换路由信息。
核心功能
1.BGP 协议支持:
- 实现 BGP-4(RFC 4271),支持 IPv4 和 IPv6(通过 MP-BGP)。
- 可配置为 iBGP(同一自治系统内部)或 eBGP(不同自治系统之间)。
- 支持路由聚合、路由反射器(Route Reflector)、联盟(Confederation)等高级特性。
2.路由管理:
- 从其他 BGP 邻居学习路由,并将最优路由注入内核路由表(通过 Zebra 核心进程)。
- 支持路由策略:通过 Route-map、Prefix-list、AS-Path Filter 等工具控制路由的发布和接收。
3.邻居会话:
- 维护与对等体(Peer)的 TCP 连接(默认端口 179)。
- 支持 MD5 认证、Keepalive 检测、Graceful Restart 等可靠性机制。
配置文件与操作
- 配置文件:通常为
bgpd.conf
(路径如/usr/local/etc/bgpd.conf
或/etc/frr/bgpd.conf
)。 - CLI 工具:通过
vtysh
或telnet
连接到 bgpd 进程进行交互式配置,语法类似 Cisco IOS。
示例配置:
# 启动 bgpd 守护进程
bgpd -d
# 使用 vtysh 配置 BGP
vtysh
configure terminal
router bgp 65001
neighbor 192.168.1.2 remote-as 65002 # 指定 BGP 邻居
network 10.0.0.0/24 # 宣告本地网络
exit
常见应用场景
1.互联网接入(ISP)
- 与上游运营商建立 eBGP 连接,交换互联网路由表。
2.数据中心网络
- 使用 iBGP 构建 Underlay 网络(如结合 OSPF/IS-IS)。
- 支持 EVPN(BGP 扩展)用于 VXLAN overlay 网络。
3.企业多站点互联
- 通过 BGP 实现分支站点之间的动态路由。
相关工具与生态
- Zebra:bgpd 依赖的核心进程,负责与内核路由表交互。
- Quagga/FRRouting:现代分支版本(如 FRR)对 BGP 支持更完善(例如支持 BGP-LS、BGP FlowSpec 等新特性)。
- 监控:可通过
show ip bgp summary
查看邻居状态,或使用工具如 Prometheus + FRR Exporter 收集指标。
注意事项
- 性能:bgpd 适合中小规模路由表,全互联网路由表(约 100 万条)可能需要优化或硬件加速。
- 安全性:需配置严格的邻居过滤(如
prefix-list
)防止路由劫持。
如果需要进一步了解具体配置或排错方法,可以补充说明你的使用场景!