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
Sourcen Sie die demo-Anmeldeinformationen um Zugriff auf Benutzer-CLI Kommandos zu bekommen:
$ . demo-openrc
Erzeuge das Netzwerk:
$ neutron net-create selfservice
Created a new network:
+-----------------------+--------------------------------------+
| Field | Value |
+-----------------------+--------------------------------------+
| admin_state_up | True |
| id | 7c6f9b37-76b4-463e-98d8-27e5686ed083 |
| mtu | 0 |
| name | selfservice |
| port_security_enabled | True |
| router:external | False |
| shared | False |
| status | ACTIVE |
| subnets | |
| tenant_id | f5b2ccaa75ac413591f12fcaa096aa5c |
+-----------------------+--------------------------------------+
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:
$ neutron subnet-create --name selfservice \
--dns-nameserver DNS_RESOLVER --gateway SELFSERVICE_NETWORK_GATEWAY \
selfservice SELFSERVICE_NETWORK_CIDR
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.
$ neutron subnet-create --name selfservice \
--dns-nameserver 8.8.4.4 --gateway 172.16.1.1 \
selfservice 172.16.1.0/24
Created a new subnet:
+-------------------+------------------------------------------------+
| Field | Value |
+-------------------+------------------------------------------------+
| allocation_pools | {"start": "172.16.1.2", "end": "172.16.1.254"} |
| cidr | 172.16.1.0/24 |
| dns_nameservers | 8.8.4.4 |
| enable_dhcp | True |
| gateway_ip | 172.16.1.1 |
| host_routes | |
| id | 3482f524-8bff-4871-80d4-5774c2730728 |
| ip_version | 4 |
| ipv6_address_mode | |
| ipv6_ra_mode | |
| name | selfservice |
| network_id | 7c6f9b37-76b4-463e-98d8-27e5686ed083 |
| subnetpool_id | |
| tenant_id | f5b2ccaa75ac413591f12fcaa096aa5c |
+-------------------+------------------------------------------------+
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 router:external Option beinhalten, 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 bei der Netzwerkerstellung oder später hinzufügen. In diesem Fall können wir das vorhandene provider Anbieternetzwerk hinzufügen.
Sourcen Sie die admin Anmeldeinformationen auf dem Controller-Knoten, um Zugriff auf Admin-CLI-Befehle zu erhalten:
$ . admin-openrc
Fügen Sie die router: external Option zum provider Netzwerk hinzu:
$ neutron net-update provider --router:external
Updated network: provider
Sourcen Sie die demo Anmeldeinformationen um Zugriff auf Benutzer-CLI Kommandos zu bekommen:
$ . demo-openrc
Den Router erstellen:
$ neutron router-create router
Created a new router:
+-----------------------+--------------------------------------+
| Field | Value |
+-----------------------+--------------------------------------+
| admin_state_up | True |
| external_gateway_info | |
| id | 89dd2083-a160-4d75-ab3a-14239f01ea0b |
| name | router |
| routes | |
| status | ACTIVE |
| tenant_id | f5b2ccaa75ac413591f12fcaa096aa5c |
+-----------------------+--------------------------------------+
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
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.