将两个集装箱(OVS)交换机连接到SDN控制器

时间:2018-05-10 13:33:13

标签: docker containers sdn openvswitch pox

我正在尝试创建以下配置。两个(Docker)容器,让我们通过它们的主机名(s1和s2)调用它们,如下所述,每个容器包括Open vSwitch。我想将两个OVS彼此连接到一个(POX)控制器。

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

  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

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

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

0 个答案:

没有答案