Назад | Перейти на главную страницу

Нет Интернета на виртуальных машинах, а внешняя (физическая) сеть недоступна для виртуальных машин

Я установил openstack (packstack) на centos 6.4 с нейтроном. OpenStack устанавливается на одну виртуальную машину с помощью vmware.

Сначала я создал внешнюю сеть, используя следующую команду

quantum net-create public --router:external=True

Затем я добавил свою внешнюю сетевую подсеть (пул ip не используется во внешней сети)

Затем я создал роутер

Затем я настроил маршрутизатор на внешнюю сеть.

Я создал группу безопасности, чтобы разрешить использование ssh и icmp.

На втором этапе я создал частную сеть с включенным DHCP

Затем создал интерфейс маршрутизатора и подключил его к моей частной сети.

На третьем шаге я запустил экземпляр с частной сетью

На четвертом шаге я сгенерировал плавающий IP-адрес внешней сети и связал его с экземпляром

Постановка задачи:

Виртуальные машины получают IP-адреса (частные сети) от DHCP и обмениваются данными друг с другом, но на виртуальных машинах нет Интернета.

ВМ не может проверить связь с внешним сетевым устройством.

Я использую Centos 6.4. Ip route показывает

192.168.186.0/24 dev eth1  proto kernel  scope link  src 192.168.186.166  metric 1 
192.168.122.0/24 dev virbr0  proto kernel  scope link  src 192.168.122.1 
10.16.48.0/22 dev br-ex  proto kernel  scope link  src 10.16.51.208
169.254.0.0/16 dev eth0  scope link  metric 1002
169.254.0.0/16 dev br-ex  scope link  metric 1017
default via 10.16.48.1 dev br-ex 

куда 10.16.48.0/22 моя внешняя сеть на eth0 (для интернета)

10.16.186.0/24 это еще один интерфейс на eth1

quantum agent-list показывает

----+-------+----------------+
| id                                   | agent_type         | host                  | alive | admin_state_up |
+--------------------------------------+--------------------+-----------------------+-------+----------------+
| 4c709a4c-bf0c-4e03-a0f5-2d938fee7ae1 | L3 agent           | localhost.localdomain | :-)   | True           |
| 960a7806-dc4d-4ab1-99b0-a79dbc31600f | Open vSwitch agent | localhost.localdomain | :-)   | True           |
| d9f545e2-4a6c-43f4-8037-b807cbe27fc5 | DHCP agent         | localhost.localdomain | :-)   | True           |
+--------------------------------------+--------------------+-----------------------+-------+----------------+

Итак, вы создали виртуальный сервер VMWare и в этой виртуальной машине установили OpenStack, на котором размещены виртуальные машины?

Затем виртуальный коммутатор, к которому подключена виртуальная машина VMWare, блокирует любой трафик с ваших виртуальных машин OpenStack. Это мера безопасности, чтобы гарантировать, что только виртуальные машины VMWare могут получить доступ к виртуальному коммутатору и внешней сети. Это проблема уровня 2, я совершенно уверен, что команда arp -an в виртуальных машинах OpenStack не показывает шлюз.

Все, что вам нужно сделать, это разрешить виртуальному коммутатору VMWare получать несколько MAC-адресов.

Вы можете узнать, как это сделать, наэта почта

ИЗМЕНИТЬ ДЛЯ ВАШЕГО КОММЕНТАРИИ:

Я не знаю. Думаю, я знаю, что вы не можете связаться с маршрутизатором и, как следствие, с внешней сетью, даже на уровне 2 (убедитесь, что MAC-адрес не отображается для шлюза при запуске команды arp -an) потому что VSwitch отбрасывает пакеты, MAC-адреса которых не совпадают с адресами сервера OpenStack.

Затем вы можете либо отключить эту функцию в VSwitch, либо установить на свой сервер OpenStack службу ARP-прокси. Идея состоит в том, чтобы подделать MAC-адрес ваших виртуальных машин, который затем появится на VSwitch как сам сервер OpenStack.