Openstack нейтрон: доступ к управляемым серверам openstack с сетевого хоста - PullRequest
0 голосов
/ 08 ноября 2018

У меня есть распределенная установка openstack - один контроллер и три вычислительных экземпляра. «Сетевой узел» совпадает с контроллером. У меня есть плоская внешняя сеть и сеть провайдера VLAN, которой был присвоен тег 775.

У меня есть маршрутизатор, соединяющий сеть VLAN с внешней сетью. Вся сантехника работает как положено. Я могу войти на сервер openstack и пинговать снаружи. Сети изолированы, как и ожидалось и т. Д.

На узле контроллера / сети я вижу пространство имен qrouter, в котором openstack создан для маршрутизатора, а другой - для DHCP.

Я создаю сервер в общедоступной сети с поддержкой VLAN. Мне нужно добраться до сервера с контроллера. Я попробовал несколько хаков, создав пару веток и протолкнув один конец в пространство имен qrouter, но это не сработало.

Я наконец попробовал следующий уродливый хак (который сработал):

  ovs-vsctl show 

  # Look for the mapping that openstack is using

  ovs-ofctl dump-flows br-int -O openflow13 | grep 775

  # discover that tag 6 is used by openstack on my integration bridge.
  # corresponding to vlan 775

  # Create a veth pair so the root namespace can access the bridge.


  ip link ip link add veth0 type veth peer name veth1

  # put one end on the bridge. 
  # assign a tag of 6 so it can access the server.

  ovs-vsctl add-port br-int veth1 tag=6



  # Finally I can assign an address to veth0 and ping a host on 
  # the openstack managed vlan network

  ifconfig veth0 10.0.40.39 

После выполнения описанных выше шагов я могу пропинговать сервер в моей сети, управляемой openstack, с моего контроллера.

Мне пришлось выполнить несколько шагов вручную, чтобы выяснить внутренний тег, который openstack использовал на мосту интеграции. Я сделал это, сбросив правила потока на мосту интеграции, чтобы увидеть, как управляли тегами. Затем я сделал шаги, описанные выше. Я думаю, что должен быть набор команд openstack (нейтрон), который я могу использовать вместо того, чтобы проходить через это.

В поисках лучшего решения. Мне не нужно смотреть на внутренние теги, выяснять сопоставления и т. Д. Существует ли базовый набор команд командной строки открытого стека для достижения этого?

Спасибо

Ранг

...