GoBGP的安装和使用
相关介绍
GoBGP 是一个用 Go 语言实现的开放源代码,用于在服务器上实现BGP的功能。主要是利用 Go 语言的特性来提供高效、可靠的 BGP 路由功能。GoBGP 支持多种 BGP 特性,包括路由服务器、路由反射器、策略管理、MRT、BMP、EVPN、Flowspec 等。
具体步骤
安装Go语言环境
1、推荐的操作系统包括一下三种。我本次使用linux的centos进行安装和使用:
- Linux (Ubuntu, CentOS, etc.)
- macOS
- Windows (通过 WSL)
2、下载、解压Go语言安装包。https://golang.org,访问不了,我是用了阿里云的镜像:
#下载 Go wget https://mirrors.aliyun.com/golang/go1.22.12.linux-amd64.tar.gz # 解压到 /usr/local tar -C /usr/local -xzf go1.22.12.linux-amd64.tar.gz
3、在如下文件中,添加环境变量,并立即生效:
[root@localhost ~]# cat /etc/profile.d/go.sh export PATH=$PATH:/usr/local/go/bin export GOPATH=$HOME/go export PATH=$PATH:$GOPATH/bin export GOPROXY=https://goproxy.cn,direct export GO111MODULE=on
[root@localhost ~]# source /etc/profile.d/go.sh
4、创建Go工作目录:
mkdir -p ~/go/{bin,src,pkg}
5、完成安装,查看版本:
#查看版本
[root@localhost ~]# go version go version go1.22.12 linux/amd64
#查看环境配置 [root@localhost ~]# go env GO111MODULE='on' GOARCH='amd64' GOBIN='' GOCACHE='/root/.cache/go-build' GOENV='/root/.config/go/env' GOEXE='' GOEXPERIMENT='' GOFLAGS='' GOHOSTARCH='amd64' GOHOSTOS='linux' GOINSECURE='' GOMODCACHE='/root/go/pkg/mod' GONOPROXY='' GONOSUMDB='' GOOS='linux' GOPATH='/root/go' GOPRIVATE='' GOPROXY='https://goproxy.cn,direct' GOROOT='/usr/local/go' GOSUMDB='sum.golang.org' GOTMPDIR='' GOTOOLCHAIN='auto' GOTOOLDIR='/usr/local/go/pkg/tool/linux_amd64' GOVCS='' GOVERSION='go1.22.12' GCCGO='gccgo' GOAMD64='v1' AR='ar' CC='gcc' CXX='g++' CGO_ENABLED='1' GOMOD='/dev/null' GOWORK='' CGO_CFLAGS='-O2 -g' CGO_CPPFLAGS='' CGO_CXXFLAGS='-O2 -g' CGO_FFLAGS='-O2 -g' CGO_LDFLAGS='-O2 -g' PKG_CONFIG='pkg-config' GOGCCFLAGS='-fPIC -m64 -pthread -Wl,--no-gc-sections -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build441529636=/tmp/go-build -gno-record-gcc-switches'
6、运行一个测试程序:
#创建一个测试程序
[root@localhost test-go]# cat hello.go
package main
import "fmt"
func main() {
fmt.Println("Go 安装成功!")
fmt.Println("恭喜!CentOS 上的 Go 环境已经配置完成")
}
#运行测试程序
[root@localhost test-go]# go run hello.go
Go 安装成功!
恭喜!CentOS 上的 Go 环境已经配置完成
安装GoBGP
1、下载GoBGP:
#下载GoBGP源代码
git clone https://github.com/osrg/gobgp.git
2、安装必要依赖:
#更新软件包列表 yum check-update # 安装开发工具组 sudo yum groupinstall -y "Development Tools" # 也可以逐个安装 build-essential 的组件 sudo yum install -y gcc gcc-c++ make automake autoconf kernel-devel # 安装 SNMP 开发库 sudo yum install -y net-snmp-devel # 安装其他可能的依赖 sudo yum install -y libcap-devel
3、使用Go Build编译:
# 编译 gobgp 命令行工具 go build -o gobgp ./cmd/gobgp # 编译 gobgpd 守护进程 go build -o gobgpd ./cmd/gobgpd
4、做启动准备:
# 将二进制文件复制到系统路径 sudo cp gobgp gobgpd /usr/local/bin/ # 验证安装 which gobgp which gobgpd gobgp --version
5、配置BGP。主要配置信息有本地AS,邻居AS,对端建立邻居的地址:
[root@localhost test-go]# mkdir -p /etc/gobgp [root@localhost test-go]# cat /etc/gobgp/gobgp.conf [global.config] as = 65001 router-id = "35.78.20.254" [[neighbors]] [neighbors.config] neighbor-address = "35.78.20.254" peer-as = 100 [root@localhost test-go]#
使用GoBGP
1、启动GoBGP:
方法1:
# 前台运行 sudo gobgpd -f /etc/gobgp/gobgp.conf # 或后台运行 sudo gobgpd -f /etc/gobgp/gobgp.conf -d
方法2(推荐):
#创建服务文件 [root@localhost test-go]# cat /etc/systemd/system/gobgpd.service [Unit] Description=GoBGP Daemon After=network.target [Service] Type=simple ExecStart=/usr/local/bin/gobgpd -f /etc/gobgp/gobgp.conf Restart=always RestartSec=5 User=root [Install] WantedBy=multi-user.target [root@localhost test-go]#
# 启用服务 sudo systemctl daemon-reload sudo systemctl enable gobgpd sudo systemctl start gobgpd # 检查状态 sudo systemctl status gobgpd
2、对端交换机配置:
[5700B-bgp]bgp 100 [5700B-bgp]peer 35.78.20.1 as-number 65001
3、查看BGP邻居状态:
【GoBGP查看方式】 # 查看邻居状态 gobgp neighbor # 查看全局路由表 gobgp global rib # 查看 BGP 信息摘要 gobgp summary 【交换机查看方式】 [5700B-bgp]dis bgp peer 35.78.20.1 verbose
邻居建立为established:


本文来自博客园,作者:1234roro 当你迷惘的时候,开始学习吧!当你目标清晰的时候,开始学习吧!转载请注明原文链接:https://chuna2.787528.xyz/1234roro/p/19253807
浙公网安备 33010602011771号