CORE Network Emulator 确实有一个 Docker 服务,我贡献并写了一篇关于. 4.8 中的初始版本大部分已损坏,但我已对其进行修复和改进。拉取请求在GitHub 上。
该服务允许您使用“核心”标记 Docker 映像,然后它们会作为选项出现在服务设置中。您必须选择在容器中启动 docker 服务的 Docker 映像。然后选择要在该节点中运行的容器。它的扩展性很好,我的 16Gb 机器上有超过 2000 个节点。
你也提到了OVS。这尚未内置到 CORE 中,但可以手动使用。我刚刚在 CORE 邮件列表上回答了一个问题。它简要概述了使用 OVS 切换标准 CORE 交换机(桥)。如果有用,请在下面复制文本:
之前没有真正使用过openvswitch,但快速浏览了一下。
我通过我的包管理器(Ubuntu 15.04)安装了 openvswitch:
sudo apt-get install openvswitch-switch
然后我在 CORE 4.8 中构建了一个非常简单的网络。2 台 PC 连接到交换机。我在 CORE 中开始了仿真。然后在主机上查看了已经搭建好的网桥:
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,并附加了接口 veth1.0.76 和 veth2.0.76。我删除了桥:
sudo ip link set b.3.76 down
sudo brctl delbr b.3.76
然后我设置了 openvswitch 网桥:
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
我现在可以在节点之间 ping 通,因此交换机似乎正在工作。我没有尝试对 openvswitch 进行任何进一步的配置。
当您停止 CORE 仿真时,它显然不会删除 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
这将相对简单地通过脚本实现自动化,或者可以将一些工作集成到 docker 中。
希望这可以帮助