1. 源码位置
项目源代码下载地址:https://github.com/osrg/gobgp
GoBGP安装包下载地址https://github.com/osrg/gobgp/releases
安装包安装方式:tar -zvxf xxxx.tar.gz
2. gobgp启动
方法1
./gobgpd -f gobgpd.conf #使用.conf启动且不含有debug模式
./gobgpd -t yaml -f gobgpd.yaml #使用.yaml启动且不含有debug模式
./gobgpd -f gobgpd.conf -l debug -p #带有debug模式的启动
方法2
使用systemctl start gobgpd
3. 配置方式
方法1 命令行配置
配置文件支持多种格式 toml/yaml/json/conf
下面两个链接分别是GOBGP官网中对于命令行的说明
https://github.com/osrg/gobgp/blob/master/docs/sources/cli-command-syntax.md
https://github.com/osrg/gobgp/blob/master/docs/sources/policy.md
代码gobgp-master/docs/sources有所有命令行方式配置gobgp的介绍,如下图(图1)所示
图1 源码命令行文件说明
下面以conf文件为例,看一下GOBGP命令行的使用方式
在gobgpd.conf进行如下配置
创建BGP进程/配置router-id/创建邻居,配置如下:
查看BGP邻居,命令如下:
查看BGP邻居表,命令如下:
方法2 通过GRPC配置
如下链接为python语言使用gobgp的GRPC的方式
https://www.jianshu.com/p/fdc990ff5ea3
无论用什么语言最终都会调用GOBGP中GRPC的接口,如下图所示:
4. 支持的功能
GOBGP功能列表 |
解释说明 |
Route Server |
路由服务器,开启BGP的被动模式,只被动等待BGP邻居建立 |
Route Reflect |
路由反射器 |
EVPN |
以太网虚拟专用网络 |
Graceful restart |
优雅重启/平滑重启 |
Policy |
路由策略 |
BMP |
BGP监控协议 |
RPKI |
使用私钥和公钥对BGP中的路由进行数字加密和签名 |
Dynamic neighbors |
动态邻居建立 |
AddPath |
多路由发布 |
MRT |
MRT是一种存储格式,MRT格式可用于导出路由协议消息、状态更改和路由信息库内容 |
5. 源码结构说明
源代码的目录结构如下
每个目录的作用如下:
6. Gobgp与Quagga/FRR集成工作
GoBGP 仅支持 BGP 这一种路由协议,但是它可以和 Zebra 集成,通过 API 的方式与 Quagga/FRR 协同工作,以支持多种路由协议。