Self-service Netzwerk¶
Wenn Sie Netzwerk Option 2 wählen, können Sie auch ein privates self-service Netzwerk erstellen, dass eine Verbindung zur physikalischen Netzwerkinfrastruktur via NAT herstellt. Dieses Netzwerk enthält einen DHCP Server, der IP-Adressen an Instanzen verteilt. Eine Instanz in diesem Netzwerk kann automatisch auf externe Netzwerke, wie das Internet, zugreifen. Aber Zugriff auf eine Instanz in diesem Netzwerk, z.B. aus dem Internet, erfordert eine :term: ‚Floating IP-Adresse‘.
Der demo
Benutzer oder andere unprivilegierte Benutzer können dieses Netzwerk erstellen, denn es erlaubt nur Verbindung zu Instanzen im demo
Projekt.
Warnung
Sie müssen erst das Anbieternetzwerk erstellen und dann das self-service Netzwerk.
Bemerkung
Die folgenden Instruktionen und Diagramme verwenden beispielhafte IP-Adressbereiche. Sie müssen sie entsprechend Ihrer Umgebung anpassen.

Netzwerk Option 2: Self-service Netzwerke - Übersicht¶

Network Option 2: Self-service Netzwerke - Konnektivität¶
Erstellen des self-service Netzwerks¶
Sourcen Sie die
demo
-Anmeldeinformationen um Zugriff auf Benutzer-CLI Kommandos zu bekommen:$ . demo-openrc
Erzeuge das Netzwerk:
$ openstack network create selfservice Created a new network: +-------------------------+--------------------------------------+ | Field | Value | +-------------------------+--------------------------------------+ | admin_state_up | UP | | availability_zone_hints | | | availability_zones | | | created_at | 2016-11-04T18:20:59Z | | description | | | headers | | | id | 7c6f9b37-76b4-463e-98d8-27e5686ed083 | | ipv4_address_scope | None | | ipv6_address_scope | None | | mtu | 1450 | | name | selfservice | | port_security_enabled | True | | project_id | 3828e7c22c5546e585f27b9eb5453788 | | project_id | 3828e7c22c5546e585f27b9eb5453788 | | revision_number | 3 | | router:external | Internal | | shared | False | | status | ACTIVE | | subnets | | | tags | [] | | updated_at | 2016-11-04T18:20:59Z | +-------------------------+--------------------------------------+
Nicht-privilegierte Benutzer können diesem Kommando üblicherweise keine zusätzlichen Parameter hinzufügen. Der Dienst wählt automatisch Parameter mittels Informationen aus den folgenden Dateien:
ml2_conf.ini
:[ml2] tenant_network_types = vxlan [ml2_type_vxlan] vni_ranges = 1:1000
Erstellen Sie ein Subnetz für das Netzwerk:
$ openstack subnet create --network selfservice \ --dns-nameserver DNS_RESOLVER --gateway SELFSERVICE_NETWORK_GATEWAY \ --subnet-range SELFSERVICE_NETWORK_CIDR selfservice
Ersetzen Sie
DNS_RESOLVER
durch die IP-Adresse eines DNS-Auflösungsdienstes. In den meisten Fällen können Sie einen aus der Datei/etc/resolv.conf
verwenden.Ersetzen Sie
SELFSERVICE_NETWORK_GATEWAY
mit dem Gateway, dass Sie für das self-service Netzwerk verwenden wollen, typischerweise die „.1“ IP Adresse.Ersetzen Sie
SELFSERVICE_NETWORK_CIDR
mit dem Subnetz, dass Sie für das self-service Netzwerk verwenden wollen. Sie können beliebige Werte verwenden, allerdings empfehlen wir ein Netzwerk aus RFC 1918.Beispiel
Das self-service Netzwerk verwendet 172.16.1.0/24 mit einem Gateway auf 172.16.1.1. Ein DHCP-Server weist jeder Instanz eine IP-Adresse aus dem Bereich 172.16.1.2 bis 172.16.1.254 zu. Alle <Instanzen verwenden 8.8.4.4 zur DNS Namensauflösung.
$ openstack subnet create --network selfservice \ --dns-nameserver 8.8.4.4 --gateway 172.16.1.1 \ --subnet-range 172.16.1.0/24 selfservice Created a new subnet: +-------------------+--------------------------------------+ | Field | Value | +-------------------+--------------------------------------+ | allocation_pools | 172.16.1.2-172.16.1.254 | | cidr | 172.16.1.0/24 | | created_at | 2016-11-04T18:30:54Z | | description | | | dns_nameservers | 8.8.4.4 | | enable_dhcp | True | | gateway_ip | 172.16.1.1 | | headers | | | host_routes | | | id | 5c37348e-e7da-439b-8c23-2af47d93aee5 | | ip_version | 4 | | ipv6_address_mode | None | | ipv6_ra_mode | None | | name | selfservice | | network_id | b9273876-5946-4f02-a4da-838224a144e7 | | project_id | 3828e7c22c5546e585f27b9eb5453788 | | project_id | 3828e7c22c5546e585f27b9eb5453788 | | revision_number | 2 | | service_types | [] | | subnetpool_id | None | | updated_at | 2016-11-04T18:30:54Z | +-------------------+--------------------------------------+
Erstellen eines Routers¶
Self-service Netzwerke verbinden mittels virtuellen Routern, die typischerweise ein bidirektionales NAT darstellen, zu Anbieternetzwerken. Jeder Router enthält ein Interface in mindestens einem self-service Netzwerk sowie ein Gateway zum Anbieternetzwerk.
Das Anbieternetzwerk muss die Option router:external
enthalten, damit self-service-Router eine Verbindung zu externen Netzwerken wie z. B. dem Internet herstellen können. Der admin
oder ein anderer privilegierter Benutzer muss diese Option entweder während der Netzwerkerstellung setzen oder zu einem späteren Zeitpunkt hinzufügen. In diesem Fall wurde die Option router:external
durch den Parameter --external
während des Erstellens des provider
-Netzwerkes gesetzt.
Sourcen Sie die
demo
-Anmeldeinformationen um Zugriff auf Benutzer-CLI Kommandos zu bekommen:$ . demo-openrc
Den Router erstellen:
$ openstack router create router Created a new router: +-------------------------+--------------------------------------+ | Field | Value | +-------------------------+--------------------------------------+ | admin_state_up | UP | | availability_zone_hints | | | availability_zones | | | created_at | 2016-11-04T18:32:56Z | | description | | | external_gateway_info | null | | flavor_id | None | | headers | | | id | 67324374-396a-4db6-9443-c70be167a42b | | name | router | | project_id | 3828e7c22c5546e585f27b9eb5453788 | | project_id | 3828e7c22c5546e585f27b9eb5453788 | | revision_number | 2 | | routes | | | status | ACTIVE | | updated_at | 2016-11-04T18:32:56Z | +-------------------------+--------------------------------------+
Fügen Sie das self-service Netzwerk Subnetz als Interface auf dem Router hinzu:
$ openstack router add subnet router selfservice
Setzen Sie ein Gateway für das Anbieternetzwerk auf dem Router:
$ openstack router set router --external-gateway provider
Überprüfung der Funktion¶
Bevor Sie fortfahren wird empfohlen, die Funkionalität zu prüfen und alle Probleme zu beseitigen. In den folgenden Schritten werden die IP-Adressbereiche aus den Beispielen zur Erzeugung von Netzen und Subnetzen verwendet.
Sourcen Sie die
admin
Anmeldeinformationen auf dem Controller-Knoten, um Zugriff auf Admin-CLI-Befehle zu erhalten:$ . admin-openrc
Lassen Sie die Netzwerk-Namensräume auflisten. Sie sollten einen Namensraum
qrouter
und zwei Namensräumeqdhcp
sehen.$ ip netns qrouter-89dd2083-a160-4d75-ab3a-14239f01ea0b qdhcp-7c6f9b37-76b4-463e-98d8-27e5686ed083 qdhcp-0e62efcd-8cee-46c7-b163-d8df05c3c5ad
Liste alle Ports auf dem Router auf, um die Gateway IP-Adresse im Anbieternetzwerk zu bestimmen:
$ openstack port list --router router +--------------------------------------+------+-------------------+-------------------------------------------------------------------------------+--------+ | ID | Name | MAC Address | Fixed IP Addresses | Status | +--------------------------------------+------+-------------------+-------------------------------------------------------------------------------+--------+ | bff6605d-824c-41f9-b744-21d128fc86e1 | | fa:16:3e:2f:34:9b | ip_address='172.16.1.1', subnet_id='3482f524-8bff-4871-80d4-5774c2730728' | ACTIVE | | d6fe98db-ae01-42b0-a860-37b1661f5950 | | fa:16:3e:e8:c1:41 | ip_address='203.0.113.102', subnet_id='5cc70da8-4ee7-4565-be53-b9c011fca011' | ACTIVE | +--------------------------------------+------+-------------------+-------------------------------------------------------------------------------+--------+
Pingen Sie die IP-Adresse vom Controller-Knoten oder einem anderen Host im physikalischen Anbieternetzwerk.
$ ping -c 4 203.0.113.102 PING 203.0.113.102 (203.0.113.102) 56(84) bytes of data. 64 bytes from 203.0.113.102: icmp_req=1 ttl=64 time=0.619 ms 64 bytes from 203.0.113.102: icmp_req=2 ttl=64 time=0.189 ms 64 bytes from 203.0.113.102: icmp_req=3 ttl=64 time=0.165 ms 64 bytes from 203.0.113.102: icmp_req=4 ttl=64 time=0.216 ms --- 203.0.113.102 ping statistics --- rtt min/avg/max/mdev = 0.165/0.297/0.619/0.187 ms
Kehren sie zurück zu Launch an instance - Create virtual networks.