【发布时间】:2014-10-19 00:25:42
【问题描述】:
我将 Qugaa bgpd 和 nsm 二进制文件捆绑到一个基于 Ubuntu 3.13.0-36-generic 内核的 docker 中。现在我在 linux 服务器上运行多个这些 docker。这些 docker 使用 docker-py 实例化。
我使用管道并在每个 docker 上创建了一个以太网接口,并分配了一个 172.17.xx.xx 类型的地址。我的 BGP 配置是这样的,所有 docker 都与 BGP 完全啮合。即 docker 上的每个 BGP 都连接到其他 docker 上运行的所有其他 BGP。
BGP 会话建立,BGP 路由等绝对没问题。现在,当 docker 的数量超过 30 时,我永远无法连接到 bgp。 “top”命令没有显示太多 cpu 使用情况,内存受到限制,网络活动不多,我也不希望在 BGP 进程中进行太多处理。
当我在容器上使用 tcpdump 时,它是这个样子的。
9 2014-09-26 18:17:54.997861 0a:60:4a:3b:56:31 ARP 44 谁有 172.17.1.32?告诉 172.17.1.6
当我运行 40 个 docker 时,我看到 40 个这样的 ARP 请求,如上所示,然后是一个 ARP 回复。
但是这种情况会持续发生,并且在短时间内大约会产生 1600 (40*40) 条此类消息。我相信这是不允许我使用“telnet localhost bgpd”命令连接到本地 bgp 模块的原因。
我不认为这是 Quagga 或 BGP 特有的任何东西。我怀疑与 docker 网络有关。有没有人遇到过这样的问题,或者知道如何解决这个问题,或者这个问题的根本原因是什么?
【问题讨论】: