0

我正在尝试创建以下配置。两个(Docker)容器,如下所述,我们用它们的主机名(s1 和 s2)来称呼它们,每个容器都包含 Open vSwitch。我想将两个 OVS 相互连接,并连接到(POX)控制器。

这就是我所做的(如果需要,所有命令都以 root 权限运行):

  1. 运行第一个容器

docker run -itd -P --hostname=s1 --cap-add NET_ADMIN %DOCKER_IMAGE%

运行第二个容器

docker run -itd -P --hostname=s2 --cap-add NET_ADMIN %DOCKER_IMAGE%

2.

docker exec CID_s1 ovs-vsctl add-br s1

(其中 CID_s1 是容器 s1 的 CID)

docker exec CID_s2 ovs-vsctl add-br s2

3.

在主机上:

ip link add s1-eth1 type veth peer name s2-eth1

ip link set s1-eth1 netns PID_s1 (其中 PID_s1 是容器 s1 的 PID)

ip link set s2-eth1 netns PID_s2

4.

在 s1 上打开一个终端并写入:

ovs-vsctl add-port s1 s1-eth1

ip link set s1-eth1 up

ifconfig s1-eth1 10.0.0.1

ovs-vsctl set-controller s1 tcp:172.17.0.1:6633

在 s2 上打开一个终端并写入:

ovs-vsctl add-port s2 s2-eth1

ip link set s2-eth1 up

ifconfig s2-eth1 10.0.0.2

ovs-vsctl set-controller s2 tcp:172.17.0.1:6633

此时控制器显示交换机已连接,我可以看到控制器已安装流(控制器充当集线器,因此所有动作实际上都是泛洪)。

但是,我无法从 s1 ping 到 s2 或其他方式(当然使用他们的 IP 地址)。

4

0 回答 0