编辑:截至2019年3月,虽然我还没有测试过它,但我相信Docker现在有能力进行真正的网络仿真。
编辑:截至2015年5月,SocketPlane (参见网站和存储库)加入了Docker团队,他们正在将OVS解决方案集成到Docker核心中。似乎他们将成为各种码头联网解决方案的赢家。
所以我一直在用米尼内在我的网络软件上运行测试。不过,它似乎已经达到了极限,因为Mininet本质上是linux容器,只有一个网络堆栈。我希望每个容器都有自己的网络堆栈、文件系统和进程集--基本上,我希望容器尽可能接近VM。这让我想到了Docker,据我所知,Docker与Mininet相反,它的容器有一个文件系统和它们自己的进程,而不是它们自己的网络堆栈。我倾向于Docker,因为它有一个用于分叉容器的很好的API,只使用diff的磁盘空间。我的问题是,是否可以使用以下容器布局+网络接口设置创建一组linux容器(带有Docker或类似的)?

发布于 2014-01-08 16:24:29
为此,您可以使用管道工程。它特别是它实现的场景之一(除了标准的Docker网络之外,容器之间的专用网络)。
发布于 2014-09-02 13:16:21
我知道有两个使用linux容器的开源网络模拟器:
核心网模拟器使用容器,每个容器都有自己的文件系统(或部分文件系统,因为它只为每个节点上运行的服务所需的目录创建挂载名称空间)。
VNX网络仿真器是另一个选项。它使用KVM或LXC创建虚拟节点(但我尚未尝试LXC选项)。
发布于 2015-09-21 09:33:53
核心网络仿真程序确实有一个码头服务,我提供并编写了一个文章关于。最初的版本,在4.8是大部分是坏的,但我已经修复和改进了它。GitHub上有拉请求。
该服务允许您使用“核心”标记Docker图像,然后将它们作为选项出现在服务设置中。必须选择启动容器中的码头服务的Docker映像。然后选择要在该节点中运行的容器。它的规模相当好,我已经有超过2000节点在我的16 on的机器上。
你也提到了OVS。这还没有内置到核心,但可以手动使用。我刚刚回答了这个核心邮件列表上的一个问题。它简要概述了用OVS交换标准核心开关(桥)的情况。如果有用的话,案文转载如下:
以前并没有真正使用开开关,但是看了一下。
我通过包管理器安装了openvswitch (Ubuntu15.04):
sudo apt-获取安装开关-开关
然后,我在4.8核中建立了一个非常简单的网络。2个人电脑连接到一个开关。我是从核心开始模拟的。然后在主机上,我看了看架设的桥梁:
sudo brctl show
bridge name bridge id STP enabled interfaces
b.3.76 8000.42c789ce95e9 no veth1.0.76
veth2.0.76
docker0 8000.56847afe9799 no
lxcbr0 8000.000000000000 no我可以看到表示该开关的桥名为b.3.76,其接口为vth1.0.76和vth2.0.76。我删除这座桥:
sudo ip link set b.3.76 down
sudo brctl delbr b.3.76然后我设置了开开关桥:
sudo ovs-vsctl add-br b.3.76
sudo ovs-vsctl add-port b.3.76 veth1.0.76
sudo ovs-vsctl add-port b.3.76 veth2.0.76我现在可以在节点之间切换,这样开关就可以工作了。我没有尝试做任何进一步的配置打开开关。
当您停止核心仿真时,它显然不会删除openvswitch桥或端口,因此必须手工完成:
sudo ovs-vsctl del-port veth2.0.76
sudo ovs-vsctl del-port veth1.0.76
sudo ovs-vsctl del-br b.3.76这将是相对简单的自动化与脚本或少量的工作可以集成到码头。
希望这能有所帮助
https://stackoverflow.com/questions/20994863
复制相似问题