OpenStack Liberty CLI & Multi-NAT-Gateways

2016-05-26

OpenStack Liberty CLI & Multi-NAT-Gateways

Machine-translated from English. Read the English original

Kunden suchen immer nach realen Produktionslösungen, nie nach dem einfachen Greenfield-Lab-Setup, auf das wir alle trainiert wurden – wenn wir Glück haben! Das aktuelle Projekt ist keine Ausnahme und obwohl es tatsächlich vom Lab-Setup abweicht, stelle ich mir vor, dass sie mit ihren Anforderungen keineswegs einzigartig sind. Single-Region „MidScale“ OpenStack HA-Steuerungsebene mit sowohl ESX- als auch KVM-Hypervisoren und natürlich nicht nur ein NAT-Gateway, sondern mehrere NAT-Gateways. Wenn Sie noch interessiert sind, lesen Sie weiter – die Umgebung wurde bereits aufgebaut, einschließlich der mehreren NAT-Gateways [Notiz an mich: möglicherweise eine weitere Blog-Post wert]. VLANs werden für die Tenant-Netzwerke verwendet, mit 3 dedizierten Netzwerk-Knoten, die mit CVR – Centralised Virtual Routing – auch bekannt als Legacy Routing, eingerichtet sind.

Übersicht

Dieser Blog beschreibt die Schritte, die erforderlich sind, um die folgende Umgebung ausschließlich mit der OpenStack-Befehlszeilenschnittstelle (CLI) aufzubauen.

  • dev/test-Projekt
  • ein /24 privates Tenant-Netzwerk
  • 2 x 3-Tier-Anwendungsserver: Web-1, App-1, DB-1 & Web-2, App-2, DB-2.
  • Sicherheitsgruppen zur Bereitstellung der Isolation zwischen beiden 3-Tier-Anwendungen.

  • Produktionsprojekt

  • 3 x /24 private Tenant-Netzwerke – eines für jede Anwendungsschicht
  • 2 x 3-Tier-Anwendungsserver: Web-1, App-1, DB-1 & Web-2, App-2, DB-2 mit den Server-VMs in ihren jeweiligen Netzwerkschichten.
  • Sicherheitsgruppen zur Bereitstellung der Isolation zwischen beiden 3-Tier-Anwendungen.

  • Remote-Server-Projekt

  • Dieses Projekt wird verwendet, um zwei verschiedene Datenbankserver zu hosten, denen Floating-IPs zugewiesen werden und die zur Darstellung externer Server für Zugriffs-Demonstrationen dienen.

  • SNAT für alle Server

  • Mehrere NAT-Gateways oder mehrere externe Netzwerke mit Floating-IPs.

Die Multi-Hypervisor-HOS 3.0-Installation wurde bereits erfolgreich abgeschlossen, und die hochrangige Architektur kann unten gesehen werden.

B1

Verfahren

  • Erstellen Sie 3 neue Projekte – dev_test, production & remote
  • openstack project create –domain default –description „Dev-Test Project“ dev_test
  • openstack project create –domain default –description „Production Project“ production
  • openstack project create –domain default –description „Remote Servers for Demo Only“ remote

b2b3b4

  • Erstellen Sie zwei neue Benutzer – Bart the Admin & Lisa the Operator
  • openstack user create –domain default –password homer bart
  • openstack user create –domain default –password homer lisa

b5

  • Fügen Sie die Admin-Rolle zu den Projekten und bart hinzu
  • openstack role add –project remote –user bart admin
  • openstack role add –project production –user bart admin
  • openstack role add –project dev_test –user bart admin
  • Fügen Sie die Member-Rolle zu den Projekten und lisa hinzu
  • openstack role add –project remote –user lisa _member_
  • openstack role add –project production –user lisa _member_
  • openstack role add –project dev_test –user lisa _member_

b6b7

  • Erstellen Sie die neuen VLAN-Tenant-Netzwerke unter Verwendung der VLAN-IDs 4000-4010 und weisen Sie sie den jeweiligen Projekten gemäß der obigen Beschreibung zu
  • neutron net-create –tenant-id 244fbcbe8c444dacbfc6dbbbf89f744e –provider:physical_network physnet1 –provider:segmentation_id 4000 –provider:network_type vlan dev_test_net

b8

    • neutron net-create –tenant-id cd506c50142d4a6e9618087ecbd5599f –provider:physical_network physnet1 –provider:segmentation_id 4001 –provider:network_type vlan prod_web_net
  • neutron net-create –tenant-id cd506c50142d4a6e9618087ecbd5599f –provider:physical_network physnet1 –provider:segmentation_id 4002 –provider:network_type vlan prod_app_net
  • neutron net-create –tenant-id cd506c50142d4a6e9618087ecbd5599f  –provider:physical_network physnet1 –provider:segmentation_id 4003 –provider:network_type vlan prod_db_net

b9

  • neutron net-create –tenant-id 3857ea74aa9e47b081d2781e9a661fa9  –provider:physical_network physnet1 –provider:segmentation_id 4004 –provider:network_type vlan remote_net

b10

  • Erstellen Sie die Subnetze für jedes Netzwerk
  • neutron subnet-create dev_test_net 172.17.175.0/24 –name subnet_dev_test –gateway 172.17.175.1 –allocation-pool start=172.17.175.20,end=172.17.175.250 –enable-dhcp

b11b12

  • neutron subnet-create prod_web_net 172.17.176.0/24 –name subnet_prod_web –gateway 172.17.176.1 –allocation-pool start=172.17.176.20,end=172.17.176.250 –enable-dhcp

b13

  • neutron subnet-create prod_app_net 172.17.177.0/24 –name subnet_prod_app –gateway 172.17.177.1 –allocation-pool start=172.17.177.20,end=172.17.177.250 –enable-dhcp

b14

  • neutron subnet-create prod_db_net 172.17.178.0/24 –name subnet_prod_db –gateway 172.17.178.1 –allocation-pool start=172.17.178.20,end=172.17.178.250 –enable-dhcp

b15b16

  • neutron subnet-create remote_net 172.17.179.0/24 –name subnet_remote –gateway 172.17.179.1 –allocation-pool start=172.17.179.20,end=172.17.179.250 –enable-dhcp

b17b18

  • Erstellen Sie die Anwendungsschicht-VMs wie zuvor beschrieben
  • nova flavor-list

b19

  • nova image-list

b20

  • neutron net-list

b21

  • nova secgroup-list

b22

  • Quellcode der Projekt-Admin-rc-Datei
  • nova boot –flavor m1.tiny –image cirros-0.3.3-x86_64 –nic net-id=7271c4de-3f91-4a12-bb8c-45113610ce08 –security-group default dev-web-1

b23

  • nova boot –flavor m1.tiny –image cirros-0.3.3-x86_64 –nic net-id=7271c4de-3f91-4a12-bb8c-45113610ce08 –security-group default dev-app-1
  • nova boot –flavor m1.tiny –image cirros-0.3.3-x86_64 –nic net-id=7271c4de-3f91-4a12-bb8c-45113610ce08 –security-group default dev-db-1
  • nova boot –flavor m1.tiny –image debian-vmware –nic net-id=7271c4de-3f91-4a12-bb8c-45113610ce08 –security-group default dev-web-2
  • nova boot –flavor m1.tiny –image debian-vmware –nic net-id=7271c4de-3f91-4a12-bb8c-45113610ce08 –security-group default dev-app-2
  • nova boot –flavor m1.tiny –image debian-vmware –nic net-id=7271c4de-3f91-4a12-bb8c-45113610ce08 –security-group default dev-db-2

b24b25

  • Beispiel für den Zugriff auf die Konsole einer Instanz [sowohl vmware als auch kvm]
  • nova get-vnc-console dev-app-1 novnc
  • nova get-vnc-console dev-web-1 novnc
  • nova get-vnc-console dev-db-1 novnc
  • nova get-vnc-console dev-app-2 novnc
  • nova get-vnc-console dev-web-2 novnc
  • nova get-vnc-console dev-db-2 novnc

b26

b27

b28

  • SNAT-Route für Server hinzufügen (setzen Sie Ha unten auf false, da ich durch freie VLAN-IDs eingeschränkt bin)
  • neutron router-create –tenant-id 244fbcbe8c444dacbfc6dbbbf89f744e –distributed False –ha False db-router
  • neutron router-create –tenant-id 244fbcbe8c444dacbfc6dbbbf89f744e –distributed False –ha False app-router
  • neutron router-create –tenant-id 244fbcbe8c444dacbfc6dbbbf89f744e –distributed False –ha False web-router

b29b30

  • Legen Sie das externe Router-Gateway fest
  • neutron router-gateway-set app-router NGOne
  • neutron router-gateway-set web-router NGTwo
  • neutron router-gateway-set db-router NGPhysical2

b31b32

  • Schließen Sie das erforderliche Subnetz an den Router an
  • neutron router-interface-add d33d1ca0-e25c-4972-83b8-c7f1b62a4156 167f394a-ac53-432b-8077-169b0389c725

b33

  • Der Standard-Gateway-Port wurde bereits vom ersten Router im Netzwerk verbraucht. Wir müssen zwei neue Ports im Subnetz erstellen und diese Details den zweiten und dritten Routern hinzufügen.
  • neutron port-create  –tenant-id 244fbcbe8c444dacbfc6dbbbf89f744e –name NGTwo-if dev_test_net
  • neutron port-create  –tenant-id 244fbcbe8c444dacbfc6dbbbf89f744e –name NGPhysical2 dev_test_net

b34

  • Nun können wir den neuen Schnittstellenport mit dem Router verknüpfen
  • neutron router-interface-add  8e7c9b58-1f25-4f9e-8a8d-7335149512de port=e3df0352-ebf8-4869-8ee5-44c6fc866a31
  • neutron router-interface-add 019439b1-c525-4047-b9d5-5c6cf0cca24d port=bf8832a1-d13b-4416-965b-3e09137452c6

b35

  • Das dev-test-Projekt sollte jetzt in etwa so aussehen:

missingb99

  • Die 3 verschiedenen NAT-Gateways können sowohl SNAT- als auch DNAT-Funktionalität bereitstellen. Sicherheitsgruppen werden verwendet, um die Isolation zwischen den Servern und den Gateways bereitzustellen.

  • Die Standard-Sicherheitsgruppe erlaubt den Verkehr zwischen virtuellen Maschinen im selben Tenant-Netzwerk. In diesem Szenario verwenden wir die kvm-basierte VM dev-app-1 und zeigen die Isolation von der esx-basierten VM dev-app-2.

b36

  • Die folgende Sicherheitsgruppe wird die Isolation zwischen diesen beiden Servern bereitstellen.
  • neutron security-group-create –tenant-id 244fbcbe8c444dacbfc6dbbbf89f744e AppGroup-1 –description „Allow traffic flow within application group 1 only“

b37

    • neutron security-group-rule-create –tenant-id 244fbcbe8c444dacbfc6dbbbf89f744e –direction ingress –ethertype IPv4 –remote-group-id  2a659276-9797-45c5-b9f7-b02cc4470147 AppGroup-1

b38

    • nova  –os-tenant-id 244fbcbe8c444dacbfc6dbbbf89f744e add-secgroup dev-app-1 AppGroup-1
  • Entfernen Sie die bereits angewendete „default“-Sicherheitsgruppe

  • nova –os-tenant-id 244fbcbe8c444dacbfc6dbbbf89f744e remove-secgroup dev-app-1 default

b39

  • Ping schlägt nun zwischen dev-app-1 und dev-app2 fehl

b40

  • Das Anwenden der neuen Sicherheitsgruppe auf dev-app-2 ermöglicht gezielte Gruppenkommunikation
  • nova  –os-tenant-id 244fbcbe8c444dacbfc6dbbbf89f744e add-secgroup dev-app-2 AppGroup-1

b41

Dies ist offensichtlich eine sehr grundlegende Demonstration von Sicherheitsgruppen – es ist nur eine Frage der klaren Definition der Kommunikationsanforderungen und ihrer Übersetzung in Regeln.

Was die Erstellung der verbleibenden zwei Projekte, production & remote, betrifft, ist der Prozess genau derselbe, und Sie sollten am Ende diese zusätzlichen Topologien haben, wenn Sie fertig sind.

b42b43

Originally published on allthingscloud.eu (2016-05-26).

← All posts