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.
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 |
+-------------------+--------------------------------------+
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 admin
Anmeldeinformationen auf dem Controller-Knoten, um Zugriff auf Admin-CLI-Befehle zu erhalten:
$ . admin-openrc
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:
$ neutron router-interface-add router selfservice
Added interface bff6605d-824c-41f9-b744-21d128fc86e1 to router router.
Setzen Sie ein Gateway für das Anbieternetzwerk auf dem Router:
$ neutron router-gateway-set router provider
Set gateway for router router
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äume qdhcp
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:
$ neutron router-port-list router
+--------------------------------------+------+-------------------+------------------------------------------+
| id | name | mac_address | fixed_ips |
+--------------------------------------+------+-------------------+------------------------------------------+
| bff6605d-824c-41f9-b744-21d128fc86e1 | | fa:16:3e:2f:34:9b | {"subnet_id": |
| | | | "3482f524-8bff-4871-80d4-5774c2730728", |
| | | | "ip_address": "172.16.1.1"} |
| d6fe98db-ae01-42b0-a860-37b1661f5950 | | fa:16:3e:e8:c1:41 | {"subnet_id": |
| | | | "5cc70da8-4ee7-4565-be53-b9c011fca011", |
| | | | "ip_address": "203.0.113.102"} |
+--------------------------------------+------+-------------------+------------------------------------------+
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.
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.