Как выяснилось, большое количество наших с вами коллег не только интересуются OpenStack, но и имеют достаточный опыт по его сборке и настройке: к нам приходит большое количество самых разных вопросов – от борьбы с багами в разных библиотеках до концептуальных вопросов ИБ и планирования пользовательской среды. На часть вопросов мы отвечаем в частном порядке, а на те, которые интересуют многих, ответим здесь.
Сегодня поговорим о том, какие внутри OpenStack есть варианты планирования виртуальных сетей, подсетей, внутренних IP-адресов виртуальных машин, способов трансляции их в реальные IP-адреса и обеспечения безопасности разделения сред между ВМ разных клиентов.
За работу с сетевой частью OpenStack отвечает библиотека Quantum, которая обеспечивает функцию «сеть как сервис» между сетевыми интерфейсами ВМ (vNIC) под управлением других сервисов OpenStack, фактически предоставляя API, позволяющее управлять всей сетевой частью облака. В зависимости от поставленных задач и спроектированной целевой конфигурации облака, к Quantum можно подключать плагины, обеспечивающие те или иные сетевые функции. Обязательно стоит внимательно рассмотреть такие плагины, как
Open vSwith,
Cisco UCS/Nexus,
Linux Brige,
NEC OpenFlow,
Nicira Network Virtualization Platform (NVP) и некоторые другие. После чего станет понятно, как именно вы будете проектировать сеть своего Cloud’а. Более подробно о конфигурации Quantum можно прочитать, например, в
Administration Guide по Quantum — написано хорошо и достаточно полно. Цель сегодняшнего поста в том, чтобы осветить возможности проектирования различных вариантов построения виртуальной сетевой инфраструктуры OpenStack’а и их основных отличий друг от друга.
Вариант 1. Общая сеть
Самый простой вариант – одна общая подсеть для размещения ВМ.
Каждая ВМ находится в собственном тенанте с IP-адресом из общей сети, которая может быть только одна. Понятно, что данные на всех интерфейсах ВМ доступны на всех других сетевых интерфейсах, подключенных в эту сеть. Tcpdump рулит. Это скорее тестовая среда, нежели реальный рабочий workaround.