Подключите два контейнерных (OVS) коммутатора к контроллеру SDN - PullRequest
0 голосов
/ 10 мая 2018

Я пытаюсь создать следующую конфигурацию. Два (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 - это CID контейнера s1)

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 - PID контейнера s1)

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 по s2 или другим способом (конечно, используя их IP-адреса).

...