最近在做DPDK关于BGP数据包的转发工作,用到了GoBGP,碍于手边的设备限制只得用两台跑在同一个物理机上的虚拟机进行配置学习。写个blog记录一下过程中遇到的问题和解决方法。
一、 GoBGP项目源代码,下载与安装
项目源代码是托管在Git上面的开源项目,链接如下:
https://github.com/osrg/gobgp
GoBGP的下载与安装比较简单,只需要下载tar并解压就ok了,下载地址:
https://github.com/osrg/gobgp/releases/tag/v3.5.0
$ wget https://github.com/osrg/gobgp/releases/download/v3.5.0/gobgp_3.5.0_linux_amd64.tar.gz
$ tar -xzf gobgp_3.5.0_linux_amd64.tar.gz
至此,解压后ls命令能看到gobgp文件即为安装完毕,因为我用两台centOS虚拟机去尝试互联,因此两台机子均需要配置安装GoBGP
二、 运行GoBGP
在启动GoBGP之前需要创建一个GoBGP配置文件,需要注意的是,配置文件可以使用 .conf .yaml 等多种格式,但每种格式的配置文件语法有所不同,在此针对两台虚拟机测试仿真的情况配置信息,按照 .conf 格式编写:
gobgpd.conf:
[global.config]
as = 65000
router-id = "192.168.20.129"
[[neighbors]]
[neighbors.config]
neighbor-address = "192.168.20.131"
peer-as = 65000
[[neighbors]]
[neighbors.config]
neighbor-address = "192.168.20.130"
peer-as = 65000
下来启动GoBGP
$ ./gobgpd -f gobgpd.conf #使用.conf启动且不含有debug模式
$ ./gobgpd -t yaml -f gobgpd.yaml #使用.yaml启动且不含有debug模式
$ ./gobgpd -f gobgpd.conf -l debug -p #带有debug模式的启动
三、配置端口与BGP信息
当按照上面的步骤完成后,可能会遇到查看peer信息时遇到下列的显示:
$ ./gobgp neighbor
Peer AS Up/Down State |