我有一个构建GoBGP扬声器映像的dockefile。
这是dockerfile
FROM ubuntu:16.04
RUN apt-get update && apt-get install -y \
wget \
iputils-ping \
traceroute \
tcpdump \
iproute2 \
&& rm -rf /var/lib/apt/lists/*
RUN wget https://github.com/osrg/gobgp/releases/download/v1.25/gobgp_1.25_linux_amd64.tar.gz && \
tar zxvf gobgp_1.25_linux_amd64.tar.gz && \
mv gobgp* /usr/bin/
RUN mkdir -p /opt/gobgp
WORKDIR /opt/gobgp/
COPY docker/gobgp/configs/* ./configs/
CMD ["gobgpd"]
EXPOSE 50051我也有一个对接-撰写,将带来一个完整的gobgp网络拓扑。我试图在gobgp_1服务上执行多个命令:
gobgp_1:
build:
context: ./
dockerfile: ./docker/gobgp/Dockerfile
command: sh -c "gobgpd -f configs/gobgpd_1.conf ; gobgp global rib add -a ipv4 11.8.0.0/24
; gobgp global rib add -a ipv4 11.7.0.0/24
; gobgp global rib add -a ipv4 11.6.0.0/24
; gobgp global rib add -a ipv4 11.5.0.0/24
"
privileged: true
networks:
net5:
ipv4_address: 11.8.0.2
net6:
ipv4_address: 11.7.0.2
net7:
ipv4_address: 11.6.0.3
net8:
ipv4_address: 11.5.0.3gobgpd -f configs/gobgpd_1.conf命令成功运行,但其余命令运行,但它没有在gobgpd应用程序上生效。如果我通过跳入容器bash手动运行这些命令,则该命令将成功运行,并且我看到gobgpd应用程序上的更改。
当我使用以下命令时,为您提供我所期望的信息的上下文:gobgp global rib,但是我没有看到任何东西,在我把对接器-组合起来之后。否则,如果在运行命令时手动运行,则会看到预期的信息。
这是我所有的码头组成文件。
version: '3'
services:
isp_1:
build:
context: ./
dockerfile: ./docker/gobgp/Dockerfile
command: "gobgpd -f configs/isp_1.conf"
privileged: true
networks:
net1:
ipv4_address: 9.0.0.3
isp_2:
build:
context: ./
dockerfile: ./docker/gobgp/Dockerfile
command: "gobgpd -f configs/isp_2.conf"
privileged: true
networks:
net2:
ipv4_address: 8.0.0.3
gobgp_5:
build:
context: ./
dockerfile: ./docker/gobgp/Dockerfile
command: "gobgpd -f configs/gobgpd_5.conf"
privileged: true
networks:
net2:
ipv4_address: 8.0.0.2
net4:
ipv4_address: 11.10.0.3
gobgp_4:
build:
context: ./
dockerfile: ./docker/gobgp/Dockerfile
command: "gobgpd -f configs/gobgpd_4.conf"
privileged: true
networks:
net1:
ipv4_address: 9.0.0.2
net3:
ipv4_address: 11.0.0.3
gobgp_3:
build:
context: ./
dockerfile: ./docker/gobgp/Dockerfile
command: "gobgpd -f configs/gobgpd_3.conf"
privileged: true
networks:
net4:
ipv4_address: 11.10.0.2
net6:
ipv4_address: 11.7.0.3
gobgp_2:
build:
context: ./
dockerfile: ./docker/gobgp/Dockerfile
command: "gobgpd -f configs/gobgpd_2.conf"
privileged: true
networks:
net3:
ipv4_address: 11.0.0.2
net5:
ipv4_address: 11.8.0.3
gobgp_1:
build:
context: ./
dockerfile: ./docker/gobgp/Dockerfile
command: sh -c "gobgpd -f configs/gobgpd_1.conf ; gobgp global rib add -a ipv4 11.8.0.0/24
; gobgp global rib add -a ipv4 11.7.0.0/24
; gobgp global rib add -a ipv4 11.6.0.0/24
; gobgp global rib add -a ipv4 11.5.0.0/24
"
privileged: true
networks:
net5:
ipv4_address: 11.8.0.2
net6:
ipv4_address: 11.7.0.2
net7:
ipv4_address: 11.6.0.3
net8:
ipv4_address: 11.5.0.3
server_1:
build:
context: ./
dockerfile: ./docker/gobgp/Dockerfile
privileged: true
networks:
net7:
ipv4_address: 11.6.0.2
controller_1:
build:
context: ./
dockerfile: ./docker/gobgp/Dockerfile
privileged: true
networks:
net8:
ipv4_address: 11.5.0.2
networks:
net1:
driver: bridge
ipam:
driver: default
config:
- subnet: 9.0.0.0/24
net2:
driver: bridge
ipam:
driver: default
config:
- subnet: 8.0.0.0/24
net3:
driver: bridge
ipam:
driver: default
config:
- subnet: 11.0.0.0/24
net4:
driver: bridge
ipam:
driver: default
config:
- subnet: 11.10.0.0/24
net5:
driver: bridge
ipam:
driver: default
config:
- subnet: 11.8.0.0/24
net6:
driver: bridge
ipam:
driver: default
config:
- subnet: 11.7.0.0/24
net7:
driver: bridge
ipam:
driver: default
config:
- subnet: 11.6.0.0/24
net8:
driver: bridge
ipam:
driver: default
config:
- subnet: 11.5.0.0/24发布于 2022-11-25 07:05:05
GoBGP只是一个bgp守护进程,它本身不包含任何修改路由表osrg/gobgp#1493的功能。
如果您希望使用GoBGP作为软件路由器的组件并进行数据包转发,则需要实现以下两个选项来实现FIB操作,即使用GoBGP使用内置斑马集成使用gRPC API编写您自己的代码。
使用斑马的例子
[global.config]
as = 2
router-id = "172.17.0.3"
[zebra]
[zebra.config]
enabled = true
url = "unix:/var/run/quagga/zserv.api"
redistribute-route-type-list = ["connect"]
version = 2https://stackoverflow.com/questions/73681952
复制相似问题