Керування мережами

Для кожної інфраструктури в OpenStack виділяється PA блок IP-адрес, що мають безпосередній вихід в інтернет, та квоти (ліміти) на створення локальних мереж, підмереж, портів та груп безпеки.

Параметри виділеного PA блоку (далі в тексті – публічна мережа) ми повідомляємо у листі з параметрами доступу. Крім того, їх можна подивитися у веб-інтерфейсі (дашборді) OpenStack, авторизувавшись зі своїм логіном та паролем - розділ Network, підрозділ Networks. Можливості керування цією мережею обмежені – проте, можливість створювати порти та групи безпеки є.

Доступні квоти (ліміти) на кількість локальних мереж/підмережі всередині інфраструктури, груп безпеки та правил для груп безпеки також можна бачити у веб-інтерфейсі (дашборді) – розділ Compute, підрозділ Overview.

Для створення локальних мереж використовуються ресурси

Відповідно до архітектури мереж у середовищі OpenStack, network (мережа) — це свого роду контейнер, який декларує наявність мережі, але не описує будь-яких її реальних параметрів (висловлене справедливо для простих інфраструктур, а не для будь-яких можливих сценаріїв застосування даного ресурсу) . Реальні властивості мережі, такі як блок адрес, описуються в ресурсі subnet. Приклад мінімальної працюючої конфігурації для створення локальної мережі такий, як наведений в офіційній документації Terraform для ресурсу subnet:

resource "openstack_networking_network_v2" "network_1" {
  name           = "tf_test_network"
#  admin_state_up = "true"
}
 
resource "openstack_networking_subnet_v2" "subnet_1" {
  network_id = "${openstack_networking_network_v2.network_1.id}"
  cidr       = "192.168.55.0/24"
}

Технічно можливе створення більше однієї підмережі у межах однієї мережі, проте у разі простий інфраструктури це навряд чи має практичного сенсу, т.к. ліміт на кількість підмереж дорівнює ліміту на кількість мереж.

Приклад, який в офіційній документації наведений на сторінці ресурсу network, є складнішою конфігурацією, що задіяє всі можливості, які налаштувати для простої інфраструктури. Крім мережі/підмережі цей приклад включає створення групи безпеки, правила для групи безпеки, порту (з певною IP-адресою з зазначеної підмережі) і прив'язку даного порту до певної віртуальної машини.

Групи безпеки створюються за допомогою ресурсу openstack_compute_secgroup_v2, а правила для груп безпеки - відповідно, за допомогою ресурсу openstack_networking_secgroup_rule_v2.

Групи безпеки (security groups) та його правила, строго кажучи, є опціональними — тому, що з працездатності мережі створювати їх обов'язково. За замовчуванням використовується група [default].

Порти створюються за допомогою ресурсу openstack_networking_port_v2.

Для найпростіших інфраструктур досить простий конфігурації, приклад якої наведено в офіційній документації під назвою Simple Port. Конфігурація портів також є опціональною - у тому сенсі, що якщо конфігурація портів не прописана, то при запуску віртуальних машин порти у вказаних мережах створюються автоматично.

За замовчуванням виділення адрес у мережах відбувається з допомогою DHCP, тобто. автоматично. У разі створення віртуальної машини достатньо вказати мережу, до якої ця машина підключена. При запуску машини порт буде створено автоматично, і IP-адреса також буде виділено автоматично. Подібна конфігурація є максимально простою у використанні, однак має очевидні обмеження — якщо машина підключена до двох мереж, отримання адрес по DHCP працювати не буде. У такому разі IP адреси повинні бути сконфігуровані статично як у конфігурації віртуальної машини Terraform, так і всередині її операційної системи.